/* ==========================================================================
   Jet-Parts CATALOGUS: productkaart, categoriepagina, productpagina, winkelwagen en checkout.
   Alleen variabelen uit tokens.css. Eigen markup met prefix jp-, Warehouse-klassen waar nodig.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Productkaart (grid-miniature, ook op home en "Vaak samen gekocht")
   -------------------------------------------------------------------------- */
.products.row {
  margin: -10px;
}
.products.row > .col,
.products.row > [class*="col-"] {
  padding: 10px;
}
.products-grid > .js-product-miniature-wrapper,
.product-carousel {
  display: flex;
}
.product-miniature.product-miniature-grid {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: var(--jp-bg);
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius);
  overflow: hidden;
  transition: box-shadow .2s ease, border-color .2s ease;
}
@media (hover: hover) {
  .product-miniature.product-miniature-grid:hover {
    border-color: var(--jp-line);
    box-shadow: var(--jp-shadow-card);
  }
}
.product-miniature .jp-card__media {
  position: relative;
  margin: 0;
  aspect-ratio: 1 / 1;
  background: var(--jp-bg-soft);
  overflow: hidden;
}
.product-miniature .jp-card__media .product-thumbnail,
.product-miniature .jp-card__media picture {
  display: block;
  width: 100%;
  height: 100%;
}
.product-miniature .jp-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-miniature .jp-card__media .product-flags {
  position: absolute;
  top: 10px;
  left: 10px;
  margin: 0;
  padding: 0;
}
.product-flags .product-flag.new {
  display: inline-block;
  margin: 0;
  padding: 3px 8px;
  border-radius: var(--jp-radius-sm);
  background: var(--jp-yellow);
  color: var(--jp-ink);
  font-family: var(--jp-font-body);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}
.products-grid .product-miniature-layout-1 .product-description.jp-card__body,
.product-miniature .jp-card__body {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: 8px;
  padding: 16px;
  text-align: left;
}
.jp-card__eyebrow {
  display: block;
  font-family: var(--jp-font-body);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--jp-purple);
}
.product-miniature-grid .product-title.jp-card__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  height: auto;
  margin: 0;
  overflow: hidden;
  font-family: var(--jp-font-body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--jp-ink);
}
.product-miniature a.jp-card__title:link,
.product-miniature a.jp-card__title:visited,
.product-miniature a.jp-card__price-link:link,
.product-miniature a.jp-card__price-link:visited {
  color: var(--jp-ink);
}
.product-miniature a.jp-card__title:hover {
  color: var(--jp-purple);
}
.jp-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 12px;
}
.product-miniature .jp-card__prices {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 6px;
  margin: 0;
  min-width: 0;
}
.product-miniature .jp-card__prices a {
  color: inherit;
}
.product-miniature-grid .jp-card__prices .product-price {
  font-family: var(--jp-font-body);
  font-size: 18px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--jp-ink);
  white-space: nowrap;
}
.product-miniature .jp-card__prices .regular-price {
  font-size: 13px;
  color: var(--jp-ink-soft);
  text-decoration: line-through;
  white-space: nowrap;
}
.product-miniature .jp-card__cart {
  flex-shrink: 0;
  margin: 0;
}
.product-miniature .jp-card__cart form {
  margin: 0;
}
.btn.jp-cart-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--jp-purple);
  color: #fff;
  line-height: 1;
  box-shadow: none;
}
.btn.jp-cart-btn:hover,
.btn.jp-cart-btn:focus-visible {
  background: var(--jp-purple-dark);
  color: #fff;
}
.btn.jp-cart-btn:focus-visible {
  outline: 2px solid var(--jp-purple);
  outline-offset: 2px;
}
.jp-cart-btn svg,
.jp-cart-btn i,
.add-to-cart svg,
.add-to-cart i {
  pointer-events: none;
}
.jp-cart-btn .spinner-icon {
  font-size: 14px;
}

@media (max-width: 575.98px) {
  .products.row {
    margin: -7px;
  }
  .products.row > .col,
  .products.row > [class*="col-"] {
    padding: 7px;
  }
  .products-grid .product-miniature-layout-1 .product-description.jp-card__body,
  .product-miniature .jp-card__body {
    gap: 6px;
    padding: 12px;
  }
  .jp-card__eyebrow {
    font-size: 10px;
    letter-spacing: .03em;
  }
  .product-miniature-grid .product-title.jp-card__title {
    font-size: 13px;
    line-height: 1.35;
  }
  .jp-card__foot {
    align-items: flex-end;
    padding-top: 8px;
  }
  .product-miniature .jp-card__prices {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
  .product-miniature-grid .jp-card__prices .product-price {
    font-size: 16px;
  }
  .product-miniature .jp-card__prices .regular-price {
    font-size: 11px;
  }
  .btn.jp-cart-btn {
    width: 30px;
    height: 30px;
  }
  .btn.jp-cart-btn svg {
    width: 14px;
    height: 14px;
  }
}

/* Lijstweergave (toggle "list") */
.product-miniature.product-miniature-list {
  padding: 16px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius);
  background: var(--jp-bg);
}
.product-miniature-list .jp-card__media {
  border-radius: var(--jp-radius-sm);
}
.product-miniature-list .jp-card__eyebrow {
  margin-bottom: 4px;
}
.product-miniature-list .product-title.jp-card__title {
  margin: 0 0 6px;
  font-size: 16px;
}
.product-miniature-list .product-reference {
  font-size: 12px;
  color: var(--jp-ink-soft);
}
.product-miniature-list .jp-list__bullets ul {
  margin: 8px 0 0;
  padding-left: 18px;
  font-size: 13px;
  color: var(--jp-ink-soft);
}
.product-miniature-list .product-price {
  font-size: 20px;
  font-weight: 800;
  color: var(--jp-ink);
}
.product-miniature-list .regular-price {
  font-size: 13px;
  color: var(--jp-ink-soft);
}
.product-miniature-list .btn-product-list {
  border-radius: var(--jp-radius-sm);
  font-weight: 600;
}
#js-product-list .pagination .page-list li a {
  color: var(--jp-ink);
}
#js-product-list .pagination .page-list li a.previous,
#js-product-list .pagination .page-list li a.next {
  color: var(--jp-ink-soft);
}
#js-product-list .pagination .page-list li.current a {
  color: #fff;
}
#category #main,
#search #main,
#manufacturer #main {
  padding-bottom: 56px;
}

