/* Services Grid Widget - base structural styles
   (Colors, fonts, sizes, borders, etc. are all controlled from Elementor Style tab) */

.sgw-grid {
	display: grid;
	width: 100%;
}

.sgw-card {
	position: relative;
	overflow: hidden;
	transition-property: background-color, border-color, box-shadow;
	transition-timing-function: ease;
}

.sgw-card-image {
	position: relative;
	overflow: hidden;
	width: 100%;
	display: block;
}

.sgw-card-image img {
	display: block;
	width: 100%;
	height: 100%;
	transition-property: transform;
	transition-timing-function: ease;
}

.sgw-card-description {
	position: absolute;
	inset-inline-start: 0;
	inset-inline-end: 0;
	bottom: 0;
	transition-property: opacity, transform;
	transition-timing-function: ease;
}

.sgw-card-title {
	margin: 0;
}

.sgw-card-link {
	text-decoration: none;
	color: inherit;
}

/* ---- Hover animation: slide-up (description hidden below, slides in on hover) ---- */
.sgw-anim-slide-up .sgw-card-description {
	transform: translateY(100%);
	opacity: 1;
}
.sgw-anim-slide-up .sgw-card:hover .sgw-card-description {
	transform: translateY(0);
}

/* ---- Hover animation: fade ---- */
.sgw-anim-fade .sgw-card-description {
	opacity: 0;
}
.sgw-anim-fade .sgw-card:hover .sgw-card-description {
	opacity: 1;
}

/* ---- No animation: description always visible ---- */
.sgw-anim-none .sgw-card-description {
	transform: none;
	opacity: 1;
	position: static;
}

/* Small screens: always reveal description (better UX on touch devices) */
@media (max-width: 767px) {
	.sgw-anim-slide-up .sgw-card-description,
	.sgw-anim-fade .sgw-card-description {
		position: static;
		transform: none;
		opacity: 1;
	}
}
