/*
|--------------------------------------------------------------------------
| DME Model Gallery 1.3 — Layout-Safe / Elementor-Controlled
|--------------------------------------------------------------------------
|
| The Elementor widget wrapper is deliberately protected from Flexbox
| intrinsic-width collapse.  Parent containers may use align-items:center,
| end or start without reducing the Gallery to a thin strip.
|
| Visual overrides such as background, border, radius, padding, width,
| card radius, navigation and loader appearance are emitted by Elementor
| from the Gallery widget controls and therefore remain per-instance.
|
*/


/*
|--------------------------------------------------------------------------
| Elementor Wrapper Protection
|--------------------------------------------------------------------------
*/

.elementor-widget-dme-model-gallery {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	min-inline-size: 0 !important;

	align-self: stretch;

	box-sizing: border-box;
}


.elementor-widget-dme-model-gallery
>
.elementor-widget-container {
	position: relative;

	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;

	box-sizing: border-box;
}


/*
|--------------------------------------------------------------------------
| Gallery Root
|--------------------------------------------------------------------------
*/

.dme-model-gallery {
	--dme-gallery-columns: 4;
	--dme-gallery-effective-columns: var(--dme-gallery-columns);

	--dme-gallery-gap: 22px;
	--dme-gallery-row-gap: var(--dme-gallery-gap);

	--dme-gallery-min-card-width: 240px;

	position: relative;

	display: block;

	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;

	margin-left: auto;
	margin-right: auto;
}


.dme-model-gallery,
.dme-model-gallery *,
.dme-model-gallery *::before,
.dme-model-gallery *::after {
	box-sizing: border-box;
}


.dme-model-gallery__items,
.dme-model-gallery__viewport,
.dme-model-gallery__carousel-shell,
.dme-model-gallery__loader,
.dme-model-gallery__end {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;
}



/*
|--------------------------------------------------------------------------
| Badge Filters
|--------------------------------------------------------------------------
*/

.dme-model-gallery__filters {
	width: 100%;
	max-width: 100%;
	margin: 0 auto 24px;
}


.dme-model-gallery__filters-shell {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-width: 0;
}


.dme-model-gallery__filters-viewport {
	position: relative;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	scroll-behavior: smooth;
}


.dme-model-gallery__filters-viewport::-webkit-scrollbar {
	display: none;
}


.dme-model-gallery__filters-track {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-width: max-content;
	padding: 2px 1px;
	white-space: nowrap;
}


.dme-model-gallery__filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-height: 42px;
	padding: 10px 20px;
	border: 1px solid rgba(228, 198, 184, 0.42);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.06);
	color: #f8f3ee;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 7px 18px rgba(0, 0, 0, 0.08);
	font-family: Poppins, sans-serif;
	font-size: 12px;
	line-height: 1;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}


.dme-model-gallery__filter:not(.is-active):hover {
	transform: translateY(-1px);
	background: rgba(228, 198, 184, 0.16);
	border-color: #e4c6b8;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
}


.dme-model-gallery__filter.is-active {
	background: #e4c6b8;
	color: #2a1b16;
	border-color: #e4c6b8;
	box-shadow: 0 7px 22px rgba(180, 122, 99, 0.22);
}


.dme-model-gallery__filter-label {
	display: inline-block;
}


