.gpb-content {
	display: grid;
	gap: 28px;
}

.gpb-block {
	margin: 0;
}

.gpb-block--text {
	color: inherit;
}

.gpb-block--text > :first-child {
	margin-top: 0;
}

.gpb-block--text > :last-child {
	margin-bottom: 0;
}

.gpb-single-image {
	display: flex;
	max-width: 350px;
}

.gpb-block--image.align-left .gpb-single-image {
	justify-content: flex-start;
}

.gpb-block--image.align-center .gpb-single-image {
	justify-content: center;
}

.gpb-block--image.align-right .gpb-single-image {
	justify-content: flex-end;
}

.gpb-single-image__img,
.gpb-gallery-grid__img,
.gpb-carousel__img {
	display: block;
	height: auto;
	border-radius: 6px;
}

.gpb-single-image__img {
	width: auto;
	max-width: 100%;
}

.gpb-gallery-grid__img,
.gpb-carousel__img {
	width: 100%;
}

.gpb-gallery-grid {
	display: grid;
	grid-template-columns: repeat(var(--gpb-columns, 3), minmax(0, 1fr));
	gap: 16px;
}

.gpb-gallery-grid__item,
.gpb-carousel__item {
	margin: 0;
}

.gpb-carousel {
	position: relative;
	padding: 0 54px;
}

.gpb-carousel__viewport {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	border-radius: 10px;
}

.gpb-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.gpb-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (16px * (var(--gpb-carousel-columns, 3) - 1))) / var(--gpb-carousel-columns, 3));
	gap: 16px;
}

.gpb-carousel__item {
	scroll-snap-align: start;
	overflow: hidden;
	border-radius: 10px;
	background: #f5f5f5;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.gpb-carousel__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 40px;
	height: 40px;
	transform: translateY(-50%);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.96);
	color: #111827;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
	transition: opacity 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.gpb-carousel__nav:hover {
	background: #fff;
	transform: translateY(-50%) scale(1.04);
}

.gpb-carousel__nav:disabled {
	opacity: 0.35;
	cursor: default;
	transform: translateY(-50%);
}

.gpb-carousel__nav--prev {
	left: 0;
}

.gpb-carousel__nav--next {
	right: 0;
}

@media (max-width: 1024px) {
	.gpb-gallery-grid {
		grid-template-columns: repeat(min(2, var(--gpb-columns, 3)), minmax(0, 1fr));
	}

	.gpb-carousel__track {
		grid-auto-columns: calc((100% - 16px) / 2);
	}
}

@media (max-width: 640px) {
	.gpb-content {
		gap: 22px;
	}

	.gpb-gallery-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.gpb-carousel {
		padding: 0;
	}

	.gpb-carousel__nav {
		display: none;
	}

	.gpb-carousel__track {
		grid-auto-columns: 85%;
	}
}
