.gsc-wrap,
.gsc-wrap *,
.gsc-wrap *::before,
.gsc-wrap *::after {
	box-sizing: border-box !important;
	margin: 0;
	padding: 0;
}

.gsc-wrap {
	--gsc-title-fs: 22px;
	--gsc-text-fs: 15px;
	--gsc-radius: 20px;
	--gsc-arrow-bg: #f2f2f3;
	--gsc-arrow-color: #17171a;
	--gsc-per-view: 4;
	--gsc-columns: 3;
	--gsc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--gsc-ink: #15151a;
	--gsc-muted: #6b6b70;
	--gsc-border: #ededf0;

	display: block !important;
	width: 100% !important;
	background: transparent !important;
	font-family: var(--gsc-font) !important;
	color: var(--gsc-ink) !important;
}

.gsc-wrap svg { display: inline-block !important; overflow: visible !important; }
.gsc-wrap img { max-width: 100% !important; display: block !important; }
.gsc-wrap a { text-decoration: none !important; }
.gsc-wrap h3 { all: unset; display: block; }
.gsc-wrap p { all: unset; display: block; }

/* ---------- Grelha (página de serviços) ---------- */
.gsc-wrap-page .gsc-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--gsc-columns), 1fr) !important;
	gap: 24px !important;
}

/* ---------- Carrossel (home) ---------- */
.gsc-wrap-home .gsc-track {
	display: flex !important;
	gap: 24px !important;
	overflow-x: auto !important;
	scroll-snap-type: x mandatory !important;
	scroll-behavior: smooth !important;
	-ms-overflow-style: none !important;
	scrollbar-width: none !important;
}

.gsc-wrap-home .gsc-track::-webkit-scrollbar { display: none !important; }

.gsc-wrap-home .gsc-card {
	flex: 0 0 calc((100% - (var(--gsc-per-view) - 1) * 24px) / var(--gsc-per-view)) !important;
	scroll-snap-align: start !important;
}

/* ---------- Cartão ---------- */
.gsc-card {
	background: #fff !important;
	border: 1px solid var(--gsc-border) !important;
	border-radius: var(--gsc-radius) !important;
	padding: 32px 28px !important;
	box-shadow: 0 6px 20px rgba(20,20,25,0.05) !important;
	display: flex !important;
	flex-direction: column !important;
	transition: box-shadow .25s ease, transform .25s ease !important;
}

.gsc-card:hover {
	box-shadow: 0 16px 32px rgba(20,20,25,0.09) !important;
}

.gsc-card-top {
	display: flex !important;
	align-items: flex-start !important;
	justify-content: space-between !important;
	gap: 14px !important;
	margin-bottom: 18px !important;
}

.gsc-card-title {
	font-size: var(--gsc-title-fs) !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	color: var(--gsc-ink) !important;
	letter-spacing: -0.01em !important;
}

.gsc-card-arrow {
	flex-shrink: 0 !important;
	width: 42px !important;
	height: 42px !important;
	min-width: 42px !important;
	min-height: 42px !important;
	border-radius: 50% !important;
	background: var(--gsc-arrow-bg) !important;
	color: var(--gsc-arrow-color) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: transform .25s ease, background .25s ease !important;
}

.gsc-card-arrow svg {
	stroke: var(--gsc-arrow-color) !important;
	fill: none !important;
}

.gsc-card:hover .gsc-card-arrow {
	transform: rotate(45deg) !important;
	background: var(--gsc-arrow-hover-bg) !important;
}

.gsc-card:hover .gsc-card-arrow svg {
	stroke: #fff !important;
}

.gsc-card-divider {
	display: block !important;
	width: 100% !important;
	height: 1px !important;
	background: var(--gsc-border) !important;
	margin-bottom: 18px !important;
}

.gsc-card-text {
	font-size: var(--gsc-text-fs) !important;
	line-height: 1.65 !important;
	color: var(--gsc-muted) !important;
	margin-bottom: 22px !important;
	flex: 1 !important;
}

.gsc-card-media {
	width: 100% !important;
	aspect-ratio: 4 / 3 !important;
	border-radius: calc(var(--gsc-radius) - 6px) !important;
	overflow: hidden !important;
	margin-top: auto !important;
}

.gsc-card-media img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* ---------- Responsivo ---------- */
@media (max-width: 1100px) {
	.gsc-wrap-page .gsc-grid { grid-template-columns: repeat(2, 1fr) !important; }
	.gsc-wrap-home .gsc-card { flex-basis: calc((100% - 24px) / 2) !important; }
}

@media (max-width: 640px) {
	.gsc-wrap-page .gsc-grid { grid-template-columns: 1fr !important; }
	.gsc-wrap-home .gsc-card { flex-basis: 84% !important; }
	.gsc-card { padding: 26px 22px !important; }
}
