/*
 * Carpatian p15 design: listings + product card (owned by the listing design agent).
 * Zone: the product card everywhere (category, search, manufacturer, specials, home carousels, related products),
 * the product grid, the category page (title + image band, sidebar accordion #19, filter #36, toolbar, pagination),
 * the search and manufacturer pages. Pattern: Leo Shopio Auto card (square image, pill labels top left, round
 * wishlist / compare / quickview buttons top right on hover, name on 2 lines, full-width cart button), shop colours
 * and fonts from cr_design_tokens.css.
 * Red text and red backgrounds with white text use --cr-accent-hover (#df1f2c, 4.8:1 on white, AA); --cr-accent
 * (#f8303d, 3.8:1) only on large or non-text marks.
 * Specificity: Journal writes the grid style as ".main-products.product-grid .product-thumb ..." (4 classes) and the
 * customCSS adds more; ":not(#cr)" below adds id weight so these rules win without !important.
 * !important only against inline styles (the customJS "current category" script) or Journal's own !important.
 * Items per row, square image, second image, labels and filter texts: sql-manual/2026-10-26_33_design_listing.sql.
 */

/* ============================================================================================
 * 1. Product card (grid view, every product grid on the site)
 * ============================================================================================ */
html body .product-grid .product-layout:not(#cr) {
  display: flex;
}

html body .product-grid .product-layout:not(#cr) .product-thumb {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--cr-bg);
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius);
  transition: box-shadow var(--cr-normal) var(--cr-ease), border-color var(--cr-normal) var(--cr-ease);
}

