/* Gallery page. */

.jmu-gallery-pattern {
	margin-block-start: 0;
}

.jmu-gallery-hero-pattern {
	margin-block-start: 0;
}

/* ---------- Gallery hero ---------- */
.jmu-gallery-hero {
	box-sizing: border-box;
	min-height: clamp(300px, 38vh, 430px);
	margin-block-start: 0 !important;
	padding: clamp(var(--space-lg), 4vw, var(--space-xl)) 40px;
	background:
		linear-gradient(
			110deg,
			color-mix(in srgb, var(--brand-charcoal) 96%, transparent) 0%,
			color-mix(in srgb, var(--brand-charcoal) 88%, transparent) 54%,
			color-mix(in srgb, var(--color-primary) 74%, transparent) 100%
		),
		var(--color-primary);
	color: var(--text-inverse);
}

.jmu-gallery-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(360px, 0.74fr);
	gap: clamp(var(--space-lg), 4vw, var(--space-2xl));
	align-items: center;
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
}

.jmu-gallery-hero__copy {
	display: grid;
	gap: var(--space-md);
	min-width: 0;
	max-width: 760px;
}

.jmu-gallery-hero__eyebrow {
	margin: 0;
	color: color-mix(in srgb, var(--text-inverse) 82%, transparent);
	font-family: var(--font-sans);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-gallery-hero__headline {
	margin: 0;
	color: var(--text-inverse);
	font-family: var(--font-display);
	font-size: clamp(2.25rem, 4vw, 3.75rem);
	font-weight: var(--font-weight-extrabold);
	letter-spacing: 0;
	line-height: var(--line-height-tight);
	text-shadow: 0 3px 8px color-mix(in srgb, var(--black) 38%, transparent);
}

.jmu-gallery-hero__lead {
	max-width: 600px;
	margin: 0;
	color: color-mix(in srgb, var(--text-inverse) 90%, transparent);
	font-size: var(--text-md);
	line-height: var(--line-height-relaxed);
}

.jmu-gallery-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin: 0;
}

.jmu-gallery-hero__button,
.jmu-gallery-cta .wp-block-button__link {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 11px 20px;
	border-radius: var(--radius-sm);
	background: var(--text-inverse);
	color: var(--color-primary);
	font-family: var(--font-sans);
	font-size: var(--text-base);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-normal);
	text-decoration: none;
	transition:
		background var(--duration-normal) var(--ease-default),
		color var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default);
}

.jmu-gallery-hero__button:hover,
.jmu-gallery-hero__button:focus-visible,
.jmu-gallery-cta .wp-block-button__link:hover,
.jmu-gallery-cta .wp-block-button__link:focus-visible {
	background: var(--bg-soft);
	color: var(--color-primary-hover);
	transform: translateY(-1px);
}

.jmu-gallery-hero__button:focus-visible,
.jmu-gallery-cta .wp-block-button__link:focus-visible {
	outline: 2px solid var(--text-inverse);
	outline-offset: 3px;
}

.jmu-gallery-hero__button--ghost {
	border: var(--border-width) solid color-mix(in srgb, var(--white) 58%, transparent);
	background: transparent;
	color: var(--text-inverse);
}

.jmu-gallery-hero__button--ghost:hover,
.jmu-gallery-hero__button--ghost:focus-visible {
	border-color: var(--text-inverse);
	background: color-mix(in srgb, var(--white) 12%, transparent);
	color: var(--text-inverse);
}

.jmu-gallery-hero__mosaic {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: var(--space-sm);
	height: clamp(240px, 30vw, 340px);
	min-height: clamp(240px, 30vw, 340px);
	margin: 0;
}

.jmu-gallery-hero__tile {
	position: relative;
	min-width: 0;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	border: var(--border-width) solid color-mix(in srgb, var(--white) 22%, transparent);
	border-radius: var(--radius-lg);
	background: var(--bg-dark);
	color: var(--text-inverse);
	box-shadow: var(--shadow-lg);
	isolation: isolate;
}

