/**
 * Blossom: horizontal scroll "carousel" for Elementor Container (flex/grid)
 * and classic Section (columns) — opt-in per element (Layout → Blossom).
 *
 * Grid containers: Elementor keeps `display:grid` + grid-template-* on `.e-con-inner`
 * and often sets `grid-column` on children — we reset those for the carousel track.
 *
 * Touch: `touch-action: pan-x pan-y` lets phones scroll the page vertically while still
 * allowing horizontal pan on the carousel strip (avoid `pan-x` alone blocking pion).
 *
 * CSS variables on the wrapper (inline from PHP): --bmrc-gap, --bmrc-item-width, --bmrc-snap-type
 */

/* ----- shared ----- */
.elementor-element.blossom-mobile-row-carousel.e-con > .e-con-inner {
  -webkit-overflow-scrolling: touch;
}

.elementor-section.elementor-element.blossom-mobile-row-carousel > .elementor-container {
  -webkit-overflow-scrolling: touch;
}

/* Allow inner track to extend horizontally (some themes / Elementor clip parents) */
@media (max-width: 767px) {
  .elementor-element.blossom-mobile-row-carousel.e-con:not(.blossom-mobile-row-carousel--bp1024) {
    overflow-x: visible !important;
    min-width: 0;
  }
}

@media (max-width: 1024px) {
  .elementor-element.blossom-mobile-row-carousel.e-con.blossom-mobile-row-carousel--bp1024 {
    overflow-x: visible !important;
    min-width: 0;
  }
}

body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.e-con:not(.blossom-mobile-row-carousel--bp1024) {
  overflow-x: visible !important;
  min-width: 0;
}

body.elementor-device-tablet .elementor-element.blossom-mobile-row-carousel.e-con.blossom-mobile-row-carousel--bp1024,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.e-con.blossom-mobile-row-carousel--bp1024 {
  overflow-x: visible !important;
  min-width: 0;
}

/* ----- track = horizontal flex scroll ----- */

@media (max-width: 767px) {
  .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: var(--bmrc-gap, 16px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
    contain: none !important;
    /* Elementor grid track */
    --e-con-grid-template-columns: none !important;
    --e-con-grid-template-rows: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    justify-content: flex-start !important;
    align-content: stretch !important;
  }

  /* Newer / slim DOM: grid inner merged onto one node with .e-con.e-con-inner.e-grid */
  .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con.e-grid.e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: var(--bmrc-gap, 16px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
    contain: none !important;
    --e-con-grid-template-columns: none !important;
    --e-con-grid-template-rows: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
  }

  /**
   * Slim DOM: `.e-grid.e-con` with direct `.e-con` cards (no `.e-con-inner`), e.g. `e-con-full`.
   * :has() supported Safari 15.4+, Chromium 105+ — JS still applies full fallback.
   */
  .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-grid.e-con:not(:has(> .e-con-inner)) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: var(--bmrc-gap, 16px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
    contain: none !important;
    --e-con-grid-template-columns: none !important;
    --e-con-grid-template-rows: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    justify-content: flex-start !important;
    align-content: stretch !important;
  }

  .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con > .e-con-inner > .elementor-element,
  .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con.e-grid.e-con-inner > .elementor-element,
  .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-grid.e-con:not(:has(> .e-con-inner)) > .elementor-element {
    flex: 0 0 var(--bmrc-item-width, 88%) !important;
    max-width: var(--bmrc-item-width, 88%) !important;
    min-width: 0;
    scroll-snap-align: var(--bmrc-snap-align, start);
    scroll-snap-stop: normal;
    grid-column: unset !important;
    grid-row: unset !important;
    grid-area: unset !important;
  }

  .elementor-section.elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024) > .elementor-container {
    overflow-x: auto;
    overflow-y: hidden;
    max-width: 100%;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  }

  .elementor-section.elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024) > .elementor-container > .elementor-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: var(--bmrc-gap, 16px);
    width: max-content;
    min-width: 100%;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  }

  .elementor-section.elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024) .elementor-column {
    flex: 0 0 var(--bmrc-item-width, 88%) !important;
    max-width: var(--bmrc-item-width, 88%) !important;
    width: var(--bmrc-item-width, 88%) !important;
    scroll-snap-align: var(--bmrc-snap-align, start);
  }
}

