/* ============================================================
   ASTROLOGY GALLERY SECTION
   ============================================================ */

.section-gallery {
	padding: 80px 20px;
	background: #fffaf3;
	font-family: var(--astro-font-sans, sans-serif);
	color: var(--astro-heading, #1c1917);
}

/* Header */
.ust-gallery-header {
	max-width: 1100px;
	margin: 0 auto 45px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 25px;
}

.ust-gallery-header-left {
	flex: 1 1 500px;
}

.ust-gallery-header-right {
	flex: 1 1 350px;
	max-width: 500px;
}

.ust-gallery-eyebrow {
	display: block;
	margin-bottom: 10px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--astro-primary, #e06d2c);
}

.ust-gallery-heading {
	margin: 0;
	font-family: var(--astro-font-serif, 'Cinzel', serif);
	font-size: 42px;
	line-height: 1.2;
	font-weight: 700;
	color: var(--astro-heading, #1c1917);
}

.ust-gallery-subheading {
	margin: 10px 0 0;
	font-size: 21px;
	font-style: italic;
	color: #6b5142;
}

.ust-gallery-description {
	margin: 0;
	font-size: 16px;
	line-height: 1.7;
	color: #5f5149;
}

.ust-gallery-description p:last-child {
	margin-bottom: 0;
}

/* Gallery Grid */
.ust-gallery-grid {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 210px;
	gap: 20px;
}

/* Image Sizes */
.ust-gallery-item {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	background: #f3e8dc;
	box-shadow: 0 8px 25px rgba(80, 50, 30, 0.12);
}

.ust-gallery-item.span-1x1 {
	grid-column: span 1;
	grid-row: span 1;
}

.ust-gallery-item.span-1x2 {
	grid-column: span 1;
	grid-row: span 2;
}

.ust-gallery-item.span-2x1 {
	grid-column: span 2;
	grid-row: span 1;
}

.ust-gallery-item.span-2x2 {
	grid-column: span 2;
	grid-row: span 2;
}

.ust-gallery-img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: center;
	transition: transform 0.5s ease;
}

.ust-gallery-item:hover .ust-gallery-img {
	transform: scale(1.04);
}

/* Image Overlay */
.ust-gallery-item::after {
	content: '';
	position: absolute;
	inset: auto 0 0;
	height: 45%;
	background: linear-gradient(to top,
			rgba(30, 20, 15, 0.65),
			transparent);
	pointer-events: none;
}

/* Caption */
.ust-gallery-item-caption {
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 16px;
	z-index: 2;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}

/* Tablet */
@media (max-width: 992px) {
	.ust-gallery-grid {
		grid-template-columns: repeat(2, 1fr);
		grid-auto-rows: 200px;
	}
}

/* Mobile */
@media (max-width: 768px) {
	.section-gallery {
		padding: 60px 16px;
	}

	.ust-gallery-section {
		padding: 42px 16px;
	}

	.ust-gallery-header {
		margin-bottom: 30px;
	}

	.ust-gallery-header-left,
	.ust-gallery-header-right {
		flex: 1 1 100%;
		max-width: none;
	}

	.ust-gallery-heading {
		font-size: 32px;
	}

	.ust-gallery-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}
}

/* Small Mobile */
@media (max-width: 480px) {
	.ust-gallery-grid {
		grid-template-columns: 1fr;
		grid-auto-rows: 240px;
	}

	.ust-gallery-item,
	.ust-gallery-item.span-1x1,
	.ust-gallery-item.span-1x2,
	.ust-gallery-item.span-2x1,
	.ust-gallery-item.span-2x2 {
		grid-column: 1 / -1 !important;
		grid-row: span 1 !important;
	}
}