.jmu-gallery-hero__tile--1 {
	grid-row: 1 / span 2;
}

.jmu-gallery-hero__tile img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.01);
}

.jmu-gallery-hero__tile::after {
	position: absolute;
	inset: auto 0 0;
	z-index: 1;
	height: 44%;
	background:
		linear-gradient(
			to top,
			color-mix(in srgb, var(--brand-charcoal) 78%, transparent) 0%,
			color-mix(in srgb, var(--brand-charcoal) 0%, transparent) 100%
		);
	content: "";
}

.jmu-gallery-hero__tile figcaption {
	position: absolute;
	right: var(--space-sm);
	bottom: var(--space-sm);
	left: var(--space-sm);
	z-index: 2;
	color: var(--text-inverse);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-snug);
	text-shadow: 0 1px 2px color-mix(in srgb, var(--black) 52%, transparent);
}

/* ---------- Showcase ---------- */
.jmu-gallery-showcase {
	box-sizing: border-box;
	margin-block-start: 0 !important;
	padding: clamp(var(--space-lg), 5vw, var(--space-2xl)) 40px clamp(3rem, 6vw, 5rem);
	background: var(--bg-base);
	scroll-margin-top: 160px;
}

.jmu-gallery-showcase__inner {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: var(--space-xl);
	align-items: start;
	max-width: 1240px;
	margin: 0 auto;
}

.jmu-gallery-showcase__rail {
	position: sticky;
	top: var(--space-lg);
	align-self: start;
}

.jmu-gallery-showcase__rail-inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

.jmu-gallery-showcase__eyebrow,
.jmu-gallery-cta__eyebrow {
	margin: 0;
	color: var(--color-primary);
	font-family: var(--font-sans);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-gallery-showcase__title {
	margin: 0;
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: var(--text-4xl);
	font-weight: var(--font-weight-semibold);
	letter-spacing: 0;
	line-height: var(--line-height-tight);
}

.jmu-gallery-showcase__subtitle {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--text-md);
	line-height: var(--line-height-relaxed);
}

.jmu-gallery-filter {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2xs);
	margin: var(--space-2xs) 0 0;
}

.jmu-gallery-filter__chip {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2xs);
	min-height: 40px;
	padding: var(--space-2xs) var(--space-sm);
	border: var(--border-width) solid var(--border-color);
	border-radius: var(--radius-full);
	background: var(--bg-surface);
	color: var(--text-strong);
	font-family: var(--font-sans);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-semibold);
	cursor: pointer;
	transition:
		background var(--duration-normal) var(--ease-default),
		border-color var(--duration-normal) var(--ease-default),
		color var(--duration-normal) var(--ease-default);
}

.jmu-gallery-filter__chip:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.jmu-gallery-filter__chip:focus-visible,
.jmu-gallery-empty__clear:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.jmu-gallery-filter__chip[aria-pressed="true"] {
	border-color: var(--color-primary);
	background: var(--color-primary);
	color: var(--text-inverse);
}

.jmu-gallery-filter__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: var(--radius-full);
	background: color-mix(in srgb, var(--text-strong) 8%, transparent);
	color: inherit;
	font-size: var(--text-xs);
	font-weight: var(--font-weight-bold);
}

.jmu-gallery-filter__chip[aria-pressed="true"] .jmu-gallery-filter__count {
	background: color-mix(in srgb, var(--white) 20%, transparent);
}

.jmu-gallery-rail-cta {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto;
	column-gap: var(--space-sm);
	row-gap: 2px;
	align-items: center;
	margin-top: var(--space-sm);
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius-md);
	background: var(--bg-dark);
	color: var(--text-inverse);
	text-decoration: none;
	box-shadow: var(--shadow-sm);
	transition:
		background var(--duration-normal) var(--ease-default),
		box-shadow var(--duration-normal) var(--ease-default),
		transform var(--duration-fast) var(--ease-default);
}

