/**
 * Merker card slider + category product group sliders (Figma-aligned).
 */

/* -------------------------------------------------------------------------
 * Merker brand cards
 * ---------------------------------------------------------------------- */

.hcp-merker-slider {
  position: relative;
  width: 100%;
  background: transparent;
  /*
   * Own the Merker → next-section gap HERE (40px white space under the cards).
   * Do not rely on Elementor sibling :has() padding — e-con-boxed applies
   * padding on .e-con-inner, and earlier rules zeroed that by mistake.
   */
  padding: 0.25rem 0 0;
  margin: 0 0 40px;
  box-sizing: border-box;
}

.hcp-merker-slider__viewport {
  overflow: hidden;
  width: 100%;
}

.hcp-merker-slider__track {
  display: flex;
  gap: 1rem;
  transition: transform 0.35s ease;
  will-change: transform;
}

.hcp-merker-card {
  flex: 0 0 calc((100% - 3rem) / 4);
  max-width: calc((100% - 3rem) / 4);
  min-width: 0;
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: inherit;
  border-radius: 8px; /* same as .custom-product-card */
  overflow: hidden;
  background: #fff;
  border: 1px solid #41413F;
  box-sizing: border-box;
}

.hcp-merker-card:hover,
.hcp-merker-card:focus {
  text-decoration: none !important;
  color: inherit;
}

.hcp-merker-card__media {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  background: #fff;
  overflow: hidden;
}

.hcp-merker-card__media img {
  display: block;
  width: auto;
  height: auto;
  max-width: 70%;
  max-height: 62%;
  object-fit: contain;
  margin: auto;
  padding: 0;
  box-sizing: border-box;
  background: transparent;
}

