$elementor-breakpoints: (
	// Phone
	sm: 0,
	// Tablet
	md: 768px,
	// Desktop
	lg: 1025px
) !default;

@function elementor-breakpoint-next($name, $breakpoints: $elementor-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
	$n: index($breakpoint-names, $name);
	@return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
}

@function elementor-breakpoint-min($name, $breakpoints: $elementor-breakpoints) {
	$min: map-get($breakpoints, $name);
	@return if($min != 0, $min, null);
}


@function elementor-breakpoint-max($name, $breakpoints: $elementor-breakpoints) {
	$next: elementor-breakpoint-next($name, $breakpoints);
	@return if($next, elementor-breakpoint-min($next, $breakpoints) - 1px, null);
}

// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
// Makes the @content apply to the given breakpoint and wider.
@mixin elementor-breakpoint-up($name, $breakpoints: $elementor-breakpoints) {
	$min: elementor-breakpoint-min($name, $breakpoints);
	@if $min {
		@media (min-width: $min) {
			@content;
		}
	} @else {
		@content;
	}
}

@mixin elementor-breakpoint-down($name, $breakpoints: $elementor-breakpoints) {
	$max: elementor-breakpoint-max($name, $breakpoints);
	@if $max {
		@media (max-width: $max) {
			@content;
		}
	} @else {
		@content;
	}
}

@mixin elementor-breakpoint-only($name, $breakpoints: $elementor-breakpoints) {
	@include elementor-breakpoint-up($name, $breakpoints) {
		@include elementor-breakpoint-down($name, $breakpoints) {
			@content;
		}
	}
}

@mixin elementor-breakpoint-between($lower, $upper, $breakpoints: $elementor-breakpoints) {
	@include elementor-breakpoint-up($lower, $breakpoints) {
		@include elementor-breakpoint-down($upper, $breakpoints) {
			@content;
		}
	}
}