.jmu-gallery-rail-cta:hover {
	background: var(--color-primary);
	box-shadow: var(--shadow-md);
	transform: translateY(-1px);
}

.jmu-gallery-rail-cta:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.jmu-gallery-rail-cta__eyebrow {
	color: var(--text-inverse);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-gallery-rail-cta__body {
	color: color-mix(in srgb, var(--text-inverse) 76%, transparent);
	font-size: var(--text-sm);
	line-height: var(--line-height-normal);
}

.jmu-gallery-rail-cta__arrow {
	grid-column: 2;
	grid-row: 1 / span 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: var(--radius-full);
	background: color-mix(in srgb, var(--white) 14%, transparent);
	font-size: var(--text-lg);
	transition:
		background var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default);
}

.jmu-gallery-rail-cta:hover .jmu-gallery-rail-cta__arrow {
	background: color-mix(in srgb, var(--white) 22%, transparent);
	transform: translateX(3px);
}

.page-slug-gallery .jmu-gallery {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-flow: dense;
	gap: var(--space-md);
	max-width: none;
	margin: 0;
}

.jmu-gallery-card {
	position: relative;
	grid-column: span 4;
	display: block;
	min-height: 280px;
	margin: 0;
	overflow: hidden;
	border-radius: var(--radius-lg);
	background: var(--bg-dark);
	box-shadow: var(--shadow-md);
	color: var(--text-inverse);
	cursor: zoom-in;
	isolation: isolate;
	transition:
		box-shadow var(--duration-normal) var(--ease-default),
		transform var(--duration-fast) var(--ease-default);
}

.jmu-gallery-card:first-child {
	grid-column: span 6;
	grid-row: span 2;
	min-height: 580px;
}

.jmu-gallery-card:nth-child(6n + 4),
.jmu-gallery-card:nth-child(6n + 6) {
	grid-column: span 6;
	min-height: 300px;
}

.jmu-gallery-card:hover {
	box-shadow: var(--shadow-lg);
	transform: translateY(-2px);
}

.jmu-gallery-card:focus-visible {
	outline: 3px solid var(--color-primary);
	outline-offset: 3px;
	box-shadow: var(--shadow-lg);
}

.jmu-gallery-card[hidden] {
	display: none !important;
}

.jmu-gallery-card__media,
.jmu-gallery-card__media img {
	display: block;
	width: 100%;
	height: 100%;
}

.jmu-gallery-card__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.jmu-gallery-card__media img {
	object-fit: cover;
	transform: scale(1.01);
	transition: transform var(--duration-slow) var(--ease-default);
}

.jmu-gallery-card:hover .jmu-gallery-card__media img,
.jmu-gallery-card:focus-visible .jmu-gallery-card__media img {
	transform: scale(1.055);
}

.jmu-gallery-card__bar {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	width: 100%;
	height: 4px;
	background: var(--color-primary);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--duration-normal) var(--ease-out);
}

.jmu-gallery-card:hover .jmu-gallery-card__bar,
.jmu-gallery-card:focus-visible .jmu-gallery-card__bar {
	transform: scaleX(1);
}

.jmu-gallery-card__caption {
	position: absolute;
	inset: auto 0 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: var(--space-3xs);
	padding: var(--space-md);
	background:
		linear-gradient(
			to top,
			color-mix(in srgb, var(--brand-charcoal) 94%, transparent) 0%,
			color-mix(in srgb, var(--brand-charcoal) 72%, transparent) 56%,
			color-mix(in srgb, var(--brand-charcoal) 0%, transparent) 100%
		);
	opacity: 0;
	transform: translateY(var(--space-sm));
	transition:
		opacity var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default);
}

.jmu-gallery-card:hover .jmu-gallery-card__caption,
.jmu-gallery-card:focus-visible .jmu-gallery-card__caption {
	opacity: 1;
	transform: translateY(0);
}