.dme-model-gallery__filter-count {
	--dme-bubble-float-distance: 3px;
	--dme-bubble-float-duration: 2.8s;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 24px;
	min-height: 24px;
	margin-left: 8px;
	padding: 4px 7px;
	border: 1px solid var(--dme-filter-active-border, #e4c6b8);
	border-radius: 999px;
	background: var(--dme-filter-active-bg, #e4c6b8);
	color: var(--dme-filter-active-text, #2a1b16);
	box-shadow: 0 5px 14px rgba(0, 0, 0, 0.14);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	will-change: transform;
}


.dme-model-gallery__filter-count.is-zero {
	font-size: 13px;
}


.dme-model-gallery--bubble-custom .dme-model-gallery__filter-count {
	background: #e4c6b8;
	color: #2a1b16;
}


.dme-model-gallery--bubble-animated .dme-model-gallery__filter-count {
	animation: dmeFilterBubbleFloat var(--dme-bubble-float-duration) ease-in-out infinite;
}


.dme-model-gallery--bubble-animated .dme-model-gallery__filter:nth-child(2n) .dme-model-gallery__filter-count {
	animation-delay: -0.7s;
}


.dme-model-gallery--bubble-animated .dme-model-gallery__filter:nth-child(3n) .dme-model-gallery__filter-count {
	animation-delay: -1.2s;
}


@keyframes dmeFilterBubbleFloat {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	35% { transform: translateY(calc(var(--dme-bubble-float-distance) * -1)) rotate(-3deg); }
	70% { transform: translateY(calc(var(--dme-bubble-float-distance) * 0.45)) rotate(2deg); }
}


@media (prefers-reduced-motion: reduce) {
	.dme-model-gallery--bubble-animated .dme-model-gallery__filter-count {
		animation: none !important;
	}
}


.dme-model-gallery__fallback {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	width: 100%;
	margin: 0 0 24px;
	padding: 18px 20px;
	border: 1px solid rgba(228, 198, 184, 0.24);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.045);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}


.dme-model-gallery__fallback[hidden] {
	display: none !important;
}


.dme-model-gallery__fallback-title {
	font-family: Georgia, serif;
	font-size: 20px;
	line-height: 1.25;
	color: #f8f3ee;
}


.dme-model-gallery__fallback-message {
	margin-top: 4px;
	font-family: Poppins, sans-serif;
	font-size: 12px;
	line-height: 1.6;
	color: #b9b5b0;
}


.dme-model-gallery__fallback-actions,
.dme-model-gallery__fallback-popular {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}


.dme-model-gallery__fallback-popular-label {
	font-family: Poppins, sans-serif;
	font-size: 11px;
	font-weight: 600;
	color: #e4c6b8;
}


.dme-model-gallery__fallback-suggestions {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}


.dme-model-gallery__fallback-suggestion,
.dme-model-gallery__fallback-reset {
	appearance: none;
	-webkit-appearance: none;
	font-family: Poppins, sans-serif;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}


.dme-model-gallery__fallback-suggestion {
	padding: 8px 14px;
	border: 1px solid #8c796f;
	border-radius: 999px;
	background: rgba(228, 198, 184, 0.12);
	color: #f8f3ee;
	font-size: 11px;
	line-height: 1;
}


.dme-model-gallery__fallback-suggestion:hover {
	transform: translateY(-1px);
	background: #e4c6b8;
	border-color: #e4c6b8;
	color: #2a1b16;
}


.dme-model-gallery__fallback-reset {
	padding: 0;
	border: 1px solid transparent;
	background: transparent;
	color: #e4c6b8;
	font-size: 11px;
	line-height: 1.2;
}


.dme-model-gallery__fallback-reset:hover {
	color: #f8f3ee;
}


.dme-model-gallery__filters-scroll {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid rgba(248, 243, 238, 0.22);
	border-radius: 50%;
	background: transparent;
	color: #f8f3ee;
	font-family: Georgia, serif;
	font-size: 27px;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}


.dme-model-gallery__filters-scroll:hover {
	transform: translateY(-1px);
	border-color: rgba(228, 198, 184, 0.72);
	background: rgba(248, 243, 238, 0.06);
}


.dme-model-gallery__filters-scroll[disabled] {
	opacity: 0.35;
	cursor: default;
	transform: none;
}


.dme-model-gallery__filters-scroll[hidden] {
	display: none !important;
}


.dme-model-gallery__filters-hint {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	margin: 10px 0 0;
	font-family: Poppins, sans-serif;
	font-size: 12px;
	line-height: 1.5;
	color: rgba(248, 243, 238, 0.76);
}


.dme-model-gallery__filters-hint-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	font-size: 18px;
	line-height: 1;
	color: #e4c6b8;
}


.dme-model-gallery__filters-hint-text {
	min-width: 0;
}


.dme-model-gallery__empty {
	margin: 0 0 18px;
	font-family: Poppins, sans-serif;
	font-size: 12px;
	line-height: 1.5;
	color: rgba(248, 243, 238, 0.76);
}


.dme-model-gallery__empty[hidden],
.dme-model-gallery .dme-model-card[hidden] {
	display: none !important;
}


.dme-model-gallery--filter-single .dme-model-gallery__nav {
	opacity: 0.35;
	pointer-events: none;
}


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

.dme-model-gallery--grid
.dme-model-gallery__items {
	display: grid;

	grid-template-columns:
		repeat(
			var(--dme-gallery-effective-columns),
			minmax(0, 1fr)
		);

	column-gap:
		var(--dme-gallery-gap);

	row-gap:
		var(--dme-gallery-row-gap);

	align-items: start;

	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;
}


.dme-model-gallery--grid
.dme-model-gallery__items
>
.dme-model-card {
	width: 100% !important;
	max-width: 100% !important;

	min-width: 0 !important;
	min-inline-size: 0 !important;

	margin-left: 0 !important;
	margin-right: 0 !important;
}


/*
|--------------------------------------------------------------------------
| Masonry
|--------------------------------------------------------------------------
*/

.dme-model-gallery--masonry
.dme-model-gallery__items {
	column-count:
		var(--dme-gallery-effective-columns);

	column-gap:
		var(--dme-gallery-gap);

	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;
}


.dme-model-gallery--masonry
.dme-model-card {
	display: inline-block;

	width: 100% !important;
	max-width: 100% !important;

	min-width: 0 !important;
	min-inline-size: 0 !important;

	margin:
		0
		0
		var(--dme-gallery-row-gap);

	break-inside: avoid;
	page-break-inside: avoid;

	vertical-align: top;
}


/*
|--------------------------------------------------------------------------
| Masonry Editorial Image Variation
|--------------------------------------------------------------------------
*/

.dme-model-gallery--masonry
.dme-model-card:nth-child(5n+1)
.dme-model-card__image {
	aspect-ratio: 4 / 5;
}


.dme-model-gallery--masonry
.dme-model-card:nth-child(5n+2)
.dme-model-card__image {
	aspect-ratio: 3 / 4;
}


.dme-model-gallery--masonry
.dme-model-card:nth-child(5n+3)
.dme-model-card__image {
	aspect-ratio: 4 / 5;
}


.dme-model-gallery--masonry
.dme-model-card:nth-child(5n+4)
.dme-model-card__image {
	aspect-ratio: 2 / 3;
}


.dme-model-gallery--masonry
.dme-model-card:nth-child(5n+5)
.dme-model-card__image {
	aspect-ratio: 3 / 4;
}


/*
|--------------------------------------------------------------------------
| Carousel Shell
|--------------------------------------------------------------------------
*/

.dme-model-gallery__carousel-shell {
	position: relative;

	display: grid;

	grid-template-columns:
		auto
		minmax(0, 1fr)
		auto;

	align-items: center;

	gap: 12px;

	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;
}


.dme-model-gallery__viewport {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;

	overflow: hidden;
}


.dme-model-gallery--carousel
.dme-model-gallery__track {
	display: flex;

	gap:
		var(--dme-gallery-gap);

	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;

	overflow-x: auto;
	overflow-y: hidden;

	scroll-snap-type:
		x mandatory;

	scroll-behavior:
		smooth;

	-webkit-overflow-scrolling: touch;

	scrollbar-width:
		none;

	padding:
		4px
		1px
		18px;
}


.dme-model-gallery--carousel
.dme-model-gallery__track::-webkit-scrollbar {
	display: none;
}


.dme-model-gallery--carousel
.dme-model-card {
	width: auto !important;
	max-width: none !important;

	min-width: 0 !important;
	min-inline-size: 0 !important;

	flex:
		0
		0
		calc(
			(
				100% -
					(
						(
							var(--dme-gallery-effective-columns) - 1
						)
						*
						var(--dme-gallery-gap)
					)
			)
			/
			var(--dme-gallery-effective-columns)
		);

	scroll-snap-align:
		start;

	scroll-snap-stop:
		normal;
}


/*
|--------------------------------------------------------------------------
| Carousel Navigation
|--------------------------------------------------------------------------
*/

.dme-model-gallery__nav {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 42px;
	height: 42px;

	padding: 0;

	border:
		1px solid
		rgba(
			20,
			53,
			38,
			0.18
		);

	border-radius: 50%;

	background: #f8f3ee;
	color: #143526;

	font-family:
		Georgia,
		serif;

	font-size: 27px;
	line-height: 1;

	cursor: pointer;

	transition:
		transform 0.2s ease,
		background 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease;
}


.dme-model-gallery__nav:hover {
	transform:
		translateY(-1px);

	background:
		#e4c6b8;

	border-color:
		#b47a63;
}


/*
|--------------------------------------------------------------------------
| Internal Card / Mobile Containment Protection
|--------------------------------------------------------------------------
*/

.dme-model-gallery
.dme-model-card,
.dme-model-gallery
.dme-model-card__image,
.dme-model-gallery
.dme-model-card__content,
.dme-model-gallery
.dme-model-card__title,
.dme-model-gallery
.dme-model-card__facts,
.dme-model-gallery
.dme-model-card__fact {
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;
}


.dme-model-gallery
.dme-model-card__image,
.dme-model-gallery
.dme-model-card__image-link,
.dme-model-gallery
.dme-model-card__img {
	max-width: 100%;
	min-width: 0;
}


.dme-model-gallery
.dme-model-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.dme-model-card__title {
	white-space: normal;

	overflow-wrap: anywhere;
	word-break: normal;
}


.dme-model-card__fact dd {
	white-space: normal;

	overflow-wrap: anywhere;
}


/*
|--------------------------------------------------------------------------
| Progressive Loader
|--------------------------------------------------------------------------
*/

.dme-model-gallery__loader {
	display: flex;

	flex-direction: column;

	align-items: center;
	justify-content: center;

	gap: 13px;

	margin-top: 28px;
}


.dme-model-gallery__loader[hidden] {
	display: none !important;
}


.dme-model-gallery__load-more {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	min-height: 42px;

	padding:
		11px
		20px;

	border:
		1px solid
		#b47a63;

	border-radius:
		999px;

	background:
		#143526;

	color:
		#f8f3ee;

	font-family:
		Poppins,
		sans-serif;

	font-size: 12px;
	line-height: 1;

	cursor: pointer;

	transition:
		background 0.2s ease,
		color 0.2s ease,
		transform 0.2s ease;
}


.dme-model-gallery__load-more:hover {
	background:
		#e4c6b8;

	color:
		#2a1b16;

	transform:
		translateY(-1px);
}


/*
|--------------------------------------------------------------------------
| Infinite-scroll Button Remains Available as Fallback
|--------------------------------------------------------------------------
*/

.dme-model-gallery[
	data-loading-method="infinite"
]
.dme-model-gallery__load-more {
	position: absolute;

	width: 1px;
	height: 1px;

	padding: 0;
	margin: -1px;

	overflow: hidden;

	clip:
		rect(
			0,
			0,
			0,
			0
		);

	white-space: nowrap;

	border: 0;
}


.dme-model-gallery[
	data-loading-method="button"
]
.dme-model-gallery__sentinel {
	display: none;
}


.dme-model-gallery__sentinel {
	width: 100%;
	height: 1px;
}


/*
|--------------------------------------------------------------------------
| Loading Indicator
|--------------------------------------------------------------------------
*/

.dme-model-gallery__skeletons {
	display: flex;

	align-items: center;

	gap: 8px;
}


.dme-model-gallery__skeletons[hidden] {
	display: none !important;
}


.dme-model-gallery__skeletons span {
	display: block;

	width: 10px;
	height: 10px;

	border-radius: 50%;

	background:
		#b47a63;

	animation:
		dmeGalleryPulse
		1s
		ease-in-out
		infinite
		alternate;
}


.dme-model-gallery__skeletons span:nth-child(2) {
	animation-delay:
		0.12s;
}


.dme-model-gallery__skeletons span:nth-child(3) {
	animation-delay:
		0.24s;
}


@keyframes dmeGalleryPulse {

	from {
		opacity: 0.25;

		transform:
			scale(0.82);
	}

	to {
		opacity: 1;

		transform:
			scale(1);
	}
}


/*
|--------------------------------------------------------------------------
| End Message
|--------------------------------------------------------------------------
*/

.dme-model-gallery__end {
	margin:
		24px
		0
		0;

	text-align:
		center;

	font-family:
		Poppins,
		sans-serif;

	font-size:
		12px;

	line-height:
		1.5;

	color:
		#7b6b63;
}


.dme-model-gallery__end[hidden] {
	display: none !important;
}


/*
|--------------------------------------------------------------------------
| Responsive Fallback Values
|--------------------------------------------------------------------------
|
| Elementor responsive control CSS can override these values per widget.
|
*/

@media (max-width: 1024px) {

	.dme-model-gallery {
		--dme-gallery-columns: 2;
		--dme-gallery-min-card-width: 210px;
		--dme-gallery-gap: 18px;
		--dme-gallery-row-gap: 18px;
	}
}


@media (max-width: 767px) {

	.elementor-widget-dme-model-gallery,
	.elementor-widget-dme-model-gallery
	>
	.elementor-widget-container,
	.dme-model-gallery,
	.dme-model-gallery__items,
	.dme-model-gallery__viewport,
	.dme-model-gallery__carousel-shell {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		min-inline-size: 0;
	}


	.dme-model-gallery {
		--dme-gallery-columns: 1;
		--dme-gallery-min-card-width: 160px;
		--dme-gallery-gap: 14px;
		--dme-gallery-row-gap: 14px;
	}


	.dme-model-gallery__carousel-shell {
		grid-template-columns:
			1fr;
	}


	.dme-model-gallery__nav {
		display: none;
	}

	.dme-model-gallery__filters {
		margin-bottom: 18px;
	}

	.dme-model-gallery__filters-track {
		gap: 10px;
	}

	.dme-model-gallery__filter {
		min-height: 38px;
		padding: 9px 16px;
	}

	.dme-model-gallery__filters-hint {
		margin-top: 8px;
	}
}


@media (max-width: 767px) {
	.dme-model-gallery__fallback {
		gap: 12px;
		padding: 16px;
	}

	.dme-model-gallery__fallback-actions,
	.dme-model-gallery__fallback-popular {
		align-items: flex-start;
	}
}


/*
|--------------------------------------------------------------------------
| Phase 2 — Advanced Discovery Engine
|--------------------------------------------------------------------------
*/

.dme-model-gallery--advanced-discovery {
	--dme-discovery-ivory: #f8f3ee;
	--dme-discovery-soft: #e4c6b8;
	--dme-discovery-bronze: #b47a63;
	--dme-discovery-deep: #03110d;
	--dme-discovery-panel: rgba(8, 30, 23, 0.96);
	--dme-discovery-line: rgba(228, 198, 184, 0.28);
}

.dme-model-gallery__discovery {
	position: relative;
	z-index: 5;
	width: 100%;
	margin: 0 0 24px;
	padding: 24px;
	border: 1px solid var(--dme-discovery-line);
	border-radius: 18px;
	background: linear-gradient(145deg, rgba(10, 36, 27, 0.98), rgba(3, 17, 13, 0.98));
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.16);
	color: var(--dme-discovery-ivory);
}