/* --------------------------------------------------------------------------
   2. Categoriepagina
   -------------------------------------------------------------------------- */
.jp-cat-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 0 24px;
}
.jp-cat-head .page-title.jp-cat-head__title {
  margin: 0;
  padding: 0;
  font-family: var(--jp-font-head);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--jp-ink);
}
.jp-cat-head__desc {
  max-width: 720px;
  font-size: 14px;
  line-height: 1.45;
  color: var(--jp-ink-soft);
}
.jp-cat-head__desc p {
  margin: 0;
}
.jp-cat-head__count {
  margin: 0;
  font-size: 13px;
  color: var(--jp-ink-soft);
}

@media (min-width: 992px) {
  #left-column.col-lg-2 {
    flex: 0 0 264px;
    max-width: 264px;
    padding-right: 24px;
  }
  #content-wrapper.left-column.col-lg-10 {
    flex: 1 1 0;
    max-width: calc(100% - 264px);
  }
}

/* Filters (ps_facetedsearch) */
.jp-facets__title {
  margin: 0;
  padding: 0 0 12px;
  font-family: var(--jp-font-head);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--jp-ink);
}
#left-column .block-facets,
#left-column #search_filters {
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
}
#search_filters .facet,
#search_filters .facet:first-child {
  padding: 18px 0;
  border-bottom: 1px solid var(--jp-line);
}
#search_filters .facet:last-child {
  border-bottom: 0;
}
#search_filters .facet .facet-title,
#left-column #search_filters .facet .block-title {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  font-family: var(--jp-font-body);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--jp-ink);
}
#search_filters .facet .block-title span,
#search_filters .facet .block-title::after,
#search_filters .facet .block-title::before {
  border: 0;
  padding: 0;
}
#search_filters .facet > ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0 6px 0 0;
  max-height: 172px;
  overflow-y: auto;
  list-style: none;
}
#search_filters .facet > ul.faceted-slider {
  max-height: none;
  overflow: visible;
  padding: 0 8px;
}
#search_filters .facet .facet-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--jp-ink);
  cursor: pointer;
}
#search_filters .facet .facet-label a {
  display: flex;
  flex: 1 1 auto;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px;
  color: var(--jp-ink);
}
#search_filters .facet .facet-label a:hover,
#search_filters .facet .facet-label.active a {
  color: var(--jp-purple);
}
#search_filters .facet .magnitude {
  font-size: 12px;
  color: var(--jp-ink-soft);
}
#search_filters .custom-checkbox input[type="checkbox"] {
  margin: 0;
}
#search_filters .custom-checkbox input[type="checkbox"] + span:not(.color) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin: 0;
  border: 1px solid var(--jp-muted);
  border-radius: 3px;
  background: var(--jp-bg);
  box-shadow: none;
}
#search_filters .custom-checkbox input[type="checkbox"]:checked + span:not(.color) {
  border-color: var(--jp-purple);
  background: var(--jp-purple);
  color: #fff;
}
#search_filters .custom-checkbox input[type="checkbox"]:focus-visible + span {
  outline: 2px solid var(--jp-purple);
  outline-offset: 2px;
}
#search_filters .custom-checkbox .checkbox-checked {
  position: static;
  font-size: 10px;
  color: #fff;
}
#search_filters .faceted-slider p {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--jp-ink);
}
#search_filters .noUi-target {
  height: 4px;
  margin: 0 8px 8px;
  border: 0;
  border-radius: 2px;
  background: var(--jp-line);
  box-shadow: none;
}
#search_filters .noUi-connect {
  background: var(--jp-purple);
}
#search_filters .noUi-horizontal .noUi-handle {
  top: -7px;
  right: -9px;
  width: 18px;
  height: 18px;
  border: 2px solid var(--jp-purple);
  border-radius: 50%;
  background: var(--jp-bg);
  box-shadow: none;
  cursor: pointer;
}
#search_filters .noUi-handle::before,
#search_filters .noUi-handle::after {
  display: none;
}

/* Actieve filters */
#js-active-search-filters.active_filters,
.active_filters {
  margin: 0 0 16px;
  padding: 0;
  background: transparent;
}
.active_filters .filter-block {
  margin: 0 6px 6px 0;
  padding: 5px 10px;
  border-radius: var(--jp-radius-sm);
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
  font-size: 12px;
  font-weight: 600;
}
.active_filters .filter-block .close {
  color: var(--jp-purple);
}