.jmu-gallery-card__service {
	width: max-content;
	max-width: 100%;
	padding: var(--space-3xs) var(--space-2xs);
	border: var(--border-width) solid color-mix(in srgb, var(--white) 28%, transparent);
	border-radius: var(--radius-full);
	background: color-mix(in srgb, var(--brand-charcoal) 70%, transparent);
	color: var(--text-inverse);
	font-size: var(--text-xs);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: 1;
	text-transform: uppercase;
}

.jmu-gallery-card__title {
	color: var(--text-inverse);
	font-family: var(--font-display);
	font-size: var(--text-xl);
	font-weight: var(--font-weight-bold);
	line-height: var(--line-height-tight);
	text-shadow: 0 1px 2px color-mix(in srgb, var(--black) 52%, transparent);
}

.jmu-gallery-card__copy {
	max-width: 54ch;
	color: color-mix(in srgb, var(--text-inverse) 88%, transparent);
	font-size: var(--text-sm);
	line-height: var(--line-height-normal);
}

.jmu-gallery-card__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2xs);
	margin-top: var(--space-2xs);
	color: var(--text-inverse);
	font-size: var(--text-sm);
	font-weight: var(--font-weight-bold);
	letter-spacing: var(--letter-spacing-eyebrow);
	line-height: var(--line-height-normal);
	text-transform: uppercase;
}

.jmu-gallery-card__cta span {
	transition: transform var(--duration-normal) var(--ease-default);
}

.jmu-gallery-card:hover .jmu-gallery-card__cta span,
.jmu-gallery-card:focus-visible .jmu-gallery-card__cta span {
	transform: translateX(4px);
}

.jmu-gallery-empty {
	box-sizing: border-box;
	display: grid;
	justify-items: start;
	gap: var(--space-sm);
	padding: var(--space-lg);
	border: var(--border-width) solid color-mix(in srgb, var(--color-primary) 18%, transparent);
	border-radius: var(--radius-lg);
	background:
		linear-gradient(135deg, var(--bg-warm) 0%, var(--bg-surface) 58%, var(--bg-muted) 100%);
	box-shadow: var(--shadow-sm);
}

.jmu-gallery-empty[hidden] {
	display: none !important;
}

.jmu-gallery-empty h3 {
	margin: 0;
	color: var(--text-strong);
	font-family: var(--font-display);
	font-size: var(--text-2xl);
	font-weight: var(--font-weight-semibold);
	line-height: var(--line-height-snug);
}

.jmu-gallery-empty p {
	margin: 0;
	color: var(--text-muted);
	font-size: var(--text-base);
	line-height: var(--line-height-relaxed);
}

.jmu-gallery-empty__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: var(--space-2xs) var(--space-md);
	border: var(--border-width) solid var(--color-primary);
	border-radius: var(--radius-sm);
	background: var(--color-primary);
	color: var(--text-inverse);
	font-family: var(--font-sans);
	font-size: var(--text-base);
	font-weight: var(--font-weight-semibold);
	cursor: pointer;
	transition:
		background var(--duration-normal) var(--ease-default),
		border-color var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default);
}

.jmu-gallery-empty__clear:hover {
	border-color: var(--color-primary-hover);
	background: var(--color-primary-hover);
	transform: translateY(-1px);
}

.jmu-gallery__load {
	display: block;
	margin: var(--space-lg) auto 0;
	padding: 0.75rem 2.5rem;
	border: none;
	border-radius: var(--radius-full);
	background: var(--color-primary);
	color: var(--text-inverse);
	font-size: var(--text-base);
	font-weight: var(--font-weight-semibold);
	letter-spacing: var(--letter-spacing-brand-wide);
	text-transform: uppercase;
	cursor: pointer;
	transition:
		background var(--duration-normal) var(--ease-default),
		transform var(--duration-normal) var(--ease-default);
}

.jmu-gallery__load:hover,
.jmu-gallery__load:focus-visible {
	background: var(--color-primary-hover);
	transform: translateY(-1px);
}

