.ce-service-banner {
	display: flex;
	flex-direction: column;
	width: 100%;
	align-items: stretch;
	overflow: hidden;
}

.ce-service-banner.ce-service-banner--no-image{
    width: 100%;
    min-height: 100vh;
	flex-direction: row;
    align-items: center;
    overflow: hidden;
}

.ce-service-banner__image-wrapper {
	width: 100%;
	min-height: 400px;
	position: relative;
	flex-shrink: 0;
	overflow: hidden;
}

.ce-service-banner__image-wrapper picture,
.ce-service-banner__image-wrapper img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.5s ease, opacity 0.3s ease;
}

.ce-service-banner__image-wrapper:hover .ce-service-banner__image {
	transform: scale(1.05);
	opacity: 0.9;
}

.ce-service-banner__content {
	width: 100%;
	padding: 33px var(--elementor-container-padding-mobile-left, 16px) 0 var( --elementor-container-padding-mobile-right, 16px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: var(--elementor-color-text,#000000);
	position: relative;
}

.ce-service-banner--gradient-animated {
	animation: ce-gradient-shift 40s ease infinite;
}

@keyframes ce-gradient-shift {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

.ce-service-banner__description {
	font-family: var(--elementor-typography-body-font, 'Montserrat', sans-serif);
	font-size: var(--elementor-typography-mobile-body-font-size, 16px);
	font-weight: var(--elementor-typography-body-font-weight, 400);
	line-height: 1.6;
	color: var(--elementor-color-text, #000000);
	margin: 53px 0 0px 53px;
}

.ce-service-banner__description>.line:first-child p,
.ce-service-banner__description>.line:first-child
{
	margin-bottom: 22px;
}

.ce-service-banner__button {
	display: inline-block;
	font-family: var(--elementor-typography-button-font-family, 'Unbounded', sans-serif);
	font-size: var(--elementor-typography-button-font-size, 32px);
	font-weight: var(--elementor-typography-button-font-weight, 400);
	text-decoration: none;
	transition: background-color 0.3s ease, color 0.3s ease;
	align-self: flex-start;
	margin-top: 60px;
    padding-left: calc(var(--elementor-container-padding-mobile-left, 16px) + 55px);
}

@media (min-width: 768px) {
	.ce-service-banner--no-image {
		justify-content: flex-end;
	}

	.ce-service-banner--no-image .ce-service-banner__content {
		width: 100%;
		padding: 50px 87px;
		display: flex;
		flex-direction: column;
		align-items: end;
	}

	.ce-service-banner {
		flex-direction: row;
	}

	.ce-service-banner__image-wrapper {
		width: 50%;
		height: 100%;
		min-height: auto;
	}

	.ce-service-banner__content {
		width: 50%;
		padding: 50px 30px;
	}

	.ce-service-banner__title {
		max-width: 777px;
		position: relative;
		z-index: 999;
		margin-left: 0;
		margin-bottom: 32px;
	}

	.ce-service-banner__description {
		margin-bottom: 0px;
	}

	.ce-service-banner__description>.line:first-child p,
	.ce-service-banner__description>.line:first-child
	{
		margin-bottom: 35px;
	}

	.ce-service-banner__button{
		margin-top: 75px;
	} 

	.ce-service-banner__description,
	.ce-service-banner__button{
		margin-left: 0;
		padding-left: 0;
	}

}

@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
	.ce-service-banner {
		min-height: auto;
	}
	
	.ce-service-banner__title{
		margin-bottom: 0px;
	}
}

@media (min-width: 1025px) {
	.ce-service-banner__content {
		padding: 60px 40px;
	}

	.ce-service-banner.ce-service-banner--no-image{
		aspect-ratio: 1.6 / 1;
	}

	.ce-service-banner__title {
		font-size: var(--elementor-typography-h1-font-size, 70px);
	}
}

@media(max-width: 767px) {
	.ce-service-banner.ce-service-banner--no-image .ce-service-banner__description{
		margin-left: 0;
	}

	.ce-service-banner.ce-service-banner--no-image .ce-service-banner__button{
		padding-left: 22px;
	}
}