.effector-mosaic-cards {
	--effector-grid-cols: 3;
	--effector-grid-auto-rows: 220px;
	--effector-grid-gap: 20px;
	--effector-card-min-height: 0px;
	--effector-card-text-align: left;
	--effector-card-v-align: flex-end;
	position: relative;
}

.effector-mosaic-cards__track {
	position: relative;
}

.effector-mosaic-cards:not(.is-carousel) .effector-mosaic-cards__wrapper {
	display: grid;
	grid-template-columns: repeat(var(--effector-grid-cols), minmax(0, 1fr));
	grid-auto-rows: var(--effector-grid-auto-rows);
	gap: var(--effector-grid-gap);
	transform: none !important;
	transition: none !important;
	width: 100%;
}

.effector-mosaic-cards:not(.is-carousel) .swiper-slide {
	width: auto !important;
	height: auto !important;
	margin-right: 0 !important;
}

.effector-mosaic-cards:not(.is-carousel) .effector-card {
	min-height: var(--effector-card-min-height);
	grid-column: span var(--effector-col-span, 1);
	grid-row: span var(--effector-row-span, 1);
}

.effector-card {
	position: relative;
	overflow: hidden;
	border-radius: inherit;
}

.effector-card__bg,
.effector-card__bg-hover {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: 0;
}

.effector-card__bg-hover {
	opacity: 0;
	z-index: 1;
	transition: opacity 0.25s ease;
}

.effector-card:hover .effector-card__bg-hover {
	opacity: 1;
}

.effector-card__bg-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	opacity: var(--effector-overlay-opacity, 0);
}

.effector-card__bg-overlay--hover {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.effector-card:hover .effector-card__bg-overlay--hover {
	opacity: var(--effector-overlay-hover-opacity, 0);
}

.effector-card__inner {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	justify-content: var(--effector-card-v-align);
	text-align: var(--effector-card-text-align);
	height: 100%;
}

.effector-card__content {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.effector-card__title {
	margin: 0;
}

.effector-card__pre-title {
	margin: 0;
}

.effector-card__description > *:last-child {
	margin-bottom: 0;
}

.effector-card__buttons {
	position: relative;
	z-index: 6;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 10px;
	margin-top: 14px;
}

.effector-card__btn {
	position: relative;
	z-index: 7;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	cursor: pointer;
}

.effector-card__btn.elementor-button {
	border-style: solid;
	border-width: 1px;
	line-height: 1;
	transition: all 0.2s ease;
}

.effector-card__btn .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.effector-card__buttons .effector-card__btn {
	flex: 0 0 auto;
}

.effector-card__btn.elementor-button:focus {
	outline: none;
}

.effector-card__btn.elementor-button:hover {
	text-decoration: none;
}

.effector-mosaic-cards__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	border: none;
	background: transparent;
	padding: 0 !important;
	cursor: pointer;
}

.effector-mosaic-cards__nav--prev {
	left: 10px;
}

.effector-mosaic-cards__nav--next {
	right: 10px;
}

.effector-mosaic-cards__pagination {
	position: relative;
	z-index: 10;
	margin-top: 20px;
}

.effector-card--desc-hover-only .effector-card__description {
	max-height: 0;
	opacity: 0;
	transform: translateY(8px);
	overflow: hidden;
	transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease;
	will-change: max-height, opacity, transform;
}

.effector-card--desc-hover-only:hover .effector-card__description {
	max-height: var(--effector-desc-max, 0px);
	opacity: 1;
	transform: translateY(0);
}
.effector-card__btn.elementor-button {
	transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
}

/* Equal height only when carousel is active */
.effector-mosaic-cards.is-carousel.effector-mosaic-cards--equal-height .swiper-wrapper {
  align-items: stretch;
}

.effector-mosaic-cards.is-carousel.effector-mosaic-cards--equal-height .swiper-slide {
  height: auto;
}

.effector-mosaic-cards.is-carousel.effector-mosaic-cards--equal-height .effector-card {
  height: 100%;
}
/* Equal height in carousel: match grid row-height logic */
.effector-mosaic-cards--equal-height .swiper-slide {
	height: auto; /* allow our card height to drive it */
}

.effector-mosaic-cards--equal-height .effector-card {
	/* height = (RowSize * RowSpan) + (Gap * (RowSpan - 1)) */
	height: calc(
		(var(--effector-grid-auto-rows, 220px) * var(--effector-row-span, 1)) +
		(var(--effector-grid-gap, 0px) * (var(--effector-row-span, 1) - 1))
	);
}

.effector-mosaic-cards--equal-height .effector-card__inner {
	height: 100%;
}

.effector-mosaic-cards .effector-mosaic-cards__nav,
.effector-mosaic-cards .effector-mosaic-cards__pagination{
  display: none;
}

.effector-mosaic-cards.is-carousel-active .effector-mosaic-cards__nav,
.effector-mosaic-cards.is-carousel-active .effector-mosaic-cards__pagination{
  display: flex;
  justify-content: center;
  align-items: center;
}

.effector-mosaic-cards.is-carousel-active .effector-mosaic-cards__pagination{
  display: block; 
}
.effector-mosaic-cards:not(.is-carousel) {
  --e-n-carousel-swiper-slides-gap: var(--effector-grid-gap);
}


@media (max-width: 767px) {
  .effector-card__buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .effector-card__buttons .effector-card__btn {
    width: 100%;
    justify-content: center;
  }
}

@keyframes effectorFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.effector-mosaic-cards.effector-grid-fade:not(.is-carousel) .swiper-slide {
  opacity: 0;
  transform: translateY(12px);
}

.effector-mosaic-cards.effector-grid-fade.effector-grid-fade--inview:not(.is-carousel) .swiper-slide {
  animation: effectorFadeUp calc(var(--effector-fade-duration, 600ms)) ease forwards;
  animation-delay: var(--effector-fade-delay, 0ms);
}

.effector-mosaic-cards.is-carousel .swiper-slide {
  opacity: 1;
  transform: none;
  animation: none;
}

@media (prefers-reduced-motion: reduce) {
  .effector-mosaic-cards.effector-grid-fade:not(.is-carousel) .swiper-slide,
  .effector-mosaic-cards.effector-grid-fade.effector-grid-fade--inview:not(.is-carousel) .swiper-slide {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