.dme-model-gallery__discovery-heading-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 20px;
}

.dme-model-gallery__discovery-eyebrow {
	margin-bottom: 7px;
	font-family: Poppins, sans-serif;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: .19em;
	text-transform: uppercase;
	color: var(--dme-discovery-soft);
}

.dme-model-gallery__discovery-heading {
	margin: 0;
	font-family: Georgia, serif;
	font-size: clamp(24px, 2.1vw, 34px);
	font-weight: 400;
	line-height: 1.08;
	color: var(--dme-discovery-ivory);
}

.dme-model-gallery__discovery-grid {
	display: grid;
	grid-template-columns: 1.35fr repeat(3, minmax(150px, 1fr));
	gap: 14px;
	align-items: end;
}

.dme-model-gallery__discovery-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-width: 0;
	font-family: Poppins, sans-serif;
}

.dme-model-gallery__discovery-field > span {
	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: #d7c9c1;
}

.dme-model-gallery__discovery-field input,
.dme-model-gallery__discovery-field select,
.dme-model-gallery__mobile-sort select {
	width: 100%;
	min-height: 46px;
	padding: 0 14px;
	border: 1px solid rgba(228, 198, 184, 0.25);
	border-radius: 10px;
	outline: 0;
	background: rgba(255, 255, 255, 0.045);
	color: var(--dme-discovery-ivory);
	font-family: Poppins, sans-serif;
	font-size: 12px;
	line-height: 1.2;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.dme-model-gallery__discovery-field select,
.dme-model-gallery__mobile-sort select {
	appearance: auto;
	-webkit-appearance: auto;
}

.dme-model-gallery__discovery-field select option,
.dme-model-gallery__mobile-sort select option {
	background: #08231a;
	color: #f8f3ee;
}

.dme-model-gallery__discovery-search-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.dme-model-gallery__discovery-search-wrap > span {
	position: absolute;
	left: 14px;
	z-index: 1;
	font-size: 20px;
	line-height: 1;
	color: var(--dme-discovery-soft);
	pointer-events: none;
}

.dme-model-gallery__discovery-search-wrap input {
	padding-left: 42px;
}

.dme-model-gallery__discovery-field input:focus,
.dme-model-gallery__discovery-field select:focus,
.dme-model-gallery__mobile-sort select:focus {
	border-color: var(--dme-discovery-soft);
	box-shadow: 0 0 0 2px rgba(228, 198, 184, 0.12);
}

.dme-model-gallery__discovery-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 18px;
}