/* Bovenbalk productlijst */
.products-selection.jp-listbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
  margin: 0 0 24px;
  padding: 0 0 20px;
  border: 0;
  border-bottom: 1px solid var(--jp-line);
  background: transparent;
}
.jp-listbar__count {
  font-size: 14px;
  color: var(--jp-ink-soft);
}
.jp-listbar__count strong {
  color: var(--jp-ink);
}
.jp-listbar__right {
  display: flex;
  align-items: center;
  gap: 20px;
}
.jp-view.view-switcher {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
}
.jp-view.view-switcher a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 0;
  border-radius: var(--jp-radius-sm);
  color: var(--jp-ink-soft);
}
.jp-view.view-switcher a.current,
.jp-view.view-switcher a:hover {
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
}
.jp-view.view-switcher a svg {
  pointer-events: none;
}
.jp-sort {
  display: flex;
  align-items: center;
  gap: 12px;
}
.jp-sort__label {
  font-size: 13px;
  color: var(--jp-ink-soft);
  white-space: nowrap;
}
.jp-sort__dropdown.products-sort-order {
  margin: 0;
}
.jp-sort__dropdown .select-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 150px;
  height: 38px;
  padding: 0 10px 0 12px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
  font-size: 13px;
  color: var(--jp-ink);
  cursor: pointer;
}
.jp-sort__dropdown .select-title svg {
  flex-shrink: 0;
  color: var(--jp-ink-soft);
}
.jp-sort__dropdown .dropdown-menu {
  min-width: 100%;
  padding: 6px 0;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  box-shadow: var(--jp-shadow-card);
}
.jp-sort__dropdown .dropdown-item {
  padding: 8px 14px;
  font-size: 13px;
  color: var(--jp-ink);
}
.jp-sort__dropdown .dropdown-item.current,
.jp-sort__dropdown .dropdown-item:hover {
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
}

/* Paginering */
#js-product-list .pagination {
  display: block;
  margin: 0;
  padding: 32px 0 0;
}
.pagination .page-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.pagination .page-list li,
.pagination .page-list li:hover,
.pagination .page-list li.current {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.pagination .page-list li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
  font-size: 14px;
  color: var(--jp-ink);
}
.pagination .page-list li a.previous,
.pagination .page-list li a.next {
  color: var(--jp-ink-soft);
}
.pagination .page-list li a:hover {
  border-color: var(--jp-purple);
  color: var(--jp-purple);
}
.pagination .page-list li.current a,
.pagination .page-list li.current a:hover {
  border-color: var(--jp-purple);
  background: var(--jp-purple);
  color: #fff;
  font-weight: 700;
}
.pagination .page-list .spacer {
  padding: 0 4px;
  border: 0;
  color: var(--jp-ink-soft);
}

@media (max-width: 767.98px) {
  .jp-cat-head {
    padding: 0 0 20px;
  }
  .jp-cat-head .page-title.jp-cat-head__title {
    font-size: 22px;
  }
  .products-selection.jp-listbar {
    gap: 10px;
    min-height: 0;
    margin: 0 0 16px;
    padding: 0;
    border-bottom: 0;
  }
  .jp-listbar__filter {
    flex: 1 1 auto;
  }
  .btn.jp-filter-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 44px;
    border: 1px solid var(--jp-purple);
    border-radius: var(--jp-radius-sm);
    background: var(--jp-purple-soft);
    color: var(--jp-purple);
    font-size: 13px;
    font-weight: 700;
  }
  .jp-sort__dropdown .select-title {
    min-width: 0;
    height: 44px;
    padding: 0 8px;
    font-size: 12px;
  }
  /* Mobiel filterpaneel (Warehouse toont #search_filters_wrapper na klik op "Filteren") */
  #search_filters_wrapper {
    padding: 0 0 24px;
  }
  #search_filter_controls {
    display: flex;
    gap: 10px;
    margin: 0 0 8px;
  }
  #search_filter_controls .btn {
    flex: 1 1 0;
    height: 44px;
    border-radius: var(--jp-radius-sm);
  }
}

/* --------------------------------------------------------------------------
   3. Productpagina
   -------------------------------------------------------------------------- */
#product #main-product-wrapper {
  padding-top: 8px;
}
@media (min-width: 1200px) {
  #product .product-info-row .col-product-image {
    flex: 0 0 590px;
    max-width: 590px;
  }
  #product .product-info-row .col-product-info {
    flex: 0 1 616px;
    max-width: 616px;
    padding-left: 56px;
  }
}

/* Galerij */
#product .images-container .product-cover {
  margin: 0 0 12px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius);
  background: var(--jp-bg-soft);
  overflow: hidden;
}
#product .images-container .product-flags {
  display: none;
}
#product .images-container .expander span {
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
  color: var(--jp-ink);
  box-shadow: 0 2px 8px rgba(28, 18, 32, .12);
}
#product .images-container .expander i {
  color: var(--jp-ink);
}
#product .js-qv-mask .swiper-slide {
  padding: 0;
  border: 0;
  background: transparent;
  opacity: 1;
}
#product .js-qv-mask .thumb-container img {
  border: 1px solid var(--jp-line);
  border-radius: 6px;
  background: var(--jp-bg-soft);
  opacity: 1;
}
#product .js-qv-mask .product-images img.thumb.selected,
#product .js-qv-mask .thumb-container img:hover {
  border-color: var(--jp-purple);
  opacity: 1;
}

