.wet-gallery {
	--wet-gallery-gap: 20px;
	--wet-gallery-columns: 5;
	--wet-gallery-aspect-ratio: 16 / 9;
	--wet-gallery-transition: 300ms;
	--wet-gallery-opacity: 1;
	--wet-gallery-grayscale: 100%;
	--wet-gallery-invert: 0%;
	--wet-gallery-brightness: 100%;
	--wet-gallery-scale: 1;
	position: relative;
	width: 100%;
	min-width: 0;
}

.wet-gallery__viewport {
	width: 100%;
	min-width: 0;
}

/* ---------- Item ---------- */

.wet-gallery__item,
.wet-gallery__item:link,
.wet-gallery__item:visited,
.wet-gallery__item:hover,
.wet-gallery__item:focus,
.wet-gallery__item:active {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: transparent;
	color: inherit;
	text-decoration: none !important;
	transition:
		background-color var(--wet-gallery-transition) ease,
		border-color var(--wet-gallery-transition) ease,
		box-shadow var(--wet-gallery-transition) ease,
		transform var(--wet-gallery-transition) ease;
}

.wet-gallery__item::before,
.wet-gallery__item::after {
	display: none;
	content: none;
}

.wet-gallery__image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
	line-height: 0;
	opacity: var(--wet-gallery-opacity);
	filter: grayscale(var(--wet-gallery-grayscale)) invert(var(--wet-gallery-invert)) brightness(var(--wet-gallery-brightness));
	transform: scale(var(--wet-gallery-scale));
	transition:
		filter var(--wet-gallery-transition) ease,
		opacity var(--wet-gallery-transition) ease,
		transform var(--wet-gallery-transition) ease;
}

.wet-gallery__image img,
.wet-gallery__image svg {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
}

/* ---------- Fixed / custom aspect ratio ---------- */

.wet-gallery--ratio-fixed .wet-gallery__item,
.wet-gallery--ratio-custom .wet-gallery__item {
	aspect-ratio: var(--wet-gallery-aspect-ratio);
}

.wet-gallery--ratio-fixed .wet-gallery__image img,
.wet-gallery--ratio-custom .wet-gallery__image img,
.wet-gallery--ratio-fixed .wet-gallery__image svg,
.wet-gallery--ratio-custom .wet-gallery__image svg {
	height: 100%;
}

.wet-gallery--ratio-auto .wet-gallery__image img,
.wet-gallery--ratio-auto .wet-gallery__image svg {
	height: auto;
}

/* ---------- Grid ---------- */

.wet-gallery--grid .wet-gallery__track {
	display: grid;
	grid-template-columns: repeat(var(--wet-gallery-columns), minmax(0, 1fr));
	gap: var(--wet-gallery-gap);
}

/* ---------- Masonry (CSS columns keep natural height) ---------- */

.wet-gallery--masonry .wet-gallery__track {
	column-count: var(--wet-gallery-columns);
	column-gap: var(--wet-gallery-gap);
}

.wet-gallery--masonry .wet-gallery__item {
	display: block;
	width: 100%;
	margin-bottom: var(--wet-gallery-gap);
	break-inside: avoid;
	aspect-ratio: auto;
}

.wet-gallery--masonry .wet-gallery__image {
	display: block;
	height: auto;
}

.wet-gallery--masonry .wet-gallery__image img,
.wet-gallery--masonry .wet-gallery__image svg {
	height: auto;
}

/* ---------- Carousel ---------- */

.wet-gallery--carousel .wet-gallery__viewport {
	overflow: hidden;
}

.wet-gallery--carousel .wet-gallery__track {
	display: flex;
	width: max-content;
	min-width: 100%;
	gap: var(--wet-gallery-gap);
	transition: transform 450ms cubic-bezier(.22, .61, .36, 1);
	touch-action: pan-y;
	will-change: transform;
}

.wet-gallery--carousel .wet-gallery__item {
	flex: 0 0 auto;
}

.wet-gallery--carousel .wet-gallery__item--clone {
	pointer-events: none;
}

.wet-gallery__arrow {
	position: absolute;
	z-index: 4;
	top: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid #d1d5db;
	border-radius: 50%;
	background: #fff;
	color: #111827;
	font: inherit;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	transition: color .2s ease, background-color .2s ease, border-color .2s ease, opacity .2s ease;
}

.wet-gallery__previous {
	inset-inline-start: 12px;
}

.wet-gallery__next {
	inset-inline-end: 12px;
}

.wet-gallery__arrow:disabled {
	opacity: .35;
	cursor: not-allowed;
}

.wet-gallery__arrow:focus-visible,
.wet-gallery__dot:focus-visible,
.wet-gallery__item:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.wet-gallery__dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 18px;
}

.wet-gallery__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #cbd5e1;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease;
}

.wet-gallery__dot.is-active {
	background: #111827;
	transform: scale(1.3);
}

.wet-gallery.is-static .wet-gallery__arrow,
.wet-gallery.is-static .wet-gallery__dots {
	display: none;
}

/* ---------- RTL ---------- */

.wet-gallery--carousel[data-rtl="yes"] .wet-gallery__track {
	direction: rtl;
}

@media (prefers-reduced-motion: reduce) {
	.wet-gallery__track,
	.wet-gallery__item,
	.wet-gallery__image {
		transition-duration: .01ms !important;
	}
}