body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: var(--bmrc-gap, 16px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  contain: none !important;
  --e-con-grid-template-columns: none !important;
  --e-con-grid-template-rows: none !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-flow: row !important;
}

body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con.e-grid.e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: var(--bmrc-gap, 16px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  contain: none !important;
  --e-con-grid-template-columns: none !important;
  --e-con-grid-template-rows: none !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-flow: row !important;
}

body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-grid.e-con:not(:has(> .e-con-inner)) {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: var(--bmrc-gap, 16px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  contain: none !important;
  --e-con-grid-template-columns: none !important;
  --e-con-grid-template-rows: none !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-flow: row !important;
}

body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con > .e-con-inner > .elementor-element,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-con.e-grid.e-con-inner > .elementor-element,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024).e-grid.e-con:not(:has(> .e-con-inner)) > .elementor-element {
  flex: 0 0 var(--bmrc-item-width, 88%) !important;
  max-width: var(--bmrc-item-width, 88%) !important;
  min-width: 0;
  scroll-snap-align: var(--bmrc-snap-align, start);
  grid-column: unset !important;
  grid-row: unset !important;
  grid-area: unset !important;
}

body.elementor-device-mobile .elementor-section.elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024) > .elementor-container {
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
}

body.elementor-device-mobile .elementor-section.elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024) > .elementor-container > .elementor-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: var(--bmrc-gap, 16px);
  width: max-content;
  min-width: 100%;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
}

body.elementor-device-mobile .elementor-section.elementor-element.blossom-mobile-row-carousel:not(.blossom-mobile-row-carousel--bp1024) .elementor-column {
  flex: 0 0 var(--bmrc-item-width, 88%) !important;
  max-width: var(--bmrc-item-width, 88%) !important;
  width: var(--bmrc-item-width, 88%) !important;
  scroll-snap-align: var(--bmrc-snap-align, start);
}

@media (max-width: 1024px) {
  .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: var(--bmrc-gap, 16px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
    contain: none !important;
    --e-con-grid-template-columns: none !important;
    --e-con-grid-template-rows: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
  }

  .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con.e-grid.e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: var(--bmrc-gap, 16px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
    contain: none !important;
    --e-con-grid-template-columns: none !important;
    --e-con-grid-template-rows: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
  }

  .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-grid.e-con:not(:has(> .e-con-inner)) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: var(--bmrc-gap, 16px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
    contain: none !important;
    --e-con-grid-template-columns: none !important;
    --e-con-grid-template-rows: none !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    grid-auto-flow: row !important;
    justify-content: flex-start !important;
    align-content: stretch !important;
  }

  .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con > .e-con-inner > .elementor-element,
  .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con.e-grid.e-con-inner > .elementor-element,
  .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-grid.e-con:not(:has(> .e-con-inner)) > .elementor-element {
    flex: 0 0 var(--bmrc-item-width, 88%) !important;
    max-width: var(--bmrc-item-width, 88%) !important;
    min-width: 0;
    scroll-snap-align: var(--bmrc-snap-align, start);
    scroll-snap-stop: normal;
    grid-column: unset !important;
    grid-row: unset !important;
    grid-area: unset !important;
  }

  .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 > .elementor-container {
    overflow-x: auto;
    overflow-y: hidden;
    max-width: 100%;
    touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  }

  .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 > .elementor-container > .elementor-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: var(--bmrc-gap, 16px);
    width: max-content;
    min-width: 100%;
    scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  }

  .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 .elementor-column {
    flex: 0 0 var(--bmrc-item-width, 88%) !important;
    max-width: var(--bmrc-item-width, 88%) !important;
    width: var(--bmrc-item-width, 88%) !important;
    scroll-snap-align: var(--bmrc-snap-align, start);
  }
}