/* Kop: merk + voorraad, titel, artikelnummer, prijs */
.jp-pp-head {
  margin: 0;
  padding: 0;
  border: 0;
}
.jp-pp-head__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
}
.jp-pill {
  display: inline-block;
  padding: 5px 10px;
  border-radius: var(--jp-radius-sm);
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.jp-stock {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  color: var(--jp-success);
}
.jp-stock--out {
  color: var(--jp-ink-soft);
}
#product .jp-pp-head .page-title {
  margin: 0 0 18px;
  padding: 0;
  font-family: var(--jp-font-head);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--jp-ink);
}
.jp-pp-ref {
  margin: 0 0 18px;
  font-size: 13px;
  color: var(--jp-ink-soft);
}
.jp-pp-ref strong {
  font-weight: 700;
  color: var(--jp-ink);
}
#product .jp-pp-head .product-prices {
  margin: 0 0 18px;
  padding: 4px 0 0;
}
.jp-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
}
#product .jp-price .current-price-value {
  font-family: var(--jp-font-body);
  font-size: 34px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--jp-ink);
}
#product .jp-price .product-discount {
  margin: 0;
}
#product .jp-price .regular-price {
  font-size: 18px;
  color: var(--jp-ink-soft);
  text-decoration: line-through;
}
.jp-price__note {
  font-size: 13px;
  color: var(--jp-ink-soft);
}
#product .jp-pp-head .tax-shipping-delivery-label {
  display: none;
}

/* Bullets uit description_short met paarse schild-vinkjes */
#product .product-information {
  padding: 0;
  border: 0;
}
#product .product-information > .product-description {
  margin: 0 0 18px;
  font-size: 14px;
  color: var(--jp-ink);
}
#product .product-information > .product-description ul {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
#product .product-information > .product-description li {
  display: flex;
  gap: 8px;
  margin: 0;
  line-height: 1.45;
}
#product .product-information > .product-description li::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  margin-top: 3px;
  background-color: var(--jp-purple);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Aantal, knop, vergelijken */
#product .product-actions {
  margin: 0;
  padding: 0;
  border: 0;
}
#product .product-add-to-cart {
  padding: 0;
  margin: 0;
}
.jp-buy {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}
.jp-buy > .col {
  margin: 0;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  padding: 0;
}
.product-quantity .jp-buy__qty.qty {
  width: auto;
  height: auto;
  flex: 0 0 auto;
}
.jp-buy .jp-buy__qty .bootstrap-touchspin {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  width: auto;
  height: 52px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
  overflow: hidden;
}
.jp-buy .jp-buy__qty .bootstrap-touchspin .input-group-btn-vertical {
  display: contents;
}
.jp-buy__qty .bootstrap-touchspin .input-group-addon {
  display: none;
}
.jp-buy .jp-buy__qty .bootstrap-touchspin #quantity_wanted {
  order: 2;
  flex: 0 0 44px;
  width: 44px;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: var(--jp-ink);
  -moz-appearance: textfield;
}
.jp-buy__qty #quantity_wanted::-webkit-outer-spin-button,
.jp-buy__qty #quantity_wanted::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.jp-buy .jp-buy__qty .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--jp-ink);
  font-size: 18px;
  line-height: 1;
  max-width: none;
}
.jp-buy .jp-buy__qty .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin:hover {
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
}
.jp-buy .jp-buy__qty .bootstrap-touchspin .btn-touchspin i {
  display: none;
}
.jp-buy .jp-buy__qty .input-group-btn-vertical .bootstrap-touchspin-down {
  order: 1;
}
.jp-buy .jp-buy__qty .input-group-btn-vertical .bootstrap-touchspin-up {
  order: 3;
}
.jp-buy__qty .bootstrap-touchspin-down::before {
  content: "\2212";
}
.jp-buy__qty .bootstrap-touchspin-up::before {
  content: "+";
}
.jp-buy__add {
  flex: 1 1 auto;
  min-width: 0;
}
.btn.jp-buy__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 52px;
  padding: 0 20px;
  border: 0;
  border-radius: var(--jp-radius-sm);
  background: var(--jp-purple);
  color: #fff;
  font-family: var(--jp-font-body);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  text-transform: none;
}
.btn.jp-buy__btn:hover,
.btn.jp-buy__btn:focus-visible {
  background: var(--jp-purple-dark);
  color: #fff;
}
.btn.jp-buy__btn:disabled {
  background: var(--jp-muted);
}
.jp-buy .col-add-wishlist {
  display: none;
}
.jp-buy .btn-iqitcompare-add {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
  color: var(--jp-ink-soft);
}
.jp-buy .btn-iqitcompare-add:hover {
  border-color: var(--jp-purple);
  color: var(--jp-purple);
}
.jp-buy .btn-iqitcompare-add .not-added {
  display: none;
}
.jp-buy .btn-iqitcompare-add:not(.added)::before {
  content: "";
  width: 20px;
  height: 20px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M17 3v18M7 3v18M3 8h8M13 16h8'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M17 3v18M7 3v18M3 8h8M13 16h8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.product-minimal-quantity:empty {
  display: none;
}

/* Verzendregel en betaalbadges */
.jp-pp-usp {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 18px 0 0;
  padding: 0 0 18px;
  border-bottom: 1px solid var(--jp-line);
  font-size: 13px;
  color: var(--jp-ink-soft);
}
.jp-pp-usp svg {
  flex-shrink: 0;
}
.jp-pp-pay {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 18px 0 0;
}
.jp-pp-pay__label {
  font-size: 12px;
  color: var(--jp-ink-soft);
}
.jp-paybadge {
  padding: 5px 10px;
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg-soft);
  font-size: 11px;
  font-weight: 700;
  color: var(--jp-ink);
}
#product .product-additional-info {
  margin: 0;
  padding: 0;
  border: 0;
}
#product .product-additional-info .social-sharing,
#product .product-additional-info:empty {
  display: none;
}