.dme-model-gallery__popular {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	min-width: 0;
}

.dme-model-gallery__popular-label {
	font-family: Poppins, sans-serif;
	font-size: 10px;
	font-weight: 600;
	color: var(--dme-discovery-soft);
}

.dme-model-gallery__popular-chips {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.dme-model-gallery__popular-chips button,
.dme-model-gallery__active-filter {
	appearance: none;
	-webkit-appearance: none;
	min-height: 32px;
	padding: 7px 12px;
	border: 1px solid rgba(228, 198, 184, .28);
	border-radius: 999px;
	background: rgba(255,255,255,.035);
	color: #f8f3ee;
	font-family: Poppins, sans-serif;
	font-size: 10px;
	line-height: 1.1;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.dme-model-gallery__popular-chips button:hover,
.dme-model-gallery__popular-chips button.is-active,
.dme-model-gallery__active-filter:hover {
	background: var(--dme-discovery-soft);
	border-color: var(--dme-discovery-soft);
	color: #2a1b16;
}

.dme-model-gallery__discovery-clear {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	padding: 6px 0;
	border: 0;
	background: transparent;
	color: var(--dme-discovery-soft);
	font-family: Poppins, sans-serif;
	font-size: 11px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.dme-model-gallery__discovery-close,
.dme-model-gallery__discovery-apply,
.dme-model-gallery__mobile-toolbar,
.dme-model-gallery__discovery-backdrop {
	display: none;
}

.dme-model-gallery__active-filters {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 14px;
}

.dme-model-gallery__active-filters[hidden] {
	display: none !important;
}

.dme-model-gallery__active-filter span {
	margin-left: 3px;
	font-size: 13px;
}

.dme-model-gallery__results-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 0 16px;
}

.dme-model-gallery__results-count {
	font-family: Georgia, serif;
	font-size: 24px;
	line-height: 1.15;
	color: var(--dme-discovery-ivory);
}

.dme-model-gallery__discovery-empty {
	margin: 0 0 22px;
	padding: 20px;
	border: 1px solid var(--dme-discovery-line);
	border-radius: 14px;
	background: rgba(255,255,255,.035);
	font-family: Poppins, sans-serif;
	font-size: 12px;
	line-height: 1.6;
	color: #cfc5bf;
}

.dme-model-gallery__discovery-empty[hidden],
.dme-model-card.is-dme-filtered-out,
.dme-model-card[hidden] {
	display: none !important;
}

@media (max-width: 1100px) {
	.dme-model-gallery__discovery-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.dme-model-gallery__discovery-field--search {
		grid-column: span 2;
	}
}

@media (max-width: 767px) {
	html.dme-discovery-lock,
	html.dme-discovery-lock body {
		overflow: hidden !important;
	}

	.dme-model-gallery__mobile-toolbar {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px;
		margin: 0 0 12px;
	}

	.dme-model-gallery__mobile-filter-button {
		display: inline-flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		min-height: 42px;
		padding: 0 14px;
		border: 1px solid rgba(228, 198, 184, .34);
		border-radius: 999px;
		background: rgba(255,255,255,.045);
		color: #f8f3ee;
		font-family: Poppins, sans-serif;
		font-size: 11px;
		font-weight: 600;
		cursor: pointer;
	}

	.dme-model-gallery__mobile-filter-count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 23px;
		height: 23px;
		padding: 0 6px;
		border-radius: 999px;
		background: var(--dme-discovery-soft);
		color: #2a1b16;
		font-size: 10px;
	}

	.dme-model-gallery__mobile-filter-count[hidden] {
		display: none !important;
	}

	.dme-model-gallery__mobile-sort select {
		width: auto;
		min-width: 112px;
		min-height: 42px;
		border-radius: 999px;
		font-size: 10px;
		padding: 0 10px;
	}

	.dme-model-gallery__discovery {
		position: fixed;
		z-index: 1000002;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		max-height: min(82vh, 720px);
		margin: 0;
		padding: 20px 16px calc(16px + env(safe-area-inset-bottom));
		border-width: 1px 0 0;
		border-radius: 22px 22px 0 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		box-shadow: 0 -24px 60px rgba(0,0,0,.38);
		transform: translateY(108%);
		visibility: hidden;
		transition: transform .28s ease, visibility .28s ease;
	}

	.dme-model-gallery.is-discovery-open .dme-model-gallery__discovery {
		transform: translateY(0);
		visibility: visible;
	}

	.dme-model-gallery__discovery-backdrop {
		position: fixed;
		z-index: 1000001;
		inset: 0;
		display: block;
		background: rgba(0,0,0,.62);
		backdrop-filter: blur(2px);
	}

	.dme-model-gallery__discovery-backdrop[hidden] {
		display: none !important;
	}

	.dme-model-gallery__discovery-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		width: 38px;
		height: 38px;
		padding: 0;
		border: 1px solid rgba(228,198,184,.28);
		border-radius: 50%;
		background: rgba(255,255,255,.04);
		color: #f8f3ee;
		font-size: 24px;
		line-height: 1;
		cursor: pointer;
	}

	.dme-model-gallery__discovery-heading-row {
		margin-bottom: 16px;
	}

	.dme-model-gallery__discovery-heading {
		font-size: 25px;
	}

	.dme-model-gallery__discovery-grid {
		grid-template-columns: 1fr 1fr;
		gap: 12px 10px;
	}

	.dme-model-gallery__discovery-field--search {
		grid-column: 1 / -1;
	}

	.dme-model-gallery__discovery-field input,
	.dme-model-gallery__discovery-field select {
		min-height: 44px;
		font-size: 11px;
	}

	.dme-model-gallery__discovery-footer {
		align-items: flex-start;
		flex-direction: column;
		margin-top: 16px;
	}

	.dme-model-gallery__popular {
		align-items: flex-start;
		flex-direction: column;
	}

	.dme-model-gallery__popular-chips {
		flex-wrap: nowrap;
		width: 100%;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.dme-model-gallery__popular-chips::-webkit-scrollbar {
		display: none;
	}

	.dme-model-gallery__discovery-apply {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 46px;
		margin-top: 18px;
		padding: 0 18px;
		border: 0;
		border-radius: 999px;
		background: var(--dme-discovery-soft);
		color: #2a1b16;
		font-family: Poppins, sans-serif;
		font-size: 12px;
		font-weight: 700;
		cursor: pointer;
	}

	.dme-model-gallery__active-filters {
		flex-wrap: nowrap;
		width: 100%;
		margin-bottom: 10px;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.dme-model-gallery__active-filters::-webkit-scrollbar {
		display: none;
	}

	.dme-model-gallery__active-filter {
		flex: 0 0 auto;
	}

	.dme-model-gallery__results-bar {
		margin-bottom: 12px;
	}

	.dme-model-gallery__results-count {
		font-size: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dme-model-gallery__discovery {
		transition: none !important;
	}
}

/*
|--------------------------------------------------------------------------
| Phase 2.1 — Discovery UI Calibration
|--------------------------------------------------------------------------
| Preserves the Phase 2 filtering engine. Desktop receives additional
| breathing room; mobile swaps native select interaction for DME choice
| chips inside the existing bottom-sheet drawer.
*/

.dme-model-gallery__mobile-filter-groups {
	display: none;
}

@media (min-width: 768px) {
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery {
		margin-bottom: 28px;
		padding: 28px;
		border-radius: 20px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-heading-row {
		margin-bottom: 24px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-grid {
		gap: 16px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field {
		gap: 8px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field input,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field select {
		min-height: 50px;
		padding-left: 15px;
		padding-right: 15px;
		border-radius: 11px;
		font-size: 12.5px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-search-wrap input {
		padding-left: 44px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-footer {
		margin-top: 22px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__popular-chips button {
		min-height: 34px;
		padding: 8px 13px;
	}
}

@media (max-width: 767px) {
	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-toolbar {
		grid-template-columns: minmax(0, 1fr) minmax(118px, auto);
		gap: 9px;
		margin-bottom: 13px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-filter-button,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button {
		appearance: none;
		-webkit-appearance: none;
		display: inline-flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px;
		min-height: 44px;
		padding: 0 14px;
		border: 1px solid rgba(228, 198, 184, .34);
		border-radius: 999px;
		background: rgba(255,255,255,.045);
		color: #f8f3ee;
		font-family: Poppins, sans-serif;
		font-size: 11px;
		line-height: 1;
		cursor: pointer;
		box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button {
		justify-content: center;
		flex-direction: column;
		gap: 3px;
		padding-left: 13px;
		padding-right: 13px;
		text-align: center;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button > span {
		font-size: 8px;
		font-weight: 700;
		letter-spacing: .13em;
		text-transform: uppercase;
		color: #cdbdb5;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button strong {
		max-width: 112px;
		overflow: hidden;
		font-size: 10px;
		font-weight: 600;
		line-height: 1.15;
		text-overflow: ellipsis;
		white-space: nowrap;
		color: #f8f3ee;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-filter-button:focus-visible,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button:focus-visible,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice:focus-visible,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-clear:focus-visible,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-apply:focus-visible {
		outline: 2px solid var(--dme-discovery-soft);
		outline-offset: 2px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery {
		max-height: min(88vh, 780px);
		padding: 20px 16px calc(16px + env(safe-area-inset-bottom));
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-heading-row {
		position: relative;
		z-index: 4;
		margin-bottom: 14px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-heading {
		font-size: 26px;
		line-height: 1.06;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-grid {
		display: block;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-grid > .dme-model-gallery__discovery-field:not(.dme-model-gallery__discovery-field--search) {
		display: none !important;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field--search {
		display: flex;
		width: 100%;
		margin-bottom: 18px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field--search input {
		min-height: 48px;
		border-radius: 12px;
		font-size: 12px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-filter-groups {
		display: block;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-group {
		margin: 0 0 19px;
		padding: 0;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-title,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-summary {
		font-family: Poppins, sans-serif;
		font-size: 9px;
		font-weight: 700;
		line-height: 1.2;
		letter-spacing: .14em;
		text-transform: uppercase;
		color: #d7c9c1;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-title {
		margin-bottom: 9px;
	}

	.dme-model-gallery--advanced-discovery details.dme-model-gallery__mobile-choice-group {
		padding: 0;
		border: 1px solid rgba(228,198,184,.18);
		border-radius: 14px;
		background: rgba(255,255,255,.022);
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-summary {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		min-height: 46px;
		padding: 0 13px;
		cursor: pointer;
		list-style: none;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-summary::-webkit-details-marker {
		display: none;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-summary::after {
		content: '+';
		flex: 0 0 auto;
		font-size: 18px;
		font-weight: 400;
		line-height: 1;
		letter-spacing: 0;
		color: var(--dme-discovery-soft);
	}

	.dme-model-gallery--advanced-discovery details[open] > .dme-model-gallery__mobile-choice-summary::after {
		content: '−';
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-summary-note {
		margin-left: auto;
		font-size: 8px;
		font-weight: 500;
		letter-spacing: .04em;
		text-transform: none;
		color: #9f918a;
	}

	.dme-model-gallery--advanced-discovery details .dme-model-gallery__mobile-choices {
		padding: 0 12px 13px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choices {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 8px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice {
		appearance: none;
		-webkit-appearance: none;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 38px;
		padding: 9px 14px;
		border: 1px solid rgba(228,198,184,.28);
		border-radius: 999px;
		background: rgba(255,255,255,.035);
		color: #f8f3ee;
		font-family: Poppins, sans-serif;
		font-size: 10px;
		font-weight: 500;
		line-height: 1.1;
		text-align: center;
		cursor: pointer;
		transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice.is-active {
		background: var(--dme-discovery-soft);
		border-color: var(--dme-discovery-soft);
		color: #2a1b16;
		box-shadow: 0 7px 18px rgba(180,122,99,.14);
	}

	.dme-model-gallery--advanced-discovery [data-dme-mobile-group="availability"] .dme-model-gallery__mobile-choices,
	.dme-model-gallery--advanced-discovery [data-dme-mobile-group="sort"] .dme-model-gallery__mobile-choices {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dme-model-gallery--advanced-discovery [data-dme-mobile-group="availability"] .dme-model-gallery__mobile-choice,
	.dme-model-gallery--advanced-discovery [data-dme-mobile-group="sort"] .dme-model-gallery__mobile-choice {
		width: 100%;
		border-radius: 11px;
		padding-left: 10px;
		padding-right: 10px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-footer {
		display: block;
		margin-top: 2px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__popular {
		display: none;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-clear {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 39px;
		padding: 0 15px;
		border: 1px solid rgba(228,198,184,.28);
		border-radius: 999px;
		background: rgba(255,255,255,.035);
		color: var(--dme-discovery-soft);
		font-size: 10px;
		font-weight: 600;
		text-decoration: none;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-apply {
		position: sticky;
		z-index: 5;
		bottom: 0;
		display: inline-flex;
		gap: 8px;
		min-height: 50px;
		margin-top: 16px;
		box-shadow: 0 -14px 34px rgba(3,17,13,.72), 0 9px 22px rgba(180,122,99,.14);
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-apply-count {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 24px;
		height: 24px;
		padding: 0 7px;
		border-radius: 999px;
		background: rgba(42,27,22,.1);
		font-size: 10px;
	}
}

/*
|--------------------------------------------------------------------------
| Phase 2.2 — Final Accessibility & Real-Device Polish
|--------------------------------------------------------------------------
| Narrow production polish only. Filtering/query behaviour is unchanged.
*/

.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field input::placeholder {
	color: rgba(248, 243, 238, .68);
	opacity: 1;
}

.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field select,
.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-field input {
	color: #f8f3ee;
	-webkit-text-fill-color: #f8f3ee;
	opacity: 1;
}

@media (max-width: 767px) {
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery {
		max-height: min(88dvh, 780px);
		padding-top: 30px;
		padding-bottom: calc(20px + env(safe-area-inset-bottom));
		scrollbar-gutter: stable;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery::before {
		content: '';
		position: absolute;
		top: 9px;
		left: 50%;
		width: 42px;
		height: 4px;
		border-radius: 999px;
		background: rgba(248, 243, 238, .30);
		transform: translateX(-50%);
		pointer-events: none;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-toolbar {
		grid-template-columns: minmax(0, 1fr) minmax(124px, auto);
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button strong {
		max-width: 122px;
		font-size: 11px;
		line-height: 1.12;
		color: #fffaf5;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button > span {
		color: #dfcec4;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice {
		min-height: 44px;
		padding-top: 10px;
		padding-bottom: 10px;
		touch-action: manipulation;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-choice-summary {
		min-height: 48px;
		touch-action: manipulation;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-filter-button,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__mobile-sort-button,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-close,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-clear,
	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-apply {
		touch-action: manipulation;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-close {
		width: 40px;
		height: 40px;
	}

	.dme-model-gallery--advanced-discovery .dme-model-gallery__discovery-apply {
		bottom: max(8px, env(safe-area-inset-bottom));
		min-height: 52px;
		margin-bottom: max(0px, env(safe-area-inset-bottom));
	}
}