html.no-touchevents body .product-grid .product-layout:not(#cr) .product-thumb:hover,
html body .product-grid .product-layout:not(#cr) .product-thumb:focus-within {
  border-color: transparent;
  box-shadow: var(--cr-shadow);
}

/* image: square, the whole product on white */
html body .product-grid .product-layout:not(#cr) .image-group,
html body .product-grid .product-layout:not(#cr) .image {
  position: relative;
  width: 100%;
  background: var(--cr-bg);
}

html body .product-grid .product-layout:not(#cr) .product-img {
  display: block;
  overflow: hidden;
}

html body .product-grid .product-layout:not(#cr) .product-img img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

/* labels: pills, top left, stacked */
html body .product-grid .product-layout:not(#cr) .product-labels {
  position: absolute;
  top: 10px;
  right: auto;
  bottom: auto;
  left: 10px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  max-width: calc(100% - 64px);
  pointer-events: none;
}

html body .product-grid .product-layout:not(#cr) .product-labels .product-label {
  position: static;
  display: flex;
  justify-content: flex-start;
  margin: 0 !important; /* Journal: margin-top / margin-right ... !important per label module */
  transform: none;
}

html body .product-grid .product-layout:not(#cr) .product-labels .product-label strong {
  display: inline-block;
  max-width: 100%;
  margin: 0;
  padding: 4px 10px;
  overflow: hidden;
  border-radius: var(--cr-radius-pill);
  background: var(--cr-dark);
  color: #fff;
  font-family: var(--cr-font-body);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-overflow: ellipsis;
  white-space: nowrap;
  transform: none;
}

html body .product-grid .product-layout:not(#cr) .product-labels .product-label strong::before,
html body .product-grid .product-layout:not(#cr) .product-labels .product-label strong em {
  display: none;
}

/* discount (-X%, module 233): the accent */
html body .product-grid .product-layout:not(#cr) .product-labels .product-label-233 strong {
  background: var(--cr-accent-hover) !important; /* label modules write their background with !important */
}

/* new (29): graphite; out of stock / stock status (30): muted grey */
html body .product-grid .product-layout:not(#cr) .product-labels .product-label-29 strong {
  background: var(--cr-dark) !important;
}

html body .product-grid .product-layout:not(#cr) .product-labels .product-label-30 strong {
  background: var(--cr-text-muted) !important;
}

/* countdown on specials: under the image, not over the labels */
html body .product-grid .product-layout:not(#cr) .image .countdown {
  right: 10px;
  bottom: 10px;
  left: 10px;
}

/* round icon buttons, top right: wishlist + compare (from the caption) and quickview (from the image) */
html body .product-grid .product-layout:not(#cr) .wish-group {
  position: absolute;
  top: 10px;
  right: 10px;
  left: auto;
  z-index: 3;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 6px;
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  transform: none;
  transition: opacity var(--cr-fast) ease-out, transform var(--cr-normal) var(--cr-ease);
}

html body .product-grid .product-layout:not(#cr) .quickview-button {
  position: absolute;
  top: 102px; /* 10 + 2 x (40 + 6) */
  right: 10px;
  bottom: auto;
  left: auto;
  z-index: 3;
  margin: 0;
  transform: none;
  transition: opacity var(--cr-fast) ease-out, transform var(--cr-normal) var(--cr-ease);
}

html body .product-grid .product-layout:not(#cr) .wish-group .btn,
html body .product-grid .product-layout:not(#cr) .quickview-button .btn {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--cr-line);
  border-radius: 50%;
  background: var(--cr-bg);
  box-shadow: 1px 1px 1px rgba(0, 0, 0, .1);
  color: var(--cr-dark) !important; /* Journal button styles set the text colour with !important (white) */
  transition: background-color var(--cr-fast) ease-out, color var(--cr-fast) ease-out, border-color var(--cr-fast) ease-out;
}

html body .product-grid .product-layout:not(#cr) .wish-group .btn::before,
html body .product-grid .product-layout:not(#cr) .quickview-button .btn::before {
  color: inherit;
  font-size: 17px;
}

html body .product-grid .product-layout:not(#cr) .wish-group .btn .btn-text,
html body .product-grid .product-layout:not(#cr) .quickview-button .btn .btn-text {
  display: none;
}

html body .product-grid .product-layout:not(#cr) .wish-group .btn:hover,
html body .product-grid .product-layout:not(#cr) .wish-group .btn:focus-visible,
html body .product-grid .product-layout:not(#cr) .quickview-button .btn:hover,
html body .product-grid .product-layout:not(#cr) .quickview-button .btn:focus-visible {
  border-color: var(--cr-dark);
  background: var(--cr-dark);
  color: #fff !important;
}

/* desktop: the round buttons come in on hover / keyboard focus; touch: always there */
html.no-touchevents body .product-grid .product-layout:not(#cr) .wish-group,
html.no-touchevents body .product-grid .product-layout:not(#cr) .quickview-button {
  opacity: 0;
  transform: translate3d(8px, 0, 0);
}

html.no-touchevents body .product-grid .product-layout:not(#cr) .product-thumb:hover .wish-group,
html.no-touchevents body .product-grid .product-layout:not(#cr) .product-thumb:hover .quickview-button,
html.no-touchevents body .product-grid .product-layout:not(#cr) .product-thumb:focus-within .wish-group,
html.no-touchevents body .product-grid .product-layout:not(#cr) .product-thumb:focus-within .quickview-button {
  opacity: 1;
  transform: none;
}

html.touchevents body .product-grid .product-layout:not(#cr) .quickview-button {
  display: none;
}

html.touchevents body .product-grid .product-layout:not(#cr) .wish-group .btn {
  width: 44px;
  height: 44px;
}

/* caption: brand, name on 2 lines, price, full-width cart button at the bottom */
html body .product-grid .product-layout:not(#cr) .caption {
  position: static; /* the round buttons are placed against .product-thumb */
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: stretch;
  padding: 12px 16px 16px;
  background: none;
  border: 0;
}

html body .product-grid .product-layout:not(#cr) .stats {
  order: 0;
  margin: 0 0 4px;
  padding: 0;
  border: 0;
  background: none;
}

html body .product-grid .product-layout:not(#cr) .stats .stats-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 2px 10px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

html body .product-grid .product-layout:not(#cr) .stats span,
html body .product-grid .product-layout:not(#cr) .stats a {
  padding: 0;
  border: 0;
  background: none;
  color: var(--cr-text-muted);
  font-family: var(--cr-font-body);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}

html body .product-grid .product-layout:not(#cr) .stats .stat-1 a {
  color: var(--cr-blue);
}

html body .product-grid .product-layout:not(#cr) .stats .stat-1 a:hover {
  color: var(--cr-link);
  text-decoration: underline;
}

html body .product-grid .product-layout:not(#cr) .name {
  order: 1;
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
}

html body .product-grid .product-layout:not(#cr) .name a {
  display: -webkit-box;
  min-height: 40px;
  overflow: hidden;
  color: var(--cr-text);
  font-family: var(--cr-font-body);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: .01em;
  text-transform: none;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

html body .product-grid .product-layout:not(#cr) .name a:hover {
  color: var(--cr-link);
  text-decoration: underline;
}

html body .product-grid .product-layout:not(#cr) .description {
  display: none;
}

html body .product-grid .product-layout:not(#cr) .price {
  order: 2;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
}

html body .product-grid .product-layout:not(#cr) .price > div {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 2px 10px;
}

html body .product-grid .product-layout:not(#cr) .price-normal,
html body .product-grid .product-layout:not(#cr) .price-new {
  order: 1;
  margin: 0;
  color: var(--cr-dark-deep);
  font-family: var(--cr-font-body);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

html body .product-grid .product-layout:not(#cr) .price-new {
  color: var(--cr-accent-hover);
}

html body .product-grid .product-layout:not(#cr) .price-old {
  order: 3;
  margin: 0;
  color: var(--cr-text-muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-decoration: line-through;
  opacity: 1;
}

html body .product-grid .product-layout:not(#cr) .price-tax {
  display: none;
}

/* informative price in lei, if p17 adds it to the card (class names of cr_catalog.css) */
html body .product-grid .product-layout:not(#cr) .cr-lei-price {
  display: block;
  margin: 4px 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--cr-text-muted);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}

html body .product-grid .product-layout:not(#cr) .rating.no-rating {
  display: none;
}

html body .product-grid .product-layout:not(#cr) .rating {
  position: static;
  order: 1;
  margin: -4px 0 8px;
  padding: 0;
  background: none;
  transform: none;
}

/* the cart button: full width, graphite, red on card hover */
html body .product-grid .product-layout:not(#cr) .buttons-wrapper {
  position: static;
  order: 3;
  width: 100%;
  margin-top: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  background: none;
  transform: none;
}

html body .product-grid .product-layout:not(#cr) .button-group {
  position: static;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  opacity: 1;
  visibility: visible;
  transform: none;
}

html body .product-grid .product-layout:not(#cr) .cart-group {
  display: flex;
  width: 100%;
  margin: 0;
}

html body .product-grid .product-layout:not(#cr) .cart-group .stepper {
  display: none;
}

html body .product-grid .product-layout:not(#cr) .btn-cart {
  display: inline-flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--cr-radius-sm);
  background: var(--cr-dark);
  box-shadow: none;
  color: #fff !important; /* Journal button style: colour !important */
  font-family: var(--cr-font-display);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .05em;
  text-transform: uppercase;
  transition: background-color var(--cr-fast) ease-out;
}

html body .product-grid .product-layout:not(#cr) .btn-cart::before {
  margin: 0;
  color: inherit;
  font-size: 17px;
}

html body .product-grid .product-layout:not(#cr) .btn-cart .btn-text {
  display: inline;
  overflow: hidden;
  color: inherit;
  font: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

html.no-touchevents body .product-grid .product-layout:not(#cr) .product-thumb:hover .btn-cart,
html body .product-grid .product-layout:not(#cr) .btn-cart:hover,
html body .product-grid .product-layout:not(#cr) .btn-cart:focus-visible {
  background: var(--cr-accent-hover);
  color: #fff;
}

html body .product-grid .product-layout:not(#cr) .extra-group {
  order: 4;
  margin: 8px 0 0;
}

/* keyboard focus: always visible on every control of the card */
html body .product-layout:not(#cr) .product-thumb a:focus-visible,
html body .product-layout:not(#cr) .product-thumb .btn:focus-visible {
  outline: 2px solid var(--cr-blue);
  outline-offset: 2px;
}

/* out of stock: the image a little muted, the card stays clickable */
html body .product-grid .product-layout.out-of-stock:not(#cr) .product-img img {
  opacity: .72;
}

/* phones: 2 per row, tighter card */
@media (max-width: 575px) {
  html body .product-grid .product-layout:not(#cr) .caption {
    padding: 10px 10px 12px;
  }

  html body .product-grid .product-layout:not(#cr) .name a {
    min-height: 36px;
    font-size: 13px;
    line-height: 18px;
  }

  html body .product-grid .product-layout:not(#cr) .price-normal,
  html body .product-grid .product-layout:not(#cr) .price-new {
    font-size: 16px;
  }

  html body .product-grid .product-layout:not(#cr) .price-old {
    font-size: 13px;
  }

  html body .product-grid .product-layout:not(#cr) .btn-cart {
    gap: 6px;
    padding: 8px 6px;
    font-size: 12px;
    letter-spacing: .03em;
  }

  html body .product-grid .product-layout:not(#cr) .btn-cart::before {
    display: none; /* 2 columns: the text needs the whole width */
  }

  html body .product-grid .product-layout:not(#cr) .product-labels {
    top: 8px;
    left: 8px;
    max-width: calc(100% - 64px);
  }

  html body .product-grid .product-layout:not(#cr) .product-labels .product-label strong {
    padding: 3px 8px;
  }

  html body .product-grid .product-layout:not(#cr) .wish-group {
    top: 6px;
    right: 6px;
    gap: 4px;
  }
}

/* ============================================================================================
 * 2. Listing pages: category, search, manufacturer, specials
 * ============================================================================================ */
html.route-product-category #content > h1.page-title,
html.route-product-search #content > h1.page-title,
html.route-product-manufacturer-info #content > h1.page-title,
html.route-product-special #content > h1.page-title {
  margin: 0 0 18px;
  padding: 0;
  color: var(--cr-dark-deep);
  font-family: var(--cr-font-display);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .01em;
  text-transform: uppercase;
}

html.route-product-category #content > h1.page-title::after,
html.route-product-search #content > h1.page-title::after,
html.route-product-manufacturer-info #content > h1.page-title::after,
html.route-product-special #content > h1.page-title::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  margin-top: 12px;
  border: 0;
  background: var(--cr-accent);
}

/* category image: a calm band under the title, not a 1140x300 box with white sides */
html.route-product-category #content > .category-description {
  margin: 0 0 24px;
  padding: 0;
  border: 0;
  background: none;
}

html.route-product-category #content > .category-description > .category-image {
  display: block;
  width: 100%;
  height: 180px;
  margin: 0 0 16px;
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius);
  background: var(--cr-bg);
  object-fit: contain;
}

html.route-product-category #content > .category-description > .category-image:last-child {
  margin-bottom: 0;
}

/* subcategory tiles (refine search), when shown */
html.route-product-category #content .refine-categories .refine-item > a,
html.route-product-category #content .refine-categories .refine-links a {
  border-radius: var(--cr-radius);
}

/* toolbar: grid/list, compare, sort, per page */
html body .main-products-wrapper .products-filter:not(#cr) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
  margin: 0 0 20px;
  padding: 10px 0;
  border: 0;
  border-top: 1px solid var(--cr-line);
  border-bottom: 1px solid var(--cr-line);
  background: none;
}

html body .main-products-wrapper .products-filter:not(#cr) .grid-list {
  display: flex;
  align-items: center;
  gap: 4px;
}

html body .main-products-wrapper .products-filter:not(#cr) .view-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--cr-radius-sm);
  background: none;
  color: var(--cr-text-muted);
}

html body .main-products-wrapper .products-filter:not(#cr) .view-btn::before {
  color: inherit;
}

html body .main-products-wrapper .products-filter:not(#cr) .view-btn.active {
  border-color: var(--cr-line);
  background: var(--cr-bg);
  color: var(--cr-accent-hover);
}

html body .main-products-wrapper .products-filter:not(#cr) .view-btn:hover {
  color: var(--cr-dark);
}

html body .main-products-wrapper .products-filter:not(#cr) .compare-btn {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  margin-left: 8px;
  color: var(--cr-link);
  font-size: 14px;
}

html body .main-products-wrapper .products-filter:not(#cr) .compare-btn::before {
  color: inherit;
}

html body .main-products-wrapper .products-filter:not(#cr) .compare-btn:hover .links-text {
  text-decoration: underline;
}

html body .main-products-wrapper .products-filter:not(#cr) .select-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin: 0;
}

html body .main-products-wrapper .products-filter:not(#cr) .input-group {
  display: flex;
  align-items: center;
  gap: 8px;
  width: auto;
  margin: 0;
}

html body .main-products-wrapper .products-filter:not(#cr) .input-group-addon {
  width: auto;
  padding: 0;
  border: 0;
  background: none;
  color: var(--cr-text-muted);
  font-size: 13px;
  white-space: nowrap;
}

html body .main-products-wrapper .products-filter:not(#cr) select.form-control {
  width: auto;
  min-width: 72px;
  height: 40px;
  padding: 0 32px 0 12px;
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius-sm);
  background-color: var(--cr-bg);
  color: var(--cr-text);
  font-size: 14px;
}

html body .main-products-wrapper .products-filter:not(#cr) .sort-by select.form-control {
  min-width: 190px;
}

html body .main-products-wrapper .products-filter:not(#cr) select.form-control:focus-visible {
  outline: 2px solid var(--cr-blue);
  outline-offset: 1px;
}

/* pagination: centred numbers, current page in the accent */
html body .main-products-wrapper .pagination-results:not(#cr) {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 30px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--cr-line);
}

html body .main-products-wrapper .pagination-results:not(#cr) > div {
  width: auto;
  float: none;
  padding: 0;
  color: var(--cr-text-muted);
  font-size: 13px;
  text-align: center;
}

html body .main-products-wrapper .pagination-results:not(#cr) .pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

html body .main-products-wrapper .pagination-results:not(#cr) .pagination > li > a,
html body .main-products-wrapper .pagination-results:not(#cr) .pagination > li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius-sm);
  background: var(--cr-bg);
  color: var(--cr-text);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
}

html body .main-products-wrapper .pagination-results:not(#cr) .pagination > li > a:hover,
html body .main-products-wrapper .pagination-results:not(#cr) .pagination > li > a:focus-visible {
  border-color: var(--cr-dark);
  background: var(--cr-dark);
  color: #fff;
}

html body .main-products-wrapper .pagination-results:not(#cr) .pagination > li.active > span {
  border-color: var(--cr-accent-hover);
  background: var(--cr-accent-hover);
  color: #fff;
}

/* search page: the criteria form as a light panel */
html.route-product-search #content > .search-form,
html.route-product-search #content > form,
html.route-product-search #content > .row:first-of-type {
  margin-bottom: 20px;
}

html.route-product-search #content .search-form .form-control,
html.route-product-search #content #input-search {
  min-height: 44px;
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius-sm);
}

html.route-product-search #content #button-search {
  min-height: 44px;
  padding: 0 24px;
  border: 0;
  border-radius: var(--cr-radius-sm);
  background: var(--cr-dark);
  color: #fff;
  font-family: var(--cr-font-display);
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

html.route-product-search #content #button-search:hover,
html.route-product-search #content #button-search:focus-visible {
  background: var(--cr-accent-hover);
}

/* ============================================================================================
 * 3. Category sidebar: accordion menu #19 as a white card (was a dark blue panel)
 * ============================================================================================ */
html body aside div.accordion-menu-19.accordion-menu:not(#cr) > .j-menu {
  padding: 6px 0;
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius-sm);
  background: var(--cr-bg);
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) > .j-menu > .menu-item + .menu-item {
  border-top: 1px solid var(--cr-line);
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item > a,
html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item > a > .links-text {
  color: var(--cr-text);
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) > .j-menu > .menu-item > a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 6px 8px 16px;
  font-family: var(--cr-font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) > .j-menu > .menu-item > a > .links-text {
  flex: 1 1 auto;
  padding-left: 0 !important; /* customCSS: .j-menu li.menu-item > a .links-text { padding-left: 10px !important } */
  font: inherit;
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .j-menu .j-menu .menu-item > a {
  display: flex;
  align-items: center;
  min-height: 36px;
  padding: 6px 12px 6px 0;
  font-family: var(--cr-font-body);
  font-size: 14px;
  font-weight: 400;
  text-transform: none;
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .j-menu .j-menu .menu-item > a > .links-text {
  padding-left: 0 !important; /* same customCSS rule */
  font: inherit;
  text-shadow: none !important; /* Journal: text-shadow ... !important on the open sub item */
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .j-menu .j-menu {
  padding: 2px 0 8px;
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item > a:hover,
html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item > a:hover > .links-text {
  color: var(--cr-link);
  text-decoration: none !important;
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item.open > a > .links-text,
html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item.active > a > .links-text,
html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item.panel-active > a > .links-text,
html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item.open > a {
  text-decoration: none !important; /* Journal: underline !important on the open item */
}

html body aside div.accordion-menu-19:not(#cr) .open-menu em::before,
html body aside div.accordion-menu-19:not(#cr) .open-menu[aria-expanded=true] em::before {
  color: var(--cr-text-muted);
}

html body aside div.accordion-menu-19:not(#cr) .open-menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
}

/* current category: the Journal customJS writes inline styles (white pill, 18px) on the link of the current path;
   they become a quiet marker: accent text and an accent bar on the left */
html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item > a[style],
html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item > a[style] > .links-text {
  border-radius: 0 !important;
  background-color: transparent !important;
  color: var(--cr-accent-hover) !important;
  font-size: inherit !important;
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .menu-item > a[style] {
  box-shadow: inset 3px 0 0 var(--cr-accent);
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) > .j-menu > .menu-item > a[style] {
  font-size: 15px !important;
}

html body aside div.accordion-menu-19.accordion-menu:not(#cr) .j-menu .j-menu .menu-item > a[style] {
  padding-left: 12px !important;
  font-size: 14px !important;
  font-weight: 600;
}

/* ============================================================================================
 * 4. Filter #36 (sidebar on desktop, off-canvas on phones)
 * ============================================================================================ */
html body aside .module-filter:not(#cr) {
  margin-top: 24px;
  padding: 16px;
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius-sm);
  background: var(--cr-bg);
}

html body .module-filter:not(#cr) .module-title,
html body .module-filter:not(#cr) > h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 8px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--cr-line);
  color: var(--cr-dark-deep);
  font-family: var(--cr-font-display);
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
}

html body .module-filter:not(#cr) .module-title::before,
html body .module-filter:not(#cr) .module-title::after {
  display: none;
}

html body .module-filter:not(#cr) .reset-filter.btn {
  min-height: 32px;
  padding: 4px 10px;
  border-radius: var(--cr-radius-sm);
}

html body .module-filter:not(#cr) .panel {
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--cr-line);
  background: none;
  box-shadow: none;
}

html body .module-filter:not(#cr) .panel:last-child {
  border-bottom: 0;
}

html body .module-filter:not(#cr) .panel-heading,
html body .module-filter:not(#cr) .panel-title {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
}

html body .module-filter:not(#cr) .panel-title > a {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 8px 0;
  color: var(--cr-text);
  font-family: var(--cr-font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}

html body .module-filter:not(#cr) .panel-title > a > em,
html body .module-filter:not(#cr) .panel-title > a::before,
html body .module-filter:not(#cr) .panel-title > a::after {
  order: 2;
  margin: 0;
  color: var(--cr-text-muted);
}

html body .module-filter:not(#cr) .panel-body {
  padding: 4px 0 14px;
  border: 0;
}

html body .module-filter:not(#cr) .filter-checkbox label,
html body .module-filter:not(#cr) .filter-radio label,
html body .module-filter:not(#cr) .panel-body label {
  min-height: 36px;
  color: var(--cr-text);
  font-size: 14px;
}

html body .module-filter:not(#cr) .panel-body label .count-badge {
  color: var(--cr-text-muted);
  font-size: 12px;
}

html body .module-filter:not(#cr) .panel-body label img {
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius-sm);
  background: var(--cr-bg);
}

/* price slider (ion.rangeSlider): grey line, blue range, round handles (was the orange "Fire") */
html body .module-filter:not(#cr) .irs-line {
  background: var(--cr-line);
}

html body .module-filter:not(#cr) .irs-bar {
  background: var(--cr-blue);
}

html body .module-filter:not(#cr) .irs-handle,
html body .module-filter:not(#cr) .irs-slider {
  border: 2px solid var(--cr-blue);
  border-radius: 50%;
  background: var(--cr-bg);
  box-shadow: none;
}

html body .module-filter:not(#cr) .irs-handle > i {
  display: none;
}

html body .module-filter:not(#cr) .extra-controls input[type="text"] {
  min-height: 40px;
  border: 1px solid var(--cr-line);
  border-radius: var(--cr-radius-sm);
  background: var(--cr-bg);
  color: var(--cr-text);
  font-size: 14px;
}

/* phones: the "filter products" button (module setting) */
html body .mobile-filter-trigger:not(#cr),
html body .filter-trigger:not(#cr) {
  min-height: 44px;
  border-radius: var(--cr-radius-sm);
}

/* ============================================================================================
 * 5. Phones and tablets
 * ============================================================================================ */
@media (max-width: 980px) {
  html.route-product-category #content > .category-description > .category-image {
    height: 140px;
  }
}

@media (max-width: 575px) {
  html.route-product-category #content > h1.page-title,
  html.route-product-search #content > h1.page-title,
  html.route-product-manufacturer-info #content > h1.page-title,
  html.route-product-special #content > h1.page-title {
    font-size: 24px;
  }

  html.route-product-category #content > .category-description > .category-image {
    height: 110px;
  }

  html body .main-products-wrapper .products-filter:not(#cr) .grid-list .view-btn {
    width: 44px;
    height: 44px;
  }

  html body .main-products-wrapper .products-filter:not(#cr) .compare-btn {
    display: none;
  }

  html body .main-products-wrapper .products-filter:not(#cr) .select-group {
    flex: 1 1 auto;
    justify-content: flex-end;
  }

  html body .main-products-wrapper .products-filter:not(#cr) .input-group-addon {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  html body .main-products-wrapper .products-filter:not(#cr) select.form-control {
    height: 44px;
  }

  html body .main-products-wrapper .products-filter:not(#cr) .sort-by select.form-control {
    min-width: 0;
    max-width: 170px;
  }

  html body .main-products-wrapper .pagination-results:not(#cr) .pagination > li > a,
  html body .main-products-wrapper .pagination-results:not(#cr) .pagination > li > span {
    min-width: 44px;
    height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .product-grid .product-layout:not(#cr) .product-thumb,
  html body .product-grid .product-layout:not(#cr) .wish-group,
  html body .product-grid .product-layout:not(#cr) .quickview-button,
  html body .product-grid .product-layout:not(#cr) .btn-cart {
    transition: none;
  }
}