/* Tabs */
#product .jp-tabs {
  margin: 48px 0 0;
}
#product .jp-tabs #products-tab-anchor {
  display: block;
  height: 0;
  overflow: hidden;
}
#product .jp-tabs .nav-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 2px solid var(--jp-line);
  overflow-x: auto;
  scrollbar-width: none;
}
#product .jp-tabs .nav-tabs {
  flex-direction: row;
}
#product .jp-tabs .nav-tabs .nav-item {
  flex: 0 0 auto;
  width: auto;
  margin: 0;
}
#product .jp-tabs .nav-tabs .nav-link {
  margin: 0 0 -2px;
  padding: 0 0 14px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  font-family: var(--jp-font-body);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--jp-ink-soft);
}
#product .jp-tabs .nav-tabs .nav-link::after,
#product .jp-tabs .nav-tabs .nav-link::before {
  display: none;
}
#product .jp-tabs .nav-tabs .nav-link.active,
#product .jp-tabs .nav-tabs .nav-link:hover {
  border-bottom-color: var(--jp-purple);
  color: var(--jp-purple);
}
#product .jp-tabs .nav-tabs .nav-link.active {
  font-weight: 700;
}
#product .jp-tabs .tab-content {
  max-width: 760px;
  padding: 24px 0 0;
  font-size: 14px;
  color: var(--jp-ink);
}
#product .jp-tabs .tab-content ul {
  padding-left: 18px;
}
#product .jp-tabs .tab-content li {
  margin-bottom: 6px;
}
.jp-specs__list {
  margin: 0;
}
.jp-specs__row {
  display: flex;
  padding: 12px 0;
  border-bottom: 1px solid var(--jp-line);
}
.jp-specs__row dt {
  flex: 0 0 240px;
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  color: var(--jp-ink-soft);
}
.jp-specs__row dd {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--jp-ink);
}

/* Vaak samen gekocht */
.jp-related {
  margin: 0;
  padding: 48px 0 56px;
}
.jp-related__title {
  margin: 0 0 24px;
  font-family: var(--jp-font-head);
  font-size: 24px;
  font-weight: 700;
  color: var(--jp-ink);
}

@media (max-width: 767.98px) {
  #product .jp-pp-head {
    padding-top: 24px;
  }
  .jp-pp-head__meta {
    gap: 8px;
    margin-bottom: 16px;
  }
  .jp-pill {
    padding: 4px 9px;
    font-size: 10px;
  }
  .jp-stock {
    font-size: 11px;
  }
  #product .jp-pp-head .page-title {
    margin-bottom: 16px;
    font-size: 22px;
    line-height: 1.3;
  }
  .jp-pp-ref {
    margin-bottom: 16px;
    font-size: 12px;
  }
  #product .jp-price .current-price-value {
    font-size: 28px;
  }
  .jp-price__note {
    font-size: 12px;
  }
  #product .product-information > .product-description {
    font-size: 13px;
  }
  .jp-buy {
    gap: 10px;
  }
  .jp-buy .jp-buy__qty .bootstrap-touchspin {
    height: 48px;
  }
  .jp-buy .jp-buy__qty .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin {
    width: 40px;
  }
  .jp-buy .jp-buy__qty .bootstrap-touchspin #quantity_wanted {
    flex-basis: 36px;
    width: 36px;
    font-size: 14px;
  }
  .btn.jp-buy__btn {
    height: 48px;
    gap: 8px;
    font-size: 14px;
  }
  .jp-buy .col-add-compare {
    display: none;
  }
  .jp-pp-usp {
    margin-top: 16px;
    padding-bottom: 16px;
    font-size: 12px;
  }
  .jp-pp-pay {
    gap: 8px;
    margin-top: 16px;
  }
  .jp-paybadge {
    padding: 5px 9px;
    font-size: 10px;
  }
  #product .jp-tabs {
    margin-top: 40px;
  }
  #product .jp-tabs .nav-tabs {
    gap: 20px;
  }
  #product .jp-tabs .nav-tabs .nav-link {
    padding-bottom: 12px;
    font-size: 13px;
  }
  #product .jp-tabs .tab-content {
    padding-top: 16px;
  }
  .jp-specs__row {
    justify-content: space-between;
    gap: 16px;
  }
  .jp-specs__row dt {
    flex: 0 1 auto;
    font-size: 12px;
  }
  .jp-specs__row dd {
    font-size: 12px;
    text-align: right;
  }
  .jp-related {
    padding-top: 40px;
  }
  .jp-related__title {
    margin-bottom: 16px;
    font-size: 19px;
  }
}

/* --------------------------------------------------------------------------
   4. Winkelwagen (modal, side cart, /cart) en checkout: huisstijl consistent maken
   -------------------------------------------------------------------------- */

/* Gedeelde knoppen */
#blockcart-modal .btn,
#blockcart-content .btn,
#cart .cart-grid .btn,
#checkout #main .btn,
#checkout .cart-summary .btn {
  border-radius: var(--jp-radius-sm);
  font-family: var(--jp-font-body);
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
}
#blockcart-modal .btn-primary,
#blockcart-content .btn-primary,
#cart .cart-grid .btn-primary,
#checkout #main .btn-primary {
  min-height: 48px;
  font-size: 15px;
}
#cart .cart-grid .btn-secondary,
#blockcart-modal .btn-secondary,
#blockcart-content .btn-secondary {
  border: 1px solid var(--jp-purple);
  background: var(--jp-bg);
  color: var(--jp-purple);
}
#cart .cart-grid .btn-secondary:hover,
#blockcart-modal .btn-secondary:hover,
#blockcart-content .btn-secondary:hover {
  background: var(--jp-purple-soft);
}