.jmu-gallery__load:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.jmu-gallery__load[hidden] {
	display: none !important;
}

/* ---------- CTA ---------- */
.jmu-gallery-cta {
	box-sizing: border-box;
	margin-block-start: 0 !important;
	padding: clamp(3rem, 6vw, 5rem) 40px;
	background: var(--bg-muted);
}

.jmu-gallery-cta__inner {
	display: grid;
	justify-items: start;
	gap: var(--space-sm);
	max-width: 1185px;
	margin: 0 auto;
	padding: clamp(var(--space-lg), 4vw, var(--space-xl));
	border-radius: var(--radius-xl);
	background:
		linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 96%, var(--black)) 0%, var(--color-primary-hover) 100%);
	color: var(--text-inverse);
	box-shadow: var(--shadow-lg);
}

.jmu-gallery-cta__eyebrow,
.jmu-gallery-cta h2,
.jmu-gallery-cta p {
	color: var(--text-inverse) !important;
}

.jmu-gallery-cta h2 {
	max-width: 760px;
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl));
	font-weight: var(--font-weight-extrabold);
	line-height: var(--line-height-tight);
}

.jmu-gallery-cta p:not(.jmu-gallery-cta__eyebrow) {
	max-width: 680px;
	margin: 0;
	font-size: var(--text-md);
	line-height: var(--line-height-relaxed);
}

.jmu-gallery-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin: 0;
}

.jmu-gallery-cta__button--outline .wp-block-button__link {
	border: var(--border-width) solid color-mix(in srgb, var(--white) 62%, transparent);
	background: transparent;
	color: var(--text-inverse);
}

.jmu-gallery-cta__button--outline .wp-block-button__link:hover,
.jmu-gallery-cta__button--outline .wp-block-button__link:focus-visible {
	border-color: var(--text-inverse);
	background: color-mix(in srgb, var(--white) 12%, transparent);
	color: var(--text-inverse);
}

/* ---------- Lightbox ---------- */
.jmu-lightbox {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal);
	display: none;
	align-items: center;
	justify-content: center;
	padding: var(--space-sm);
	background: color-mix(in srgb, var(--black) 92%, transparent);
}

.jmu-lightbox.is-open {
	display: flex;
}

.jmu-lightbox__figure {
	display: grid;
	gap: var(--space-sm);
	justify-items: center;
	max-width: 92vw;
	margin: 0;
}

.jmu-lightbox img {
	display: block;
	max-width: 92vw;
	max-height: 82vh;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
}

.jmu-lightbox__caption {
	max-width: 760px;
	color: color-mix(in srgb, var(--text-inverse) 88%, transparent);
	font-size: var(--text-sm);
	line-height: var(--line-height-normal);
	text-align: center;
}

.jmu-lightbox__caption[hidden] {
	display: none;
}

.jmu-lightbox button {
	position: absolute;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: var(--radius-full);
	background: color-mix(in srgb, var(--white) 12%, transparent);
	color: var(--text-inverse);
	font-size: var(--text-xl);
	cursor: pointer;
	transition:
		background var(--duration-normal) var(--ease-default),
		color var(--duration-normal) var(--ease-default);
}

.jmu-lightbox button:hover,
.jmu-lightbox button:focus-visible {
	background: color-mix(in srgb, var(--white) 24%, transparent);
	color: var(--color-primary);
}

.jmu-lightbox button:focus-visible {
	outline: 2px solid var(--white);
	outline-offset: 2px;
}

.jmu-lightbox .close {
	top: var(--space-sm);
	right: var(--space-sm);
}

.jmu-lightbox .prev,
.jmu-lightbox .next {
	top: 50%;
	transform: translateY(-50%);
}

.jmu-lightbox .prev {
	left: var(--space-sm);
}

.jmu-lightbox .next {
	right: var(--space-sm);
}