.hcp-merker-card__media.is-empty {
  min-height: 10rem;
  background:
    linear-gradient(45deg, #ececec 25%, transparent 25%),
    linear-gradient(-45deg, #ececec 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #ececec 75%),
    linear-gradient(-45deg, transparent 75%, #ececec 75%);
  background-size: 16px 16px;
  background-position: 0 0, 0 8px, 8px -8px, -8px 0;
  background-color: #f5f5f5;
}

.hcp-merker-card__footer {
  display: flex;
  align-items: center;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  background: #a81d32;
  box-sizing: border-box;
}

.hcp-merker-card__name {
  font-family: "Montserrat", sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.25;
  color: #fafafa;
}

/* Beat Elementor kit button styles — Figma: white square + dark arrow */
.hcp-merker-slider button.hcp-merker-slider__prev,
.hcp-merker-slider button.hcp-merker-slider__next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 2.5rem !important;
  height: 2.5rem !important;
  min-width: 2.5rem !important;
  min-height: 2.5rem !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #1d1d1b !important;
  border-radius: 2px !important;
  background: #fafafa !important;
  color: #1d1d1b !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-sizing: border-box;
  line-height: 1 !important;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.18);
}

.hcp-merker-slider button.hcp-merker-slider__prev {
  left: 0.35rem;
}

.hcp-merker-slider button.hcp-merker-slider__next {
  right: 0.35rem;
}

.hcp-merker-slider button.hcp-merker-slider__prev svg,
.hcp-merker-slider button.hcp-merker-slider__next svg {
  width: 1rem !important;
  height: 1rem !important;
  min-width: 1rem;
  min-height: 1rem;
  display: block;
  fill: currentColor !important;
  stroke: none !important;
  color: #1d1d1b !important;
}

.hcp-merker-slider button.hcp-merker-slider__prev svg {
  transform: scaleX(-1);
}

.hcp-merker-slider button.hcp-merker-slider__prev:disabled,
.hcp-merker-slider button.hcp-merker-slider__next:disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

.hcp-merker-slider button.hcp-merker-slider__prev.is-hidden,
.hcp-merker-slider button.hcp-merker-slider__next.is-hidden {
  display: none !important;
}

/* -------------------------------------------------------------------------
 * Product group sliders (Bruksområder / Traktorer / …)
 * Titles: 24px (same as “Aktuelt akkurat nå”).
 * Aktuelt → first subcategory uses the SAME 3rem as between subcategories.
 * ---------------------------------------------------------------------- */

:root {
  --hcp-cat-section-gap: 3rem;
}

/*
 * Elementor containers around Aktuelt / group sliders use --padding-* vars.
 * Beat template-specific rules so the handoff isn’t 3rem+3rem.
 */
.elementor-element.e-con:has(.category-latest-products),
.elementor-element.e-con:has(.category-latest-products) > .e-con-inner {
  --padding-bottom: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.elementor-element.e-con:has(.hcp-category-group-sliders),
.elementor-element.e-con:has(.hcp-category-group-sliders) > .e-con-inner {
  --padding-top: 0 !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Remove leftover space under Aktuelt product row (was +1.5rem per li). */
.category-latest-products,
.category-latest-products ul.products,
.category-latest-products .kampanjer-slider-track {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.category-latest-products .kampanjer-slider-track > li.product {
  margin-bottom: 0 !important;
}

/* Aktuelt: same kampanjer slider shell as L2 (JS sets 1-up on mobile; arrows overlay). */
.category-latest-products.kampanjer-list .kampanjer-item-products--slider {
  width: 100%;
  position: relative;
}

.category-latest-products.kampanjer-list .kampanjer-slider-viewport {
  overflow: hidden;
  width: 100%;
}

.category-latest-products.kampanjer-list ul.products.kampanjer-slider-track {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 1rem;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: auto !important;
}

.category-latest-products.kampanjer-list ul.products.kampanjer-slider-track::before,
.category-latest-products.kampanjer-list ul.products.kampanjer-slider-track::after {
  display: none !important;
  content: none !important;
}

.woocommerce .category-latest-products.kampanjer-list ul.products li.product,
.category-latest-products.kampanjer-list .kampanjer-slider-track > li.product {
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
  position: relative;
}

.category-latest-products.kampanjer-list .custom-product-card {
  width: 100%;
  box-sizing: border-box;
}

.elementor-element:has(.category-latest-products),
.elementor-element:has(.category-latest-products) > .elementor-widget-container,
.elementor-element:has(.hcp-category-group-sliders),
.elementor-element:has(.hcp-category-group-sliders) > .elementor-widget-container {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.hcp-category-group-sliders {
  display: flex;
  flex-direction: column;
  gap: var(--hcp-cat-section-gap);
  width: 100%;
  /* Equal to gap between Bruksområder / Traktorer / … */
  margin: var(--hcp-cat-section-gap) 0 var(--hcp-cat-section-gap);
}

.hcp-category-group-section {
  margin: 0;
  padding: 0;
}

.hcp-category-group-title {
  margin: 0 0 0.75rem;
  padding: 0;
  font-family: var(--e-global-typography-cba6195-font-family, "Montserrat"), sans-serif;
  font-size: 24px !important;
  font-weight: var(--e-global-typography-cba6195-font-weight, 600);
  line-height: var(--e-global-typography-cba6195-line-height, 1.3);
  color: var(--e-global-color-secondary, #1d1d1b);
}

.hcp-category-group-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s ease;
}

.hcp-category-group-title a:hover,
.hcp-category-group-title a:focus-visible {
  color: #5c5c59;
  text-decoration: none;
}

/*
 * Merker block in Elementor (e33aed4 / 6490425) ships with --padding-bottom: 3rem.
 * Clear that so the only Merker→FAQ gap is the 40px margin on .hcp-merker-slider.
 */
.elementor-element.e-con:has(.hcp-merker-slider),
.elementor-element.e-con:has(.hcp-merker-slider) > .e-con-inner,
.elementor-element.e-con:has(.hcp-merker-slider) .elementor-element.e-con,
.elementor-element.e-con:has(.hcp-merker-slider) .elementor-element.e-con > .e-con-inner {
  --padding-bottom: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* Keep the slider's own 40px margin (more specific than the zeroing above). */
.elementor-element.e-con:has(.hcp-merker-slider) .hcp-merker-slider {
  margin-bottom: 40px !important;
}

/*
 * FAQ section (246156f → dba3dc3) has Elementor --padding-top: 3rem ABOVE the grey
 * box. That stacked with the slider margin (= 88px). Zero only that first FAQ
 * child padding so card → grey box white gap is exactly 40px.
 */
.elementor-element.e-con:has(.hcp-merker-slider) + .elementor-element.e-con > .e-con-inner > .elementor-element.e-con {
  --padding-top: 0 !important;
  padding-top: 0 !important;
}

/* Merker Elementor heading (sibling before merker slider) */
.elementor-element:has(+ .elementor-element .hcp-merker-slider) .elementor-heading-title,
.elementor-element-a088bf7 .elementor-heading-title {
  font-family: var(--e-global-typography-cba6195-font-family, "Montserrat"), sans-serif;
  font-size: 24px !important;
  font-weight: var(--e-global-typography-cba6195-font-weight, 600);
  line-height: var(--e-global-typography-cba6195-line-height, 1.3);
}

.hcp-category-group-slider-wrap {
  width: 100%;
}

.hcp-category-group-slider-wrap .kampanjer-item-products--slider {
  width: 100%;
  position: relative;
}

.hcp-category-group-slider-wrap .kampanjer-slider-viewport {
  overflow: hidden;
  width: 100%;
}

.hcp-category-group-slider-wrap ul.products.kampanjer-slider-track,
.hcp-category-group-slider-wrap .kampanjer-slider-track {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 1rem;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  width: auto !important;
  transition: transform 0.35s ease;
  will-change: transform;
}

.hcp-category-group-slider-wrap ul.products.kampanjer-slider-track::before,
.hcp-category-group-slider-wrap ul.products.kampanjer-slider-track::after {
  display: none !important;
  content: none !important;
}

.woocommerce .hcp-category-group-slider-wrap ul.products li.product,
.hcp-category-group-slider-wrap ul.products li.product,
.hcp-category-group-slider-wrap .kampanjer-slider-track > li.product {
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 calc((100% - 3rem) / 4) !important;
  width: calc((100% - 3rem) / 4) !important;
  max-width: calc((100% - 3rem) / 4) !important;
  min-width: 0 !important;
  position: relative;
}

.hcp-category-group-slider-wrap .custom-product-card {
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 1024px) {
  .hcp-merker-card,
  .woocommerce .hcp-category-group-slider-wrap ul.products li.product,
  .hcp-category-group-slider-wrap ul.products li.product {
    flex-basis: calc((100% - 2rem) / 3) !important;
    max-width: calc((100% - 2rem) / 3) !important;
    width: calc((100% - 2rem) / 3) !important;
  }
}

@media (max-width: 782px) {
  .hcp-merker-card {
    flex-basis: calc((100% - 2rem) / 3) !important;
    max-width: calc((100% - 2rem) / 3) !important;
    width: calc((100% - 2rem) / 3) !important;
  }
  .woocommerce .hcp-category-group-slider-wrap ul.products li.product,
  .hcp-category-group-slider-wrap ul.products li.product {
    flex-basis: calc((100% - 1rem) / 2) !important;
    max-width: calc((100% - 1rem) / 2) !important;
    width: calc((100% - 1rem) / 2) !important;
  }

  .hcp-category-group-title {
    font-size: 24px !important;
  }
}

@media (max-width: 480px) {
  /* Merker: 3 across; category product sliders: 2 across */
  .hcp-merker-card {
    flex-basis: calc((100% - 2rem) / 3) !important;
    max-width: calc((100% - 2rem) / 3) !important;
    width: calc((100% - 2rem) / 3) !important;
  }
  .woocommerce .hcp-category-group-slider-wrap ul.products li.product,
  .hcp-category-group-slider-wrap ul.products li.product {
    flex-basis: calc((100% - 1rem) / 2) !important;
    max-width: calc((100% - 1rem) / 2) !important;
    width: calc((100% - 1rem) / 2) !important;
  }
}