/* Horizontale aantal-stepper (− n +) in side cart en winkelwagen */
#blockcart-content .bootstrap-touchspin,
#cart .cart-item .bootstrap-touchspin {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: stretch;
  width: auto;
  max-width: none;
  height: 40px;
  min-height: 0;
  margin: 0;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
  overflow: hidden;
}
#blockcart-content .bootstrap-touchspin .input-group-btn-vertical,
#cart .cart-item .bootstrap-touchspin .input-group-btn-vertical {
  display: contents;
}
#blockcart-content .bootstrap-touchspin .input-group-addon,
#cart .cart-item .bootstrap-touchspin .input-group-addon {
  display: none;
}
#blockcart-content .bootstrap-touchspin input.form-control,
#cart .cart-item .bootstrap-touchspin input.form-control {
  order: 2;
  flex: 0 0 36px;
  width: 36px;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--jp-ink);
  -moz-appearance: textfield;
}
#blockcart-content .bootstrap-touchspin input::-webkit-inner-spin-button,
#cart .cart-item .bootstrap-touchspin input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
#blockcart-content .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin,
#cart .cart-item .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  max-width: none;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--jp-ink);
  font-size: 16px;
  line-height: 1;
}
#blockcart-content .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin:hover,
#cart .cart-item .bootstrap-touchspin .input-group-btn-vertical > .btn-touchspin:hover {
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
}
#blockcart-content .bootstrap-touchspin .btn-touchspin i,
#cart .cart-item .bootstrap-touchspin .btn-touchspin i {
  display: none;
}
#blockcart-content .bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down,
#cart .cart-item .bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down {
  order: 1;
}
#blockcart-content .bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up,
#cart .cart-item .bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up {
  order: 3;
}
#blockcart-content .bootstrap-touchspin-down::before,
#cart .cart-item .bootstrap-touchspin-down::before {
  content: "\2212";
}
#blockcart-content .bootstrap-touchspin-up::before,
#cart .cart-item .bootstrap-touchspin-up::before {
  content: "+";
}

/* Bevestigingsmodal na toevoegen */
#blockcart-modal .modal-content {
  border: 0;
  border-radius: var(--jp-radius);
  overflow: hidden;
}
#blockcart-modal .modal-header {
  padding: 18px 24px;
  border-bottom: 1px solid var(--jp-line);
}
#blockcart-modal .modal-title {
  font-family: var(--jp-font-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--jp-ink);
}
#blockcart-modal .modal-title i,
#blockcart-modal .modal-title .fa {
  color: var(--jp-success);
}
#blockcart-modal .modal-body {
  padding: 24px;
}
#blockcart-modal .product-image,
#blockcart-modal .modal-body img {
  border-radius: var(--jp-radius);
  background: var(--jp-bg-soft);
}
#blockcart-modal .product-name,
#blockcart-modal .modal-body a:not(.btn) {
  font-weight: 700;
  color: var(--jp-ink);
}
#blockcart-modal .cart-content p,
#blockcart-modal .cart-content-btn {
  font-size: 14px;
  color: var(--jp-ink-soft);
}
#blockcart-modal .cart-content strong,
#blockcart-modal .product-total .value {
  color: var(--jp-ink);
}
#blockcart-modal .cart-content-btn .btn {
  width: 100%;
  margin-bottom: 8px;
}

/* Side cart */
#blockcart-content {
  font-family: var(--jp-font-body);
  color: var(--jp-ink);
}
#blockcart-content .cart-title .modal-title {
  font-family: var(--jp-font-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--jp-ink);
}
#blockcart-content .cart-title hr,
#blockcart-content hr {
  border-color: var(--jp-line);
  opacity: 1;
}
#blockcart-content .cart-products > li {
  padding: 12px 0;
  border-bottom: 1px solid var(--jp-line);
}
#blockcart-content .cart-products .product-image img {
  border: 1px solid var(--jp-line);
  border-radius: 6px;
  background: var(--jp-bg-soft);
}
#blockcart-content .cart-products .col-info {
  padding-left: 12px;
  font-size: 14px;
}
#blockcart-content .cart-products .col-info a:not(.remove-from-cart) {
  font-weight: 600;
  color: var(--jp-ink);
}
#blockcart-content .cart-products .col-info .text-right span {
  font-weight: 700;
}
#blockcart-content .remove-from-cart {
  margin-left: 6px;
  color: var(--jp-ink-soft);
}
#blockcart-content .remove-from-cart:hover {
  color: var(--jp-purple);
}
#blockcart-content .cart-subtotals,
#blockcart-content .cart-totals {
  font-size: 14px;
}
#blockcart-content .cart-totals .value,
#blockcart-content .cart-totals .label {
  font-weight: 800;
  color: var(--jp-ink);
}
#blockcart-content .cart-buttons .btn {
  width: 100%;
  min-height: 48px;
  margin-bottom: 8px;
}

/* Winkelwagenpagina */
#cart #main .page-title,
#checkout #main .page-title {
  font-family: var(--jp-font-head);
  font-size: 30px;
  font-weight: 700;
  color: var(--jp-ink);
}
#cart .cart-grid-body .cart-overview {
  padding: 0;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius);
}
#cart .cart-items {
  margin: 0;
  padding: 0 20px;
}
#cart .cart-item {
  padding: 16px 0;
  border-bottom: 1px solid var(--jp-line);
}
#cart .cart-item:last-child {
  border-bottom: 0;
}
#cart .cart-item .product-image img,
#cart .cart-item img {
  border: 1px solid var(--jp-line);
  border-radius: 6px;
  background: var(--jp-bg-soft);
}
#cart .cart-item .product-line-info a,
#cart .cart-item a.label {
  font-size: 15px;
  font-weight: 700;
  color: var(--jp-ink);
}
#cart .cart-item .product-price,
#cart .cart-item .price {
  color: var(--jp-ink);
}
#cart .cart-item .remove-from-cart {
  color: var(--jp-ink-soft);
}
#cart .cart-item .remove-from-cart:hover {
  color: var(--jp-purple);
}