@media (max-width: 1023px) {
	.jmu-gallery-hero__inner {
		grid-template-columns: 1fr;
	}

	.jmu-gallery-hero__mosaic {
		height: clamp(260px, 42vw, 360px);
		min-height: clamp(260px, 42vw, 360px);
	}

	.jmu-gallery-showcase__inner {
		grid-template-columns: 1fr;
		gap: var(--space-lg);
	}

	.jmu-gallery-showcase__rail {
		position: static;
	}

	.page-slug-gallery .jmu-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.jmu-gallery-card,
	.jmu-gallery-card:first-child,
	.jmu-gallery-card:nth-child(6n + 4),
	.jmu-gallery-card:nth-child(6n + 6) {
		grid-column: auto;
		grid-row: auto;
		min-height: 320px;
	}

	.jmu-gallery-card__caption {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 719px) {
	.jmu-gallery-hero,
	.jmu-gallery-showcase,
	.jmu-gallery-cta {
		padding-right: 20px;
		padding-left: 20px;
	}

	.jmu-gallery-hero {
		padding-top: var(--space-lg);
		padding-bottom: var(--space-lg);
	}

	.jmu-gallery-hero__copy {
		gap: var(--space-sm);
	}

	.jmu-gallery-hero__headline {
		font-size: clamp(1.75rem, 7vw, 2.5rem);
		overflow-wrap: break-word;
	}

	.jmu-gallery-hero__actions,
	.jmu-gallery-hero__button {
		width: 100%;
	}

	.jmu-gallery-hero__mosaic {
		height: 260px;
		min-height: 260px;
	}

	.jmu-gallery-showcase__title {
		font-size: var(--text-3xl);
	}

	.page-slug-gallery .jmu-gallery {
		grid-template-columns: 1fr;
	}

	.jmu-gallery-card,
	.jmu-gallery-card:first-child,
	.jmu-gallery-card:nth-child(6n + 4),
	.jmu-gallery-card:nth-child(6n + 6) {
		min-height: 300px;
	}

	.jmu-gallery-cta__actions,
	.jmu-gallery-cta .wp-block-button,
	.jmu-gallery-cta .wp-block-button__link {
		width: 100%;
	}
}

@media (max-width: 480px) {
	.jmu-gallery-hero__headline {
		font-size: clamp(1.75rem, 7vw, 2.125rem);
	}

	.jmu-gallery-hero__mosaic {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-2xs);
		height: 230px;
		min-height: 230px;
	}

	.jmu-gallery-hero__tile {
		border-radius: var(--radius-md);
	}

	.jmu-gallery-hero__tile figcaption {
		right: var(--space-xs);
		bottom: var(--space-xs);
		left: var(--space-xs);
		font-size: var(--text-xs);
	}

	.jmu-lightbox .prev {
		left: var(--space-2xs);
	}

	.jmu-lightbox .next {
		right: var(--space-2xs);
	}
}

@media (prefers-reduced-motion: reduce) {
	.jmu-gallery-hero__button,
	.jmu-gallery-cta .wp-block-button__link,
	.jmu-gallery-rail-cta,
	.jmu-gallery-rail-cta__arrow,
	.jmu-gallery-filter__chip,
	.jmu-gallery-card,
	.jmu-gallery-card__media img,
	.jmu-gallery-card__bar,
	.jmu-gallery-card__caption,
	.jmu-gallery-card__cta span,
	.jmu-gallery-empty__clear,
	.jmu-gallery__load,
	.jmu-lightbox button {
		transition-duration: 0.01ms;
	}

	.jmu-gallery-card:hover,
	.jmu-gallery-rail-cta:hover,
	.jmu-gallery-empty__clear:hover,
	.jmu-gallery__load:hover,
	.jmu-gallery-hero__button:hover,
	.jmu-gallery-cta .wp-block-button__link:hover {
		transform: none;
	}

	.jmu-gallery-card:hover .jmu-gallery-card__media img,
	.jmu-gallery-card:focus-visible .jmu-gallery-card__media img {
		transform: scale(1.01);
	}
}