body.elementor-device-tablet .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con > .e-con-inner,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: var(--bmrc-gap, 16px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  contain: none !important;
  --e-con-grid-template-columns: none !important;
  --e-con-grid-template-rows: none !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-flow: row !important;
}

body.elementor-device-tablet .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con.e-grid.e-con-inner,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con.e-grid.e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: var(--bmrc-gap, 16px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  contain: none !important;
  --e-con-grid-template-columns: none !important;
  --e-con-grid-template-rows: none !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-flow: row !important;
}

body.elementor-device-tablet .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-grid.e-con:not(:has(> .e-con-inner)),
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-grid.e-con:not(:has(> .e-con-inner)) {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: var(--bmrc-gap, 16px);
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
  contain: none !important;
  --e-con-grid-template-columns: none !important;
  --e-con-grid-template-rows: none !important;
  grid-template-columns: none !important;
  grid-template-rows: none !important;
  grid-auto-flow: row !important;
}

body.elementor-device-tablet .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con > .e-con-inner > .elementor-element,
body.elementor-device-tablet .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con.e-grid.e-con-inner > .elementor-element,
body.elementor-device-tablet .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-grid.e-con:not(:has(> .e-con-inner)) > .elementor-element,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con > .e-con-inner > .elementor-element,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-con.e-grid.e-con-inner > .elementor-element,
body.elementor-device-mobile .elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024.e-grid.e-con:not(:has(> .e-con-inner)) > .elementor-element {
  flex: 0 0 var(--bmrc-item-width, 88%) !important;
  max-width: var(--bmrc-item-width, 88%) !important;
  min-width: 0;
  scroll-snap-align: var(--bmrc-snap-align, start);
  grid-column: unset !important;
  grid-row: unset !important;
  grid-area: unset !important;
}

body.elementor-device-tablet .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 > .elementor-container,
body.elementor-device-mobile .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 > .elementor-container {
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
  touch-action: pan-x pan-y; /* pion: strona, poziom: slajdy (telefony) */
}

body.elementor-device-tablet .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 > .elementor-container > .elementor-row,
body.elementor-device-mobile .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 > .elementor-container > .elementor-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: var(--bmrc-gap, 16px);
  width: max-content;
  min-width: 100%;
  scroll-snap-type: var(--bmrc-snap-type, x mandatory);
}

body.elementor-device-tablet .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 .elementor-column,
body.elementor-device-mobile .elementor-section.elementor-element.blossom-mobile-row-carousel.blossom-mobile-row-carousel--bp1024 .elementor-column {
  flex: 0 0 var(--bmrc-item-width, 88%) !important;
  max-width: var(--bmrc-item-width, 88%) !important;
  width: var(--bmrc-item-width, 88%) !important;
  scroll-snap-align: var(--bmrc-snap-align, start);
}

/* Hide scrollbars */
.blossom-mobile-row-carousel--hide-scrollbar.e-con > .e-con-inner,
.blossom-mobile-row-carousel--hide-scrollbar.e-con.e-grid.e-con-inner,
.blossom-mobile-row-carousel--hide-scrollbar.e-grid.e-con:not(:has(> .e-con-inner)) {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.blossom-mobile-row-carousel--hide-scrollbar.e-con > .e-con-inner::-webkit-scrollbar,
.blossom-mobile-row-carousel--hide-scrollbar.e-con.e-grid.e-con-inner::-webkit-scrollbar,
.blossom-mobile-row-carousel--hide-scrollbar.e-grid.e-con:not(:has(> .e-con-inner))::-webkit-scrollbar {
  display: none;
}

.elementor-section.elementor-element.blossom-mobile-row-carousel--hide-scrollbar > .elementor-container {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.elementor-section.elementor-element.blossom-mobile-row-carousel--hide-scrollbar > .elementor-container::-webkit-scrollbar {
  display: none;
}