/* Overzichtskaart (winkelwagen en checkout) */
.cart-summary.card,
#checkout #js-checkout-summary {
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius);
  background: var(--jp-bg-soft);
  overflow: hidden;
}
.cart-summary .card-body {
  padding: 16px 20px;
}
.cart-summary hr {
  margin: 0 20px;
  border-color: var(--jp-line);
  opacity: 1;
}
.cart-summary .cart-summary-line {
  font-size: 14px;
  color: var(--jp-ink-soft);
}
.cart-summary .cart-summary-line .value {
  color: var(--jp-ink);
}
.cart-summary .cart-total .label,
.cart-summary .cart-total .value {
  font-family: var(--jp-font-body);
  font-size: 18px;
  font-weight: 800;
  color: var(--jp-ink);
}
.cart-summary .block-promo .promo-code-button,
.cart-summary .block-promo a {
  color: var(--jp-purple);
}

/* Checkout: compacte header (checkout_header = simple) */
#checkout-header.jp-checkout-head {
  padding: 16px 0;
  border-bottom: 1px solid var(--jp-line);
  background: var(--jp-bg);
}
.jp-checkout-head .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.jp-checkout-head .logo {
  width: auto;
  max-height: 48px;
}
.jp-checkout-head__secure {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--jp-success);
}
.jp-checkout-head__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--jp-ink-soft);
}
.jp-checkout-head__back:hover {
  color: var(--jp-purple);
}

/* Checkout-stappen (body#checkout section.checkout-step: zelfde specificiteit als Warehouse nodig) */
body#checkout section.checkout-step {
  margin: 0 0 12px;
  padding: 20px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius);
  background: var(--jp-bg);
  box-shadow: none;
}
body#checkout section.checkout-step .step-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  border: 0;
  font-family: var(--jp-font-head);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  text-transform: none;
  color: var(--jp-ink-soft);
}
body#checkout section.checkout-step.-current .step-title {
  margin: 0 -20px 20px;
  padding: 0 20px 20px;
  border-bottom: 1px solid var(--jp-line);
  color: var(--jp-ink);
}
body#checkout section.checkout-step .step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  margin: 0;
  border-radius: 50%;
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
  font-family: var(--jp-font-body);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}
body#checkout section.checkout-step.-current .step-number {
  background: var(--jp-purple);
  color: #fff;
}
body#checkout section.checkout-step .step-title .step-number,
body#checkout section.checkout-step.-current.-reachable.-complete .step-title .step-number {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0;
  text-indent: 0;
}
body#checkout section.checkout-step .step-title .done,
body#checkout section.checkout-step .step-title .fa-check {
  color: var(--jp-success);
}
body#checkout section.checkout-step .step-edit {
  margin-left: auto;
  font-family: var(--jp-font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--jp-purple);
}
body#checkout section.checkout-step .content {
  padding: 0;
}
body#checkout section.checkout-step .delivery-option {
  margin: 0 0 8px;
  padding: 14px 16px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
}
body#checkout section.checkout-step .delivery-option:has(input:checked) {
  border-color: var(--jp-purple);
  background: var(--jp-purple-soft);
}
#checkout .form-control,
#checkout .form-select,
#checkout select.form-control {
  min-height: 44px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  font-size: 14px;
  color: var(--jp-ink);
}
#checkout .form-control:focus,
#checkout .form-select:focus {
  border-color: var(--jp-purple);
  box-shadow: 0 0 0 3px var(--jp-purple-soft);
}
#checkout .form-control-label,
#checkout label {
  color: var(--jp-ink);
}
#checkout .form-control-comment {
  font-size: 12px;
  color: var(--jp-muted);
}
#checkout .custom-radio,
#checkout .custom-checkbox input[type="checkbox"] + span {
  border-color: var(--jp-muted);
}
#checkout .custom-radio input[type="radio"]:checked + span {
  background: var(--jp-purple);
}
#checkout .custom-checkbox input[type="checkbox"]:checked + span {
  border-color: var(--jp-purple);
  background: var(--jp-purple);
  color: #fff;
}
#checkout .custom-checkbox input[type="checkbox"]:checked + span .checkbox-checked {
  color: #fff;
}
#checkout .payment-option {
  margin: 0 0 8px;
  padding: 14px 16px;
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
  background: var(--jp-bg);
}
#checkout .payment-option:has(input:checked) {
  border-color: var(--jp-purple);
  background: var(--jp-purple-soft);
}
#checkout .delivery-option .carrier-hasLogo {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  margin: 0;
}
#checkout .delivery-option .carrier-hasLogo > .col-xs-3 {
  flex: 0 0 56px;
  max-width: 56px;
  padding: 0;
}
#checkout .delivery-option .carrier-hasLogo > .carriere-name-container {
  flex: 1 1 auto;
  padding: 0;
}
#checkout .delivery-option .carrier-hasLogo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 56px;
  max-height: 40px;
  object-fit: contain;
}
#checkout .delivery-option .carrier-name {
  font-weight: 700;
  color: var(--jp-ink);
}
#checkout .delivery-option .carrier-price {
  font-weight: 700;
  color: var(--jp-ink);
}
#checkout .payment-option label {
  margin: 0;
  font-weight: 600;
}
#checkout #payment-confirmation .btn-primary:disabled,
#checkout #payment-confirmation .btn-primary.disabled {
  background: var(--jp-muted);
  opacity: 1;
}
#checkout .address-item {
  border: 1px solid var(--jp-line);
  border-radius: var(--jp-radius-sm);
}
#checkout .address-item.selected {
  border-color: var(--jp-purple);
  background: var(--jp-purple-soft);
}
#checkout .nav-inline .nav-link,
#checkout .nav-tabs .nav-link {
  font-weight: 600;
  color: var(--jp-ink-soft);
}
#checkout .nav-inline .nav-link.active,
#checkout .nav-tabs .nav-link.active {
  color: var(--jp-purple);
}

@media (max-width: 767.98px) {
  #cart #main .page-title,
  #checkout #main .page-title {
    font-size: 22px;
  }
  #cart .cart-items {
    padding: 0 12px;
  }
  body#checkout section.checkout-step {
    padding: 16px;
  }
  body#checkout section.checkout-step .step-title {
    font-size: 16px;
  }
  body#checkout section.checkout-step.-current .step-title {
    margin: 0 -16px 16px;
    padding: 0 16px 16px;
  }
  .jp-checkout-head .logo {
    max-height: 36px;
  }
  .jp-checkout-head__secure {
    display: none;
  }
}

/* Gratis-verzending-teller (iqitfreedeliverycount) */
.iqitfreedeliverycount.alert {
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 0;
  border-radius: var(--jp-radius-sm);
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
  font-size: 13px;
}
.iqitfreedeliverycount .iqitfreedeliverycount-title {
  margin: 0;
}
.cart-summary .iqitfreedeliverycount.alert {
  margin: 0 20px 16px;
}
.iqitfreedeliverycount.alert.jp-fdc-done { background: #e8f6ee; color: #1f6b3d; }
.iqitfreedeliverycount .jp-fdc-note { margin-top: 2px; line-height: 1.45; }
/* Kortingslabel in winkelwagenregel */
#cart .cart-item .discount,
#cart .cart-item .badge-discount {
  padding: 2px 6px;
  border-radius: var(--jp-radius-sm);
  background: var(--jp-purple-soft);
  color: var(--jp-purple);
  font-size: 12px;
  font-weight: 700;
}
@media (max-width: 767.98px) {
  #search_filter_controls .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    font-weight: 600;
  }
  .active_filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
  }
}
/* Kortingscode: icoon. De theme editor zet de body-font op .btn, waardoor het
   Font Awesome-icoon (fa-tag) als leeg vakje verscheen; daarom hier de FA-font forceren. */
.block-promo .cart-voucher .input-group { flex-wrap: nowrap; align-items: stretch; }
.block-promo .cart-voucher .input-group > .voucher-icon { align-self: stretch; height: auto !important; min-height: 0; margin: 0; }
.block-promo .cart-voucher .voucher-icon {
  display: flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; padding: 0;
  font-family: "Font Awesome 6 Free" !important; font-weight: 900; font-size: 15px; line-height: 1;
  color: var(--jp-purple); background: var(--jp-purple-soft);
  border: 1px solid var(--jp-line); border-right: 0; border-radius: 6px 0 0 6px; cursor: default;
}
.block-promo .cart-voucher .voucher-icon + input + input + .form-control,
.block-promo .cart-voucher .input-group .form-control { border-radius: 0; min-width: 0; }
/* Productpagina: betaallogo's op lichte achtergrond, met rand */
.jp-pp-pay .jp-paylogos__item { height: 30px; min-width: 48px; padding: 0 8px; border: 1px solid var(--jp-line); }
.jp-pp-pay .jp-paylogos__item img { height: 16px; }
.jp-pp-pay .jp-paylogos__item--ideal img { height: 21px; }
.jp-pp-pay .jp-paylogos__item--maestro img { height: 22px; }
.jp-pp-pay .jp-paylogos__item--klarna img { height: 20px; }
.jp-pp-pay .jp-paylogos__item--visa img { height: 12px; }
/* Winkelwagen: gratis sticker (cs_freesticker) */
.jp-free-badge {
  display: inline-block; margin: 4px 0 0; padding: 2px 8px; border-radius: 999px;
  background: var(--jp-yellow); color: var(--jp-ink); font-size: 11px; font-weight: 700; line-height: 1.4;
}
.jp-free-pill { color: var(--jp-success); font-weight: 800; }
#cart .cart-item .product-line-info:not(.product-line-info-secondary) > span.label { font-size: 15px; font-weight: 700; color: var(--jp-ink); }
#cart .cart-item .product-line-info .jp-free-badge { margin-left: 6px; vertical-align: 2px; }
.cart-item .jp-free-qty {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 40px; padding: 0 12px;
  border: 1px solid var(--jp-line); border-radius: var(--jp-radius-sm); color: var(--jp-ink-soft); font-weight: 600;
}
/* Contactpagina: bezoek alleen op afspraak */
.contact-rich .jp-visit-note {
  display: flex; flex-direction: column; gap: 2px; margin: 12px 0 4px; padding: 12px 14px;
  border-left: 4px solid var(--jp-yellow); border-radius: var(--jp-radius-sm); background: #fffbe0;
  color: var(--jp-ink); font-size: 13px; line-height: 1.5;
}
.contact-rich .jp-visit-note strong { font-size: 14px; }
/* Mobiel: sorteermenu over de volle breedte van de balk, zodat het nooit buiten beeld valt
   (op merkpagina's staat de knop links omdat daar geen filterknop is). */
@media (max-width: 767.98px) {
  #js-product-list-top.jp-listbar { position: relative; }
  #js-product-list-top .jp-listbar__right, #js-product-list-top .jp-sort, #js-product-list-top .jp-sort__dropdown { position: static; }
  #js-product-list-top .jp-sort__dropdown .dropdown-menu,
  #js-product-list-top .jp-sort__dropdown .dropdown-menu.dropdown-menu-end {
    left: 0 !important; right: 0 !important; top: 100% !important; width: auto; min-width: 0; margin-top: 6px; transform: none !important;
  }
}
