/* Built from om-catalog.css by tools/build-css.py. Do not edit. */
/* Overnight Mountings Catalog — base styling.
   Colors and fonts are injected as CSS variables from the admin settings page.
   Defaults follow the live site's Elementor kit: Arapey headings, Inter body,
   #00111C primary, flat square surfaces — no radii, no shadows. */

/* ---------- Base: the plugin's type, not the site's global text styles ----------
   Elementor Site Settings › Typography (and many themes) style every p and
   h1–h6 on the page. Inside the plugin's blocks, text inherits the
   plugin's type instead; each element's own rule below still sets its
   look, and widget Style controls still win.
   Kept first on purpose: this rule ties with the plugin's own one-class
   rules (after tools/build-css.py) and must lose to them. */

html :where(.om-catalog-wrap, .om-product-wrap, .om-single-product, .om-related, .om-quick-view, .om-diamonds, .om-builder, .om-reels, .om-reels-viewer, .om-inquiry, .om-size-guide, .om-lightbox, .om-compare-dialog, .om-compare-tray, .om-end-dialog, .om-sticky-bar, .om-back, .om-toast, .om-search) :is(p, li, dd, dt, figcaption, blockquote):not(.om-x) {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	font-style: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	color: inherit;
}

html :where(.om-catalog-wrap, .om-product-wrap, .om-single-product, .om-related, .om-quick-view, .om-diamonds, .om-builder, .om-reels, .om-reels-viewer, .om-inquiry, .om-size-guide, .om-lightbox, .om-compare-dialog, .om-compare-tray, .om-end-dialog, .om-sticky-bar, .om-back, .om-toast, .om-search) :is(h1, h2, h3, h4, h5, h6):not(.om-x) {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-weight: 400;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
}

/* ---------- Catalog grid ---------- */

html body .om-catalog-grid {
	display: grid;
	grid-template-columns: repeat(var(--om-columns, 3), 1fr);
	gap: 40px 28px;
	margin: 48px 0;
}

@media (max-width: 900px) {
	html body .om-catalog-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px 20px;
	}
}

@media (max-width: 600px) {
	html body .om-catalog-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px 16px;
	}
}

html body .om-card {
	display: block;
	text-decoration: none;
	color: var(--om-color-text, #464646);
	background: var(--om-color-background, #fff);
}

html body .om-card-image {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #fff;
	margin-bottom: 18px;
}

html body .om-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.om-card:hover .om-card-image img {
	transform: scale(1.045);
}

html body .om-card-body {
	text-align: center;
	padding: 0 8px;
}

html body .om-card-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 18px;
	font-weight: 400;
	margin: 0 0 7px;
	color: var(--om-color-primary, #00111C);
	line-height: 1.35;
	text-wrap: balance;
	transition: opacity 0.2s ease;
}

.om-card:hover .om-card-title {
	opacity: 0.65;
}

html body .om-card-variant {
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #6e6e6e;
	margin: 0;
}

/* Inside an Elementor layout the section owns spacing and width; keep only
   the typography inheritance of .om-single-product. */

html body .om-single-product--widget {
	max-width: none;
	margin: 0;
	padding: 0;
}

html body .om-single-product--layout {
	padding-top: 0;
	padding-bottom: 0;
}

/* ---------- Catalog wrapper (AJAX target) ---------- */

html body .om-catalog-wrap {
	transition: opacity 0.25s ease;
}

.om-catalog-wrap.om-loading {
	opacity: 0.45;
	pointer-events: none;
}

/* ---------- Visitor filter bar ---------- */

html body .om-filter-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 40px 0 8px;
	font-family: var(--om-font-body, Inter, sans-serif);
}

.om-catalog-wrap .om-filter-pill {
	padding: 9px 16px;
	border: 1px solid #d8d8d8;
	text-decoration: none;
	color: var(--om-color-text, #464646);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.om-catalog-wrap .om-filter-pill:hover {
	border-color: var(--om-color-primary, #00111C);
	color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-filter-pill.is-active {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

/* The line switcher sits above the collection bar, slightly more prominent. */
html body .om-line-bar {
	margin-bottom: 4px;
}

.om-line-bar .om-filter-pill {
	font-size: 13px;
	padding: 10px 20px;
}

.om-line-bar + .om-collection-bar {
	margin-top: 0;
}

/* ---------- Filter design presets ----------
   pills is the default look above; presets restyle the same markup. */

/* Underline: quiet text tabs, active gets a thin rule. */
.om-filters-underline .om-filter-pill {
	border-color: transparent;
	border-bottom: 1px solid transparent;
	padding: 8px 4px;
	background: transparent;
}

.om-filters-underline .om-filter-pill:hover {
	border-color: transparent;
	border-bottom-color: rgba(0, 0, 0, 0.25);
}

.om-filters-underline .om-filter-pill.is-active {
	background: transparent;
	color: var(--om-color-primary, #00111C);
	border-color: transparent;
	border-bottom-color: var(--om-color-primary, #00111C);
}

/* Buttons: soft filled squares, active goes solid. */
.om-filters-buttons .om-filter-pill {
	background: #f4f3f1;
	border-color: transparent;
}

.om-filters-buttons .om-filter-pill:hover {
	background: #eae8e4;
	border-color: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-filters-buttons .om-filter-pill.is-active {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

/* Minimal: plain lowercase-feel text, active simply darkens. */
.om-filters-minimal .om-filter-pill {
	border: none;
	padding: 6px 6px;
	background: transparent;
	text-transform: none;
	font-size: 14px;
	letter-spacing: 0.02em;
	color: #6e6e6e;
}

.om-filters-minimal .om-filter-pill:hover {
	color: var(--om-color-primary, #00111C);
}

.om-filters-minimal .om-filter-pill.is-active {
	background: transparent;
	color: var(--om-color-primary, #00111C);
	font-weight: 500;
}

/* ---------- Card layouts ----------
   classic is the default look above; the others restyle the same markup. */

/* Editorial: quiet left-aligned text under the image. */
.om-layout-editorial .om-card-body {
	text-align: left;
	padding: 0 2px;
}

/* Boxed: framed gallery card with the photo inset. */
.om-layout-boxed .om-card {
	border: 1px solid rgba(0, 0, 0, 0.1);
	padding: 14px 14px 22px;
	transition: border-color 0.25s ease;
}

.om-layout-boxed .om-card:hover {
	border-color: var(--om-color-primary, #00111C);
}

.om-layout-boxed .om-card-image {
	margin-bottom: 16px;
}

/* Overlay: title sits over the lower edge of the photo on a soft scrim. */
.om-layout-overlay .om-card {
	position: relative;
	overflow: hidden;
}

.om-layout-overlay .om-card-image {
	margin-bottom: 0;
}

.om-layout-overlay .om-card-body {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 56px 16px 18px;
	background: linear-gradient(to top, rgba(0, 17, 28, 0.55), rgba(0, 17, 28, 0));
}

.om-layout-overlay .om-card-title {
	color: #fff;
}

.om-layout-overlay .om-card:hover .om-card-title {
	opacity: 1;
}

.om-layout-overlay .om-card-variant {
	color: rgba(255, 255, 255, 0.78);
}

/* ---------- Pagination ---------- */

html body .om-pagination {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 40px 0 56px;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 13px;
}

.om-pagination a.page-numbers,
html body .om-pagination span {
	min-width: 40px;
	padding: 10px 12px;
	text-align: center;
	border: 1px solid transparent;
	color: var(--om-color-text, #464646);
	text-decoration: none;
	letter-spacing: 0.04em;
	transition: border-color 0.2s ease;
}

.om-pagination a.page-numbers:hover,
.om-pagination a.page-numbers:focus-visible {
	border-color: var(--om-color-primary, #00111C);
	color: var(--om-color-primary, #00111C);
}

.om-pagination .current {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

/* ---------- Single product page ---------- */

html body .om-single-product {
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px 24px 80px;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-weight: 300;
	color: var(--om-color-text, #464646);
	background: var(--om-color-background, #fff);
}

html body .om-product-wrap {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 64px;
	align-items: start;
}

@media (max-width: 800px) {
	html body .om-product-wrap {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}

/* Gallery: vertical filmstrip of angles beside a large hero image. */

html body .om-product-gallery {
	display: grid;
	grid-template-columns: var(--om-thumb-size, 76px) minmax(0, 1fr);
	gap: var(--om-gallery-gap, 16px);
	align-items: start;
	min-width: 0;
}

html body .om-main-media {
	grid-column: 2;
	grid-row: 1;
	position: relative;
	min-width: 0;
}

.om-product-gallery .om-zoom {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #fff;
	overflow: hidden;
	cursor: zoom-in;
	line-height: 0;
}

.om-product-gallery .om-zoom[hidden] {
	display: none;
}

html body .om-main-image {
	width: 100%;
	height: auto;
	background: #fff;
	transition: opacity 0.35s ease, transform 0.25s ease;
}

.om-zoom.is-zooming .om-main-image {
	transform: scale(2);
}

html body .om-main-video {
	aspect-ratio: 1 / 1;
	background: #f4f3f1;
}

.om-main-video .om-video {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

html body .om-thumbs {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: var(--om-thumb-gap, 12px);
	max-height: 640px;
	overflow-y: auto;
	scrollbar-width: none;
}

html body .om-thumbs::-webkit-scrollbar {
	display: none;
}

.om-product-gallery .om-thumb-btn {
	position: relative;
	flex: 0 0 auto;
	width: var(--om-thumb-size, 76px);
	height: var(--om-thumb-size, 76px);
	margin: 0;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, 0.08);
	background: #fff;
	cursor: pointer;
	opacity: 0.75;
	line-height: 0;
	transition: border-color 0.2s ease, opacity 0.2s ease;
}

.om-product-gallery .om-thumb-btn:hover,
.om-product-gallery .om-thumb-btn:focus-visible {
	opacity: 1;
	border-color: rgba(0, 0, 0, 0.3);
}

.om-product-gallery .om-thumb-btn.is-active {
	opacity: 1;
	border-color: var(--om-color-primary, #00111C);
}

html body .om-thumb {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

html body .om-thumb--video {
	background: #f4f3f1;
}

html body .om-play {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(0, 17, 28, 0.72);
}

html body .om-play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 55%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent #fff;
}

/* ---------- Product video experience (1.7) ---------- */

html body .om-main-video {
	position: relative;
	overflow: hidden;
}

.om-main-video[hidden] {
	display: none;
}

.om-main-video video.om-video {
	animation: om-video-in 0.5s ease both;
}

@keyframes om-video-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* "Watch video" pill over the photo. */
.om-product-gallery .om-watch-video {
	position: absolute;
	left: 16px;
	bottom: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 8px 16px 8px 8px;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 4px 18px rgba(0, 17, 28, 0.14);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, inherit);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.om-product-gallery .om-watch-video[hidden] {
	display: none;
}

.om-product-gallery .om-watch-video:hover,
.om-product-gallery .om-watch-video:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 6px 22px rgba(0, 17, 28, 0.2);
	outline: none;
}

html body .om-watch-icon {
	position: relative;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--om-color-primary, #00111C);
}

html body .om-watch-icon::before {
	content: "";
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	border: 2px solid var(--om-color-primary, #00111C);
	opacity: 0;
	animation: om-pulse 2.4s ease-out infinite;
}

html body .om-watch-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 55%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 5px 0 5px 8px;
	border-color: transparent transparent transparent #fff;
}

@keyframes om-pulse {
	0% { transform: scale(0.85); opacity: 0.55; }
	70%, 100% { transform: scale(1.35); opacity: 0; }
}

/* Round corner buttons on the playing video: full screen + sound. */
.om-product-gallery .om-media-expand,
.om-main-video .om-sound {
	position: absolute;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 2px 10px rgba(0, 17, 28, 0.14);
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.om-product-gallery .om-media-expand[hidden] {
	display: none;
}

.om-product-gallery .om-media-expand:hover,
.om-main-video .om-sound:hover,
.om-product-gallery .om-media-expand:focus-visible,
.om-main-video .om-sound:focus-visible {
	background: #fff;
	transform: scale(1.06);
	outline: none;
}

.om-product-gallery .om-media-expand {
	top: 14px;
	right: 14px;
}

.om-main-video .om-sound {
	right: 14px;
	bottom: 14px;
}

/* Expand icon: four corners. */
html body .om-media-expand span {
	position: relative;
	width: 14px;
	height: 14px;
	background:
		linear-gradient(currentColor, currentColor) 0 0 / 5px 1.5px,
		linear-gradient(currentColor, currentColor) 0 0 / 1.5px 5px,
		linear-gradient(currentColor, currentColor) 100% 0 / 5px 1.5px,
		linear-gradient(currentColor, currentColor) 100% 0 / 1.5px 5px,
		linear-gradient(currentColor, currentColor) 0 100% / 5px 1.5px,
		linear-gradient(currentColor, currentColor) 0 100% / 1.5px 5px,
		linear-gradient(currentColor, currentColor) 100% 100% / 5px 1.5px,
		linear-gradient(currentColor, currentColor) 100% 100% / 1.5px 5px;
	background-repeat: no-repeat;
}

/* Speaker icon (muted: with a slash; .is-on: with sound waves). */
.om-main-video .om-sound::before {
	content: "";
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4V5z' fill='black'/%3E%3Cpath d='m23 9-6 6M17 9l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4V5z' fill='black'/%3E%3Cpath d='m23 9-6 6M17 9l6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.om-main-video .om-sound.is-on::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4V5z' fill='black'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4V5z' fill='black'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E");
}

/* Video thumbnail: dimmed poster, play badge, "Video" label. */
.om-thumb--video .om-thumb {
	filter: brightness(0.82);
}

.om-thumb--video .om-play {
	width: 26px;
	height: 26px;
	bottom: 14px;
}

html body .om-thumb-label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 5px;
	color: #fff;
	font-family: var(--om-font-body, inherit);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1;
	text-align: center;
	text-transform: uppercase;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

.om-thumb--video:not(:has(.om-thumb)) .om-thumb-label {
	color: var(--om-color-primary, #00111C);
	text-shadow: none;
}

@media (max-width: 600px) {
	.om-product-gallery .om-watch-video {
		left: 10px;
		bottom: 10px;
		padding: 6px 14px 6px 6px;
		font-size: 12px;
	}

	.om-product-gallery .om-media-expand,
	.om-main-video .om-sound {
		width: 36px;
		height: 36px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html body .om-watch-icon::before,
	.om-main-video video.om-video {
		animation: none;
	}
}

@media (max-width: 800px) {
	html body .om-product-gallery {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	html body .om-main-media {
		grid-column: 1;
	}

	html body .om-thumbs {
		grid-column: 1;
		grid-row: 2;
		flex-direction: row;
		max-height: none;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x proximity;
		padding-bottom: 2px;
	}

	.om-product-gallery .om-thumb-btn {
		width: 64px;
		height: 64px;
		scroll-snap-align: start;
	}
}

/* Details column */

html body .om-line-label {
	font-size: 11px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: #6e6e6e;
	margin: 0 0 14px;
}

html body .om-product-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 36px;
	font-weight: 400;
	line-height: 1.2;
	margin: 0 0 10px;
	color: var(--om-color-primary, #00111C);
	text-wrap: balance;
}

html body .om-style-meta {
	font-size: 11px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #6e6e6e;
	margin: 0 0 26px;
	display: flex;
	gap: 8px;
	align-items: baseline;
}

html body .om-price {
	font-size: 26px;
	font-weight: 300;
	letter-spacing: 0.02em;
	color: var(--om-color-primary, #00111C);
	margin-bottom: 30px;
}

html body .om-price-loading {
	opacity: 0.45;
	transition: opacity 0.2s ease;
}

.om-price [hidden] {
	display: none;
}

.om-price.is-fallback {
	font-size: 20px;
	letter-spacing: 0.04em;
}

html body .om-price a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(0, 0, 0, 0.25);
	transition: border-color 0.2s ease;
}

.om-price a:hover {
	border-bottom-color: currentColor;
}

/* Buttons (Call Us, Book an Appointment, ...). Scoped under
   .om-single-product so theme / Elementor-kit link styles (which target
   "a" with higher specificity than a single class) can't restyle them. */

.om-single-product .om-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: var(--om-btn-justify, flex-start);
	gap: 12px;
	margin: 0 0 32px;
}

.om-single-product .om-actions--stacked {
	flex-direction: column;
	align-items: var(--om-btn-align, flex-start);
}

.om-single-product .om-actions .om-btn {
	flex-grow: var(--om-btn-grow, 0);
}

.om-single-product .om-actions--stacked .om-btn {
	width: auto;
}

.om-single-product .om-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	min-height: 48px;
	margin: 0;
	padding: 0 28px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: 0;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.om-single-product .om-btn[hidden] {
	display: none;
}

.om-single-product .om-btn:focus-visible {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 3px;
}

.om-single-product .om-btn-icon {
	display: inline-flex;
	font-size: 14px;
	line-height: 1;
}

.om-single-product .om-btn-icon svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.om-single-product .om-btn--solid {
	background-color: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-single-product .om-btn--solid:hover {
	background-color: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-single-product .om-btn--outline {
	background-color: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-single-product .om-btn--outline:hover {
	background-color: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-single-product .om-btn--text {
	min-height: 0;
	padding: 6px 0;
	border-color: transparent;
	background: transparent;
	color: var(--om-color-primary, #00111C);
	text-decoration: underline;
	text-underline-offset: 5px;
}

.om-single-product .om-btn--text:hover {
	opacity: 0.65;
}

/* Only admins see this: why no price is shown. */
html body .om-admin-note {
	margin: -18px 0 28px;
	padding: 10px 14px;
	border-left: 3px solid #dba617;
	background: #fcf9e8;
	font-size: 13px;
	line-height: 1.5;
	color: #50440a;
}

@media (max-width: 600px) {
	.om-single-product .om-actions--inline .om-btn,
	.om-single-product .om-actions--builder .om-btn {
		flex: 1 1 100%;
	}
}

html body .om-description {
	font-size: 15px;
	line-height: 1.8;
	margin-bottom: 32px;
}

/* Option selects */

html body .om-options-form {
	display: flex;
	flex-wrap: wrap;
	gap: 18px 16px;
	margin-bottom: 40px;
}

html body .om-options-form label {
	display: flex;
	flex-direction: column;
	font-size: 11px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: #6e6e6e;
	gap: 8px;
}

html body .om-options-form select {
	appearance: none;
	-webkit-appearance: none;
	padding: 12px 40px 12px 14px;
	border: 1px solid #d8d8d8;
	border-radius: 0;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 14px;
	font-weight: 300;
	letter-spacing: 0.02em;
	color: var(--om-color-text, #464646);
	min-width: 170px;
	background-color: var(--om-color-background, #fff);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23777' stroke-width='1.2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.om-options-form select:hover,
.om-options-form select:focus {
	border-color: var(--om-color-primary, #00111C);
	outline: none;
}

/* Section headings (Stone Details, Other Sizes / Carats) */

html body .om-product-details h3 {
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--om-color-primary, #00111C);
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	padding-top: 26px;
	margin: 0 0 16px;
}

html body .om-stone-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 36px;
}

html body .om-stone-table td {
	padding: 11px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	font-size: 14px;
	font-weight: 300;
}

.om-stone-table td:last-child {
	text-align: right;
	color: #6e6e6e;
}

/* Variant chips */

html body .om-variants {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 8px;
}

.om-product-wrap .om-variant-link {
	padding: 9px 15px;
	border: 1px solid #d8d8d8;
	text-decoration: none;
	color: var(--om-color-text, #464646);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.om-product-wrap .om-variant-link:hover {
	border-color: var(--om-color-primary, #00111C);
	color: var(--om-color-primary, #00111C);
}

.om-product-wrap .om-variant-link.is-current {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
	pointer-events: none;
}

/* States */

html body .om-error {
	padding: 24px;
	background: #fdecea;
	color: #a12f26;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 14px;
	line-height: 1.6;
}

html body .om-error a {
	color: inherit;
}

html body .om-empty {
	text-align: center;
	padding: 48px 0;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 14px;
	letter-spacing: 0.04em;
	color: #6e6e6e;
}

/* ---------- Catalog toolbar: result count + active filters ---------- */

html body .om-catalog-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin: 28px 0 0;
	font-family: var(--om-font-body, Inter, sans-serif);
}

html body .om-result-count {
	margin: 0;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-active-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.om-catalog-wrap .om-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 10px 6px 12px;
	background: #f4f3f1;
	color: var(--om-color-primary, #00111C);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.om-catalog-wrap .om-chip:hover {
	background: #e9e6e1;
}

.om-catalog-wrap .om-chip span {
	font-size: 15px;
	line-height: 1;
	opacity: 0.6;
}

.om-catalog-wrap .om-clear-filters {
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--om-color-text, #464646);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.om-catalog-toolbar + .om-catalog-grid {
	margin-top: 20px;
}

.om-empty .om-clear-filters {
	display: inline-block;
	margin-top: 8px;
}

html body .om-empty p {
	margin: 0 0 8px;
}

/* ---------- Dropdown filters ---------- */

html body .om-filter-dropdowns {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 40px 0 8px;
	font-family: var(--om-font-body, Inter, sans-serif);
}

html body .om-filter-select {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 200px;
	flex: 0 1 240px;
}

html body .om-filter-select-label {
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-filter-nav,
.om-diamonds .om-filter-nav {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	padding: 12px 40px 12px 14px;
	border: 1px solid #d8d8d8;
	border-radius: 0;
	background-color: var(--om-color-background, #fff);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23777' stroke-width='1.2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	font-family: inherit;
	font-size: 14px;
	font-weight: 300;
	color: var(--om-color-text, #464646);
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.om-catalog-wrap .om-filter-nav:hover,
.om-catalog-wrap .om-filter-nav:focus,
.om-diamonds .om-filter-nav:hover,
.om-diamonds .om-filter-nav:focus {
	border-color: var(--om-color-primary, #00111C);
	outline: none;
}

/* ---------- Sidebar filters ---------- */

html body .om-catalog-layout {
	display: grid;
	grid-template-columns: var(--om-sidebar-width, 250px) minmax(0, 1fr);
	gap: var(--om-sidebar-gap, 56px);
	align-items: start;
	margin-top: 40px;
}

.om-filterpos-right .om-catalog-layout {
	grid-template-columns: minmax(0, 1fr) var(--om-sidebar-width, 250px);
}

.om-filterpos-right .om-filter-sidebar {
	order: 2;
}

.om-catalog-main > .om-catalog-toolbar:first-child {
	margin-top: 0;
}

.om-catalog-main > .om-catalog-grid:first-child {
	margin-top: 0;
}

html body .om-filter-sidebar {
	font-family: var(--om-font-body, Inter, sans-serif);
	min-width: 0;
}

html body .om-filter-panel {
	margin: 0;
}

/* The summary is the mobile "Filters" button; hidden on wide screens. */
html body .om-filter-toggle {
	display: none;
	list-style: none;
}

html body .om-filter-toggle::-webkit-details-marker {
	display: none;
}

html body .om-filter-panel-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 16px;
	margin-bottom: 22px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

html body .om-filter-panel-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	color: var(--om-color-primary, #00111C);
}

.om-filter-group + .om-filter-group {
	margin-top: 26px;
	padding-top: 26px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

html body .om-filter-heading {
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--om-color-primary, #00111C);
}

html body .om-filter-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

html body .om-filter-list li {
	margin: 0;
	padding: 0;
}

.om-catalog-wrap .om-filter-link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 7px 0;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.35;
	color: var(--om-color-text, #464646);
	text-decoration: none;
	transition: color 0.2s ease;
}

/* A quiet radio-style marker. */
.om-catalog-wrap .om-filter-link::before {
	content: "";
	flex: 0 0 auto;
	width: 13px;
	height: 13px;
	box-sizing: border-box;
	border: 1px solid #c9c9c9;
	border-radius: 50%;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.om-catalog-wrap .om-filter-link:hover {
	color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-filter-link:hover::before {
	border-color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-filter-link.is-active {
	color: var(--om-color-primary, #00111C);
	font-weight: 500;
}

.om-catalog-wrap .om-filter-link.is-active::before {
	border-color: var(--om-color-primary, #00111C);
	background-color: var(--om-color-primary, #00111C);
	box-shadow: inset 0 0 0 3px var(--om-color-background, #fff);
}

.om-catalog-wrap .om-filter-link.is-sub {
	padding-left: 25px;
	font-size: 13px;
}

html body .om-swatch {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	flex: 0 0 auto;
	border: 1px solid rgba(0, 0, 0, 0.12);
}

html body .om-swatch--white { background: linear-gradient(135deg, #f4f4f4, #d6d6d6); }
html body .om-swatch--yellow { background: linear-gradient(135deg, #f3dc9c, #d1a94a); }
html body .om-swatch--rose { background: linear-gradient(135deg, #f3cfc2, #d99a86); }

.om-catalog-wrap .om-filter-link.has-swatch::before {
	display: none;
}

.om-catalog-wrap .om-filter-link.has-swatch.is-active .om-swatch {
	box-shadow: 0 0 0 2px var(--om-color-background, #fff), 0 0 0 3px var(--om-color-primary, #00111C);
}

html body .om-filter-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-size: 11px;
	letter-spacing: 0;
}

@media (max-width: 900px) {
	html body .om-catalog-layout,
	.om-filterpos-right .om-catalog-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
		margin-top: 28px;
	}

	.om-filterpos-right .om-filter-sidebar {
		order: 0;
	}

	.om-catalog-wrap .om-filter-sidebar {
		position: static;
	}

	html body .om-filter-toggle {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		padding: 12px 18px;
		border: 1px solid var(--om-color-primary, #00111C);
		font-size: 12px;
		font-weight: 500;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--om-color-primary, #00111C);
		cursor: pointer;
		user-select: none;
	}

	html body .om-filter-toggle-icon {
		width: 14px;
		height: 10px;
		background:
			linear-gradient(currentColor, currentColor) 0 0 / 100% 1px no-repeat,
			linear-gradient(currentColor, currentColor) 50% 50% / 70% 1px no-repeat,
			linear-gradient(currentColor, currentColor) 50% 100% / 40% 1px no-repeat;
	}

	.om-filter-panel[open] .om-filter-panel-body {
		margin-top: 16px;
		padding: 20px;
		border: 1px solid rgba(0, 0, 0, 0.1);
	}

	.om-filter-panel-head .om-filter-panel-title {
		font-size: 18px;
	}

	html body .om-filter-dropdowns {
		margin-top: 28px;
	}

	html body .om-filter-select {
		flex: 1 1 100%;
	}
}

/* Long sidebar lists: first options + "Show all". */
.om-filter-list.is-collapsed .om-more-item {
	display: none;
}

html body .om-filter-more {
	display: none;
}

.om-filter-list.is-collapsed .om-filter-more {
	display: block;
}

.om-catalog-wrap .om-filter-more-btn {
	margin: 6px 0 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--om-color-primary, #00111C);
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}

/* =========================================================
   1.3: search, sort, card prices, lightbox, inquiry,
   diamond search, ring builder — and responsive rules.
   ========================================================= */

.om-catalog-wrap .screen-reader-text,
.om-diamonds .screen-reader-text,
.om-inquiry .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

html body .om-catalog-wrap,
html body .om-diamonds,
html body .om-builder {
	box-sizing: border-box;
	max-width: 100%;
}

html body .om-catalog-wrap *,
html body .om-diamonds *,
html body .om-builder *,
html body .om-inquiry * {
	box-sizing: border-box;
}

/* ---------- Search ---------- */

html body .om-search {
	position: relative;
	display: flex;
	align-items: stretch;
	margin: 28px 0 0;
	font-family: var(--om-font-body, Inter, sans-serif);
}

.om-catalog-main > .om-search:first-child {
	margin-top: 0;
}

html body .om-search-icon {
	position: absolute;
	left: 16px;
	top: 50%;
	width: 15px;
	height: 15px;
	margin-top: -8px;
	border: 1.5px solid #9a9a9a;
	border-radius: 50%;
	pointer-events: none;
}

html body .om-search-icon::after {
	content: "";
	position: absolute;
	right: -5px;
	bottom: -4px;
	width: 6px;
	height: 1.5px;
	background: #9a9a9a;
	transform: rotate(45deg);
}

.om-catalog-wrap .om-search-input {
	flex: 1 1 auto;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding: 0 16px 0 44px;
	border: 1px solid #d8d8d8;
	border-right: 0;
	border-radius: 0;
	background: var(--om-color-background, #fff);
	font-family: inherit;
	font-size: 15px;
	font-weight: 300;
	color: var(--om-color-text, #464646);
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.2s ease;
}

.om-catalog-wrap .om-search-input:focus {
	outline: none;
	border-color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-search-input::-webkit-search-cancel-button {
	cursor: pointer;
}

.om-catalog-wrap .om-search-submit {
	flex: 0 0 auto;
	height: 48px;
	margin: 0;
	padding: 0 26px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: 0;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-family: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

html body .om-suggest {
	position: absolute;
	z-index: 30;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	margin: 0;
	padding: 6px 0;
	list-style: none;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.1);
	box-shadow: 0 18px 40px rgba(0, 17, 28, 0.12);
	max-height: min(70vh, 460px);
	overflow-y: auto;
}

html body .om-suggest li {
	margin: 0;
}

.om-catalog-wrap .om-suggest-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 8px 14px;
	text-decoration: none;
	color: var(--om-color-text, #464646);
}

.om-catalog-wrap .om-suggest-item:hover,
.om-catalog-wrap .om-suggest-item.is-active {
	background: #f6f5f3;
}

html body .om-suggest-img {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	background: #f4f3f1;
}

html body .om-suggest-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

html body .om-suggest-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

html body .om-suggest-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 16px;
	color: var(--om-color-primary, #00111C);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

html body .om-suggest-meta {
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-suggest-empty {
	padding: 12px 16px;
	font-size: 14px;
	color: #6e6e6e;
}

.om-catalog-wrap .om-suggest-all {
	display: block;
	width: 100%;
	margin: 4px 0 0;
	padding: 12px 16px;
	border: 0;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
	background: none;
	font-family: inherit;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: left;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

/* ---------- Toolbar: count + chips | sort ---------- */

html body .om-toolbar-start {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	min-width: 0;
}

html body .om-sort {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #6e6e6e;
	white-space: nowrap;
}

.om-catalog-wrap .om-sort .om-filter-nav,
.om-diamonds .om-sort .om-filter-nav {
	width: auto;
	min-width: 170px;
	padding-top: 9px;
	padding-bottom: 9px;
	font-size: 13px;
	text-transform: none;
	letter-spacing: 0.02em;
}

/* ---------- Cards: second image on hover, starting price ---------- */

html body .om-card-image {
	position: relative;
}

.om-card-image .om-card-hover {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.45s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) {
	.om-card:hover .om-card-image.has-hover .om-card-hover {
		opacity: 1;
	}
}

html body .om-card-price {
	min-height: 20px;
	margin: 8px 0 0;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.02em;
	color: var(--om-color-primary, #00111C);
}

html body .om-card-price-skeleton {
	display: inline-block;
	width: 84px;
	height: 12px;
	background: linear-gradient(90deg, #f0eeeb 0%, #f8f7f5 50%, #f0eeeb 100%);
	background-size: 200% 100%;
	animation: om-shimmer 1.2s ease-in-out infinite;
}

@keyframes om-shimmer {
	from { background-position: 200% 0; }
	to { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
	html body .om-card-price-skeleton {
		animation: none;
	}

	html body .om-card-image img,
	html body .om-main-image,
	html body .om-catalog-wrap {
		transition: none !important;
	}
}

/* ---------- Lightbox ---------- */

html.om-lb-open {
	overflow: hidden;
}

html body .om-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.97);
	font-family: var(--om-font-body, Inter, sans-serif);
}

.om-lightbox[hidden] {
	display: none;
}

html body .om-lb-stage {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 64px 72px;
}

html body .om-lb-img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	user-select: none;
}

.om-lb-img[hidden],
.om-lb-video[hidden] {
	display: none;
}

html body .om-lb-video {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

html body .om-lb-video video,
html body .om-lb-video iframe {
	display: block;
	max-width: 100%;
	max-height: 100%;
	border: 0;
	background: #000;
}

html body .om-lb-video video {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: transparent;
}

html body .om-lb-video iframe {
	width: min(100%, calc((100vh - 128px) * 16 / 9));
	aspect-ratio: 16 / 9;
	height: auto;
}

html body .om-lightbox button {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--om-color-primary, #00111C);
	font-size: 34px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.om-lightbox button:hover,
.om-lightbox button:focus-visible {
	background: rgba(0, 0, 0, 0.06);
	outline: none;
}

html body .om-lb-close { top: 14px; right: 14px; }
html body .om-lb-prev { left: 14px; top: 50%; margin-top: -24px !important; }
html body .om-lb-next { right: 14px; top: 50%; margin-top: -24px !important; }

.om-lightbox.is-single .om-lb-prev,
.om-lightbox.is-single .om-lb-next {
	display: none;
}

html body .om-lb-count {
	position: absolute;
	bottom: 18px;
	left: 0;
	right: 0;
	margin: 0;
	text-align: center;
	font-size: 12px;
	letter-spacing: 0.14em;
	color: #6e6e6e;
}

@media (max-width: 600px) {
	html body .om-lb-stage {
		padding: 64px 8px;
	}

	html body .om-lb-prev,
	html body .om-lb-next {
		top: auto !important;
		bottom: 8px;
		margin-top: 0 !important;
	}
}

/* ---------- Builder button on product pages ---------- */

.om-single-product .om-actions--builder {
	margin-bottom: 16px;
}

.om-single-product .om-actions--builder + .om-actions {
	margin-top: 0;
}

/* ---------- Inquiry form ---------- */

html body .om-inquiry {
	margin: 32px 0 0;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	font-family: var(--om-font-body, Inter, sans-serif);
	color: var(--om-color-text, #464646);
}

html body .om-inquiry--open {
	border-top: 0;
	margin: 0;
}

html body .om-inquiry-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 22px 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
	list-style: none;
	cursor: pointer;
}

html body .om-inquiry-toggle::-webkit-details-marker {
	display: none;
}

html body .om-inquiry-toggle::after {
	content: "+";
	font-size: 20px;
	font-weight: 300;
	letter-spacing: 0;
	transition: transform 0.2s ease;
}

.om-inquiry[open] > .om-inquiry-toggle::after {
	transform: rotate(45deg);
}

html body .om-inquiry-heading {
	margin: 0 0 8px;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	font-weight: 400;
	color: var(--om-color-primary, #00111C);
}

html body .om-inquiry-body {
	padding-bottom: 8px;
}

html body .om-inquiry-intro {
	margin: 0 0 18px;
	font-size: 14px;
	line-height: 1.6;
}

html body .om-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

html body .om-field-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 14px;
}

html body .om-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 14px;
}

.om-field[hidden],
.om-field-row[hidden],
.om-inquiry-submit[hidden] {
	display: none;
}

html body .om-field label {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6e6e6e;
}

.om-inquiry .om-field input,
.om-inquiry .om-field select,
.om-inquiry .om-field textarea {
	width: 100%;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid #d8d8d8;
	border-radius: 0;
	background: var(--om-color-background, #fff);
	font-family: inherit;
	font-size: 15px;
	font-weight: 300;
	color: var(--om-color-text, #464646);
	box-shadow: none;
}

.om-inquiry .om-field input:focus,
.om-inquiry .om-field select:focus,
.om-inquiry .om-field textarea:focus {
	outline: none;
	border-color: var(--om-color-primary, #00111C);
}

.om-inquiry .om-inquiry-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 4px 0 0;
	padding: 0 32px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: 0;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-family: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.om-inquiry .om-inquiry-submit.is-busy {
	opacity: 0.55;
	pointer-events: none;
}

html body .om-inquiry-note {
	margin: 0 0 14px;
	padding: 10px 12px;
	border-left: 2px solid var(--om-gold, #b8925a);
	background: var(--om-soft, #f7f5f1);
	color: var(--om-muted, #5f5f5f);
	font-size: 13px;
	line-height: 1.5;
}

html body .om-inquiry-status {
	margin: 0 0 14px;
	padding: 12px 14px;
	font-size: 14px;
	line-height: 1.5;
}

.om-inquiry-status.is-success {
	background: #eef6ef;
	color: #1f5130;
}

.om-inquiry-status.is-error {
	background: #fdecea;
	color: #a12f26;
}

/* ---------- Diamond search ---------- */

html body .om-diamonds {
	font-family: var(--om-font-body, Inter, sans-serif);
	color: var(--om-color-text, #464646);
	transition: opacity 0.25s ease;
}

.om-diamonds.om-loading {
	opacity: 0.45;
	pointer-events: none;
}

html body .om-diamond-filters {
	margin: 0 0 8px;
	padding: 28px;
	background: #f8f7f5;
}

html body .om-df-group {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

html body .om-df-group legend {
	margin: 0 0 12px;
	padding: 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
}

html body .om-df-shape-list {
	display: grid;
	grid-template-columns: repeat(10, minmax(0, 1fr));
	gap: 8px;
}

html body .om-df-shape {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 12px 4px 10px;
	border: 1px solid transparent;
	background: #fff;
	font-size: 11px;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.om-df-shape:hover {
	border-color: rgba(0, 0, 0, 0.2);
}

.om-df-shape.is-checked {
	border-color: var(--om-color-primary, #00111C);
	color: var(--om-color-primary, #00111C);
}

.om-diamonds input[type="checkbox"],
.om-diamonds input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.om-diamonds label:focus-within {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
}

html body .om-shape-icon {
	width: 28px;
	height: 28px;
	flex: 0 0 auto;
}

html body .om-df-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 24px 28px;
	margin-top: 24px;
}

html body .om-df-range-inputs {
	display: flex;
	align-items: center;
	gap: 8px;
}

html body .om-df-range-inputs label {
	flex: 1 1 0;
	min-width: 0;
}

.om-diamonds .om-df-range-inputs input {
	width: 100%;
	height: 42px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid #d8d8d8;
	border-radius: 0;
	background: #fff;
	font-family: inherit;
	font-size: 14px;
	color: var(--om-color-text, #464646);
}

.om-diamonds .om-df-range-inputs input:focus {
	outline: none;
	border-color: var(--om-color-primary, #00111C);
}

html body .om-df-segmented {
	display: flex;
	border: 1px solid #d8d8d8;
	background: #fff;
}

html body .om-df-segmented label {
	position: relative;
	flex: 1 1 0;
	padding: 11px 8px;
	text-align: center;
	font-size: 13px;
	cursor: pointer;
	white-space: nowrap;
}

html body .om-df-segmented label + label {
	border-left: 1px solid #d8d8d8;
}

.om-df-segmented label.is-checked {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

html body .om-df-more {
	margin-top: 22px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

html body .om-df-more > summary {
	padding-top: 16px;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

.om-df-more .om-df-row {
	margin-top: 16px;
}

html body .om-df-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

html body .om-df-chip {
	position: relative;
	min-width: 44px;
	padding: 8px 10px;
	border: 1px solid #d8d8d8;
	background: #fff;
	text-align: center;
	font-size: 13px;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.om-df-chip:hover {
	border-color: rgba(0, 0, 0, 0.4);
}

.om-df-chip.is-checked {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

html body .om-df-actions {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 22px;
}

.om-diamonds .om-df-apply {
	min-height: 44px;
	margin: 0;
	padding: 0 26px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: 0;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-family: inherit;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

.om-diamonds .om-df-reset {
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--om-color-text, #464646);
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Scripts apply filters as they change; the button is for no-JS. */
.om-js .om-diamonds .om-df-apply {
	display: none;
}

/* Results table (rows become cards on phones) */

html body .om-diamond-table {
	margin-top: 18px;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

html body .om-dt-head,
html body .om-dt-row {
	display: grid;
	grid-template-columns: 1.4fr 0.8fr 0.7fr 0.8fr 1fr 1fr 1fr 32px;
	align-items: center;
	gap: 12px;
	padding: 14px 8px;
}

html body .om-dt-head {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6e6e6e;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

html body .om-diamond {
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

html body .om-dt-row {
	font-size: 14px;
	list-style: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

html body .om-dt-row::-webkit-details-marker {
	display: none;
}

.om-dt-row:hover,
.om-diamond[open] > .om-dt-row {
	background: #f8f7f5;
}

html body .om-dt-shape {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--om-color-primary, #00111C);
}

.om-dt-shape .om-shape-icon {
	width: 22px;
	height: 22px;
}

html body .om-dt-price {
	font-weight: 500;
	color: var(--om-color-primary, #00111C);
}

html body .om-dt-more::before {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	margin: 0 auto;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.om-diamond[open] .om-dt-more::before {
	transform: rotate(-135deg);
}

html body .om-diamond-detail {
	display: grid;
	grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
	gap: 32px;
	padding: 20px 8px 28px;
}

html body .om-dd-media {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

html body .om-dd-media img,
html body .om-dd-media iframe,
html body .om-dd-placeholder {
	width: 100%;
	aspect-ratio: 1 / 1;
	border: 0;
	background: #f4f3f1;
	object-fit: contain;
}

html body .om-dd-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #b9b3aa;
}

.om-dd-placeholder .om-shape-icon {
	width: 40%;
	height: 40%;
}

html body .om-dd-video-link {
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--om-color-primary, #00111C);
}

html body .om-dd-title {
	margin: 0 0 6px;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	color: var(--om-color-primary, #00111C);
}

html body .om-dd-price {
	margin: 0 0 18px;
	font-size: 20px;
	font-weight: 300;
	color: var(--om-color-primary, #00111C);
}

html body .om-dd-specs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 24px;
	margin: 0 0 20px;
}

html body .om-dd-specs > div {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	font-size: 13px;
}

html body .om-dd-specs dt {
	color: #6e6e6e;
}

html body .om-dd-specs dd {
	margin: 0;
	text-align: right;
}

html body .om-dd-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.om-diamonds .om-btn,
.om-builder .om-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 24px;
	border: 1px solid var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.om-diamonds .om-btn--solid {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-diamonds .om-btn--solid:hover {
	background: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-diamonds .om-btn--outline {
	background: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-diamonds .om-btn--outline:hover {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

/* ---------- Ring builder ---------- */

html body .om-builder {
	font-family: var(--om-font-body, Inter, sans-serif);
	color: var(--om-color-text, #464646);
}

html body .om-builder-heading {
	margin: 0 0 24px;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 34px;
	font-weight: 400;
	text-align: center;
	color: var(--om-color-primary, #00111C);
}

html body .om-builder-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0 0 36px;
	padding: 0;
	list-style: none;
	border: 1px solid rgba(0, 0, 0, 0.1);
}

html body .om-builder-step {
	min-width: 0;
	margin: 0;
}

.om-builder-step + .om-builder-step {
	border-left: 1px solid rgba(0, 0, 0, 0.1);
}

html body .om-builder-step > a,
html body .om-builder-step > span {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 100%;
	padding: 16px 20px;
	color: inherit;
	text-decoration: none;
}

.om-builder-step > a:hover {
	background: #f8f7f5;
}

.om-builder-step.is-current {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

html body .om-step-num {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 13px;
}

.om-builder-step.is-done:not(.is-current) .om-step-num {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

html body .om-step-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

html body .om-step-label {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

html body .om-step-summary {
	margin-top: 3px;
	font-size: 13px;
	opacity: 0.75;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

html body .om-builder-notice {
	margin: 0 0 24px;
	padding: 12px 16px;
	background: #fcf9e8;
	font-size: 14px;
}

html body .om-builder-start {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.om-builder .om-builder-choice {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 48px 32px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	text-align: center;
	text-decoration: none;
	color: var(--om-color-text, #464646);
	transition: border-color 0.25s ease, transform 0.25s ease;
}

.om-builder .om-builder-choice:hover {
	border-color: var(--om-color-primary, #00111C);
	transform: translateY(-2px);
}

html body .om-builder-choice-icon svg {
	width: 56px;
	height: 56px;
	color: var(--om-color-primary, #00111C);
}

html body .om-builder-choice-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 24px;
	color: var(--om-color-primary, #00111C);
}

html body .om-builder-choice-text {
	max-width: 340px;
	font-size: 14px;
	line-height: 1.6;
}

html body .om-builder-review {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

html body .om-review-items {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

html body .om-review-item {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	gap: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

html body .om-review-media img,
.om-review-media .om-dd-placeholder {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: #f4f3f1;
}

html body .om-review-info p {
	margin: 0 0 6px;
}

html body .om-review-kicker {
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-review-title,
html body .om-review-title a {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
}

html body .om-review-meta {
	font-size: 13px;
	color: #6e6e6e;
}

html body .om-review-price {
	font-size: 18px;
	color: var(--om-color-primary, #00111C);
}

.om-builder .om-review-change,
.om-builder .om-review-restart {
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--om-color-text, #464646);
	text-decoration: underline;
	text-underline-offset: 4px;
}

html body .om-review-summary {
	position: sticky;
	top: 24px;
	padding: 28px;
	background: #f8f7f5;
}

html body .om-review-total-label {
	margin: 0;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-review-total {
	margin: 4px 0 6px;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 34px;
	color: var(--om-color-primary, #00111C);
}

html body .om-review-note {
	margin: 0 0 22px;
	font-size: 13px;
	line-height: 1.5;
	color: #6e6e6e;
}

.om-review-summary .om-inquiry {
	margin-bottom: 18px;
}

/* ---------- Responsive ---------- */

@media (max-width: 1100px) {
	html body .om-df-shape-list {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	html body .om-product-wrap {
		gap: 40px;
	}

	html body .om-builder-review {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	html body .om-review-summary {
		position: static;
	}
}

@media (max-width: 900px) {
	html body .om-single-product {
		padding: 32px 16px 56px;
	}

	html body .om-product-title {
		font-size: 30px;
	}

	html body .om-dt-head {
		display: none;
	}

	/* Each diamond row becomes a compact card. */
	html body .om-dt-row {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 8px 12px;
		padding: 16px 8px;
	}

	.om-dt-row > .om-dt-shape {
		grid-column: 1 / span 3;
		font-size: 15px;
	}

	.om-dt-row > .om-dt-price {
		grid-column: 4;
		grid-row: 1;
		text-align: right;
	}

	.om-dt-row > .om-dt-more {
		display: none;
	}

	.om-dt-row > span[data-label] {
		display: flex;
		flex-direction: column;
		gap: 2px;
		font-size: 13px;
	}

	.om-dt-row > span[data-label]::before {
		content: attr(data-label);
		font-size: 10px;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: #6e6e6e;
	}

	html body .om-diamond-detail {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	html body .om-dd-media {
		max-width: 360px;
	}

	html body .om-diamond-filters {
		padding: 20px 16px;
	}

	html body .om-builder-heading {
		font-size: 28px;
	}
}

@media (max-width: 700px) {
	html body .om-builder-steps {
		grid-template-columns: minmax(0, 1fr);
	}

	.om-builder-step + .om-builder-step {
		border-left: 0;
		border-top: 1px solid rgba(0, 0, 0, 0.1);
	}

	html body .om-builder-step > a,
	html body .om-builder-step > span {
		padding: 12px 16px;
	}

	html body .om-builder-start {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}

	.om-builder .om-builder-choice {
		padding: 30px 20px;
	}

	html body .om-review-item {
		grid-template-columns: 110px minmax(0, 1fr);
		gap: 16px;
	}

	html body .om-review-summary {
		padding: 20px 16px;
	}

	html body .om-review-total {
		font-size: 28px;
	}
}

@media (max-width: 600px) {
	html body .om-catalog-toolbar {
		align-items: flex-start;
	}

	html body .om-sort {
		width: 100%;
		justify-content: space-between;
	}

	.om-catalog-wrap .om-sort .om-filter-nav,
	.om-diamonds .om-sort .om-filter-nav {
		flex: 1 1 auto;
		min-width: 0;
	}

	.om-catalog-wrap .om-search-submit {
		padding: 0 16px;
	}

	.om-catalog-wrap .om-search-input {
		font-size: 16px; /* stops iOS zooming into the field */
	}

	html body .om-field-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.om-inquiry .om-field input,
	.om-inquiry .om-field select,
	.om-inquiry .om-field textarea,
	.om-diamonds .om-df-range-inputs input {
		font-size: 16px;
	}

	.om-inquiry .om-inquiry-submit {
		width: 100%;
	}

	html body .om-df-shape-list {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		padding-bottom: 4px;
	}

	html body .om-df-shape {
		flex: 0 0 74px;
		scroll-snap-align: start;
	}

	html body .om-dd-specs {
		grid-template-columns: minmax(0, 1fr);
	}

	.om-dd-actions .om-btn {
		flex: 1 1 100%;
	}

	html body .om-card-body {
		padding-left: 2px;
		padding-right: 2px;
	}

	html body .om-card-title {
		font-size: 15px;
	}

	html body .om-pagination {
		flex-wrap: wrap;
	}

	html body .om-pagination a,
	html body .om-pagination span {
		min-width: 38px;
		padding: 9px 8px;
	}

	html body .om-options-form {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 10px;
	}

	html body .om-options-form select {
		min-width: 0;
		width: 100%;
		font-size: 16px;
	}
}

@media (max-width: 380px) {
	html body .om-options-form {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ---------- Related / recently viewed rows ---------- */

html body .om-related {
	--om-related-gap: 28px;
	margin: 72px 0 0;
	font-family: var(--om-font-body, Inter, sans-serif);
}

.om-related[hidden] {
	display: none;
}

.om-single-product > .om-related {
	padding-top: 48px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.om-related + .om-related {
	margin-top: 56px;
}

html body .om-related-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 28px;
}

html body .om-related-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 30px;
	font-weight: 400;
	color: var(--om-color-primary, #00111C);
}

.om-related .om-related-track {
	grid-template-columns: repeat(var(--om-related-columns, 4), minmax(0, 1fr));
	gap: var(--om-related-gap);
	margin: 0;
}

html body .om-related-nav {
	display: flex;
	gap: 8px;
}

html body .om-related-nav button {
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 50%;
	background: transparent;
	color: var(--om-color-primary, #00111C);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.om-related-nav button:hover {
	border-color: var(--om-color-primary, #00111C);
}

/* Carousel: a swipeable row that snaps card by card. */
.om-related--carousel .om-related-track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.om-related--carousel .om-related-track::-webkit-scrollbar {
	display: none;
}

.om-related--carousel .om-related-track > .om-card,
.om-related--carousel .om-related-track > .om-card-cell {
	flex: 0 0 calc((100% - (var(--om-related-columns, 4) - 1) * var(--om-related-gap)) / var(--om-related-columns, 4));
	scroll-snap-align: start;
}

@media (max-width: 1024px) {
	html body .om-related {
		--om-related-columns: 3;
	}
}

@media (max-width: 700px) {
	html body .om-related {
		--om-related-columns: 2;
		--om-related-gap: 16px;
		margin-top: 48px;
	}

	html body .om-related-title {
		font-size: 24px;
	}

	/* Show a peek of the next card so the row reads as swipeable. */
	.om-related--carousel .om-related-track > .om-card,
	.om-related--carousel .om-related-track > .om-card-cell {
		flex-basis: 44%;
	}
}

/* ---------- Inquiry form: field grid (1.5) ---------- */

html body .om-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 14px;
}

.om-fields .om-field--full {
	grid-column: 1 / -1;
}

.om-inquiry fieldset.om-field {
	min-width: 0;
	margin: 0 0 14px;
	padding: 0;
	border: 0;
}

.om-inquiry fieldset.om-field legend {
	margin: 0 0 8px;
	padding: 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-choice-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
}

.om-inquiry .om-choice {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 300;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-text, #464646);
	cursor: pointer;
}

.om-inquiry .om-choice input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--om-color-primary, #00111C);
}

.om-field--checkbox .om-choice {
	align-items: flex-start;
}

html body .om-req {
	color: var(--om-color-primary, #00111C);
}

@media (max-width: 600px) {
	html body .om-fields {
		grid-template-columns: minmax(0, 1fr);
	}
}

.om-related--no-variant .om-card-variant {
	display: none;
}

.om-related .om-card {
	overflow: hidden;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.om-related .om-card-image {
	overflow: hidden;
}

.om-related-head > span:empty {
	flex: 1;
}

/* Anything the script hides inside the form stays hidden, whatever the
   element's own display rule. */
.om-inquiry [hidden] {
	display: none !important;
}

/* =========================================================
   1.6: cleaner product page, swatches, size guide, sticky
   bar, quick view, badges, skeleton loading.
   ========================================================= */

html body .om-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ---------- Product page rhythm ---------- */

.om-product-wrap .om-price {
	margin-bottom: 28px;
}

@media (min-width: 801px) {
	.om-sticky-gallery .om-product-gallery {
		position: sticky;
		top: var(--om-sticky-offset, 32px);
	}
}

/* ---------- Options ---------- */

.om-options-form[data-om-options] {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin: 0 0 28px;
}

.om-options-form[data-om-options] .om-opt {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

html body .om-opt-label,
.om-options-form[data-om-options] legend.om-opt-label {
	display: block;
	margin: 0 0 10px;
	padding: 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
}

html body .om-opt-current {
	font-weight: 300;
	letter-spacing: 0.04em;
	text-transform: none;
	font-size: 13px;
	color: var(--om-color-text, #464646);
}

html body .om-opt-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.om-options-form[data-om-options] .om-choice-pill,
.om-options-form[data-om-options] .om-choice-swatch {
	position: relative;
	display: inline-flex;
	margin: 0;
	cursor: pointer;
	text-transform: none;
	letter-spacing: 0;
}

html body .om-choice-pill input,
html body .om-choice-swatch input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

html body .om-choice-pill span {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid #d8d8d8;
	font-size: 13px;
	font-weight: 400;
	color: var(--om-color-text, #464646);
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.om-choice-pill:hover span {
	border-color: var(--om-color-primary, #00111C);
}

.om-choice-pill input:checked + span {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-choice-pill input:focus-visible + span,
.om-choice-swatch input:focus-visible + .om-swatch {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
}

.om-choice-swatch .om-swatch {
	width: 30px;
	height: 30px;
	margin: 3px;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.12);
	transition: box-shadow 0.2s ease;
}

.om-choice-swatch input:checked + .om-swatch {
	box-shadow: 0 0 0 2px var(--om-color-background, #fff), 0 0 0 3px var(--om-color-primary, #00111C);
}

.om-choice-swatch:hover .om-swatch {
	box-shadow: 0 0 0 2px var(--om-color-background, #fff), 0 0 0 3px rgba(0, 0, 0, 0.25);
}

html body .om-swatch--platinum { background: linear-gradient(135deg, #f1f2f3, #c5c8cc); }
html body .om-swatch--black { background: linear-gradient(135deg, #555, #111); }
html body .om-swatch--multi { background: conic-gradient(#f3dc9c 0 33%, #f4f4f4 0 66%, #f3cfc2 0); }
html body .om-swatch--other { background: linear-gradient(135deg, #eee, #bbb); }

.om-options-form[data-om-options] .om-opt--select select,
.om-options-form[data-om-options] .om-opt--size select {
	width: 100%;
	max-width: 320px;
	min-width: 0;
}

html body .om-opt-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	max-width: 320px;
}

.om-options-form[data-om-options] .om-opt-head .om-opt-label {
	margin-bottom: 10px;
}

.om-product-wrap .om-size-guide-link {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--om-color-primary, #00111C);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.om-opt--variants .om-variants {
	margin: 0;
}

/* ---------- Details: accordion / open sections ---------- */

html body .om-details {
	margin: 8px 0 0;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

html body .om-acc {
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.om-product-details .om-acc-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding: 20px 0;
	border: 0;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
	list-style: none;
	cursor: pointer;
}

.om-acc.is-static .om-acc-title {
	cursor: default;
	padding-bottom: 12px;
}

html body .om-acc-title::-webkit-details-marker {
	display: none;
}

details.om-acc > .om-acc-title::after {
	content: "+";
	font-size: 20px;
	font-weight: 300;
	letter-spacing: 0;
	transition: transform 0.2s ease;
}

details.om-acc[open] > .om-acc-title::after {
	transform: rotate(45deg);
}

html body .om-acc-body {
	padding: 0 0 22px;
}

.om-acc-body .om-description,
.om-acc-body .om-stone-table {
	margin-bottom: 0;
}

html body .om-specs {
	margin: 0;
}

html body .om-specs > div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 9px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	font-size: 14px;
}

.om-specs > div:last-child {
	border-bottom: 0;
}

html body .om-specs dt {
	color: #6e6e6e;
	font-weight: 300;
}

html body .om-specs dd {
	margin: 0;
	text-align: right;
}

.om-product-inquiry .om-inquiry {
	margin-top: 0;
	border-top: 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.om-details + .om-product-inquiry .om-inquiry,
.om-details ~ .om-product-inquiry .om-inquiry {
	border-top: 0;
}

/* ---------- Size guide dialog ---------- */

html body .om-size-guide,
html body .om-quick-view {
	width: min(960px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	margin: auto;
	padding: 0;
	border: 0;
	background: var(--om-color-background, #fff);
	color: var(--om-color-text, #464646);
	box-shadow: 0 30px 80px rgba(0, 17, 28, 0.25);
	font-family: var(--om-font-body, Inter, sans-serif);
	overflow: auto;
}

html body .om-size-guide::backdrop,
html body .om-quick-view::backdrop {
	background: var(--om-qv-backdrop, rgba(0, 17, 28, 0.45));
	backdrop-filter: blur(2px);
}

.om-size-guide[open],
.om-quick-view[open] {
	animation: om-pop 0.25s ease;
}

@keyframes om-pop {
	from { opacity: 0; transform: translateY(12px) scale(0.99); }
	to { opacity: 1; transform: none; }
}

html body .om-sg-inner,
html body .om-qv-inner {
	position: relative;
	padding: 40px;
}

html body .om-sg-close,
html body .om-qv-close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	font-size: 30px;
	line-height: 1;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

.om-sg-close:hover,
.om-qv-close:hover {
	background: rgba(0, 0, 0, 0.06);
}

html body .om-sg-title {
	margin: 0 0 12px;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 30px;
	font-weight: 400;
	color: var(--om-color-primary, #00111C);
}

html body .om-sg-note {
	margin: 0 0 18px;
	padding: 12px 14px;
	background: #f8f7f5;
	font-size: 14px;
}

html body .om-sg-methods {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin: 0 0 24px;
}

html body .om-sg-methods h3 {
	margin: 0 0 6px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
}

html body .om-sg-methods p {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
}

html body .om-sg-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 32px;
	align-items: start;
}

html body .om-sg-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

html body .om-sg-table th {
	padding: 8px 6px;
	text-align: left;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6e6e6e;
	border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

html body .om-sg-table td {
	padding: 6px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

html body .om-sg-table-wrap {
	max-height: 420px;
	overflow: auto;
}

html body .om-sg-sizer {
	padding: 20px;
	background: #f8f7f5;
}

html body .om-sg-sizer-title {
	margin: 0 0 14px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
}

html body .om-sg-circles {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 14px 12px;
}

html body .om-sg-circle {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

html body .om-sg-circle span {
	display: block;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: 50%;
}

html body .om-sg-circle em {
	font-style: normal;
	font-size: 11px;
	color: #6e6e6e;
}

.om-size-guide .om-sg-print {
	margin: 18px 0 8px;
	min-height: 42px;
	padding: 0 20px;
	border: 1px solid var(--om-color-primary, #00111C);
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font: inherit;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
}

html body .om-sg-small {
	margin: 0 0 6px;
	font-size: 12px;
	color: #6e6e6e;
}

html body .om-sg-ruler {
	width: 50mm;
	height: 10px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-top: 0;
	background: repeating-linear-gradient(90deg, var(--om-color-primary, #00111C) 0 1px, transparent 1px 5mm);
}

/* Printing from the size guide prints only the guide, at true size. */
@media print {
	html.om-printing-sizer body * {
		visibility: hidden !important;
	}

	html.om-printing-sizer .om-size-guide,
	html.om-printing-sizer .om-size-guide * {
		visibility: visible !important;
	}

	html.om-printing-sizer .om-size-guide {
		position: absolute !important;
		inset: 0 auto auto 0 !important;
		width: 100% !important;
		max-height: none !important;
		box-shadow: none !important;
		overflow: visible !important;
	}

	html.om-printing-sizer .om-sg-close,
	html.om-printing-sizer .om-sg-print {
		display: none !important;
	}
}

/* ---------- Sticky price bar (phones) ---------- */

html body .om-sticky-bar {
	display: none;
}

@media (max-width: 800px) {
	.om-sticky-bar:not([hidden]) {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: var(--om-color-background, #fff);
		box-shadow: 0 -8px 24px rgba(0, 17, 28, 0.1);
		animation: om-rise 0.25s ease;
	}

	@keyframes om-rise {
		from { transform: translateY(100%); }
		to { transform: none; }
	}

	html body .om-sticky-info {
		display: flex;
		flex-direction: column;
		min-width: 0;
		flex: 1 1 auto;
	}

	html body .om-sticky-title {
		font-size: 12px;
		color: #6e6e6e;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	html body .om-sticky-price {
		font-size: 17px;
		color: var(--om-color-primary, #00111C);
	}

	.om-product-wrap .om-sticky-cta {
		flex: 0 0 auto;
		min-height: 46px;
		margin: 0;
		padding: 0 20px;
		border: 1px solid var(--om-color-primary, #00111C);
		background: var(--om-color-primary, #00111C);
		color: #fff;
		font-family: inherit;
		font-size: 12px;
		font-weight: 500;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		cursor: pointer;
	}

	html.om-has-sticky-bar body {
		padding-bottom: 72px;
	}
}

/* ---------- Quick view ---------- */

html body .om-card-cell {
	position: relative;
	min-width: 0;
}

/* The button sits on the photo's bottom edge: an overlay the size of
   the image (square unless the widget's aspect ratio says otherwise). */
html body .om-qv-slot {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	aspect-ratio: var(--om-card-ratio, 1 / 1);
	display: flex;
	align-items: flex-end;
	padding: 12px;
	pointer-events: none;
	z-index: 4;
}

.om-layout-boxed .om-qv-slot {
	top: 14px;
	left: 14px;
	right: 14px;
}

html body .om-qv-btn {
	width: 100%;
	margin: 0;
	padding: 11px 12px;
	border: 0;
	background: rgba(255, 255, 255, 0.94);
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	pointer-events: auto;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity 0.25s ease, transform 0.25s ease;
}

@media (hover: hover) {
	.om-card-cell:hover .om-qv-btn,
	.om-card-cell .om-qv-btn:focus-visible {
		opacity: 1;
		transform: none;
	}
}

@media (hover: none) {
	html body .om-qv-btn {
		display: none;
	}

	/* "Show on phones & tablets": always visible there. */
	.om-qv-mobile .om-qv-btn {
		display: inline-flex;
		opacity: 1;
		transform: none;
	}
}

.om-qv-body .om-product-wrap {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
}

.om-qv-body .om-product-title {
	font-size: 28px;
}

.om-product-wrap .om-qv-full {
	display: inline-block;
	margin-top: 18px;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
	text-decoration: underline;
	text-underline-offset: 4px;
}

html body .om-qv-loading {
	display: grid;
	gap: 14px;
}

html body .om-qv-skel {
	display: block;
	height: 18px;
	background: linear-gradient(90deg, #f0eeeb 0%, #f8f7f5 50%, #f0eeeb 100%);
	background-size: 200% 100%;
	animation: om-shimmer 1.2s ease-in-out infinite;
}

html body .om-qv-skel--img {
	height: 320px;
}

html body .om-qv-skel--short {
	width: 40%;
}

@media (max-width: 800px) {
	html body .om-sg-inner,
	html body .om-qv-inner {
		padding: 28px 18px;
	}

	html body .om-sg-methods,
	html body .om-sg-grid,
	.om-qv-body .om-product-wrap {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	html body .om-size-guide,
	html body .om-quick-view {
		width: 100vw;
		max-width: 100vw;
		max-height: 100vh;
		height: 100%;
	}
}

/* ---------- Badges ---------- */

html body .om-badges {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	pointer-events: none;
}

html body .om-badge {
	display: inline-block;
	padding: 5px 9px;
	background: rgba(255, 255, 255, 0.94);
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

html body .om-badge--new {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

/* ---------- Skeleton loading & image fade-in ---------- */

html body .om-card-image {
	background-color: #f4f3f1;
}

html body .om-card-image img {
	opacity: 0;
	transition: opacity 0.4s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.om-card-image.is-loaded img:not(.om-card-hover),
.om-no-js .om-card-image img {
	opacity: 1;
}

.om-card-cell.is-skeleton .om-card,
.om-catalog-grid > .om-card.is-skeleton {
	pointer-events: none;
}

.om-card-cell.is-skeleton .om-card-image,
.om-card.is-skeleton .om-card-image {
	background: linear-gradient(90deg, #f0eeeb 0%, #f8f7f5 50%, #f0eeeb 100%);
	background-size: 200% 100%;
	animation: om-shimmer 1.2s ease-in-out infinite;
}

.om-card-cell.is-skeleton .om-card-image > *,
.om-card.is-skeleton .om-card-image > *,
.om-card-cell.is-skeleton .om-qv-btn {
	visibility: hidden;
}

.om-card-cell.is-skeleton .om-card-body > *,
.om-card.is-skeleton .om-card-body > * {
	color: transparent !important;
	background: #f0eeeb;
	border-radius: 2px;
}

/* The catalog no longer fades as a whole while loading; the skeleton says it. */
.om-catalog-wrap.om-loading {
	opacity: 1;
}

.om-catalog-grid.om-fade-in > * {
	animation: om-card-in 0.45s ease backwards;
}

.om-catalog-grid.om-fade-in > *:nth-child(2) { animation-delay: 0.04s; }
.om-catalog-grid.om-fade-in > *:nth-child(3) { animation-delay: 0.08s; }
.om-catalog-grid.om-fade-in > *:nth-child(4) { animation-delay: 0.12s; }
.om-catalog-grid.om-fade-in > *:nth-child(n+5) { animation-delay: 0.16s; }

@keyframes om-card-in {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.om-catalog-grid.om-fade-in > *,
	.om-size-guide[open],
	.om-quick-view[open],
	html body .om-sticky-bar {
		animation: none !important;
	}

	html body .om-card-image img {
		transition: none;
	}
}

/* The size guide lives inside the product details column; keep the
   column's section-heading rules off it. */
html body .om-size-guide h2,
html body .om-size-guide h3 {
	border: 0;
	padding-top: 0;
}

html body .om-single-product--qv {
	padding: 0;
	max-width: none;
}

/* ---------- Card video previews (1.7) ---------- */

.om-card-image.has-video {
	position: relative;
}

html body .om-card-play {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 2px 8px rgba(0, 17, 28, 0.12);
	pointer-events: none;
	transition: opacity 0.3s ease;
}

html body .om-card-play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 55%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 5px 0 5px 8px;
	border-color: transparent transparent transparent var(--om-color-primary, #00111C);
}

.om-card-image .om-card-video {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #fff;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s ease;
}

.om-card-image.is-playing .om-card-video {
	opacity: 1;
}

.om-card-image.is-playing .om-card-play {
	opacity: 0;
}

.om-card-cell.is-skeleton .om-card-play {
	display: none;
}

/* ---------- 1.8: widget options for gallery, quick view, video badge ---------- */

/* Gallery: thumbnails under the photo, or none. */
.om-product-gallery.om-thumbs-bottom,
.om-product-gallery.om-thumbs-none {
	grid-template-columns: minmax(0, 1fr);
}

.om-product-gallery.om-thumbs-bottom .om-main-media {
	grid-column: 1;
}

.om-product-gallery.om-thumbs-bottom .om-thumbs {
	grid-column: 1;
	grid-row: 2;
	flex-direction: row;
	max-height: none;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x proximity;
	padding-bottom: 2px;
}

.om-product-gallery.om-thumbs-none .om-main-media {
	grid-column: 1;
}

.om-thumbs[hidden],
.om-product-gallery .om-thumb-btn[hidden] {
	display: none;
}

.om-product-gallery .om-thumb-btn {
	border-radius: var(--om-thumb-radius, 0);
	overflow: hidden;
}

html body .om-main-media {
	border-radius: var(--om-media-radius, 0);
	overflow: hidden;
}

.om-product-gallery.om-no-zoom .om-zoom,
.om-product-gallery[data-om-no-lightbox] .om-zoom {
	cursor: default;
}

.om-product-gallery[data-om-no-lightbox].om-no-zoom .om-zoom {
	pointer-events: none;
}

/* Quick view pop-up, styled from the widget. */
html body .om-quick-view {
	width: min(var(--om-qv-width, 960px), calc(100vw - 32px));
	border-radius: var(--om-qv-radius, 0);
	background: var(--om-qv-modal-bg, var(--om-color-background, #fff));
}

.om-quick-view .om-qv-inner {
	padding: var(--om-qv-pad, 40px);
}

.om-quick-view .om-qv-close {
	color: var(--om-qv-close, var(--om-color-primary, #00111C));
}

/* Quick view button looks: bar (full width), button (centred), icon. */
html body .om-qv-slot--button {
	justify-content: center;
}

.om-qv-btn.om-qv-btn--button {
	width: auto;
	padding: 10px 22px;
	border-radius: 999px;
}

html body .om-qv-slot--icon {
	justify-content: flex-end;
}

.om-qv-btn.om-qv-btn--icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 50%;
	box-shadow: 0 2px 10px rgba(0, 17, 28, 0.14);
}

html body .om-qv-icon {
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Video badge on cards: corner, icon or label. */
html body .om-card-play {
	width: var(--om-vbadge-size, 28px);
	height: var(--om-vbadge-size, 28px);
	background: var(--om-vbadge-bg, rgba(255, 255, 255, 0.92));
}

html body .om-card-play::after {
	border-color: transparent transparent transparent var(--om-vbadge-color, var(--om-color-primary, #00111C));
}

html body .om-card-play--tr { top: 10px; right: 10px; bottom: auto; left: auto; }
html body .om-card-play--tl { top: 10px; left: 10px; bottom: auto; right: auto; }
html body .om-card-play--br { bottom: 10px; right: 10px; top: auto; left: auto; }
html body .om-card-play--bl { bottom: 10px; left: 10px; top: auto; right: auto; }

html body .om-card-play--label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: auto;
	height: auto;
	padding: 5px 10px 5px 8px;
	border-radius: 999px;
	color: var(--om-vbadge-color, var(--om-color-primary, #00111C));
	font-family: var(--om-font-body, inherit);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
}

html body .om-card-play--label::after {
	position: static;
	transform: none;
	border-width: 4px 0 4px 7px;
	order: -1;
}

/* Badges share the top-left corner with a top-left video badge. */
.om-card-image:has(.om-card-play--tl) .om-badges {
	top: calc(var(--om-vbadge-size, 28px) + 16px);
}

/* Touch screens: no hover, so Quick view only shows where the widget asks. */
@media (hover: none) {
	.om-card-cell:not(.om-qv-mobile) .om-qv-slot {
		display: none;
	}
}

/* A bottom-corner video badge makes room for the Quick view button. */
@media (hover: hover) {
	.om-card-cell:hover:has(.om-qv-slot) .om-card-play--bl,
	.om-card-cell:hover:has(.om-qv-slot) .om-card-play--br {
		opacity: 0;
	}
}

@media (hover: none) {
	.om-qv-mobile:has(.om-qv-slot--bar, .om-qv-slot--button) .om-card-play--bl,
	.om-qv-mobile:has(.om-qv-slot--bar, .om-qv-slot--button) .om-card-play--br,
	.om-qv-mobile:has(.om-qv-slot--icon) .om-card-play--br {
		bottom: 64px;
	}
}

/* =========================================================
   1.9 Interaction states: consistent, and safe from the theme
   =========================================================
   Themes (Hello Elementor's reset) and Elementor's global kit style every
   <button> and <a> on hover/focus: a filled pink or kit-coloured
   background, white text, a purple link hover. Anything here that didn't
   set all of its own states showed those through. Each element below sets
   background, text and border for rest, hover and focus, with selectors
   one step stronger than the theme/kit (2 classes at rest, 3 on hover)
   but weaker than the widgets' style controls, which still win.

   One hover language everywhere:
   - solid buttons invert (fill → outline), outline buttons fill;
   - text links fade; icon buttons get a soft tint;
   - pills, chips and cards darken their border/text. */

/* Solid (main) buttons. */
.om-catalog-wrap .om-search-submit.om-search-submit,
.om-inquiry .om-inquiry-submit.om-inquiry-submit,
.om-single-product .om-btn--solid.om-btn--solid,
.om-diamonds .om-btn--solid.om-btn--solid,
.om-builder .om-btn--solid.om-btn--solid,
.om-size-guide .om-sg-print.om-sg-print,
.om-product-wrap .om-sticky-cta.om-sticky-cta {
	background-color: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.om-catalog-wrap .om-search-submit.om-search-submit:is(:hover, :focus-visible),
.om-inquiry .om-inquiry-submit.om-inquiry-submit:is(:hover, :focus-visible),
.om-single-product .om-btn--solid.om-btn--solid:is(:hover, :focus-visible),
.om-diamonds .om-btn--solid.om-btn--solid:is(:hover, :focus-visible),
.om-builder .om-btn--solid.om-btn--solid:is(:hover, :focus-visible),
.om-size-guide .om-sg-print.om-sg-print:is(:hover, :focus-visible) {
	background-color: transparent;
	border-color: var(--om-color-primary, #00111C);
	color: var(--om-color-primary, #00111C);
}

.om-product-wrap .om-sticky-cta.om-sticky-cta:is(:hover, :focus-visible) {
	background-color: var(--om-color-primary, #00111C);
	color: #fff;
	opacity: 0.88;
}

/* Outline buttons. */
.om-single-product .om-btn--outline.om-btn--outline,
.om-diamonds .om-btn--outline.om-btn--outline,
.om-builder .om-btn--outline.om-btn--outline {
	background-color: transparent;
	border-color: var(--om-color-primary, #00111C);
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.om-single-product .om-btn--outline.om-btn--outline:is(:hover, :focus-visible),
.om-diamonds .om-btn--outline.om-btn--outline:is(:hover, :focus-visible),
.om-builder .om-btn--outline.om-btn--outline:is(:hover, :focus-visible) {
	background-color: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

/* Text links and link-style buttons: same colour, fade on hover. */
.om-single-product .om-btn--text.om-btn--text,
.om-product-wrap .om-size-guide-link.om-size-guide-link,
.om-product-wrap .om-qv-full.om-qv-full,
.om-product-wrap .om-price-link.om-price-link,
.om-catalog-wrap .om-filter-more-btn.om-filter-more-btn,
.om-catalog-wrap .om-suggest-all.om-suggest-all,
.om-diamonds .om-dd-video-link.om-dd-video-link {
	background-color: transparent;
	border-color: transparent;
	color: var(--om-color-primary, #00111C);
	transition: opacity 0.2s ease;
}

.om-catalog-wrap .om-clear-filters.om-clear-filters,
.om-diamonds .om-df-reset.om-df-reset,
.om-builder .om-review-change.om-review-change,
.om-builder .om-review-restart.om-review-restart {
	background-color: transparent;
	border-color: transparent;
	color: var(--om-color-text, #464646);
	transition: opacity 0.2s ease;
}

.om-single-product .om-btn--text.om-btn--text:is(:hover, :focus-visible),
.om-product-wrap .om-size-guide-link.om-size-guide-link:is(:hover, :focus-visible),
.om-product-wrap .om-qv-full.om-qv-full:is(:hover, :focus-visible),
.om-product-wrap .om-price-link.om-price-link:is(:hover, :focus-visible),
.om-catalog-wrap .om-filter-more-btn.om-filter-more-btn:is(:hover, :focus-visible),
.om-diamonds .om-dd-video-link.om-dd-video-link:is(:hover, :focus-visible) {
	background-color: transparent;
	border-color: transparent;
	color: var(--om-color-primary, #00111C);
	opacity: 0.65;
}

.om-catalog-wrap .om-suggest-all.om-suggest-all:is(:hover, :focus-visible) {
	background-color: #f7f6f4;
	color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-clear-filters.om-clear-filters:is(:hover, :focus-visible),
.om-diamonds .om-df-reset.om-df-reset:is(:hover, :focus-visible),
.om-builder .om-review-change.om-review-change:is(:hover, :focus-visible),
.om-builder .om-review-restart.om-review-restart:is(:hover, :focus-visible) {
	background-color: transparent;
	color: var(--om-color-primary, #00111C);
}

/* Price shown as a link ("Call for pricing" with a link set). */
.om-product-wrap .om-price-link.om-price-link {
	text-decoration: underline;
	text-underline-offset: 5px;
	text-decoration-thickness: 1px;
}

/* Round icon buttons on photos: sound, full screen. */
.om-product-gallery .om-media-expand.om-media-expand,
.om-main-video .om-sound.om-sound {
	background-color: rgba(255, 255, 255, 0.9);
	border-color: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-product-gallery .om-media-expand.om-media-expand:is(:hover, :focus-visible),
.om-main-video .om-sound.om-sound:is(:hover, :focus-visible) {
	background-color: #fff;
	color: var(--om-color-primary, #00111C);
}

/* Close / arrow buttons in pop-ups and the lightbox. */
.om-quick-view .om-qv-close.om-qv-close,
.om-size-guide .om-sg-close.om-sg-close,
.om-lightbox .om-lb-close.om-lb-close,
.om-lightbox .om-lb-prev.om-lb-prev,
.om-lightbox .om-lb-next.om-lb-next {
	background-color: transparent;
	border-color: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-quick-view .om-qv-close.om-qv-close {
	color: var(--om-qv-close, var(--om-color-primary, #00111C));
}

.om-quick-view .om-qv-close.om-qv-close:is(:hover, :focus-visible),
.om-size-guide .om-sg-close.om-sg-close:is(:hover, :focus-visible),
.om-lightbox .om-lb-close.om-lb-close:is(:hover, :focus-visible),
.om-lightbox .om-lb-prev.om-lb-prev:is(:hover, :focus-visible),
.om-lightbox .om-lb-next.om-lb-next:is(:hover, :focus-visible) {
	background-color: rgba(0, 0, 0, 0.06);
	border-color: transparent;
}

.om-quick-view .om-qv-close.om-qv-close:is(:hover, :focus-visible) {
	color: var(--om-qv-close, var(--om-color-primary, #00111C));
}

.om-size-guide .om-sg-close.om-sg-close:is(:hover, :focus-visible),
.om-lightbox .om-lb-close.om-lb-close:is(:hover, :focus-visible),
.om-lightbox .om-lb-prev.om-lb-prev:is(:hover, :focus-visible),
.om-lightbox .om-lb-next.om-lb-next:is(:hover, :focus-visible) {
	color: var(--om-color-primary, #00111C);
}

/* Carousel arrows. */
.om-related .om-related-prev.om-related-prev,
.om-related .om-related-next.om-related-next {
	background-color: transparent;
	border-color: rgba(0, 0, 0, 0.15);
	color: var(--om-color-primary, #00111C);
}

.om-related .om-related-prev.om-related-prev:is(:hover, :focus-visible),
.om-related .om-related-next.om-related-next:is(:hover, :focus-visible) {
	background-color: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

/* Gallery: main photo, thumbnails, "Watch video". */
.om-product-gallery .om-zoom.om-zoom,
.om-product-gallery .om-zoom.om-zoom:is(:hover, :focus) {
	background-color: #fff;
	border-color: transparent;
	color: inherit;
}

.om-product-gallery .om-thumb-btn.om-thumb-btn {
	background-color: #fff;
	border-color: rgba(0, 0, 0, 0.08);
	color: inherit;
}

.om-product-gallery .om-thumb-btn.om-thumb-btn:is(:hover, :focus-visible) {
	background-color: #fff;
	border-color: rgba(0, 0, 0, 0.35);
	color: inherit;
}

.om-product-gallery .om-thumb-btn.om-thumb-btn.om-thumb--video,
.om-product-gallery .om-thumb-btn.om-thumb-btn.om-thumb--video:is(:hover, :focus-visible) {
	background-color: #f4f3f1;
}

.om-product-gallery .om-thumb-btn.om-thumb-btn.is-active,
.om-product-gallery .om-thumb-btn.om-thumb-btn.is-active:is(:hover, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
}

.om-product-gallery .om-watch-video.om-watch-video {
	background-color: rgba(255, 255, 255, 0.92);
	border-color: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-product-gallery .om-watch-video.om-watch-video:is(:hover, :focus-visible) {
	background-color: #fff;
	color: var(--om-color-primary, #00111C);
}

/* Quick view button on cards: white at rest, fills on hover. */
.om-card-cell .om-qv-btn.om-qv-btn {
	background-color: rgba(255, 255, 255, 0.94);
	border-color: transparent;
	color: var(--om-color-primary, #00111C);
	transition: opacity 0.25s ease, transform 0.25s ease, background-color 0.2s ease, color 0.2s ease;
}

.om-card-cell .om-qv-btn.om-qv-btn:is(:hover, :focus-visible) {
	background-color: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

/* Cards and link-style pills: never the theme's link colours. */
.om-catalog-grid .om-card,
.om-catalog-grid .om-card:is(:hover, :focus, :visited) {
	color: inherit;
	text-decoration: none;
}

.om-catalog-wrap .om-chip.om-chip,
.om-catalog-wrap .om-chip.om-chip:is(:hover, :focus-visible) {
	color: var(--om-color-primary, #00111C);
}

.om-builder .om-builder-choice.om-builder-choice:is(:hover, :focus-visible) {
	color: var(--om-color-text, #464646);
}

.om-catalog-wrap .om-suggest-item.om-suggest-item,
.om-catalog-wrap .om-suggest-item.om-suggest-item:is(:hover, :focus-visible) {
	color: var(--om-color-text, #464646);
}

/* Section toggles (accordion, inquiry, filters on phones). */
.om-product-details .om-acc-title.om-acc-title:hover,
.om-product-inquiry .om-inquiry-toggle.om-inquiry-toggle:hover {
	color: var(--om-color-primary, #00111C);
	opacity: 0.75;
}

/* One focus ring for keyboard users, in the brand colour. */
:is(.om-catalog-wrap, .om-single-product, .om-product-wrap, .om-related, .om-quick-view, .om-lightbox, .om-size-guide, .om-diamonds, .om-builder) :is(a, button, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
	box-shadow: none;
}

/* Shape: themes also restyle every button's size (Hello: 16px text,
   padding, 1px border, 3px corners, no wrapping). Pin ours. */
.om-card-cell .om-qv-btn.om-qv-btn {
	padding: 11px 12px;
	border-width: 0;
	border-style: solid;
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	font-size: 11px;
	font-weight: 500;
	line-height: 1.2;
	white-space: normal;
}

.om-card-cell .om-qv-btn.om-qv-btn--button {
	padding: 10px 22px;
	border-radius: 999px;
}

.om-card-cell .om-qv-btn.om-qv-btn--icon {
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 50%;
}

.om-quick-view .om-qv-close.om-qv-close,
.om-size-guide .om-sg-close.om-sg-close {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	font-size: 30px;
	font-weight: 300;
	line-height: 1;
	white-space: normal;
}

.om-lightbox .om-lb-close.om-lb-close,
.om-lightbox .om-lb-prev.om-lb-prev,
.om-lightbox .om-lb-next.om-lb-next {
	padding: 0;
	border: 0;
	border-radius: 50%;
	line-height: 1;
}

.om-related .om-related-prev.om-related-prev,
.om-related .om-related-next.om-related-next {
	padding: 0;
	border-width: 1px;
	border-style: solid;
	border-radius: 50%;
	font-size: 22px;
	line-height: 1;
}

.om-product-gallery .om-zoom.om-zoom,
.om-product-wrap .om-size-guide-link.om-size-guide-link,
.om-catalog-wrap .om-filter-more-btn.om-filter-more-btn {
	border-radius: 0;
}

.om-product-gallery .om-zoom.om-zoom {
	padding: 0;
	border: 0;
}

.om-inquiry .om-inquiry-submit.om-inquiry-submit,
.om-product-wrap .om-sticky-cta.om-sticky-cta,
.om-size-guide .om-sg-print.om-sg-print {
	white-space: normal;
	line-height: 1.3;
}

/* ---------- 1.10: richer search suggestions ---------- */

.om-catalog-wrap .om-suggest-item {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	padding: 10px 16px;
}

html body .om-suggest-img {
	width: 56px;
	height: 56px;
	overflow: hidden;
}

html body .om-suggest-img img {
	transition: transform 0.3s ease;
}

.om-catalog-wrap .om-suggest-item:hover .om-suggest-img img,
.om-catalog-wrap .om-suggest-item.is-active .om-suggest-img img {
	transform: scale(1.06);
}

html body .om-suggest-text {
	gap: 3px;
}

html body .om-suggest-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0 8px;
}

html body .om-suggest-variant::after {
	content: "·";
	margin-left: 8px;
}

html body .om-suggest mark {
	padding: 0;
	background: none;
	color: inherit;
	font-weight: 700;
}

html body .om-suggest-title mark {
	font-weight: 400;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

html body .om-suggest-price {
	justify-self: end;
	font-size: 13px;
	letter-spacing: 0.02em;
	color: var(--om-color-primary, #00111C);
	white-space: nowrap;
}

.om-suggest-price.is-loading {
	width: 64px;
	height: 12px;
	background: linear-gradient(90deg, #f0eeeb 0%, #f8f7f5 50%, #f0eeeb 100%);
	background-size: 200% 100%;
	animation: om-shimmer 1.2s ease-in-out infinite;
}

.om-suggest li + li .om-suggest-item {
	border-top: 1px solid rgba(0, 0, 0, 0.04);
}

@media (max-width: 600px) {
	.om-catalog-wrap .om-suggest-item {
		grid-template-columns: 48px minmax(0, 1fr);
		gap: 12px;
		padding: 10px 12px;
	}

	html body .om-suggest-img {
		width: 48px;
		height: 48px;
		grid-row: span 2;
	}

	html body .om-suggest-title {
		white-space: normal;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
	}

	html body .om-suggest-price {
		grid-column: 2;
		justify-self: start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.om-suggest-price.is-loading {
		animation: none;
	}
}

/* The search box's clear button, in the brand colour. */
.om-catalog-wrap .om-search-input::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
	width: 14px;
	height: 14px;
	margin-left: 8px;
	background-color: var(--om-color-primary, #00111C);
	opacity: 0.55;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
	cursor: pointer;
}

.om-catalog-wrap .om-search-input::-webkit-search-cancel-button:hover {
	opacity: 1;
}


/* =========================================================
   1.11 Look & feel: shared corners, spacing, hover, type
   =========================================================
   Settings > OM Catalog > Look & feel sets --om-radius (buttons, pills,
   fields), --om-radius-lg (photos, cards, pop-ups) and --om-space (a
   spacing scale). Everything below reads them, so every widget and page
   follows the same values; a widget's own Style settings still win. */

/* Buttons, pills, chips, fields. */
.om-single-product .om-btn.om-btn,
.om-diamonds .om-btn.om-btn,
.om-builder .om-btn.om-btn,
.om-inquiry .om-inquiry-submit.om-inquiry-submit,
.om-product-wrap .om-sticky-cta.om-sticky-cta,
.om-size-guide .om-sg-print.om-sg-print,
.om-diamonds .om-df-apply.om-df-apply,
.om-catalog-wrap .om-filter-pill.om-filter-pill,
.om-product-wrap .om-variant-link.om-variant-link,
.om-options-form .om-choice-pill span,
.om-catalog-wrap .om-chip.om-chip,
.om-card-cell .om-badge,
.om-diamonds .om-df-chip,
.om-diamonds .om-df-shape,
.om-catalog-wrap .om-filter-toggle,
.om-inquiry input:not([type="checkbox"]):not([type="radio"]),
html body .om-inquiry select,
html body .om-inquiry textarea,
html body .om-options-form select,
html body .om-catalog-wrap select,
html body .om-diamonds select,
.om-diamonds input[type="number"] {
	border-radius: var(--om-radius, var(--om-radius-d, 0));
}

.om-single-product .om-btn--text.om-btn--text {
	border-radius: 0;
}

/* Search box + button read as one joined control. */
.om-catalog-wrap .om-search-input.om-search-input {
	border-radius: var(--om-radius, var(--om-radius-d, 0)) 0 0 var(--om-radius, var(--om-radius-d, 0));
}

.om-catalog-wrap .om-search-submit.om-search-submit {
	border-radius: 0 var(--om-radius, var(--om-radius-d, 0)) var(--om-radius, var(--om-radius-d, 0)) 0;
}

/* Photos, cards, panels, pop-ups. */
.om-catalog-grid .om-card-image,
.om-layout-boxed .om-card,
.om-builder .om-builder-choice,
html body .om-review-summary,
.om-catalog-wrap .om-suggest,
html body .om-empty-state {
	border-radius: var(--om-radius-lg, var(--om-radius-lg-d, 0));
}

.om-catalog-grid .om-card-image {
	overflow: hidden;
	isolation: isolate;
}

html body .om-product-gallery {
	--om-media-radius: var(--om-radius-lg, var(--om-radius-lg-d, 0));
	--om-thumb-radius: var(--om-radius, var(--om-radius-d, 0));
}

html body .om-quick-view,
html body .om-size-guide {
	border-radius: var(--om-qv-radius, var(--om-radius-lg, var(--om-radius-lg-d, 0)));
}

/* Spacing scale on the product page. */
.om-product-wrap .om-price {
	margin-bottom: calc(28px * var(--om-space, 1));
}

.om-options-form[data-om-options] {
	gap: calc(24px * var(--om-space, 1));
	margin-bottom: calc(32px * var(--om-space, 1));
}

.om-single-product .om-actions {
	margin-bottom: calc(32px * var(--om-space, 1));
}

.om-product-wrap .om-actions--builder {
	margin-bottom: calc(24px * var(--om-space, 1));
}

.om-product-details .om-style-meta {
	margin-bottom: calc(26px * var(--om-space, 1));
}

.om-catalog-wrap .om-catalog-toolbar {
	margin-bottom: calc(28px * var(--om-space, 1));
}

html body .om-related {
	margin-top: calc(80px * var(--om-space, 1));
}

/* ---------- Card hover (Settings > Look & feel > Card hover) ---------- */

html body .om-card-cell,
.om-related-track > .om-card-cell {
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

html body .om-card-image {
	transition: box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* The second photo drifts in slowly rather than snapping. */
.om-card-image .om-card-hover {
	transition: opacity 0.8s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

html body .om-card-title {
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
	transition: text-decoration-color 0.3s ease, opacity 0.2s ease;
}

@media (hover: hover) {
	/* Lift: the card rises, the photo gains a soft shadow, the name
	   underlines. The photo itself no longer zooms. */
	.om-hover-lift:hover {
		transform: translateY(calc(-1 * var(--om-card-lift, 4px)));
	}

	.om-hover-lift:hover .om-card-image {
		box-shadow: var(--om-card-shadow, 0 16px 34px -18px rgba(0, 17, 28, 0.35));
	}

	.om-hover-lift .om-card:hover .om-card-image img,
	.om-hover-lift:hover .om-card-image img {
		transform: none;
	}

	.om-hover-lift:hover .om-card-title,
	.om-hover-lift .om-card:focus-visible .om-card-title {
		opacity: 1;
		text-decoration-color: currentColor;
	}

	/* Zoom: the previous behaviour (slow photo zoom, name fades). */
	.om-hover-zoom:hover .om-card-title {
		opacity: 0.65;
	}

	/* None: no motion at all. */
	.om-hover-none .om-card:hover .om-card-image img {
		transform: none;
	}

	.om-hover-none .om-card:hover .om-card-title {
		opacity: 1;
	}
}

.om-hover-lift .om-card:hover .om-card-title,
.om-hover-none .om-card:hover .om-card-title {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.om-hover-lift:hover {
		transform: none;
	}
}

/* ---------- Trust line under the price ---------- */

html body .om-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: calc(-14px * var(--om-space, 1)) 0 calc(28px * var(--om-space, 1));
	padding: 0;
	list-style: none;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--om-color-text, #464646);
}

html body .om-trust li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
}

html body .om-trust li::before {
	content: "";
	flex: 0 0 auto;
	width: 13px;
	height: 13px;
	background-color: var(--om-color-primary, #00111C);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Typography on phones ---------- */

html body .om-product-title,
html body .om-related-title,
html body .om-suggest-title {
	text-wrap: balance;
}

html body .om-description,
html body .om-card-title {
	text-wrap: pretty;
	overflow-wrap: anywhere;
	hyphens: auto;
}

@media (max-width: 600px) {
	.om-product-details .om-product-title {
		font-size: var(--om-m-title, 26px);
		line-height: 1.2;
	}

	.om-catalog-grid .om-card-title {
		font-size: var(--om-m-card-title, 15px);
	}

	html body .om-product-details,
	.om-product-details .om-description,
	.om-catalog-wrap .om-empty-state {
		font-size: var(--om-m-body, 14px);
	}
}

/* ---------- Empty & error states ---------- */

.om-catalog-wrap .om-empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	margin: calc(12px * var(--om-space, 1)) 0 calc(48px * var(--om-space, 1));
	padding: calc(56px * var(--om-space, 1)) 24px;
	background: #faf9f7;
	color: var(--om-color-text, #464646);
	text-align: center;
	letter-spacing: normal;
	font-family: var(--om-font-body, Inter, sans-serif);
}

.om-catalog-wrap .om-empty-state.om-error {
	background: #faf9f7;
	color: var(--om-color-text, #464646);
}

html body .om-empty-icon {
	width: 52px;
	height: 52px;
	background-color: var(--om-color-primary, #00111C);
	opacity: 0.8;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='29' r='13'/%3E%3Cpath d='M18 11h12l4 5-10 7-10-7z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='29' r='13'/%3E%3Cpath d='M18 11h12l4 5-10 7-10-7z'/%3E%3C/svg%3E") center / contain no-repeat;
}

html body .om-empty-icon--error {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='24' cy='24' r='18'/%3E%3Cpath d='M24 14v12M24 32v1'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='24' cy='24' r='18'/%3E%3Cpath d='M24 14v12M24 32v1'/%3E%3C/svg%3E");
}

.om-catalog-wrap .om-empty-title {
	margin: 4px 0 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 26px;
	font-weight: 400;
	line-height: 1.25;
	color: var(--om-color-primary, #00111C);
	text-wrap: balance;
}

.om-catalog-wrap .om-empty-text {
	max-width: 440px;
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

html body .om-empty-actions,
html body .om-empty-popular {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px;
}

html body .om-empty-actions {
	margin-top: 6px;
}

.om-catalog-wrap .om-empty-actions .om-btn {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0 26px;
	border: 1px solid var(--om-color-primary, #00111C);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--om-radius, var(--om-radius-d, 0));
}

.om-catalog-wrap .om-empty-actions .om-btn--solid,
.om-catalog-wrap .om-empty-actions .om-btn--solid:is(:visited, :focus) {
	background-color: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-catalog-wrap .om-empty-actions .om-btn--solid:hover {
	background-color: transparent;
	color: var(--om-color-primary, #00111C);
}

html body .om-empty-popular {
	margin-top: 10px;
	padding-top: 18px;
	border-top: 1px solid rgba(0, 0, 0, 0.07);
}

html body .om-empty-popular-label {
	width: 100%;
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #6e6e6e;
}

.om-catalog-wrap .om-chip.om-chip--ghost,
.om-catalog-wrap .om-chip.om-chip--ghost:is(:hover, :focus-visible) {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.1);
	padding: 7px 14px;
}

.om-catalog-wrap .om-chip.om-chip--ghost:hover {
	border-color: var(--om-color-primary, #00111C);
}

@media (max-width: 600px) {
	.om-catalog-wrap .om-empty-title {
		font-size: 22px;
	}

	.om-catalog-wrap .om-empty-state {
		padding: 40px 16px;
	}
}

/* ---------- Diamond results: 4C badges, sticky header ---------- */

html body .om-dt-carat {
	font-weight: 500;
	color: var(--om-color-primary, #00111C);
}

html body .om-dt-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	padding: 3px 8px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	background: #fff;
	font-size: 12px;
	letter-spacing: 0.04em;
	line-height: 1.3;
	color: var(--om-color-text, #464646);
	white-space: nowrap;
}

.om-dt-badge.is-top {
	border-color: transparent;
	background: #eef3f6;
	color: var(--om-color-primary, #00111C);
	font-weight: 500;
}

html body .om-dt-badge--none {
	border-color: transparent;
	background: none;
	color: #bbb;
}

html body .om-dt-report {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
}

html body .om-dt-lab {
	font-weight: 500;
	letter-spacing: 0.04em;
}

html body .om-dt-origin {
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-dt-origin--lab {
	color: #2f6f5e;
}

/* Column headings stay in view while scrolling long results. */
@media (min-width: 901px) {
	.om-diamonds .om-dt-head {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--om-sticky-offset, 0px));
		z-index: 6;
		background: var(--om-color-background, #fff);
		box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
	}
}

@media (max-width: 900px) {
	.om-dt-row > span[data-label].om-dt-report {
		flex-direction: row;
	}
}

/* ---------- Grouped suggestions, recent & popular searches ---------- */

html body .om-suggest-group {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px 6px;
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #6e6e6e;
}

.om-suggest-group + li .om-suggest-item {
	border-top: 0;
}

.om-suggest li:not(:first-child).om-suggest-group {
	margin-top: 6px;
	border-top: 1px solid rgba(0, 0, 0, 0.07);
}

html body .om-suggest-group-name {
	color: var(--om-color-primary, #00111C);
	font-weight: 500;
}

html body .om-suggest-group-count {
	letter-spacing: 0.04em;
}

.om-catalog-wrap .om-suggest-group-all,
.om-catalog-wrap .om-suggest-group-all:is(:visited, :focus) {
	display: block;
	padding: 8px 16px 12px 86px;
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--om-color-primary, #00111C);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.om-catalog-wrap .om-suggest-group-all:hover {
	color: var(--om-color-primary, #00111C);
	opacity: 0.65;
}

html body .om-suggest-section {
	padding: 12px 16px 14px;
}

.om-suggest-section + .om-suggest-section {
	border-top: 1px solid rgba(0, 0, 0, 0.07);
}

html body .om-suggest-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-suggest-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

/* Chip buttons: plain text on a soft pill; theme-proof like the rest. */
.om-catalog-wrap .om-suggest .om-suggest-chip.om-suggest-chip,
.om-catalog-wrap .om-suggest .om-suggest-q.om-suggest-q,
.om-catalog-wrap .om-suggest .om-suggest-forget.om-suggest-forget,
.om-catalog-wrap .om-suggest .om-suggest-clear.om-suggest-clear {
	margin: 0;
	border: 0;
	background: transparent;
	color: var(--om-color-text, #464646);
	font: inherit;
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.01em;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: none;
}

.om-catalog-wrap .om-suggest .om-suggest-chip.om-suggest-chip {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	background: #f4f3f1;
}

.om-catalog-wrap .om-suggest .om-suggest-chip--recent.om-suggest-chip {
	padding: 0 4px 0 0;
}

.om-catalog-wrap .om-suggest .om-suggest-chip--recent .om-suggest-q.om-suggest-q {
	padding: 7px 4px 7px 14px;
}

.om-catalog-wrap .om-suggest .om-suggest-forget.om-suggest-forget {
	width: 24px;
	height: 24px;
	padding: 0;
	font-size: 16px;
	color: #6e6e6e;
}

.om-catalog-wrap .om-suggest .om-suggest-clear.om-suggest-clear {
	padding: 0;
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 3px;
	color: #6e6e6e;
}

.om-catalog-wrap .om-suggest .om-suggest-chip.om-suggest-chip:hover,
.om-catalog-wrap .om-suggest .om-suggest-chip.om-suggest-chip:focus-within {
	background: #eae7e2;
	color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-suggest .om-suggest-q.om-suggest-q:is(:hover, :focus-visible),
.om-catalog-wrap .om-suggest .om-suggest-forget.om-suggest-forget:is(:hover, :focus-visible),
.om-catalog-wrap .om-suggest .om-suggest-clear.om-suggest-clear:is(:hover, :focus-visible) {
	background: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-suggest .om-suggest-chip.om-suggest-q:is(:hover, :focus-visible) {
	background: #eae7e2;
}

/* ---------- Stand-alone search box ([om_search] / OM Search widget) ---------- */

html body .om-search-standalone {
	width: 100%;
}

.om-search-standalone .om-search {
	margin: 0;
}

.om-search-standalone .om-search--no-button .om-search-input.om-search-input {
	border-right: 1px solid #d8d8d8;
	border-radius: var(--om-radius, var(--om-radius-d, 0));
}

.om-search-standalone .om-suggest {
	min-width: min(460px, 92vw);
}

@media (max-width: 600px) {
	.om-catalog-wrap .om-suggest-group-all {
		padding-left: 72px;
	}
}

/* Carousel rows scroll sideways, which clips anything outside the track:
   leave room above for the hover lift and below for the shadow. */
.om-related--carousel .om-related-track {
	padding-top: calc(var(--om-card-lift, 4px) + 6px);
	margin-top: calc(-1 * (var(--om-card-lift, 4px) + 6px));
	padding-bottom: 28px;
	margin-bottom: -28px;
}

/* Boxed cards lift as a whole: the frame carries the shadow. */
@media (hover: hover) {
	.om-layout-boxed .om-hover-lift:hover .om-card-image {
		box-shadow: none;
	}

	.om-layout-boxed .om-hover-lift:hover .om-card {
		box-shadow: var(--om-card-shadow, 0 16px 34px -18px rgba(0, 17, 28, 0.35));
	}
}

.om-product-gallery .om-admin-note--media {
	grid-column: 1 / -1;
	margin: 0;
	font-size: 12px;
	line-height: 1.5;
}

/* =========================================================
   1.12 Product page: Modern design (default; widget > Page design)
   ========================================================= */

html body .om-design-modern {
	--om-line: rgba(0, 17, 28, 0.09);
	--om-soft: #faf9f7;
	--om-radius-d: 6px;
	--om-radius-lg-d: 14px;
	--om-r: var(--om-radius, 6px);
	--om-r-lg: var(--om-radius-lg, 14px);
}

.om-layout-overlay .om-card-price {
	color: #fff;
}

@media (min-width: 801px) {
	.om-product-wrap.om-design-modern {
		grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
		gap: clamp(36px, 5vw, 84px);
	}
}

/* Gallery: framed photo, soft corners, counter. */
.om-design-modern .om-product-gallery {
	--om-media-radius: var(--om-r-lg);
	--om-thumb-radius: var(--om-r);
}

.om-design-modern .om-main-media {
	border: 1px solid var(--om-line);
}

.om-design-modern .om-product-gallery .om-thumb-btn.om-thumb-btn {
	border-color: var(--om-line);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.om-design-modern .om-product-gallery .om-thumb-btn.om-thumb-btn:hover {
	transform: translateY(-1px);
}

.om-design-modern .om-product-gallery .om-thumb-btn.om-thumb-btn.is-active {
	border-color: var(--om-color-primary, #00111C);
	box-shadow: 0 0 0 1px var(--om-color-primary, #00111C);
}

html body .om-media-count {
	display: none;
}

.om-design-modern .om-media-count {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	display: inline-flex;
	gap: 3px;
	padding: 5px 11px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 1px 6px rgba(0, 17, 28, 0.08);
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--om-color-primary, #00111C);
	pointer-events: none;
}

/* Header: eyebrow, title, meta, price row. */
.om-design-modern .om-line-label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.om-design-modern .om-line-label::before {
	content: "";
	width: 22px;
	height: 1px;
	background: currentColor;
	opacity: 0.6;
}

.om-design-modern .om-product-title {
	margin-bottom: 12px;
	font-size: clamp(30px, 3vw, 40px);
	line-height: 1.15;
	letter-spacing: -0.005em;
}

.om-design-modern .om-style-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 8px;
}

.om-design-modern .om-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 16px;
	margin-bottom: calc(22px * var(--om-space, 1));
	padding: calc(20px * var(--om-space, 1)) 0;
	border-top: 1px solid var(--om-line);
	border-bottom: 1px solid var(--om-line);
}

html body .om-price-note {
	display: none;
}

.om-design-modern .om-price-note {
	display: inline;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 12px;
	letter-spacing: 0.02em;
	color: #6e6e6e;
}

.om-price-amount.is-updated {
	animation: om-price-in 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes om-price-in {
	from { opacity: 0.25; transform: translateY(5px); }
	to { opacity: 1; transform: none; }
}

.om-design-modern .om-price-amount {
	display: inline-block;
}

.om-design-modern .om-trust {
	margin: 0 0 calc(26px * var(--om-space, 1));
}

/* Buttons: full width, arrow that slides on hover. */
.om-design-modern .om-actions--inline {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.om-design-modern .om-actions .om-btn--solid.om-btn--solid,
.om-design-modern .om-actions .om-btn--outline.om-btn--outline {
	flex: 1 1 200px;
	min-height: 52px;
	border-radius: var(--om-r);
}

.om-design-modern .om-actions--builder .om-btn.om-btn {
	width: 100%;
	min-height: 54px;
	border-radius: var(--om-r);
}

.om-design-modern .om-actions .om-btn--solid::after,
.om-design-modern .om-builder-btn::after {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 10px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M0 5h15M11 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M0 5h15M11 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.25s ease;
}

.om-design-modern .om-actions .om-btn--solid:hover::after,
.om-design-modern .om-builder-btn:hover::after {
	transform: translateX(4px);
}

.om-design-modern .om-actions .om-btn:active {
	transform: scale(0.985);
}

/* Options: one framed panel, a hairline between groups, label left and
   the current choice right. */
.om-design-modern .om-options-form[data-om-options] {
	gap: 0;
	padding: 4px 22px;
	border: 1px solid var(--om-line);
	border-radius: var(--om-r-lg);
	background: var(--om-color-background, #fff);
}

.om-design-modern .om-options-form[data-om-options] > .om-opt {
	padding: 18px 0;
}

.om-design-modern .om-options-form[data-om-options] > .om-opt + .om-opt {
	border-top: 1px solid var(--om-line);
}

.om-design-modern .om-options-form legend.om-opt-label,
.om-design-modern .om-options-form p.om-opt-label,
.om-design-modern .om-options-form .om-opt--select > .om-opt-label {
	float: left;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	width: 100%;
	margin-bottom: 12px;
}

.om-design-modern .om-options-form .om-opt-choices,
.om-design-modern .om-options-form .om-variants {
	clear: both;
}

.om-design-modern .om-opt-sep {
	display: none;
}

.om-design-modern .om-opt-current {
	font-size: 13px;
	letter-spacing: 0.02em;
	color: var(--om-color-text, #464646);
}

.om-design-modern .om-opt-head {
	max-width: none;
}

.om-design-modern .om-options-form[data-om-options] .om-opt--size select,
.om-design-modern .om-options-form[data-om-options] .om-opt--select select {
	max-width: none;
	border-radius: var(--om-r);
}

.om-design-modern .om-options-form .om-choice-pill span {
	min-height: 42px;
	padding: 0 18px;
	border-color: rgba(0, 17, 28, 0.14);
	border-radius: var(--om-r);
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.om-design-modern .om-options-form .om-choice-pill:hover span {
	transform: translateY(-1px);
	box-shadow: 0 6px 14px -10px rgba(0, 17, 28, 0.5);
}

.om-design-modern .om-options-form .om-choice-pill:active span {
	transform: scale(0.97);
}

.om-design-modern .om-options-form .om-choice-swatch .om-swatch {
	width: 34px;
	height: 34px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.om-design-modern .om-options-form .om-choice-swatch:hover .om-swatch {
	transform: scale(1.08);
}

.om-design-modern .om-variant-link.om-variant-link {
	border-color: rgba(0, 17, 28, 0.14);
	border-radius: var(--om-r);
	transition: border-color 0.2s ease, transform 0.15s ease;
}

.om-design-modern .om-variant-link.om-variant-link:hover {
	transform: translateY(-1px);
}

/* Details and inquiry: framed cards; rows tint on hover and open softly. */
.om-design-modern .om-details {
	margin-top: calc(28px * var(--om-space, 1));
	border: 1px solid var(--om-line);
	border-radius: var(--om-r-lg);
	overflow: hidden;
}

.om-design-modern .om-acc {
	border-bottom: 1px solid var(--om-line);
}

.om-design-modern .om-acc:last-child {
	border-bottom: 0;
}

.om-design-modern.om-product-wrap .om-acc-title.om-acc-title {
	padding: 18px 20px;
	transition: background-color 0.2s ease;
}

.om-design-modern details.om-acc > .om-acc-title:hover {
	background: var(--om-soft);
	opacity: 1;
}

.om-design-modern details.om-acc > .om-acc-title::after,
.om-design-modern .om-inquiry > .om-inquiry-toggle::after {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border: 1px solid var(--om-line);
	border-radius: 50%;
	font-size: 16px;
	line-height: 1;
	transition: transform 0.25s ease, border-color 0.2s ease;
}

.om-design-modern details.om-acc > .om-acc-title:hover::after,
.om-design-modern .om-inquiry > .om-inquiry-toggle:hover::after {
	border-color: var(--om-color-primary, #00111C);
}

.om-design-modern .om-acc-body {
	padding: 0 20px 20px;
}

.om-design-modern details.om-acc[open] > .om-acc-body,
.om-design-modern .om-inquiry[open] > .om-inquiry-body {
	animation: om-acc-in 0.35s ease;
}

@keyframes om-acc-in {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: none; }
}

.om-design-modern .om-product-inquiry .om-inquiry {
	margin-top: calc(16px * var(--om-space, 1));
	padding: 0 20px;
	border: 1px solid var(--om-line);
	border-radius: var(--om-r-lg);
}

.om-design-modern .om-product-inquiry .om-inquiry-toggle.om-inquiry-toggle {
	padding: 18px 0;
}

.om-design-modern .om-product-inquiry .om-inquiry-body {
	padding-bottom: 20px;
}

/* Copy the style number (both designs). */
.om-product-wrap .om-copy-style.om-copy-style {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	margin: 0 0 0 2px;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: #6e6e6e;
	cursor: pointer;
	vertical-align: middle;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.om-product-wrap .om-copy-style.om-copy-style:is(:hover, :focus-visible) {
	background: #f1efec;
	color: var(--om-color-primary, #00111C);
}

html body .om-copy-icon {
	width: 12px;
	height: 12px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='13' height='13' rx='2'/%3E%3Cpath d='M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='13' height='13' rx='2'/%3E%3Cpath d='M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.om-copy-done:empty {
	display: none;
}

html body .om-copy-done {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 6px);
	transform: translateX(-50%);
	padding: 4px 8px;
	border-radius: 4px;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: none;
	white-space: nowrap;
	pointer-events: none;
}

/* Sections fade up as they scroll into view (JS adds the classes). */
.om-js .om-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.om-js .om-reveal.is-in {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.om-js .om-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.om-price-amount.is-updated,
	.om-design-modern details.om-acc[open] > .om-acc-body {
		animation: none;
	}
}

@media (max-width: 600px) {
	.om-design-modern .om-options-form[data-om-options] {
		padding: 2px 16px;
	}

	.om-design-modern.om-product-wrap .om-acc-title.om-acc-title {
		padding: 16px;
	}

	.om-design-modern .om-acc-body {
		padding: 0 16px 16px;
	}
}

@media print {
	.om-js .om-reveal {
		opacity: 1;
		transform: none;
	}
}

@media (max-width: 600px) {
	.om-design-modern .om-product-title {
		font-size: var(--om-m-title, 28px);
	}
}

.om-design-modern .om-opt--size .om-opt-label {
	color: var(--om-color-primary, #00111C);
	font-weight: 500;
}

/* =========================================================
   1.13 Catalog pages: Modern design (default; widget > Page design)
   ========================================================= */

html body .om-cdesign-modern {
	--om-line: rgba(0, 17, 28, 0.09);
	--om-soft: #faf9f7;
	--om-radius-d: 6px;
	--om-radius-lg-d: 14px;
}

html body .om-filter-close,
html body .om-filter-sheet-foot {
	display: none;
}

/* Sidebar: one framed panel, rows tint on hover. */
@media (min-width: 901px) {
	.om-cdesign-modern .om-filter-panel-body {
		padding: 22px 20px;
		border: 1px solid var(--om-line);
		border-radius: var(--om-radius-lg, var(--om-radius-lg-d, 14px));
		background: var(--om-color-background, #fff);
	}
}

.om-cdesign-modern .om-filter-panel-head {
	border-bottom-color: var(--om-line);
}

.om-cdesign-modern .om-filter-group + .om-filter-group {
	border-top-color: var(--om-line);
}

.om-cdesign-modern .om-filter-link {
	margin: 0 -8px;
	padding: 7px 8px;
	border-radius: var(--om-radius, var(--om-radius-d, 6px));
	transition: color 0.2s ease, background-color 0.2s ease;
}

.om-cdesign-modern .om-filter-link:hover {
	background: var(--om-soft);
}

.om-cdesign-modern .om-filter-link.is-active {
	background: var(--om-soft);
}

.om-cdesign-modern .om-filter-link.is-sub {
	padding-left: 33px;
}

/* Top bars: sentence-case pills; on phones one scrollable row each. */
.om-cdesign-modern .om-filter-pill.om-filter-pill {
	padding: 8px 16px;
	border-color: rgba(0, 17, 28, 0.14);
	border-radius: var(--om-radius, var(--om-radius-d, 6px));
	font-size: 13px;
	letter-spacing: 0.02em;
	text-transform: none;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.om-cdesign-modern .om-filter-pill.om-filter-pill:hover {
	transform: translateY(-1px);
}

.om-cdesign-modern .om-line-bar .om-filter-pill.om-filter-pill {
	padding: 10px 20px;
	font-size: 14px;
}

@media (max-width: 900px) {
	.om-cdesign-modern .om-filter-bar {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		margin-left: -16px;
		margin-right: -16px;
		padding: 2px 16px 6px;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.om-cdesign-modern .om-filter-bar::-webkit-scrollbar {
		display: none;
	}

	.om-cdesign-modern .om-filter-bar .om-filter-pill {
		flex: 0 0 auto;
		white-space: nowrap;
	}
}

/* Dropdown filters, search, sort. */
.om-cdesign-modern .om-filter-select select,
.om-cdesign-modern .om-sort-select {
	border-color: rgba(0, 17, 28, 0.14);
}

.om-cdesign-modern .om-search-input.om-search-input {
	border-color: rgba(0, 17, 28, 0.14);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.om-cdesign-modern .om-search-input.om-search-input:focus {
	border-color: var(--om-color-primary, #00111C);
	box-shadow: 0 0 0 3px rgba(0, 17, 28, 0.06);
	outline: none;
}

.om-cdesign-modern .om-catalog-toolbar {
	padding-bottom: 14px;
	border-bottom: 1px solid var(--om-line);
}

.om-cdesign-modern .om-chip.om-chip {
	border-radius: 999px;
	padding: 6px 10px 6px 14px;
}

/* Cards: framed photos, glassy pill badges, staggered entrance. */
.om-cdesign-modern .om-catalog-grid .om-card-image {
	box-shadow: inset 0 0 0 1px var(--om-line);
}

.om-cdesign-modern .om-catalog-grid .om-card-image img {
	position: relative;
	z-index: -1;
}

.om-cdesign-modern .om-catalog-grid .om-card-image.has-hover .om-card-hover,
.om-cdesign-modern .om-catalog-grid .om-card-image .om-card-video {
	z-index: 0;
}

.om-cdesign-modern .om-card-cell .om-badge {
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.86);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	box-shadow: 0 1px 4px rgba(0, 17, 28, 0.08);
}

.om-cdesign-modern .om-card-title {
	margin-top: 2px;
}

.om-cdesign-modern .om-card-price {
	font-weight: 500;
}

.om-cdesign-modern .om-catalog-grid.om-fade-in > :nth-child(2) { animation-delay: 0.05s; }
.om-cdesign-modern .om-catalog-grid.om-fade-in > :nth-child(3) { animation-delay: 0.1s; }
.om-cdesign-modern .om-catalog-grid.om-fade-in > :nth-child(4) { animation-delay: 0.15s; }
.om-cdesign-modern .om-catalog-grid.om-fade-in > :nth-child(5) { animation-delay: 0.2s; }
.om-cdesign-modern .om-catalog-grid.om-fade-in > :nth-child(6) { animation-delay: 0.25s; }
.om-cdesign-modern .om-catalog-grid.om-fade-in > :nth-child(n+7) { animation-delay: 0.3s; }

/* Progress + pagination. */
html body .om-progress {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin: calc(48px * var(--om-space, 1)) 0 0;
	font-family: var(--om-font-body, Inter, sans-serif);
}

html body .om-progress-text {
	margin: 0;
	font-size: 13px;
	letter-spacing: 0.02em;
	color: #6e6e6e;
}

html body .om-progress-bar {
	position: relative;
	width: min(240px, 60%);
	height: 2px;
	overflow: hidden;
	border-radius: 2px;
	background: var(--om-line, rgba(0, 17, 28, 0.09));
}

html body .om-progress-bar > span {
	position: absolute;
	inset: 0 auto 0 0;
	background: var(--om-color-primary, #00111C);
	transition: width 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.om-cdesign-modern .om-progress + .om-pagination {
	margin-top: 18px;
}

.om-cdesign-modern .om-pagination a.page-numbers,
.om-cdesign-modern .om-pagination span {
	min-width: 42px;
	border-color: var(--om-line);
	border-radius: var(--om-radius, var(--om-radius-d, 6px));
}

.om-cdesign-modern .om-pagination span.dots {
	border-color: transparent;
}

/* Empty state card matches the panels. */
.om-cdesign-modern .om-empty-state {
	border: 1px solid var(--om-line);
}

/* ---------- Phones: filters as a bottom sheet ---------- */

@media (max-width: 900px) {
	.om-cdesign-modern .om-filter-toggle {
		border-color: rgba(0, 17, 28, 0.2);
		border-radius: var(--om-radius, var(--om-radius-d, 6px));
		text-transform: none;
		letter-spacing: 0.02em;
		font-size: 14px;
	}

	.om-cdesign-modern .om-filter-panel[open] .om-filter-panel-body {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 100001;
		max-height: 82vh;
		margin: 0;
		padding: 8px 20px 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		border: 0;
		border-radius: 18px 18px 0 0;
		background: var(--om-color-background, #fff);
		box-shadow: 0 0 0 100vmax rgba(0, 17, 28, 0.42), 0 -8px 30px rgba(0, 17, 28, 0.2);
		animation: om-sheet-up 0.32s cubic-bezier(0.22, 1, 0.36, 1);
	}

	.om-cdesign-modern .om-filter-panel[open] .om-filter-panel-body::before {
		content: "";
		display: block;
		width: 40px;
		height: 4px;
		margin: 4px auto 14px;
		border-radius: 2px;
		background: rgba(0, 17, 28, 0.18);
	}

	.om-cdesign-modern .om-filter-panel-head {
		position: sticky;
		top: -8px;
		z-index: 1;
		align-items: center;
		margin: 0 -20px 16px;
		padding: 8px 20px 14px;
		background: var(--om-color-background, #fff);
	}

	.om-cdesign-modern .om-filter-panel-head .om-clear-filters {
		margin-left: auto;
	}

	.om-cdesign-modern .om-filter-panel-body .om-filter-close.om-filter-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		margin: 0 -6px 0 6px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: var(--om-soft);
		color: var(--om-color-primary, #00111C);
		font-size: 22px;
		line-height: 1;
		cursor: pointer;
	}

	.om-cdesign-modern .om-filter-sheet-foot {
		position: sticky;
		bottom: 0;
		display: block;
		margin: 18px -20px 0;
		padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px));
		border-top: 1px solid var(--om-line);
		background: var(--om-color-background, #fff);
	}

	.om-cdesign-modern .om-filter-sheet-foot .om-filter-done.om-filter-done {
		width: 100%;
		min-height: 50px;
		margin: 0;
		padding: 0 20px;
		border: 1px solid var(--om-color-primary, #00111C);
		border-radius: var(--om-radius, var(--om-radius-d, 6px));
		background: var(--om-color-primary, #00111C);
		color: #fff;
		font-family: inherit;
		font-size: 13px;
		font-weight: 500;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		cursor: pointer;
	}

	html.om-sheet-open,
	html.om-sheet-open body {
		overflow: hidden;
	}
}

@keyframes om-sheet-up {
	from { transform: translateY(40px); opacity: 0.4; }
	to { transform: none; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.om-cdesign-modern .om-catalog-grid.om-fade-in > * {
		animation-delay: 0s !important;
	}

	.om-cdesign-modern .om-filter-panel[open] .om-filter-panel-body {
		animation: none;
	}
}

/* Sheet-only controls stay hidden outside the phone sheet, whatever the
   theme does to buttons. */
.om-catalog-wrap .om-filter-close.om-filter-close,
.om-catalog-wrap .om-filter-sheet-foot.om-filter-sheet-foot {
	display: none;
}

@media (max-width: 900px) {
	.om-cdesign-modern .om-filter-panel[open] .om-filter-close.om-filter-close {
		display: inline-flex;
	}

	.om-cdesign-modern .om-filter-panel[open] .om-filter-sheet-foot.om-filter-sheet-foot {
		display: block;
	}

	/* A sticky sidebar keeps the fixed sheet inside its own layer; lift
	   the sidebar above the page while the sheet is open. */
	html.om-sheet-open .om-cdesign-modern .om-filter-sidebar {
		position: relative !important;
		top: auto !important;
		z-index: 100001;
	}
}

/* ---------- Inquiry: subject choice ---------- */

.om-inquiry .om-field--subject {
	min-width: 0;
	margin: 0 0 18px;
	padding: 0;
	border: 0;
}

html body .om-subject-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

html body .om-subject-choice {
	position: relative;
	display: inline-flex;
	margin: 0;
	cursor: pointer;
}

html body .om-subject-choice input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

html body .om-subject-choice span {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0 14px;
	border: 1px solid rgba(0, 17, 28, 0.14);
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	font-size: 13px;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--om-color-text, #464646);
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.om-subject-choice:hover span {
	border-color: var(--om-color-primary, #00111C);
}

.om-subject-choice:active span {
	transform: scale(0.97);
}

.om-subject-choice input:checked + span {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-subject-choice input:focus-visible + span {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
}

/* =========================================================
   1.14 Badges as filters, compare, "show more", zoom, a11y
   ========================================================= */

/* Badges sit over the photo but outside the card link. */
.om-card-cell > .om-badges {
	position: absolute;
	top: 10px;
	left: 10px;
	right: 52px;
	z-index: 4;
	pointer-events: none;
}

.om-layout-boxed .om-card-cell > .om-badges {
	top: 24px;
	left: 24px;
}

.om-card-cell:has(.om-card-play--tl) > .om-badges {
	top: calc(var(--om-vbadge-size, 28px) + 16px);
}

.om-card-cell > .om-badges .om-badge {
	pointer-events: auto;
}

.om-card-cell > .om-badges a.om-badge--link,
.om-card-cell > .om-badges a.om-badge--link:is(:visited, :focus) {
	text-decoration: none;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.om-card-cell > .om-badges a.om-badge--link:is(:hover, :focus-visible) {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

html body .om-badge--popular {
	background: #fff4dc;
}

/* Compare toggle under the card. */
.om-card-cell .om-compare-toggle.om-compare-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 10px auto 0;
	padding: 4px 6px;
	border: 0;
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	background: transparent;
	color: #6e6e6e;
	font-family: var(--om-font-body, inherit);
	font-size: 12px;
	letter-spacing: 0.04em;
	line-height: 1.2;
	cursor: pointer;
	transition: color 0.2s ease;
}

html body .om-card-cell {
	display: flex;
	flex-direction: column;
}

.om-card-cell > .om-card {
	flex: 1 1 auto;
}

.om-card-cell .om-compare-toggle.om-compare-toggle:is(:hover, :focus-visible) {
	background: transparent;
	color: var(--om-color-primary, #00111C);
}

html body .om-compare-box {
	position: relative;
	width: 14px;
	height: 14px;
	border: 1px solid currentColor;
	border-radius: 3px;
	transition: background-color 0.2s ease;
}

.om-compare-toggle.is-on {
	color: var(--om-color-primary, #00111C);
}

.om-card-cell .om-compare-toggle.om-compare-toggle.is-on {
	color: var(--om-color-primary, #00111C);
}

.om-compare-toggle.is-on .om-compare-box {
	background: var(--om-color-primary, #00111C);
	border-color: var(--om-color-primary, #00111C);
}

.om-compare-toggle.is-on .om-compare-box::after {
	content: "";
	position: absolute;
	left: 4px;
	top: 1px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}

.om-compare-toggle.is-shake {
	animation: om-shake 0.4s ease;
}

@keyframes om-shake {
	25% { transform: translateX(-3px); }
	75% { transform: translateX(3px); }
}

/* Compare tray (bottom of the screen). */
html body .om-compare-tray {
	position: fixed;
	left: 50%;
	bottom: 16px;
	z-index: 9990;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: calc(100vw - 24px);
	padding: 10px 12px 10px 18px;
	border: 1px solid rgba(0, 17, 28, 0.1);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.96);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 14px 40px -12px rgba(0, 17, 28, 0.35);
	font-family: var(--om-font-body, Inter, sans-serif);
	transform: translateX(-50%);
	animation: om-tray-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.om-compare-tray[hidden] {
	display: none;
}

@keyframes om-tray-in {
	from { opacity: 0; transform: translate(-50%, 16px); }
	to { opacity: 1; transform: translateX(-50%); }
}

html body .om-compare-label {
	margin: 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
	white-space: nowrap;
}

html body .om-compare-items {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

html body .om-compare-item {
	position: relative;
	width: 46px;
	height: 46px;
	margin: 0;
	border: 1px solid rgba(0, 17, 28, 0.1);
	border-radius: 8px;
	background: #f4f3f1;
}

.om-compare-item.is-empty {
	border-style: dashed;
	background: transparent;
}

html body .om-compare-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 7px;
}

.om-compare-tray .om-compare-drop.om-compare-drop {
	position: absolute;
	top: -7px;
	right: -7px;
	width: 20px;
	height: 20px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-size: 13px;
	line-height: 20px;
	cursor: pointer;
}

html body .om-compare-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.om-compare-tray .om-compare-open.om-compare-open {
	min-height: 42px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: 10px;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
}

.om-compare-tray .om-compare-open.om-compare-open:disabled {
	background: #fff;
	color: #6e6e6e;
	border-color: rgba(0, 17, 28, 0.15);
	cursor: default;
}

.om-compare-tray .om-compare-clear.om-compare-clear {
	margin: 0;
	padding: 4px;
	border: 0;
	background: transparent;
	color: #6e6e6e;
	font: inherit;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

html.om-has-compare.om-has-sticky-bar .om-compare-tray {
	bottom: 84px;
}

@media (max-width: 600px) {
	html body .om-compare-tray {
		left: 12px;
		right: 12px;
		bottom: 12px;
		gap: 10px;
		padding: 8px 10px;
		transform: none;
		animation: none;
	}

	html body .om-compare-label {
		display: none;
	}

	html body .om-compare-item {
		width: 40px;
		height: 40px;
	}

	html body .om-compare-actions {
		margin-left: auto;
	}
}

/* Compare table dialog. */
html body .om-compare-dialog {
	width: min(1100px, calc(100vw - 24px));
	max-height: calc(100vh - 32px);
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: var(--om-radius-lg, 14px);
	background: var(--om-color-background, #fff);
	color: var(--om-color-text, #464646);
	box-shadow: 0 30px 80px rgba(0, 17, 28, 0.25);
	font-family: var(--om-font-body, Inter, sans-serif);
}

html body .om-compare-dialog::backdrop {
	background: rgba(0, 17, 28, 0.45);
}

html body .om-compare-inner {
	padding: 22px 24px 26px;
}

html body .om-compare-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}

html body .om-compare-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 26px;
	font-weight: 400;
	color: var(--om-color-primary, #00111C);
}

.om-compare-dialog .om-compare-close.om-compare-close {
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #f4f3f1;
	color: var(--om-color-primary, #00111C);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

html body .om-compare-scroll {
	overflow-x: auto;
}

html body .om-compare-table {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: 14px;
}

html body .om-compare-table th,
html body .om-compare-table td {
	padding: 12px 10px;
	border-top: 1px solid rgba(0, 17, 28, 0.08);
	text-align: left;
	vertical-align: top;
}

html body .om-compare-table th {
	width: 130px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-compare-row--photo td,
.om-compare-row--photo .om-compare-corner {
	border-top: 0;
}

html body .om-compare-row--photo img {
	width: 100%;
	max-width: 200px;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--om-radius-lg, 12px);
	background: #f4f3f1;
}

.om-compare-table .om-compare-name,
.om-compare-table .om-compare-name:visited {
	display: block;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 18px;
	line-height: 1.3;
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
}

html body .om-compare-style {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6e6e6e;
}

.om-compare-table .om-compare-view.om-compare-view {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0 16px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: var(--om-radius, 6px);
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}

.om-compare-table .om-compare-remove.om-compare-remove {
	display: block;
	margin: 10px 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: #6e6e6e;
	font: inherit;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

/* "Show more" button. */
html body .om-load-more {
	display: flex;
	justify-content: center;
	margin: 18px 0 calc(40px * var(--om-space, 1));
}

.om-catalog-wrap .om-load-more-btn,
.om-catalog-wrap .om-load-more-btn:visited {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 28px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	background: transparent;
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.om-catalog-wrap .om-load-more-btn:is(:hover, :focus-visible) {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-load-more-btn.is-loading::after {
	content: "";
	width: 14px;
	height: 14px;
	border: 1.5px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: om-spin 0.7s linear infinite;
}

@keyframes om-spin {
	to { transform: rotate(360deg); }
}

.om-load-more.is-infinite .om-load-more-btn:not(.is-loading) {
	opacity: 0.85;
}

/* Lightbox zoom. */
html body .om-lb-img {
	touch-action: none;
	transform-origin: center;
	will-change: transform;
	cursor: zoom-in;
}

.om-lightbox.is-zoomed .om-lb-img {
	cursor: grab;
}

.om-lightbox.is-zoomed .om-lb-img:active {
	cursor: grabbing;
}

.om-lightbox.is-zoomed .om-lb-prev,
.om-lightbox.is-zoomed .om-lb-next {
	opacity: 0;
	pointer-events: none;
}

html body .om-lb-stage {
	overflow: hidden;
}

html body .om-lb-zoom {
	position: absolute;
	right: 18px;
	bottom: 16px;
	display: flex;
	gap: 6px;
}

.om-lightbox .om-lb-zoom button.om-lb-zoom-in,
.om-lightbox .om-lb-zoom button.om-lb-zoom-out {
	position: static;
	width: 40px;
	height: 40px;
	margin: 0;
	border: 1px solid rgba(0, 17, 28, 0.15);
	border-radius: 50%;
	background: #fff;
	color: var(--om-color-primary, #00111C);
	font-size: 20px;
	line-height: 1;
}

.om-lightbox .om-lb-zoom button:disabled {
	opacity: 0.35;
	cursor: default;
}

.om-lightbox.is-video .om-lb-zoom {
	display: none;
}

/* Accessibility: bigger touch target for the copy button. */
.om-product-wrap .om-copy-style.om-copy-style {
	width: 28px;
	height: 28px;
}

@media (prefers-reduced-motion: reduce) {
	html body .om-compare-tray,
	.om-compare-toggle.is-shake {
		animation: none;
	}
}

/* Compare table: clean rows whatever the theme does to tables. */
.om-compare-dialog .om-compare-table,
.om-compare-dialog .om-compare-table tr,
.om-compare-dialog .om-compare-table tr:hover > td,
.om-compare-dialog .om-compare-table tr:nth-child(odd) > td,
.om-compare-dialog .om-compare-table tr:nth-child(even) > td,
.om-compare-dialog .om-compare-table th {
	background: transparent;
}

.om-compare-dialog .om-compare-table th,
.om-compare-dialog .om-compare-table td {
	border: 0;
	border-top: 1px solid rgba(0, 17, 28, 0.08);
}

.om-compare-dialog .om-compare-table .om-compare-row--photo > * {
	border-top: 0;
}

.om-compare-dialog .om-compare-table {
	margin: 0;
	border: 0;
}

/* Video thumbnail label on a dark pill: readable on any photo. */
.om-product-gallery .om-thumb-label {
	left: 50%;
	right: auto;
	bottom: 4px;
	padding: 2px 6px;
	border-radius: 999px;
	background: rgba(0, 17, 28, 0.78);
	color: #fff;
	text-shadow: none;
	transform: translateX(-50%);
	white-space: nowrap;
}

.om-thumb--video:not(:has(.om-thumb)) .om-thumb-label {
	color: #fff;
}

/* =========================================================
   1.15 — Complete the set
   ========================================================= */

.om-related--set .om-related-head {
	margin-bottom: 6px;
}

html body .om-set-sub {
	margin: 0 0 26px;
	max-width: 60ch;
	font-size: 14px;
	line-height: 1.6;
	color: #6e6e6e;
}

html body .om-card-after {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin: 8px 0 0;
	padding: 0 8px;
	text-align: center;
}

.om-layout-editorial .om-card-after {
	align-items: flex-start;
	text-align: left;
	padding: 0;
}

html body .om-card-set-price {
	margin: 0;
	min-height: 0;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: #6e6e6e;
}

.om-card-set-price:empty {
	display: none;
}

/* Theme-proof link (Hello Elementor colours links on hover). */
.om-card-after .om-set-ask.om-set-ask,
.om-card-after .om-set-ask.om-set-ask:visited {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border: 1px solid var(--om-line, rgba(0, 17, 28, 0.14));
	border-radius: 999px;
	background: transparent;
	color: var(--om-color-primary, #00111C);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.om-card-after .om-set-ask.om-set-ask:hover,
.om-card-after .om-set-ask.om-set-ask:focus-visible {
	border-color: var(--om-color-primary, #00111C);
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

.om-card-after .om-set-ask.om-set-ask:focus-visible {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
}

/* The paired design in the inquiry form. */
.om-inquiry-form .om-pair-chip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin: 0 0 16px;
	padding: 10px 12px 10px 14px;
	border: 1px solid var(--om-line, rgba(0, 17, 28, 0.12));
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	background: var(--om-soft, #faf9f7);
	font-size: 13px;
	color: #464646;
}

.om-inquiry-form .om-pair-chip[hidden] {
	display: none;
}

html body .om-pair-chip-label {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6e6e6e;
}

html body .om-pair-chip-name {
	flex: 1 1 auto;
	color: var(--om-color-primary, #00111C);
}

.om-inquiry-form .om-pair-remove.om-pair-remove,
.om-inquiry-form .om-pair-remove.om-pair-remove:hover,
.om-inquiry-form .om-pair-remove.om-pair-remove:focus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 50%;
	background: transparent;
	color: #6e6e6e;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

.om-inquiry-form .om-pair-remove.om-pair-remove:hover,
.om-inquiry-form .om-pair-remove.om-pair-remove:focus-visible {
	border-color: var(--om-line, rgba(0, 17, 28, 0.14));
	color: var(--om-color-primary, #00111C);
}

@media (max-width: 600px) {
	.om-card-after .om-set-ask.om-set-ask {
		padding: 7px 10px;
		font-size: 10px;
		letter-spacing: 0.06em;
		white-space: nowrap;
	}
}

/* =========================================================
   1.16 — Recently viewed in the search panel
   ========================================================= */

.om-catalog-wrap .om-suggest .om-suggest-clear-viewed.om-suggest-clear-viewed {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: #6e6e6e;
	font: inherit;
	font-size: 11px;
	line-height: 1.2;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.om-catalog-wrap .om-suggest .om-suggest-clear-viewed.om-suggest-clear-viewed:is(:hover, :focus-visible) {
	background: transparent;
	color: var(--om-color-primary, #00111C);
}

/* A row of small photo cards; scrolls sideways when there are more. */
html body .om-suggest-viewed {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 136px;
	justify-content: start;
	gap: 10px;
	margin: 0 -16px;
	padding: 2px 16px 4px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
	overscroll-behavior-x: contain;
}

.om-catalog-wrap .om-suggest .om-suggest-item.om-suggest-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
	min-width: 0;
	padding: 8px;
	border: 1px solid rgba(0, 0, 0, 0.07);
	border-radius: var(--om-radius, var(--om-radius-d, 0));
	background: #fff;
	scroll-snap-align: start;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.om-catalog-wrap .om-suggest .om-suggest-item.om-suggest-card:hover,
.om-catalog-wrap .om-suggest .om-suggest-item.om-suggest-card.is-active {
	background: #fff;
	border-color: var(--om-color-primary, #00111C);
	box-shadow: 0 8px 18px rgba(0, 17, 28, 0.08);
	color: var(--om-color-text, #464646);
}

.om-catalog-wrap .om-suggest .om-suggest-item.om-suggest-card:focus-visible {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
}

html body .om-suggest-card-img {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: calc(var(--om-radius, var(--om-radius-d, 0px)) * 0.7);
	background: #f4f3f1;
}

html body .om-suggest-card-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.om-suggest-card:hover .om-suggest-card-img img,
.om-suggest-card.is-active .om-suggest-card-img img {
	transform: scale(1.06);
}

html body .om-suggest-card-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	line-height: 1.3;
}

html body .om-suggest-card-title {
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
}

html body .om-suggest-card-style {
	font-size: 11px;
	letter-spacing: 0.04em;
	color: #6e6e6e;
}

.om-suggest-card .om-suggest-price {
	justify-self: start;
	margin-top: 2px;
	font-size: 12px;
}

/* After "Nothing found": the strip gets its own divider. */
.om-suggest-empty + .om-suggest-section--viewed {
	border-top: 1px solid rgba(0, 0, 0, 0.07);
}

@media (max-width: 600px) {
	html body .om-suggest-viewed {
		grid-auto-columns: 104px;
		margin: 0 -12px;
		padding: 2px 12px 4px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html body .om-suggest-card-img img,
	.om-catalog-wrap .om-suggest .om-suggest-item.om-suggest-card {
		transition: none;
	}
}

/* =========================================================
   1.17 — Catalog heading and the quiet page intro
   ========================================================= */

html body .om-intro-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	margin: 0 auto calc(var(--om-head-gap, 36px) * var(--om-space, 1));
	text-align: center;
}

html body .om-intro-head--left {
	align-items: flex-start;
	text-align: left;
}

html body .om-intro-head--right {
	align-items: flex-end;
	text-align: right;
}

html body .om-intro-eyebrow {
	margin: 0 0 10px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #6e6e6e;
}

.om-catalog-wrap .om-intro-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: clamp(30px, 4vw, 46px);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0.01em;
	color: var(--om-color-primary, #00111C);
}

html body .om-intro-rule {
	display: block;
	width: var(--om-head-rule-w, 56px);
	height: var(--om-head-rule-h, 1px);
	margin: 18px 0 0;
	background: var(--om-head-rule-c, var(--om-color-primary, #00111C));
	opacity: 0.5;
	transform-origin: var(--om-rule-origin, center);
}

html body .om-intro-head--left { --om-rule-origin: left; }
html body .om-intro-head--right { --om-rule-origin: right; }

html body .om-intro-text {
	max-width: 62ch;
	margin: 16px 0 0;
	font-size: 15px;
	line-height: 1.7;
	color: #5a5a5a;
}

/* ---------- The intro ---------- */

html body .om-intro--rise { --om-intro-k: om-intro-rise; }
html body .om-intro--fade { --om-intro-k: om-intro-fade; }
html body .om-intro--blur { --om-intro-k: om-intro-blur; }
html body .om-intro--zoom { --om-intro-k: om-intro-zoom; }

@keyframes om-intro-rise {
	from { opacity: 0; transform: translateY(var(--om-intro-dist, 18px)); }
}

@keyframes om-intro-fade {
	from { opacity: 0; }
}

@keyframes om-intro-blur {
	from { opacity: 0; filter: blur(10px); }
}

@keyframes om-intro-zoom {
	from { opacity: 0; transform: scale(0.95); }
}

/* Titles also settle their letter spacing: a quiet, luxurious touch. */
@keyframes om-intro-spacing {
	from { letter-spacing: 0.12em; }
}

@keyframes om-intro-rule {
	from { transform: scaleX(0); }
}

.om-catalog-wrap.om-intro .om-intro-head > *,
.om-catalog-wrap.om-intro:not(.om-intro-no-toolbar) :is(.om-filter-sidebar, .om-filter-bar, .om-filter-dropdowns, .om-catalog-toolbar),
.om-catalog-wrap.om-intro:not(.om-intro-no-cards) .om-catalog-grid.om-catalog-grid > *:nth-child(n) {
	animation: var(--om-intro-k, om-intro-rise) var(--om-intro-d, 700ms) cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.om-catalog-wrap.om-intro .om-intro-head > .om-intro-title,
.om-intro-page-title.om-intro-page-title {
	animation:
		var(--om-intro-k, om-intro-rise) var(--om-intro-d, 700ms) cubic-bezier(0.22, 1, 0.36, 1) backwards,
		om-intro-spacing calc(var(--om-intro-d, 700ms) * 1.6) cubic-bezier(0.22, 1, 0.36, 1) backwards;
	animation-delay: calc(var(--om-intro-d, 700ms) * 0.08);
}

.om-catalog-wrap.om-intro .om-intro-head > .om-intro-rule {
	animation: om-intro-rule calc(var(--om-intro-d, 700ms) * 1.2) cubic-bezier(0.65, 0, 0.35, 1) backwards;
	animation-delay: calc(var(--om-intro-d, 700ms) * 0.3);
}

.om-catalog-wrap.om-intro .om-intro-head > .om-intro-text {
	animation-delay: calc(var(--om-intro-d, 700ms) * 0.35);
}

.om-catalog-wrap.om-intro:not(.om-intro-no-toolbar) :is(.om-filter-sidebar, .om-filter-bar, .om-filter-dropdowns, .om-catalog-toolbar) {
	animation-delay: calc(var(--om-intro-d, 700ms) * 0.4);
}

.om-catalog-wrap.om-intro:not(.om-intro-no-cards) .om-catalog-grid.om-catalog-grid > *:nth-child(n) {
	animation-delay: calc(var(--om-intro-d, 700ms) * 0.55 + var(--om-i, 0) * var(--om-intro-s, 70ms));
}

/* Played: nothing replays when classes change (e.g. the grid's own fade). */
.om-catalog-wrap.om-intro-done .om-intro-head > *,
.om-catalog-wrap.om-intro-done :is(.om-filter-sidebar, .om-filter-bar, .om-filter-dropdowns, .om-catalog-toolbar),
.om-catalog-wrap.om-intro-done .om-catalog-grid.om-catalog-grid > *:nth-child(n) {
	animation: none;
}

@media (prefers-reduced-motion: reduce) {
	.om-catalog-wrap.om-intro *,
	.om-intro-page-title.om-intro-page-title {
		animation: none !important;
	}
}

@media print {
	.om-catalog-wrap.om-intro * {
		animation: none !important;
	}
}

/* =========================================================
   1.18 — End-of-results card
   ========================================================= */

html body .om-end-card {
	--om-end-bg: var(--om-soft, #f7f5f1);
	--om-end-fg: var(--om-color-primary, #00111C);
	--om-end-muted: #5f5f5f;
	--om-end-line: rgba(0, 17, 28, 0.1);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--om-end-min-h, 0);
	padding: var(--om-end-pad, clamp(28px, 4vw, 44px));
	overflow: hidden;
	border: 1px solid var(--om-end-line);
	border-radius: var(--om-radius-lg, var(--om-radius-lg-d, 0));
	background: var(--om-end-bg);
	color: var(--om-end-fg);
	text-align: var(--om-end-align, center);
	font-family: var(--om-font-body, Inter, sans-serif);
}

html body .om-end-card--cell {
	align-self: stretch;
}

html body .om-end-card--banner {
	grid-column: 1 / -1;
	min-height: 0;
	padding-block: clamp(36px, 5vw, 64px);
}

html body .om-end-card--outline {
	--om-end-bg: transparent;
	border-style: dashed;
	--om-end-line: rgba(0, 17, 28, 0.22);
}

html body .om-end-card--dark {
	--om-end-bg: var(--om-color-primary, #00111C);
	--om-end-fg: #fff;
	--om-end-muted: rgba(255, 255, 255, 0.78);
	--om-end-line: transparent;
}

html body .om-end-card--image {
	--om-end-fg: #fff;
	--om-end-muted: rgba(255, 255, 255, 0.85);
	--om-end-line: transparent;
	background: var(--om-color-primary, #00111C) var(--om-end-image) center / cover no-repeat;
}

html body .om-end-card--image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--om-end-overlay, rgba(0, 17, 28, 0.55));
}

html body .om-end-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: var(--om-end-items, center);
	gap: 0;
	max-width: 44ch;
}

.om-end-card--banner .om-end-inner {
	max-width: 60ch;
}

html body .om-end-eyebrow {
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--om-end-muted);
}

html body .om-end-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: clamp(22px, 2.4vw, 30px);
	line-height: 1.2;
	color: var(--om-end-fg);
}

html body .om-end-text {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.65;
	color: var(--om-end-muted);
}

html body .om-end-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: var(--om-end-items, center);
	gap: 10px;
	margin-top: 22px;
}

/* Buttons: theme-proof (Hello Elementor restyles buttons and links). */
.om-end-card .om-end-btn.om-end-btn,
.om-end-card .om-end-btn.om-end-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin: 0;
	padding: 12px 22px;
	border: 1px solid var(--om-end-fg);
	border-radius: var(--om-end-btn-radius, var(--om-radius, var(--om-radius-d, 0)));
	box-shadow: none;
	font: inherit;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.om-end-card .om-end-btn--primary.om-end-btn--primary {
	background: var(--om-end-fg);
	color: var(--om-end-bg-solid, #fff);
}

.om-end-card--dark .om-end-btn--primary.om-end-btn--primary,
.om-end-card--image .om-end-btn--primary.om-end-btn--primary {
	--om-end-bg-solid: var(--om-color-primary, #00111C);
}

.om-end-card .om-end-btn--secondary.om-end-btn--secondary {
	background: transparent;
	color: var(--om-end-fg);
}

.om-end-card .om-end-btn--primary.om-end-btn--primary:is(:hover, :focus-visible) {
	background: transparent;
	color: var(--om-end-fg);
	border-color: var(--om-end-fg);
}

.om-end-card .om-end-btn--secondary.om-end-btn--secondary:is(:hover, :focus-visible) {
	background: var(--om-end-fg);
	color: var(--om-end-bg-solid, #fff);
	border-color: var(--om-end-fg);
}

.om-end-card--dark .om-end-btn--secondary.om-end-btn--secondary:is(:hover, :focus-visible),
.om-end-card--image .om-end-btn--secondary.om-end-btn--secondary:is(:hover, :focus-visible) {
	color: var(--om-color-primary, #00111C);
}

.om-end-card .om-end-btn.om-end-btn:focus-visible {
	outline: 2px solid var(--om-end-fg);
	outline-offset: 3px;
}

@media (max-width: 600px) {
	html body .om-end-card--cell {
		grid-column: 1 / -1;
	}

	.om-end-card .om-end-btn.om-end-btn {
		flex: 1 1 100%;
		white-space: normal;
	}
}

/* ---------- The inquiry dialog ---------- */

html body .om-end-dialog {
	width: min(560px, calc(100vw - 32px));
	max-height: calc(100dvh - 48px);
	padding: 0;
	border: 0;
	border-radius: var(--om-radius-lg, 14px);
	background: #fff;
	color: var(--om-color-text, #464646);
	box-shadow: 0 30px 80px rgba(0, 17, 28, 0.25);
	overflow: auto;
}

html body .om-end-dialog::backdrop {
	background: rgba(0, 17, 28, 0.45);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}

.om-end-dialog[open] {
	animation: om-end-in 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes om-end-in {
	from { opacity: 0; transform: translateY(14px) scale(0.98); }
}

html body .om-end-dialog-inner {
	position: relative;
	padding: 30px 28px 26px;
}

html body .om-end-dialog-title {
	margin: 0 40px 6px 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 24px;
	line-height: 1.25;
	color: var(--om-color-primary, #00111C);
}

.om-end-dialog .om-end-dialog-close.om-end-dialog-close,
.om-end-dialog .om-end-dialog-close.om-end-dialog-close:is(:hover, :focus) {
	position: absolute;
	top: 16px;
	right: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(0, 17, 28, 0.12);
	border-radius: 50%;
	background: #fff;
	color: var(--om-color-primary, #00111C);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
}

.om-end-dialog .om-end-dialog-close.om-end-dialog-close:is(:hover, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
}

.om-end-dialog .om-inquiry {
	margin: 0;
	border: 0;
}

.om-end-dialog .om-inquiry-intro {
	margin-top: 0;
}

html.om-dialog-open {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.om-end-dialog[open] {
		animation: none;
	}
}

/* =========================================================
   1.19 — Story reels
   ========================================================= */

html body .om-reels {
	--om-reel-size: 76px;
	--om-reel-card-w: 112px;
	--om-reel-ring-w: 2.5px;
	--om-reel-ring-a: #c9a45c;
	--om-reel-ring-b: var(--om-color-primary, #00111C);
	--om-reel-seen: rgba(0, 17, 28, 0.18);
	--om-reel-gap: 16px;
	margin: 0 0 calc(28px * var(--om-space, 1));
	font-family: var(--om-font-body, Inter, sans-serif);
}

@media (max-width: 767px) {
	html body .om-reels--on-desktop { display: none; }
}

@media (min-width: 768px) {
	html body .om-reels--on-mobile { display: none; }
}

html body .om-reels-heading {
	margin: 0 0 14px;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	font-weight: 400;
	color: var(--om-color-primary, #00111C);
}

html body .om-reels-row {
	display: flex;
	gap: var(--om-reel-gap);
	justify-content: var(--om-reels-justify, flex-start);
	margin: 0;
	padding: 4px 2px 8px;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

html body .om-reels-row::-webkit-scrollbar { display: none; }

html body .om-reel {
	flex: 0 0 auto;
	margin: 0;
	scroll-snap-align: start;
}

/* The bubble (theme-proof: it is a <button>). */
.om-reels .om-reel-bubble.om-reel-bubble,
.om-reels .om-reel-bubble.om-reel-bubble:is(:hover, :focus) {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	width: auto;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--om-color-text, #464646);
	font: inherit;
	cursor: pointer;
}

html body .om-reel-ring {
	display: block;
	padding: var(--om-reel-ring-w);
	border-radius: 50%;
	background: conic-gradient(from 210deg, var(--om-reel-ring-a), var(--om-reel-ring-b), var(--om-reel-ring-a));
	transition: transform 0.25s ease;
}

.om-reel-bubble.is-seen .om-reel-ring {
	background: var(--om-reel-seen);
}

html body .om-reel-thumb {
	display: block;
	width: var(--om-reel-size);
	height: var(--om-reel-size);
	overflow: hidden;
	border: 2px solid #fff;
	border-radius: 50%;
	background: #f4f3f1;
}

html body .om-reel-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

html body .om-reel-label {
	max-width: calc(var(--om-reel-size) + 16px);
	overflow: hidden;
	font-size: 12px;
	line-height: 1.25;
	text-align: center;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--om-reel-label, var(--om-color-text, #464646));
}

@media (hover: hover) {
	.om-reel-bubble:hover .om-reel-ring { transform: scale(1.04); }
	.om-reel-bubble:hover .om-reel-thumb img { transform: scale(1.08); }
}

.om-reels .om-reel-bubble.om-reel-bubble:focus-visible {
	outline: none;
}

.om-reels .om-reel-bubble:focus-visible .om-reel-ring {
	box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--om-color-primary, #00111C);
}

/* Tall "card" bubbles. */
.om-reels--card .om-reel-ring {
	border-radius: calc(var(--om-radius-lg, 14px) + var(--om-reel-ring-w));
}

.om-reels--card .om-reel-thumb {
	width: var(--om-reel-card-w);
	height: calc(var(--om-reel-card-w) * 16 / 10);
	border-radius: var(--om-radius-lg, 14px);
}

.om-reels--card .om-reel-label {
	max-width: var(--om-reel-card-w);
}

/* ---------- The player ---------- */

html body .om-reels-viewer {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--om-rv-backdrop, rgba(8, 10, 12, 0.92));
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	opacity: 0;
	transition: opacity 0.25s ease;
	font-family: var(--om-font-body, Inter, sans-serif);
	-webkit-tap-highlight-color: transparent;
}

.om-reels-viewer.is-open { opacity: 1; }

html body .om-rv-panel {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(100vw, calc(100dvh * 9 / 16));
	height: 100dvh;
	max-height: 100dvh;
	overflow: hidden;
	background: #000;
	color: #fff;
	transform: scale(0.96);
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.om-reels-viewer.is-open .om-rv-panel { transform: none; }

@media (min-width: 768px) {
	html body .om-rv-panel {
		height: min(92dvh, 860px);
		width: calc(min(92dvh, 860px) * 9 / 16);
		border-radius: 16px;
		box-shadow: 0 40px 120px rgba(0, 0, 0, 0.5);
	}
}

html body .om-rv-bars {
	position: absolute;
	top: 10px;
	left: 10px;
	right: 10px;
	z-index: 3;
	display: flex;
	gap: 4px;
}

html body .om-rv-bar {
	flex: 1 1 0;
	height: 2.5px;
	overflow: hidden;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.35);
}

html body .om-rv-fill {
	display: block;
	height: 100%;
	background: #fff;
	transform: scaleX(0);
	transform-origin: left;
}

html body .om-rv-top {
	position: absolute;
	top: 20px;
	left: 12px;
	right: 8px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

html body .om-rv-who {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	font-size: 13px;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

html body .om-rv-avatar {
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	border: 1.5px solid #fff;
	border-radius: 50%;
	background: #333 center / cover no-repeat;
}

html body .om-rv-name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

html body .om-rv-tools {
	display: flex;
	gap: 2px;
}

.om-reels-viewer .om-rv-tools button.om-rv-pause,
.om-reels-viewer .om-rv-tools button.om-rv-sound,
.om-reels-viewer .om-rv-tools button.om-rv-close,
.om-reels-viewer .om-rv-tools button:is(:hover, :focus) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: transparent;
	background-position: center;
	background-size: 20px;
	background-repeat: no-repeat;
	box-shadow: none;
	color: #fff;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
}

.om-reels-viewer .om-rv-tools button:is(:hover, :focus-visible) {
	background-color: rgba(255, 255, 255, 0.14);
}

.om-reels-viewer .om-rv-tools button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 1px;
}

.om-reels-viewer .om-rv-tools button.om-rv-pause {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Crect x='6' y='5' width='4' height='14' rx='1'/%3E%3Crect x='14' y='5' width='4' height='14' rx='1'/%3E%3C/svg%3E");
}

.om-reels-viewer.is-paused .om-rv-tools button.om-rv-pause {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
}

.om-reels-viewer .om-rv-tools button.om-rv-sound {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4V5z' fill='%23fff'/%3E%3Cpath d='m23 9-6 6M17 9l6 6'/%3E%3C/svg%3E");
}

.om-reels-viewer .om-rv-tools button.om-rv-sound.is-on {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4V5z' fill='%23fff'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E");
}

html body .om-rv-stage {
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	touch-action: pan-y;
	user-select: none;
}

html body .om-rv-media,
html body .om-rv-media > * {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

html body .om-rv-video,
html body .om-rv-photo {
	object-fit: cover;
	background: #000;
}

/* Tap zones: left third goes back, the rest forward. */
.om-reels-viewer .om-rv-stage .om-rv-nav.om-rv-nav {
	position: absolute;
	top: 70px;
	bottom: 0;
	z-index: 2;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: transparent;
	cursor: pointer;
}

.om-reels-viewer .om-rv-stage .om-rv-prev { left: 0; width: 33%; }
.om-reels-viewer .om-rv-stage .om-rv-next { right: 0; width: 67%; }

.om-reels-viewer .om-rv-stage .om-rv-nav:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.8);
	outline-offset: -6px;
}

.om-reels-viewer .om-rv-stage .om-rv-nav:disabled {
	cursor: default;
}

/* Desktop: soft arrows on hover. */
@media (hover: hover) {
	.om-reels-viewer .om-rv-stage .om-rv-nav::after {
		content: "";
		position: absolute;
		top: 50%;
		width: 36px;
		height: 36px;
		margin-top: -18px;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.85) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300111C' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat;
		opacity: 0;
		transition: opacity 0.2s ease;
	}

	.om-reels-viewer .om-rv-stage .om-rv-prev::after { left: 10px; transform: scaleX(-1); }
	.om-reels-viewer .om-rv-stage .om-rv-next::after { right: 10px; }
	.om-reels-viewer .om-rv-stage .om-rv-nav:not(:disabled):hover::after { opacity: 1; }
}

html body .om-rv-foot {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	padding: 60px 18px calc(18px + env(safe-area-inset-bottom));
	background: linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0));
	pointer-events: none;
}

html body .om-rv-foot > * { pointer-events: auto; }

html body .om-rv-style {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.8);
}

html body .om-rv-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	line-height: 1.2;
	color: #fff;
}

html body .om-rv-price {
	margin: 4px 0 0;
	font-size: 14px;
	color: rgba(255, 255, 255, 0.9);
}

.om-reels-viewer .om-rv-foot .om-rv-cta.om-rv-cta,
.om-reels-viewer .om-rv-foot .om-rv-cta.om-rv-cta:visited {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 14px 0 0;
	padding: 12px 20px;
	border: 0;
	border-radius: var(--om-rv-cta-radius, 999px);
	background: var(--om-rv-cta-bg, #fff);
	color: var(--om-rv-cta-fg, #00111C);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.om-reels-viewer .om-rv-foot .om-rv-cta.om-rv-cta:is(:hover, :focus-visible) {
	background: var(--om-rv-cta-bg-hover, #f1ede6);
	color: var(--om-rv-cta-fg, #00111C);
	transform: translateY(-1px);
}

.om-reels-viewer .om-rv-foot .om-rv-cta.om-rv-cta:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	html body .om-reels-viewer,
	html body .om-rv-panel,
	html body .om-reel-ring,
	html body .om-reel-thumb img {
		transition: none;
	}
}

/* Keeps the white bars and names readable on pale videos. */
html body .om-rv-panel::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 3;
	height: 110px;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0));
	pointer-events: none;
}

/* =========================================================
   1.19 — Compare fly-in
   ========================================================= */

html body .om-compare-fly {
	position: fixed;
	z-index: 100001;
	margin: 0;
	object-fit: cover;
	pointer-events: none;
	box-shadow: 0 16px 40px rgba(0, 17, 28, 0.25);
	transform-origin: center;
	will-change: transform;
}

.om-compare-item.is-caught {
	animation: om-compare-catch 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes om-compare-catch {
	0% { transform: scale(1); }
	40% { transform: scale(1.18); }
	100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
	.om-compare-item.is-caught { animation: none; }
}

/* =========================================================
   1.19 — Back to results
   ========================================================= */

html body .om-back {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;
	margin: 0 0 18px;
	font-family: var(--om-font-body, Inter, sans-serif);
}

.om-back[hidden] { display: none; }

.om-back .om-back-link.om-back-link,
.om-back .om-back-link.om-back-link:visited {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 0;
	color: var(--om-back-c, var(--om-color-primary, #00111C));
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}

html body .om-back-arrow {
	position: relative;
	width: 22px;
	height: 1px;
	background: currentColor;
	transition: width 0.25s ease;
}

html body .om-back-arrow::before {
	content: "";
	position: absolute;
	left: 0;
	top: -3.5px;
	width: 7px;
	height: 7px;
	border-left: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
}

.om-back .om-back-link.om-back-link:is(:hover, :focus-visible) {
	color: var(--om-back-c-hover, var(--om-back-c, var(--om-color-primary, #00111C)));
}

.om-back .om-back-link:is(:hover, :focus-visible) .om-back-arrow {
	width: 30px;
}

.om-back .om-back-link.om-back-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

html body .om-back-filters {
	font-size: 12px;
	color: #6e6e6e;
}

.om-back-filters[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
	html body .om-back-arrow { transition: none; }
}

/* =========================================================
   1.19 — Slim sticky toolbar
   ========================================================= */

html body .om-sticky-tools {
	--om-st-bg: rgba(255, 255, 255, 0.86);
	--om-st-fg: var(--om-color-primary, #00111C);
	--om-st-line: rgba(0, 17, 28, 0.08);
	position: fixed;
	top: var(--om-st-top, 0px);
	left: 0;
	right: 0;
	z-index: 9990;
	padding: 0 16px;
	background: var(--om-st-bg);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--om-st-line);
	box-shadow: 0 6px 24px rgba(0, 17, 28, 0.06);
	color: var(--om-st-fg);
	font-family: var(--om-font-body, Inter, sans-serif);
	transform: translateY(calc(-100% - var(--om-st-top, 0px) - 40px));
	opacity: 0;
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease;
	pointer-events: none;
}

.om-sticky-tools[hidden] { display: none; }

.om-sticky-tools.is-shown {
	transform: none;
	opacity: 1;
	pointer-events: auto;
}

@media (min-width: 601px) {
	.admin-bar .om-sticky-tools { top: calc(var(--om-st-top, 0px) + 32px); }
}

@media (min-width: 601px) and (max-width: 782px) {
	.admin-bar .om-sticky-tools { top: calc(var(--om-st-top, 0px) + 46px); }
}

@media (max-width: 767px) {
	html body .om-sticky-tools--on-desktop { display: none; }
}

@media (min-width: 768px) {
	html body .om-sticky-tools--on-mobile { display: none; }
}

html.om-sheet-open .om-sticky-tools { visibility: hidden; }

/* Below a site header that stays on screen (measured by the script; the
   widget's "Distance from the top" still wins when set). */
html.om-fixed-header .om-sticky-tools { --om-st-top: var(--om-header-h, 0px); }
html.om-fixed-header { --om-sticky-offset: calc(var(--om-header-h, 0px) + 24px); }
.om-sticky-tools.is-shown { transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease, top 0.25s ease; }

html body .om-st-inner {
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: var(--om-st-max, 1240px);
	min-height: var(--om-st-h, 54px);
	margin: 0 auto;
}

html body .om-st-middle {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: 12px;
	min-width: 0;
	overflow: hidden;
}

html body .om-st-count {
	flex: 0 0 auto;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--om-st-muted, #5f5f5f);
	white-space: nowrap;
}

html body .om-st-chips {
	display: flex;
	gap: 6px;
	min-width: 0;
	overflow-x: auto;
	scrollbar-width: none;
}

html body .om-st-chips::-webkit-scrollbar { display: none; }

.om-sticky-tools .om-st-chips .om-chip {
	flex: 0 0 auto;
	margin: 0;
	padding: 4px 10px;
	font-size: 12px;
}

/* Buttons (theme-proof). */
.om-sticky-tools .om-st-btn.om-st-btn,
.om-sticky-tools .om-st-btn.om-st-btn:is(:hover, :focus) {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 38px;
	height: 38px;
	min-height: 0;
	margin: 0;
	padding: 0 12px;
	border: 1px solid var(--om-st-line);
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	color: var(--om-st-fg);
	font: inherit;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.om-sticky-tools .om-st-search.om-st-search,
.om-sticky-tools .om-st-top.om-st-top {
	width: 38px;
	padding: 0;
}

.om-sticky-tools .om-st-btn.om-st-btn:is(:hover, :focus-visible) {
	border-color: var(--om-st-fg);
	background: var(--om-st-fg);
	color: var(--om-st-bg-solid, #fff);
}

.om-sticky-tools .om-st-btn.om-st-btn:focus-visible {
	outline: 2px solid var(--om-st-fg);
	outline-offset: 2px;
}

html body .om-st-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--om-st-fg);
	color: var(--om-st-bg-solid, #fff);
	font-size: 10px;
	letter-spacing: 0;
}

.om-st-btn:is(:hover, :focus-visible) .om-st-badge {
	background: var(--om-st-bg-solid, #fff);
	color: var(--om-st-fg);
}

html body .om-st-icon {
	display: block;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--om-st-mask) center / contain no-repeat;
	mask: var(--om-st-mask) center / contain no-repeat;
}

html body .om-st-icon--filters { --om-st-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h10M18 7h2M4 17h4M12 17h8'/%3E%3Ccircle cx='16' cy='7' r='2'/%3E%3Ccircle cx='10' cy='17' r='2'/%3E%3C/svg%3E"); }
html body .om-st-icon--search { --om-st-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E"); }
html body .om-st-icon--top { --om-st-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M6 11l6-6 6 6'/%3E%3C/svg%3E"); }

.om-sticky-tools .om-st-sort select.om-sort-select {
	height: 38px;
	min-height: 0;
	margin: 0;
	padding: 0 30px 0 12px;
	border: 1px solid var(--om-st-line);
	border-radius: 999px;
	background-color: transparent;
	color: var(--om-st-fg);
	font-size: 12px;
}

@media (max-width: 600px) {
	html body .om-sticky-tools { padding: 0 10px; }
	html body .om-st-inner { gap: 8px; min-height: var(--om-st-h-m, 50px); }
	html body .om-st-count { display: none; }
	.om-sticky-tools .om-st-sort select.om-sort-select { max-width: 130px; }
}

@media (prefers-reduced-motion: reduce) {
	html body .om-sticky-tools { transition: none; }
}

/* =========================================================
   1.20 — Reels: metal colours and "More like this"
   ========================================================= */

html body .om-rv-colors {
	display: flex;
	gap: 10px;
	margin: 0 0 12px;
}

.om-rv-colors[hidden] { display: none; }

.om-reels-viewer .om-rv-colors .om-rv-color.om-rv-color {
	width: 26px;
	height: 26px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, 0.55);
	border-radius: 50%;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
	cursor: pointer;
	transition: transform 0.2s ease, border-color 0.2s ease;
}

.om-reels-viewer .om-rv-colors .om-rv-color.om-rv-color:hover { transform: scale(1.1); }

.om-reels-viewer .om-rv-colors .om-rv-color.om-rv-color[aria-pressed="true"] {
	border-color: #fff;
	box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.35), 0 0 0 4px #fff;
}

.om-reels-viewer .om-rv-colors .om-rv-color.om-rv-color:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 4px;
}

/* End screen. */
.om-reels-viewer.is-end .om-rv-foot,
.om-reels-viewer.is-end .om-rv-who,
.om-reels-viewer.is-end .om-rv-pause,
.om-reels-viewer.is-end .om-rv-sound,
.om-reels-viewer.is-end .om-rv-stage .om-rv-nav {
	display: none;
}

html body .om-rv-end {
	position: absolute;
	inset: 0;
	z-index: 4;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 18px;
	padding: 70px 18px 24px;
	overflow-y: auto;
	background: radial-gradient(120% 80% at 50% 0%, #20262c 0%, #07090b 70%);
	animation: om-rv-end-in 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes om-rv-end-in {
	from { opacity: 0; transform: translateY(12px); }
}

html body .om-rv-end-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 24px;
	text-align: center;
	color: #fff;
}

html body .om-rv-more-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.om-reels-viewer .om-rv-end .om-rv-more.om-rv-more,
.om-reels-viewer .om-rv-end .om-rv-more.om-rv-more:visited {
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: #fff;
	text-decoration: none;
}

html body .om-rv-more-img {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 12px;
	background: #1d2227;
}

html body .om-rv-more-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.om-rv-more:is(:hover, :focus-visible) .om-rv-more-img img { transform: scale(1.06); }

.om-reels-viewer .om-rv-end .om-rv-more.om-rv-more:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
	border-radius: 12px;
}

html body .om-rv-more-title {
	overflow: hidden;
	font-size: 13px;
	line-height: 1.3;
	text-overflow: ellipsis;
	white-space: nowrap;
}

html body .om-rv-more-price {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.75);
}

.om-rv-more-price:empty { display: none; }

html body .om-rv-end-actions {
	display: flex;
	gap: 10px;
}

.om-reels-viewer .om-rv-end .om-rv-again.om-rv-again,
.om-reels-viewer .om-rv-end .om-rv-browse.om-rv-browse,
.om-reels-viewer .om-rv-end .om-rv-browse.om-rv-browse:visited {
	display: inline-flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 10px 16px;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: var(--om-rv-cta-radius, 999px);
	background: transparent;
	box-shadow: none;
	color: #fff;
	font: inherit;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.om-reels-viewer .om-rv-end .om-rv-browse.om-rv-browse {
	border-color: transparent;
	background: var(--om-rv-cta-bg, #fff);
	color: var(--om-rv-cta-fg, #00111C);
}

.om-reels-viewer .om-rv-end .om-rv-again.om-rv-again:is(:hover, :focus-visible) {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
}

.om-reels-viewer .om-rv-end .om-rv-browse.om-rv-browse:is(:hover, :focus-visible) {
	background: var(--om-rv-cta-bg-hover, #f1ede6);
	color: var(--om-rv-cta-fg, #00111C);
}

.om-reels-viewer .om-rv-end :is(.om-rv-again, .om-rv-browse):focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	html body .om-rv-end { animation: none; }
}

/* =========================================================
   1.21 — Refined design
   One quiet language: five text sizes, one button family (shape from
   Settings / the widget: --om-btn-radius), gold for small moments,
   one photo tone, an 8-point rhythm and one motion curve. Builds on
   Modern (the wrappers carry both classes). Text styles use :where()
   so the widgets' own typography controls still win.
   ========================================================= */

html body .om-card-sub { display: none; }

html body .om-refined,
.om-catalog-wrap.om-refined,
.om-product-wrap.om-refined {
	--om-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--om-muted: #6e6e6e;
	--om-hair: #e6e0d6;
	--om-radius-d: var(--om-btn-radius, 999px);
	--om-radius-lg-d: 16px;
	--om-r: var(--om-radius, var(--om-btn-radius, 999px));
	--om-r-lg: var(--om-radius-lg, 16px);
	--om-thumb-radius: 12px;
	--om-media-radius: var(--om-radius-lg, 20px);
}

html body .om-refined textarea,
.om-refined .om-acc,
.om-refined .om-filter-panel,
.om-refined .om-empty-state {
	--om-radius-d: 16px;
}

/* ---------- Cards ---------- */

.om-refined .om-card-image {
	background: var(--om-photo-tone, #f3efe8);
	border-radius: var(--om-radius-lg, 16px);
	margin-bottom: 16px;
	isolation: isolate;
	transition: box-shadow 0.35s var(--om-ease), transform 0.35s var(--om-ease);
}

.om-refined .om-card-image img {
	mix-blend-mode: var(--om-photo-blend, multiply);
}

.om-refined .om-card-image .om-card-video {
	background: var(--om-photo-tone, #f3efe8);
}

.om-refined .om-hover-lift:hover .om-card-image {
	box-shadow: 0 22px 44px rgba(0, 17, 28, 0.1);
}

:where(.om-refined) .om-catalog-grid:not(.om-layout-overlay) .om-card-body,
:where(.om-refined) .om-related-track:not(.om-layout-overlay) .om-card-body {
	padding: 0 2px;
	text-align: left;
}

html body :where(.om-refined) .om-card-title {
	margin: 0 0 4px;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 21px;
	font-weight: 400;
	line-height: 1.25;
	letter-spacing: 0;
	text-transform: none;
}

html body :where(.om-refined) .om-card-variant { display: none; }

html body :where(.om-refined) .om-card-sub {
	display: block;
	margin: 0;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-muted, #6e6e6e);
}

html body :where(.om-refined) .om-card-price {
	margin-top: 8px;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0;
}

/* Photo corners have fixed jobs: top-left one badge, top-right compare,
   bottom-left the video mark, bottom-centre Quick view (on hover, when
   the video mark fades as the video plays). */
.om-refined .om-card-cell .om-badges > :nth-child(n+2) { display: none; }

.om-refined .om-card-cell > .om-badges {
	top: 14px;
	left: 14px;
	right: 64px;
}

.om-refined .om-card-cell .om-badge.om-badge {
	padding: 5px 11px;
	border: 1px solid rgba(184, 146, 90, 0.3);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	box-shadow: none;
	color: var(--om-color-primary, #00111C);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.om-refined .om-card-cell .om-badge.om-badge--popular {
	border-color: transparent;
	background: var(--om-gold-light, #f4dc9c);
}

.om-refined .om-card-image .om-card-play.om-card-play {
	top: auto;
	right: auto;
	bottom: 14px;
	left: 14px;
	z-index: 3;
	width: 30px;
	height: 30px;
	padding: 0;
	border-radius: 50%;
	background: rgba(0, 17, 28, 0.7);
	box-shadow: none;
}

.om-refined .om-card-image .om-card-play::after {
	border-width: 4.5px 0 4.5px 7px;
	border-color: transparent transparent transparent #fff;
}

.om-refined .om-card-play .om-card-play-text { display: none; }

.om-refined .om-card-cell:is(:hover, :focus-within) .om-card-play { opacity: 0; }

.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 5;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--om-hair, #e6e0d6);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 4px 14px rgba(0, 17, 28, 0.08);
	color: transparent;
	font-size: 0;
	transition: opacity 0.25s var(--om-ease), background-color 0.2s ease, border-color 0.2s ease;
}

.om-refined .om-layout-boxed .om-compare-toggle.om-compare-toggle { top: 26px; right: 26px; }

.om-refined .om-compare-toggle .om-compare-box {
	width: 16px;
	height: 16px;
	border: 0;
	border-radius: 0;
	background: var(--om-color-primary, #00111C);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3 3 7-7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3 3 7-7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.om-refined .om-compare-toggle.is-on .om-compare-box { background: #fff; }
.om-refined .om-compare-toggle.is-on .om-compare-box::after { display: none; }

.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle:is(:hover, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
	background: #fff;
	color: transparent;
}

.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle.is-on,
.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle.is-on:is(:hover, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
	background: var(--om-color-primary, #00111C);
	color: transparent;
}

.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle:focus-visible {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
	.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle:not(.is-on) { opacity: 0; }
	.om-refined .om-card-cell:hover .om-compare-toggle.om-compare-toggle,
	.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle:focus-visible { opacity: 1; }
}

.om-refined .om-qv-slot,
.om-refined .om-qv-slot--icon,
.om-refined .om-qv-slot--button {
	justify-content: center;
	padding: 14px;
}

.om-refined .om-card-cell .om-qv-btn.om-qv-btn {
	width: auto;
	height: 44px;
	padding: 0 22px;
	border: 0;
	border-radius: var(--om-btn-radius, 999px);
	background: #fff;
	box-shadow: 0 6px 18px rgba(0, 17, 28, 0.12);
	color: var(--om-color-primary, #00111C);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.om-refined .om-card-cell .om-qv-btn.om-qv-btn--icon {
	width: 44px;
	padding: 0;
	border-radius: 50%;
}

.om-refined .om-card-cell .om-qv-btn.om-qv-btn:is(:hover, :focus-visible) {
	background: var(--om-color-primary, #00111C);
	color: #fff;
}

/* ---------- One button family ---------- */

.om-refined .om-btn.om-btn,
.om-refined .om-load-more-btn.om-load-more-btn,
.om-refined .om-inquiry-submit.om-inquiry-submit,
.om-refined .om-end-btn.om-end-btn,
.om-refined .om-search-submit.om-search-submit {
	min-height: 44px;
	border-radius: var(--om-btn-radius, 999px);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transition: background-color 0.25s var(--om-ease), color 0.25s var(--om-ease), border-color 0.25s var(--om-ease);
}

.om-refined .om-btn.om-btn--gold.om-btn--gold,
.om-refined .om-btn.om-btn--gold.om-btn--gold:visited {
	border: 1px solid var(--om-gold-light, #f4dc9c);
	background: var(--om-gold-light, #f4dc9c);
	color: var(--om-color-primary, #00111C);
}

.om-refined .om-btn.om-btn--gold.om-btn--gold:is(:hover, :focus-visible) {
	border-color: var(--om-gold, #b8925a);
	background: var(--om-gold-light, #f4dc9c);
	color: var(--om-color-primary, #00111C);
	box-shadow: inset 0 0 0 1px var(--om-gold, #b8925a);
}

/* ---------- Listing: search, sort, count ---------- */

.om-refined .om-search {
	border-radius: var(--om-btn-radius, 999px);
}

.om-refined .om-search-input.om-search-input {
	height: 48px;
	border-radius: var(--om-btn-radius, 999px);
	background-color: #fff;
}

.om-refined .om-search:not(.om-search--no-button) .om-search-input.om-search-input {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.om-refined .om-search-submit.om-search-submit {
	height: 48px;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.om-refined .om-sort-select,
.om-refined .om-filter-dropdowns select {
	height: 44px;
	border-radius: var(--om-btn-radius, 999px);
	background-color: #fff;
}

html body :where(.om-refined) .om-result-count,
html body :where(.om-refined) .om-sort > span,
html body :where(.om-refined) .om-progress-text {
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	color: #464646;
}

.om-refined .om-progress-bar > span { background: var(--om-gold, #b8925a); }

/* ---------- Filters: quieter, with shape tiles ---------- */

html body :where(.om-refined) .om-filter-heading {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
}

html body .om-shape-icon {
	display: none;
	width: 28px;
	height: 28px;
	background: currentColor;
	-webkit-mask: var(--om-shape) center / contain no-repeat;
	mask: var(--om-shape) center / contain no-repeat;
}


html body .om-shape-icon--all { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Ccircle cx='9' cy='9' r='5'/%3E%3Crect x='14' y='14' width='10' height='10'/%3E%3C/svg%3E"); }
html body .om-shape-icon--round { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Ccircle cx='14' cy='14' r='10'/%3E%3Cpath d='M4 14h20M14 4l6 10-6 10-6-10z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--oval { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cellipse cx='14' cy='14' rx='7' ry='11'/%3E%3Cpath d='M14 3l4 11-4 11-4-11z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--cushion { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M8 4h12q4 0 4 4v12q0 4-4 4H8q-4 0-4-4V8q0-4 4-4z'/%3E%3Cpath d='M9 9h10v10H9z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--princess { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M4 4h20v20H4z'/%3E%3Cpath d='M4 4l20 20M24 4L4 24'/%3E%3C/svg%3E"); }
html body .om-shape-icon--emerald { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M9 3h10l4 4v14l-4 4H9l-4-4V7z'/%3E%3Cpath d='M10 7h8v14h-8z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--pear { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M14 3c4 6 8 10 8 15a8 8 0 0 1-16 0c0-5 4-9 8-15z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--marquise { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M14 2c6 6 6 18 0 24c-6-6-6-18 0-24z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--radiant, html body .om-shape-icon--asscher { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M8 4h12l4 4v12l-4 4H8l-4-4V8z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--heart { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M14 24S4 17 4 10a5 5 0 0 1 10-1a5 5 0 0 1 10 1c0 7-10 14-10 14z'/%3E%3C/svg%3E"); }
html body .om-shape-icon--other { --om-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M14 4l10 10-10 10L4 14z'/%3E%3C/svg%3E"); }


/* ---------- Loading & empty ---------- */

.om-refined .om-card-cell.is-skeleton .om-card-image,
.om-refined .om-card-cell.is-skeleton .om-card-body > * {
	background: linear-gradient(100deg, var(--om-photo-tone, #f3efe8) 30%, #f9f6f1 50%, var(--om-photo-tone, #f3efe8) 70%);
	background-size: 200% 100%;
}

.om-refined .om-empty-icon { color: var(--om-gold, #b8925a); }

html body :where(.om-refined) .om-empty-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 28px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

/* ---------- Product page ---------- */

.om-product-wrap.om-design-refined {
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	column-gap: clamp(32px, 5vw, 72px);
}

@media (max-width: 800px) {
	.om-product-wrap.om-design-refined { grid-template-columns: minmax(0, 1fr); }
}

.om-design-refined .om-product-gallery .om-main-image,
.om-design-refined .om-product-gallery .om-zoom,
.om-design-refined .om-product-gallery .om-main-media {
	background: var(--om-photo-tone, #f3efe8);
}

.om-design-refined .om-product-gallery .om-main-image,
.om-design-refined .om-product-gallery .om-thumb {
	mix-blend-mode: var(--om-photo-blend, multiply);
}

html body :where(.om-design-refined) .om-line-label {
	color: #8a6a3b;
}

html body :where(.om-design-refined) .om-product-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: clamp(32px, 3.4vw, 44px);
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0;
}

html body :where(.om-design-refined) .om-style-number,
html body :where(.om-design-refined) .om-opt-label {
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
}

html body :where(.om-design-refined) .om-opt-name { color: var(--om-color-primary, #00111C); font-weight: 500; }
html body :where(.om-design-refined) .om-opt-current { color: #6e6e6e; }

/* The promises as three quiet tiles. */
.om-design-refined .om-trust {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 10px;
	padding: 0;
}

.om-design-refined .om-trust > li {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	margin: 0;
	padding: 10px 8px;
	border: 1px solid var(--om-hair, #e6e0d6);
	border-radius: 14px;
	background: #fff;
	font-size: 13px;
	line-height: 1.35;
	text-align: center;
}

.om-design-refined .om-trust > li::before { display: none; }

/* Details: open sections, specs as a two-column list. */
.om-design-refined .om-specs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 24px;
	row-gap: 0;
}

.om-design-refined .om-specs > div,
.om-design-refined .om-specs > dt,
.om-design-refined .om-specs > dd {
	padding: 12px 0;
	border-bottom: 1px solid #efeae2;
}

html body :where(.om-design-refined) .om-acc-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

/* ---------- Phones ---------- */

@media (max-width: 767px) {
	/* The visitor's own choice beats the widget's phone columns. */
	.om-refined .om-catalog-grid.om-catalog-grid.is-one-per-row {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.om-refined .om-catalog-grid.om-catalog-grid.is-two-per-row {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	/* The slim toolbar becomes a floating Filter · Sort pill at the bottom. */
	.om-cdesign-refined .om-sticky-tools {
		top: auto;
		bottom: calc(18px + env(safe-area-inset-bottom));
		left: 50%;
		right: auto;
		width: auto;
		padding: 4px;
		border: 0;
		border-radius: 999px;
		background: var(--om-color-primary, #00111C);
		box-shadow: 0 16px 34px rgba(0, 17, 28, 0.28);
		transform: translate(-50%, 140%);
		--om-st-fg: #faf8f4;
		--om-st-bg-solid: var(--om-color-primary, #00111C);
		--om-st-line: transparent;
	}

	.om-cdesign-refined .om-sticky-tools.is-shown { transform: translate(-50%, 0); }

	.om-cdesign-refined .om-sticky-tools .om-st-inner { min-height: 0; gap: 2px; }

	.om-cdesign-refined .om-sticky-tools :is(.om-st-search, .om-st-middle, .om-st-top) { display: none; }

	.om-cdesign-refined .om-sticky-tools .om-st-btn.om-st-btn {
		height: 44px;
		border: 0;
		color: #faf8f4;
	}

	.om-cdesign-refined .om-sticky-tools .om-st-badge {
		background: var(--om-gold-light, #f4dc9c);
		color: var(--om-color-primary, #00111C);
	}

	.om-cdesign-refined .om-sticky-tools .om-st-sort select.om-sort-select {
		max-width: 160px;
		height: 44px;
		border: 0;
		background-color: transparent;
		color: #faf8f4;
	}

	.om-cdesign-refined .om-sticky-tools .om-st-sort select.om-sort-select option { color: #00111C; }
}

/* Grid size toggle (phones). */
html body .om-grid-size { display: none; }

@media (max-width: 767px) {
	.om-refined .om-grid-size {
		display: inline-flex;
		gap: 6px;
		margin-left: auto;
	}

	.om-refined .om-grid-size .om-grid-size-btn.om-grid-size-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		min-height: 0;
		margin: 0;
		padding: 0;
		border: 1px solid var(--om-hair, #e6e0d6);
		border-radius: 12px;
		background: #fff;
		box-shadow: none;
		color: #464646;
	}

	.om-refined .om-grid-size .om-grid-size-btn.om-grid-size-btn[aria-pressed="true"] {
		border-color: var(--om-color-primary, #00111C);
		color: var(--om-color-primary, #00111C);
	}

	.om-refined .om-grid-size .om-grid-size-btn.om-grid-size-btn:is(:hover, :focus-visible) {
		background: #fff;
		color: var(--om-color-primary, #00111C);
	}
}

@media (prefers-reduced-motion: reduce) {
	.om-refined .om-card-image,
	.om-refined .om-card-cell .om-compare-toggle.om-compare-toggle { transition: none; }
}

/* Story reels under the catalog heading. */
html body .om-intro-reels {
	width: 100%;
	margin-top: 24px;
}

.om-intro-head--center .om-intro-reels .om-reels { --om-reels-justify: safe center; }
.om-intro-reels .om-reels { margin-bottom: 0; }

.om-refined .om-card-body .om-card-variant { display: none; }
html body .om-card-variant { display: var(--om-variant-display, block); }
.om-refined .om-card-body .om-card-sub { display: var(--om-variant-display, block); }
.om-refined.om-related--no-variant .om-card-sub { display: none; }

html body :where(.om-cdesign-refined) .om-st-count {
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
}

/* Option names in sentence case ("Metal · 14 KT"), like the mock-up. */
.om-design-refined .om-options-form[data-om-options] .om-opt-label,
.om-design-refined .om-options-form[data-om-options] legend.om-opt-label {
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
}

.om-design-refined .om-options-form[data-om-options] .om-opt-name { font-weight: 500; }
.om-design-refined .om-options-form[data-om-options] .om-opt-current { font-weight: 400; color: #6e6e6e; }

.om-design-refined .om-options-form .om-choice-swatch .om-swatch {
	width: 34px;
	height: 34px;
}

/* Specifications: label above value, two columns. */
.om-design-refined .om-details .om-specs > div {
	display: flex;
	flex-direction: column;
	gap: 3px;
	align-items: flex-start;
}

.om-design-refined .om-details .om-specs dt {
	margin: 0;
	font-size: 13px;
	color: #6e6e6e;
	letter-spacing: 0;
	text-transform: none;
}

.om-design-refined .om-details .om-specs dd {
	margin: 0;
	font-size: 15px;
	color: var(--om-color-primary, #00111C);
	text-align: left;
}

/* Stone details: quiet lines, no theme table chrome. */
.om-design-refined .om-details table.om-stone-table,
.om-design-refined .om-details table.om-stone-table :is(tbody, tr, td, th) {
	border: 0;
	background: transparent;
}

.om-design-refined .om-details table.om-stone-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}

.om-design-refined .om-details table.om-stone-table :is(td, th) {
	padding: 10px 0;
	border-bottom: 1px solid #efeae2;
	font-size: 15px;
	text-align: left;
}

.om-design-refined .om-details table.om-stone-table td:last-child { text-align: right; color: #6e6e6e; }

/* Section titles in the heading font, sentence case. */
.om-design-refined .om-details .om-acc .om-acc-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

@media (max-width: 767px) {
	.om-cdesign-refined .om-sticky-tools .om-st-sort { flex-shrink: 0; }
	.om-cdesign-refined .om-sticky-tools .om-st-sort select.om-sort-select { width: auto; min-width: 124px; padding-right: 26px; }
}

/* =========================================================
   1.21.1 — Card fixes (all designs)
   ========================================================= */

/* No underline under the name on hover (Lift keeps the rise). */
.om-card-cell .om-card:is(:hover, :focus-visible) .om-card-title.om-card-title,
.om-hover-lift:hover .om-card-title.om-card-title {
	text-decoration: none;
}

/* The video label keeps its own colour: themes that turn links white on
   hover made it invisible (it sits inside the card link). */
.om-card-cell .om-card .om-card-play.om-card-play--label,
.om-card-cell .om-card:is(:hover, :focus, :visited) .om-card-play.om-card-play--label,
.om-card-cell .om-card .om-card-play .om-card-play-text,
.om-card-cell .om-card:is(:hover, :focus, :visited) .om-card-play .om-card-play-text {
	color: var(--om-vbadge-color, var(--om-color-primary, #00111C));
}

/* The hover video fills the photo box in the box's own colour. */
.om-card-cell .om-card-image .om-card-video {
	background: inherit;
}

/* Refined: the video mark's play triangle stays centred (label style). */
.om-refined .om-card-image .om-card-play.om-card-play::after {
	position: absolute;
	top: 50%;
	left: 55%;
	margin: 0;
	transform: translate(-50%, -50%);
}

.om-refined .om-card-image .om-card-play.om-card-play--label { gap: 0; }

/* Refined, framed cards: badge and compare sit on the photo's corners. */
.om-refined .om-layout-boxed .om-card-cell > .om-badges {
	top: 28px;
	left: 28px;
}

.om-refined .om-layout-boxed .om-compare-toggle.om-compare-toggle {
	top: 27px;
	right: 27px;
}

/* =========================================================
   1.22 Filter sidebar: collapsible groups, rows, tiles, swatches
   ========================================================= */

.om-filter-list.is-js .om-filter-more { display: block; }

.om-filter-sidebar .om-filter-heading {
	display: flex;
	align-items: center;
	gap: 10px;
}

.om-filter-sidebar summary.om-filter-heading {
	min-height: 32px;
	margin: 0;
	list-style: none;
	cursor: pointer;
	user-select: none;
}

.om-filter-sidebar summary.om-filter-heading::-webkit-details-marker { display: none; }
.om-filter-sidebar summary.om-filter-heading::marker { content: ""; }

.om-filter-sidebar summary.om-filter-heading:focus-visible {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 4px;
	border-radius: 4px;
}

.om-filter-acc[open] > summary.om-filter-heading { margin-bottom: 10px; }

html body .om-filter-heading-text { flex: 0 1 auto; }

html body .om-filter-chev {
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	margin: 0 4px 3px auto;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.25s ease, margin 0.25s ease;
	opacity: 0.7;
}

.om-filter-acc[open] > summary .om-filter-chev {
	margin-bottom: -3px;
	transform: rotate(-135deg);
}

/* A closed group still says what is picked. */
html body .om-filter-picked {
	display: none;
	min-width: 0;
	padding: 2px 9px;
	overflow: hidden;
	border-radius: 999px;
	background: var(--om-photo-tone, #f3efe8);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--om-color-primary, #00111C);
}

.om-filter-acc:not([open]) .om-filter-picked { display: inline-block; }

/* Modern & Refined: sentence-case headings, calmer rhythm. */
:where(.om-cdesign-modern) .om-filter-sidebar .om-filter-heading {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
}

.om-cdesign-modern .om-filter-group + .om-filter-group {
	margin-top: 16px;
	padding-top: 16px;
}

.om-cdesign-modern .om-filter-panel-head { margin-bottom: 14px; }

/* Rows: a clear marker, a tinted pick, sub-categories on a guide line. */
.om-cdesign-modern .om-filter-sidebar .om-filter-link {
	min-height: 36px;
	padding: 6px 10px;
	margin: 0 -10px;
	box-sizing: border-box;
	font-size: 14px;
	font-weight: 400;
}

.om-cdesign-modern .om-filter-sidebar .om-filter-link::before {
	width: 16px;
	height: 16px;
	border: 1.5px solid #bdb6aa;
}

.om-cdesign-modern .om-filter-sidebar .om-filter-link.is-active {
	font-weight: 500;
	background: var(--om-photo-tone, var(--om-soft));
}

.om-cdesign-modern .om-filter-sidebar .om-filter-link.is-active::before {
	border-color: var(--om-color-primary, #00111C);
	background-color: var(--om-color-primary, #00111C);
	box-shadow: inset 0 0 0 3.5px var(--om-photo-tone, #fff);
}

.om-cdesign-modern .om-filter-sidebar .om-filter-link.is-sub {
	min-height: 32px;
	margin-left: 7px;
	padding-left: 16px;
	border-left: 1px solid var(--om-hair, #e6e0d6);
	border-radius: 0 var(--om-radius, var(--om-radius-d, 6px)) var(--om-radius, var(--om-radius-d, 6px)) 0;
	font-size: 13px;
}

.om-cdesign-modern .om-filter-sidebar .om-filter-link.is-sub::before {
	width: 12px;
	height: 12px;
}

.om-cdesign-modern .om-filter-sidebar .om-filter-link.is-sub.is-active {
	border-left-color: var(--om-color-primary, #00111C);
}

/* "Show 16 more" with a chevron. */
.om-catalog-wrap .om-filter-sidebar .om-filter-more-btn.om-filter-more-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 6px 0 0;
	padding: 6px 0;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	text-decoration: none;
	color: var(--om-color-primary, #00111C);
}

.om-catalog-wrap .om-filter-sidebar .om-filter-more-btn::after {
	content: "";
	width: 6px;
	height: 6px;
	margin-bottom: 3px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
}

.om-catalog-wrap .om-filter-sidebar .om-filter-more-btn[aria-expanded="true"]::after {
	margin: 3px 0 0;
	transform: rotate(-135deg);
}

/* Shape icons in the sidebar (tiles or list). */
.om-filter-sidebar .om-shape-icon { display: block; }

.om-catalog-wrap .om-filter-sidebar .om-filter-group--shape:not(.om-filter-group--tiles) .om-filter-link::before { display: none; }
.om-filter-sidebar .om-filter-group--shape:not(.om-filter-group--tiles) .om-shape-icon { width: 22px; height: 22px; }

/* Shape tiles. */
.om-filter-sidebar .om-filter-group--tiles .om-filter-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.om-filter-sidebar .om-filter-group--tiles .om-filter-list > li { margin: 0; }

.om-catalog-wrap .om-filter-sidebar .om-filter-group--tiles .om-filter-link.om-filter-link {
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	min-height: 76px;
	height: 100%;
	margin: 0;
	padding: 12px 4px 10px;
	box-sizing: border-box;
	border: 1px solid var(--om-hair, #e6e0d6);
	border-radius: var(--om-tile-radius, 12px);
	background: var(--om-color-background, #fff);
	font-size: 12px;
	line-height: 1.2;
	text-align: center;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.om-catalog-wrap .om-filter-sidebar .om-filter-group--tiles .om-filter-link.om-filter-link:hover {
	border-color: #a9a39a;
}

.om-catalog-wrap .om-filter-sidebar .om-filter-group--tiles .om-filter-link.om-filter-link.is-active {
	border-color: var(--om-color-primary, #00111C);
	background: var(--om-photo-tone, #f3efe8);
	font-weight: 500;
}

.om-catalog-wrap .om-filter-sidebar .om-filter-group--tiles .om-filter-link::before { display: none; }

.om-cdesign-classic .om-filter-sidebar .om-filter-group--tiles { --om-tile-radius: 0; }

/* Metal swatches: a row of circles with the name beneath. */
.om-filter-sidebar .om-filter-group--swatches .om-filter-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(50px, 1fr));
	gap: 8px 2px;
}

.om-catalog-wrap .om-filter-sidebar .om-filter-group--swatches .om-filter-link.om-filter-link {
	flex-direction: column;
	gap: 6px;
	width: auto;
	min-height: 0;
	margin: 0;
	padding: 4px 0;
	border: 0;
	background: none;
	font-size: 12px;
	line-height: 1.2;
	text-align: center;
}

.om-filter-sidebar .om-filter-group--swatches .om-swatch {
	width: 32px;
	height: 32px;
	transition: box-shadow 0.2s ease;
}

.om-catalog-wrap .om-filter-sidebar .om-filter-group--swatches .om-filter-link:hover .om-swatch {
	box-shadow: 0 0 0 2px var(--om-color-background, #fff), 0 0 0 3px #bdb6aa;
}

.om-catalog-wrap .om-filter-sidebar .om-filter-group--swatches .om-filter-link.is-active .om-swatch {
	box-shadow: 0 0 0 2px var(--om-color-background, #fff), 0 0 0 3.5px var(--om-color-primary, #00111C);
}

html body .om-swatch--all { background: conic-gradient(from 210deg, #f3dc9c 0 33.3%, #f3cfc2 0 66.6%, #e2e4e7 0); }

.om-cdesign-modern .om-filter-sidebar .om-filter-link.has-swatch .om-swatch { width: 20px; height: 20px; }
.om-cdesign-modern .om-filter-sidebar .om-filter-group--swatches .om-filter-link.has-swatch .om-swatch { width: 32px; height: 32px; }

/* Sticky sidebar taller than the screen scrolls on its own. */
html body .om-filter-sidebar {
	scrollbar-width: thin;
	overscroll-behavior: contain;
}

@media (max-width: 900px) {
	.om-catalog-wrap .om-filter-sidebar.om-filter-sidebar {
		max-height: none;
		overflow: visible;
	}
}

/* =========================================================
   1.22 Quick view: thumbnails under the photo, photo column width
   ========================================================= */

.om-qv-body .om-product-wrap.om-product-wrap {
	grid-template-columns: minmax(0, var(--om-qv-media, 1fr)) minmax(0, 1fr);
}

.om-qv-body .om-product-wrap.om-design-refined.om-design-refined {
	grid-template-columns: minmax(0, var(--om-qv-media, 7fr)) minmax(0, 5fr);
}

/* The strip moves under the photo, so the photo column can be narrower
   and the details get the room. */
.om-qv-thumbs-bottom .om-product-wrap.om-product-wrap.om-product-wrap {
	grid-template-columns: minmax(0, var(--om-qv-media, 44%)) minmax(0, 1fr);
}

.om-qv-thumbs-bottom .om-product-gallery .om-thumbs {
	gap: 8px;
	margin-top: 10px;
}

.om-qv-thumbs-bottom .om-product-gallery .om-thumb-btn {
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	scroll-snap-align: start;
}

@media (max-width: 800px) {
	.om-qv-body .om-product-wrap.om-product-wrap.om-product-wrap.om-product-wrap {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* No price and the buttons stand in for it: no empty price strip. */
.om-product-wrap .om-price.is-fallback:not(:has(.om-price-fallback)) {
	display: none;
}

/* =========================================================
   1.22.3 Shield from Elementor's global paragraph & heading spacing
   ---------------------------------------------------------
   Site Settings › Typography › Paragraph spacing (and the heading
   margins some kits set) arrive as ".elementor-kit-N p", which outranks
   the plugin's one-class rules: the result count rose above the chips,
   card lines drifted apart. These restate the plugin's own margins one
   notch stronger (html + tag + class), still below every widget Style
   control ({{WRAPPER}} …) and the plugin's two-class rules.
   ========================================================= */

html p:is(.om-result-count, .om-progress-text, .om-card-variant, .om-card-price, .om-card-set-price, .om-rv-title, .om-rv-price) { margin-bottom: 0; }
html :where(.om-refined) p.om-card-sub { margin-bottom: 0; }
html p.om-line-label { margin-bottom: 14px; }
html p:is(.om-field, .om-inquiry-status, .om-sg-sizer-title) { margin-bottom: 14px; }
html p.om-inquiry-intro { margin-bottom: 18px; }
html p:is(.om-sg-small, .om-dd-title) { margin-bottom: 6px; }
html p.om-dd-price { margin-bottom: 18px; }
html p.om-set-sub { margin-bottom: 26px; }
html p.om-intro-eyebrow { margin-bottom: 10px; }
html p.om-rv-style { margin-bottom: 4px; }
html p.om-filter-heading { margin-bottom: 12px; }

html :is(h1, h2, h3, h4, h5, h6, p, div).om-card-title { margin-top: 0; margin-bottom: 7px; }
html :where(.om-refined) :is(h1, h2, h3, h4, h5, h6, p, div).om-card-title { margin-bottom: 4px; }
html :is(h1, h2, h3, h4, h5, h6).om-product-title { margin-top: 0; margin-bottom: 10px; }
html :where(.om-design-modern) :is(h1, h2, h3, h4, h5, h6).om-product-title { margin-bottom: 12px; }
html :is(h1, h2, h3, h4, h5, h6).om-related-title { margin-top: 0; margin-bottom: 0; }
html :is(h1, h2, h3, h4, h5, h6).om-builder-heading { margin-top: 0; margin-bottom: 24px; }
html :is(h1, h2, h3, h4, h5, h6).om-reels-heading { margin-top: 0; margin-bottom: 14px; }
html :is(h1, h2, h3, h4, h5, h6).om-sg-title { margin-top: 0; margin-bottom: 12px; }
/* Two-part rules that only tie with the kit's (".x p" = ".elementor-kit-N p"). */
html body .om-product-details h3 { margin: 0 0 16px; }
html body .om-empty p { margin: 0 0 8px; }
html body .om-review-info p { margin: 0 0 6px; }
html body .om-sg-methods h3 { margin: 0 0 6px; }
html body .om-sg-methods p { margin: 0; }

/* =========================================================
   1.22.4 Compare pop-up header
   ========================================================= */

/* One quiet header that stays put while the table scrolls. */
.om-compare-dialog .om-compare-head {
	position: sticky;
	top: 0;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin: -22px -24px 6px;
	padding: 20px 24px 16px;
	border-bottom: 1px solid rgba(0, 17, 28, 0.08);
	background: var(--om-qv-modal-bg, var(--om-color-background, #fff));
}

html body .om-compare-heading { min-width: 0; }

html .om-compare-dialog p.om-compare-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
	color: #8a6a3b;
}

html body .om-compare-eyebrow::before {
	content: "";
	width: 22px;
	height: 1px;
	background: currentColor;
	opacity: 0.6;
}

/* Stated in full: the site's global H2 typography would otherwise win. */
html .om-compare-dialog h2.om-compare-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 400;
	font-style: normal;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
}

html body .om-compare-tools {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-left: auto;
}

html body .om-compare-diff {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
	user-select: none;
}

.om-compare-diff[hidden] { display: none; }

.om-compare-dialog .om-compare-diff input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--om-color-primary, #00111C);
}

.om-compare-dialog .om-compare-clear-all.om-compare-clear-all {
	margin: 0;
	padding: 6px 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 13px;
	color: var(--om-color-text, #464646);
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}

.om-compare-dialog .om-compare-clear-all.om-compare-clear-all:is(:hover, :focus-visible) {
	background: transparent;
	color: var(--om-color-primary, #00111C);
}

/* Highlight differences: rows where the designs differ are tinted, with
   a gold mark by their label (text keeps full contrast). */
.om-compare-dialog.is-diff .om-compare-table .om-compare-row.is-different > * {
	background: var(--om-photo-tone, #f3efe8);
}

.om-compare-dialog.is-diff .om-compare-table .om-compare-row.is-different > th {
	box-shadow: inset 3px 0 0 var(--om-gold, #b8925a);
	color: var(--om-color-primary, #00111C);
}

@media (max-width: 600px) {
	.om-compare-dialog .om-compare-head { padding: 16px 24px 14px; }

	html body .om-compare-heading { padding-right: 48px; }

	html body .om-compare-tools {
		width: 100%;
		gap: 16px;
	}

	.om-compare-dialog .om-compare-close.om-compare-close {
		position: absolute;
		top: 12px;
		right: 12px;
	}
}

/* =========================================================
   1.23 Quick view: step through designs, share; toast with Undo
   ========================================================= */

/* One bar across the pop-up's top: previous / "3 of 12" / next on the
   left, Share and Close on the right. It stays while the pop-up scrolls. */
.om-quick-view .om-qv-bar {
	position: sticky;
	top: 0;
	z-index: 6;
	display: flex;
	align-items: center;
	gap: 6px;
	margin: calc(-1 * var(--om-qv-pad, 40px)) calc(-1 * var(--om-qv-pad, 40px)) 4px;
	padding: 10px 12px 10px 16px;
	background: var(--om-qv-modal-bg, var(--om-color-background, #fff));
}

.om-quick-view .om-qv-bar .om-qv-close.om-qv-close {
	position: static;
	flex: 0 0 auto;
}

html body .om-qv-nav {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-right: auto;
}

.om-qv-nav[hidden] { display: none; }

.om-quick-view .om-qv-step.om-qv-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(0, 17, 28, 0.14);
	border-radius: 50%;
	background: transparent;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.om-quick-view .om-qv-step.om-qv-step::before {
	content: "";
	width: 8px;
	height: 8px;
	border-left: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateX(2px) rotate(45deg);
}

.om-quick-view .om-qv-next.om-qv-next::before { transform: translateX(-2px) rotate(-135deg); }

.om-quick-view .om-qv-step.om-qv-step:is(:hover, :focus-visible):not(:disabled) {
	border-color: var(--om-color-primary, #00111C);
	background: transparent;
	color: var(--om-color-primary, #00111C);
}

.om-quick-view .om-qv-step.om-qv-step:disabled {
	opacity: 0.35;
	cursor: default;
}

html body .om-qv-pos {
	min-width: 64px;
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	text-align: center;
	color: var(--om-color-text, #464646);
}

.om-quick-view .om-qv-share.om-qv-share {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	margin: 0 0 0 auto;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	font: inherit;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

.om-qv-nav:not([hidden]) + .om-qv-share { margin-left: 0; }

.om-quick-view .om-qv-share.om-qv-share:is(:hover, :focus-visible) {
	background: rgba(0, 0, 0, 0.06);
	color: var(--om-color-primary, #00111C);
}

html body .om-qv-share-icon {
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 10V2M5 5l3-3 3 3'/%3E%3Cpath d='M3 8v5.5h10V8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 10V2M5 5l3-3 3 3'/%3E%3Cpath d='M3 8v5.5h10V8'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Stepping: the current design dims until the next one arrives. */
html body .om-qv-body { transition: opacity 0.2s ease; }
.om-quick-view.is-stepping .om-qv-body { opacity: 0.45; pointer-events: none; }

@media (max-width: 600px) {
	.om-quick-view .om-qv-bar { padding: 8px 8px 8px 12px; }
	html body .om-qv-share-text { display: none; }
	.om-quick-view .om-qv-share.om-qv-share { width: 40px; padding: 0; justify-content: center; }
	html body .om-qv-pos { min-width: 56px; font-size: 12px; }
}

/* Toast: "Filters cleared · Undo". Bottom centre, above any sticky bar. */
html body .om-toast {
	position: fixed;
	left: 50%;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	z-index: 100000;
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: calc(100vw - 32px);
	padding: 12px 12px 12px 20px;
	border-radius: 999px;
	background: var(--om-color-primary, #00111C);
	box-shadow: 0 14px 40px rgba(0, 17, 28, 0.25);
	color: #fff;
	font-family: var(--om-font-body, Inter, sans-serif);
	font-size: 14px;
	line-height: 1.3;
	opacity: 0;
	transform: translate(-50%, 12px);
	transition: opacity 0.22s ease, transform 0.22s ease;
}

.om-toast[hidden] { display: none; }
.om-toast.is-in { opacity: 1; transform: translate(-50%, 0); }
.om-toast:not(:has(.om-toast-undo:not([hidden]))) { padding-right: 20px; }

.om-toast .om-toast-undo.om-toast-undo {
	margin: 0;
	padding: 6px 14px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	background: transparent;
	font: inherit;
	font-size: 13px;
	font-weight: 500;
	color: var(--om-gold-light, #f4dc9c);
	cursor: pointer;
}

.om-toast .om-toast-undo.om-toast-undo:is(:hover, :focus-visible) {
	border-color: var(--om-gold-light, #f4dc9c);
	background: transparent;
	color: var(--om-gold-light, #f4dc9c);
}

.om-toast .om-toast-undo[hidden] { display: none; }

/* Clear of the compare tray and the phone's floating Filter · Sort pill. */
html.om-has-compare .om-toast { bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }

@media (max-width: 800px) {
	html body .om-toast { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}

@media (prefers-reduced-motion: reduce) {
	html body .om-toast { transition: none; }
}

.om-compare-dialog .om-compare-share.om-compare-share {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 6px 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

.om-compare-dialog .om-compare-share.om-compare-share:is(:hover, :focus-visible) {
	background: transparent;
	color: var(--om-color-primary, #00111C);
	opacity: 0.7;
}

@media (max-width: 600px) {
	html body .om-compare-share-text { display: none; }
}

html body .om-toast-text {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* =========================================================
   1.24 Guided ring builder
   ========================================================= */

html body .om-builder {
	--om-rb-panel: var(--om-color-background, #fff);
	--om-rb-radius: 16px;
	--om-rb-hair: var(--om-hair, #e6e0d6);
	--om-rb-tone: var(--om-photo-tone, #ffffff);
	/* Boxes and tags (not photos): a soft tint that stays visible on white. */
	--om-rb-soft: var(--om-soft, #f7f5f1);
	color: var(--om-color-text, #464646);
}

html body .om-rb-arrow {
	display: inline-block;
	width: 14px;
	height: 10px;
	flex: 0 0 auto;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M1 5h12M9 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M1 5h12M9 1l4 4-4 4'/%3E%3C/svg%3E") center / contain no-repeat;
}

html body .om-rb-eyebrow {
	margin: 0 0 8px;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #8a6a3b;
}

html body .om-rb-eyebrow--lined {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

html body .om-rb-eyebrow--lined::before,
html body .om-rb-eyebrow--lined::after {
	content: "";
	width: 22px;
	height: 1px;
	background: var(--om-gold, #b8925a);
}

/* Step head: eyebrow, title, guidance — and the progress line. */
html body .om-rb-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px 40px;
	margin: 0 0 24px;
}

html body .om-rb-head-text { flex: 1 1 420px; min-width: 0; }

html body .om-rb-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: clamp(30px, 3.2vw, 40px);
	font-weight: 400;
	line-height: 1.1;
	color: var(--om-color-primary, #00111C);
}

html body .om-rb-guide {
	margin: 8px 0 0;
	max-width: 70ch;
	font-size: 15px;
	line-height: 1.6;
}

html body .om-rb-progress {
	display: flex;
	flex: 0 1 440px;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

html body .om-rb-progress-step { flex: 1 1 0; min-width: 0; margin: 0; }

html body .om-rb-progress-step > a,
html body .om-rb-progress-step > span {
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: #6e6e6e;
	text-decoration: none;
}

html body .om-rb-progress-bar {
	display: block;
	height: 3px;
	border-radius: 2px;
	background: var(--om-rb-hair);
}

html body .om-rb-progress-label { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.om-rb-progress-step.is-done .om-rb-progress-bar { background: var(--om-gold, #b8925a); }
.om-rb-progress-step.is-current .om-rb-progress-bar { background: var(--om-color-primary, #00111C); }
.om-rb-progress-step:is(.is-done, .is-current) > * { color: var(--om-color-primary, #00111C); }
.om-rb-progress-step > a:is(:hover, :focus-visible) .om-rb-progress-label { text-decoration: underline; text-underline-offset: 4px; }
html body .om-rb-tick { color: var(--om-gold, #b8925a); }

html body .om-rb-tip {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 8px;
	padding: 12px 16px;
	border-radius: 14px;
	background: var(--om-rb-tone);
	font-size: 14px;
	color: var(--om-color-primary, #00111C);
}

html body .om-rb-tip-icon {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	background: #8a6a3b;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M9 16A7 7 0 1 0 9 2a7 7 0 0 0 0 14zM9 8v4.5M9 5.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M9 16A7 7 0 1 0 9 2a7 7 0 0 0 0 14zM9 8v4.5M9 5.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Start screen. */
html body .om-rb-start {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
	padding: 16px 0 8px;
	text-align: center;
}

html body .om-rb-start-head { display: flex; flex-direction: column; align-items: center; gap: 12px; }

html body .om-rb-start-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: clamp(34px, 4.4vw, 52px);
	font-weight: 400;
	line-height: 1.1;
	color: var(--om-color-primary, #00111C);
}

html body .om-rb-start-text { margin: 0; max-width: 58ch; font-size: 16px; line-height: 1.6; }

.om-rb-start .om-rb-progress { flex: 0 0 auto; width: min(760px, 100%); }

.om-builder .om-rb-continue {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	max-width: 100%;
	padding: 8px 18px 8px 8px;
	border: 1px solid var(--om-rb-hair);
	border-radius: 999px;
	background: var(--om-rb-panel);
	font-size: 14px;
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
	text-align: left;
}

.om-builder .om-rb-continue[hidden] { display: none; }
html body .om-rb-continue strong { font-weight: 500; }

html body .om-rb-continue-img {
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	overflow: hidden;
	border-radius: 50%;
	background: var(--om-rb-tone);
}

html body .om-rb-continue-img img { width: 100%; height: 100%; object-fit: cover; }

html body .om-rb-ways {
	display: grid;
	grid-template-columns: repeat(var(--om-rb-cols, 2), minmax(0, 1fr));
	gap: 24px;
	width: min(1088px, 100%);
	text-align: left;
}

html body .om-rb-ways--1 { --om-rb-cols: 1; width: min(520px, 100%); }
html body .om-rb-ways--3 { --om-rb-cols: 3; }

.om-builder .om-rb-way {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 30px 28px 26px;
	border: 1px solid var(--om-rb-hair);
	border-radius: calc(var(--om-rb-radius) + 4px);
	background: var(--om-rb-panel);
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
	transition: border-color 0.2s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.om-builder .om-rb-way.is-featured { border-color: var(--om-color-primary, #00111C); }

.om-builder .om-rb-way:is(:hover, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
	box-shadow: 0 18px 40px rgba(0, 17, 28, 0.08);
	color: var(--om-color-primary, #00111C);
	transform: translateY(-2px);
}

html body .om-rb-way-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
html body .om-rb-way-icon { width: 52px; height: 52px; color: var(--om-gold, #b8925a); }

html body .om-rb-way-tag {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--om-rb-tone);
	font-size: 12px;
}

.om-rb-way.is-featured .om-rb-way-tag { background: var(--om-gold-light, #f4dc9c); }

html body .om-rb-way-title {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 28px;
	line-height: 1.15;
}

html body .om-rb-way-text { font-size: 15px; line-height: 1.6; color: var(--om-color-text, #464646); }

html body .om-rb-way-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

html body .om-rb-promises {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 13px;
}

html body .om-rb-promises li { display: flex; align-items: center; gap: 8px; margin: 0; }

html body .om-rb-promises li::before {
	content: "";
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	background: var(--om-gold, #b8925a);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M3 8.5l3 3 7-7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M3 8.5l3 3 7-7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* "Choose this setting" under each card. */
.om-card-cell .om-card-after:has(.om-card-choose) { margin-top: 12px; }

.om-catalog-wrap .om-card-choose.om-card-choose {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: var(--om-btn-radius, 999px);
	background: transparent;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.om-catalog-wrap .om-card-choose.om-card-choose:is(:hover, :focus-visible) {
	background: var(--om-color-primary, #00111C);
	color: var(--om-color-background, #fff);
}

/* "Your ring" bar: follows the page, sits at the bottom of the screen. */
html body .om-rb-bar {
	--om-rb-bar-bg: var(--om-color-background, #fff);
	position: sticky;
	bottom: 0;
	z-index: 30;
	margin: 40px 0 0;
}

html body .om-rb-bar-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	padding: 14px 20px;
	border: 1px solid var(--om-rb-hair);
	border-radius: calc(var(--om-rb-radius) + 4px) calc(var(--om-rb-radius) + 4px) 0 0;
	background: var(--om-rb-bar-bg);
	box-shadow: 0 -12px 30px rgba(0, 17, 28, 0.06);
}

html body .om-rb-bar-label {
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 20px;
	color: var(--om-color-primary, #00111C);
}

html body .om-rb-chips { display: flex; align-items: center; gap: 12px; min-width: 0; }
html body .om-rb-plus { color: var(--om-gold, #b8925a); font-size: 18px; }

.om-builder .om-rb-chip {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding: 5px 16px 5px 5px;
	border: 1px solid var(--om-rb-hair);
	border-radius: 999px;
	font-size: 13px;
	line-height: 1.3;
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
}

.om-builder .om-rb-chip.is-empty { border-style: dashed; color: #6e6e6e; }
.om-builder a.om-rb-chip:is(:hover, :focus-visible) { border-color: var(--om-color-primary, #00111C); color: var(--om-color-primary, #00111C); }

html body .om-rb-chip-img {
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	overflow: hidden;
	border-radius: 50%;
	background: var(--om-rb-tone);
}

html body .om-rb-chip-img img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: var(--om-photo-blend, normal); }
html body .om-rb-chip-text { display: flex; flex-direction: column; min-width: 0; }
html body .om-rb-chip-title { max-width: 220px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
html body .om-rb-chip-meta { color: #6e6e6e; }

html body .om-rb-bar-end { display: flex; align-items: center; gap: 18px; margin-left: auto; }

html body .om-rb-total { font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 24px; color: var(--om-color-primary, #00111C); }
html body .om-rb-total-label { font-family: var(--om-font-body, Inter, sans-serif); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: #6e6e6e; }

.om-builder .om-rb-ask.om-rb-ask {
	margin: 0;
	padding: 6px 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
	text-decoration: underline;
	text-underline-offset: 4px;
	white-space: nowrap;
	cursor: pointer;
}

.om-builder .om-rb-ask.om-rb-ask:is(:hover, :focus-visible) { background: transparent; color: var(--om-color-primary, #00111C); opacity: 0.7; }

.om-builder .om-rb-next {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 26px;
	border-radius: var(--om-btn-radius, 999px);
	background: var(--om-color-primary, #00111C);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--om-color-background, #fff);
	text-decoration: none;
	white-space: nowrap;
}

.om-builder .om-rb-next:is(:hover, :focus-visible) { color: var(--om-color-background, #fff); opacity: 0.9; }

/* Review. */
.om-builder .om-rb-review { grid-template-columns: minmax(0, 1fr) 420px; gap: 40px; }
html body .om-rb-review-main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

html body .om-rb-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: calc(var(--om-rb-radius) + 4px);
	background: var(--om-rb-tone);
}

html body .om-rb-hero img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: var(--om-photo-blend, normal); }

.om-rb-review .om-review-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.om-rb-review .om-review-item {
	grid-template-columns: 76px minmax(0, 1fr);
	gap: 16px;
	padding: 16px;
	border: 1px solid var(--om-rb-hair);
	border-radius: var(--om-rb-radius);
	background: var(--om-rb-panel);
}

.om-rb-review .om-review-media img,
.om-rb-review .om-review-media .om-dd-placeholder { border-radius: 12px; background: var(--om-rb-tone); }
.om-rb-review .om-review-title,
.om-rb-review .om-review-title a { font-size: 19px; line-height: 1.25; }
html body .om-rb-head-note { color: #8a6a3b; }
.om-rb-review .om-review-price { font-size: 16px; }

.om-builder .om-rb-review .om-review-summary {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 26px;
	border: 1px solid var(--om-rb-hair);
	border-radius: calc(var(--om-rb-radius) + 4px);
	background: var(--om-rb-panel);
}

html body .om-rb-choice { display: flex; flex-direction: column; gap: 10px; }
html body .om-rb-choice-label { margin: 0; font-size: 14px; font-weight: 500; color: var(--om-color-primary, #00111C); }
html body .om-rb-pills { display: flex; flex-wrap: wrap; gap: 8px; }

.om-builder .om-rb-pill {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--om-rb-hair);
	border-radius: 999px;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
}

.om-builder .om-rb-pill:is(:hover, :focus-visible) { border-color: var(--om-color-primary, #00111C); color: var(--om-color-primary, #00111C); }
.om-builder .om-rb-pill.is-active { border-color: var(--om-color-primary, #00111C); background: var(--om-color-primary, #00111C); color: var(--om-color-background, #fff); }

html body .om-rb-sum { display: flex; flex-direction: column; gap: 6px; padding: 14px 0; border-top: 1px solid var(--om-rb-hair); border-bottom: 1px solid var(--om-rb-hair); }
html body .om-rb-sum p { display: flex; justify-content: space-between; margin: 0; font-size: 14px; }
.om-rb-sum .om-rb-sum-total { align-items: baseline; margin-top: 6px; font-weight: 500; color: var(--om-color-primary, #00111C); }
.om-rb-sum-total span:last-child { font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 32px; font-weight: 400; }
.om-rb-sum .om-review-note { margin: 4px 0 0; }

.om-builder .om-rb-book {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: var(--om-btn-radius, 999px);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--om-color-primary, #00111C);
	text-decoration: none;
}

.om-builder .om-rb-book:is(:hover, :focus-visible) { background: var(--om-color-primary, #00111C); color: var(--om-color-background, #fff); }
.om-builder .om-rb-review .om-review-summary .om-inquiry { margin: 0; }

html body .om-rb-keep { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 10px 22px; }

.om-builder .om-rb-share.om-rb-share,
html body .om-rb-email > summary {
	margin: 0;
	padding: 4px 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
	list-style: none;
}

.om-builder .om-rb-share.om-rb-share:is(:hover, :focus-visible) { background: transparent; color: var(--om-color-primary, #00111C); opacity: 0.7; }
html body .om-rb-email > summary::-webkit-details-marker { display: none; }
.om-rb-email[open] { flex: 1 1 100%; }
html body .om-rb-email-form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

.om-builder .om-rb-email-form input[type=email] {
	flex: 1 1 180px;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--om-rb-hair);
	border-radius: 999px;
	font: inherit;
	font-size: 14px;
}

.om-builder .om-rb-email-form button {
	min-height: 44px;
	padding: 0 20px;
	border: 0;
	border-radius: 999px;
	background: var(--om-color-primary, #00111C);
	color: var(--om-color-background, #fff);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
}

html body .om-rb-email-status { flex: 1 1 100%; margin: 0; font-size: 13px; }
.om-rb-email-status:empty { display: none; }
.om-builder .om-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

html body .om-rb-next-steps { padding: 16px; border-radius: 14px; background: var(--om-rb-soft); }
html body .om-rb-next-title { margin: 0 0 8px; font-size: 13px; font-weight: 500; color: var(--om-color-primary, #00111C); }
html body .om-rb-next-steps ol { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.55; }
.om-builder .om-rb-review .om-review-restart { align-self: center; }

@media (max-width: 1100px) {
	.om-builder .om-rb-review { grid-template-columns: minmax(0, 1fr); }
}

/* Phones: the bar becomes a compact floating pill. */
@media (max-width: 800px) {
	html body .om-rb-ways, html body .om-rb-ways--3 { --om-rb-cols: 1; }
	html body .om-rb-head { align-items: stretch; }
	html body .om-rb-progress { flex: 1 1 100%; order: -1; }
	html body .om-rb-progress-label { font-size: 12px; }
	.om-rb-review .om-review-items { grid-template-columns: minmax(0, 1fr); }

	html body .om-rb-bar { margin-top: 28px; bottom: 10px; }
	html body .om-rb-bar-inner { gap: 10px; padding: 10px 10px 10px 14px; border-radius: 26px; }
	html body .om-rb-bar-label, html body .om-rb-plus, .om-rb-chip.is-empty .om-rb-chip-text, html body .om-rb-chip-meta { display: none; }
	html body .om-rb-chips { gap: 6px; flex: 1 1 auto; }
	.om-builder .om-rb-chip { padding: 4px 12px 4px 4px; }
	html body .om-rb-chip-img { width: 32px; height: 32px; }
	html body .om-rb-chip-title { max-width: 110px; font-size: 12px; }
	html body .om-rb-bar-end { flex: 1 1 100%; justify-content: space-between; }
	.om-builder .om-rb-next { min-height: 44px; padding: 0 18px; }
}

/* =========================================================
   1.25 True size: a diamond at its real size on a finger
   ========================================================= */

.om-ts-open.om-ts-open {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--om-hair, #e6e0d6);
	border-radius: 999px;
	background: var(--om-color-background, #fff);
	font: inherit;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

.om-ts-open.om-ts-open:is(:hover, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
	background: var(--om-color-background, #fff);
	color: var(--om-color-primary, #00111C);
}

html body .om-ts-icon {
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M1 5h14v6H1zM4 5v3M7 5v2M10 5v3M13 5v2'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M1 5h14v6H1zM4 5v3M7 5v2M10 5v3M13 5v2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.om-rb-review .om-review-info .om-ts-open { margin-top: 10px; }

html body .om-ts {
	width: min(1080px, calc(100vw - 24px));
	max-height: calc(100vh - 24px);
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 24px;
	background: var(--om-color-background, #fff);
	color: var(--om-color-text, #464646);
	box-shadow: 0 30px 80px rgba(0, 17, 28, 0.25);
	font-family: var(--om-font-body, Inter, sans-serif);
	overflow: hidden;
}

html body .om-ts::backdrop { background: rgba(0, 17, 28, 0.45); }

html body .om-ts-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 440px;
	height: min(720px, calc(100vh - 24px));
}

html body .om-ts-stage {
	position: relative;
	min-height: 0;
	overflow: hidden;
	background: var(--om-photo-tone, #f3efe8);
}

html body .om-ts-svg { position: absolute; inset: 0; display: block; }

html body .om-ts-finger { fill: #efe3d6; stroke: #d7c3ae; stroke-width: 1.5; }
html body .om-ts-nail { fill: #f7eee6; stroke: #decab6; stroke-width: 1; }
html body .om-ts-band { fill: #dcdee2; stroke: #b9bdc4; stroke-width: 1; }
html body .om-ts-stone { fill: #fdfeff; stroke: #8fa0b2; stroke-width: 1.2; }
html body .om-ts-table { fill: none; stroke: #c5d2df; stroke-width: 0.8; }
.om-ts-row .om-ts-stone.is-on { stroke: var(--om-color-primary, #00111C); stroke-width: 1.6; }
.om-ts-row .om-ts-stone.is-mine { fill: #fffdf6; }

html body .om-ts-scale {
	position: absolute;
	left: 16px;
	bottom: 16px;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	font-size: 12px;
	color: var(--om-color-primary, #00111C);
}

html body .om-ts-side {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 30px 32px;
	overflow-y: auto;
}

html body .om-ts-side > * { flex-shrink: 0; }

html body .om-ts-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }

html body .om-ts p.om-ts-eyebrow {
	margin: 0 0 6px;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #8a6a3b;
}

html body .om-ts h2.om-ts-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
}

html body .om-ts p.om-ts-sub { margin: 6px 0 0; font-size: 14px; }

.om-ts .om-ts-close.om-ts-close {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #f4f3f1;
	font-size: 24px;
	line-height: 1;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

html body .om-ts p.om-ts-label { margin: 0 0 -8px; font-size: 14px; font-weight: 500; color: var(--om-color-primary, #00111C); }

html body .om-ts-picks { display: flex; flex-wrap: wrap; gap: 8px; }

.om-ts .om-ts-pick.om-ts-pick {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 84px;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid var(--om-hair, #e6e0d6);
	border-radius: 14px;
	background: var(--om-color-background, #fff);
	font: inherit;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

.om-ts .om-ts-pick.is-on { border-color: var(--om-color-primary, #00111C); background: var(--om-photo-tone, #f3efe8); }
.om-ts .om-ts-pick.is-mine .om-ts-pick-ct { font-weight: 500; }
html body .om-ts-pick-mm { font-size: 11px; color: #555; }

html body .om-ts-row {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	min-height: 70px;
	padding: 14px 16px;
	border-radius: 14px;
	background: #faf8f4;
	overflow-x: auto;
}

html body .om-ts-mini { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 11px; }

html body .om-ts-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }

html body .om-ts-toggle { display: inline-flex; padding: 4px; border: 1px solid var(--om-hair, #e6e0d6); border-radius: 999px; }

.om-ts .om-ts-toggle button {
	min-height: 36px;
	margin: 0;
	padding: 0 14px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	font: inherit;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}

.om-ts .om-ts-toggle button.is-on { background: var(--om-color-primary, #00111C); color: var(--om-color-background, #fff); }

html body .om-ts-size { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; white-space: nowrap; }

.om-ts .om-ts-size select {
	min-height: 40px;
	padding: 0 28px 0 12px;
	border: 1px solid var(--om-hair, #e6e0d6);
	border-radius: 999px;
	background-color: var(--om-color-background, #fff);
	font: inherit;
	font-size: 13px;
}

html body .om-ts-check { padding: 14px 16px; border: 1px dashed #d9d2c6; border-radius: 14px; }
html body .om-ts-check > summary { font-size: 13px; font-weight: 500; color: var(--om-color-primary, #00111C); cursor: pointer; }
html body .om-ts p.om-ts-check-text { margin: 10px 0; font-size: 13px; line-height: 1.5; }
html body .om-ts-card-wrap { overflow-x: auto; padding: 4px 0 8px; }

html body .om-ts-card {
	display: block;
	box-sizing: border-box;
	border: 1.5px solid var(--om-color-primary, #00111C);
	border-radius: 10px;
	background: repeating-linear-gradient(135deg, transparent 0 10px, rgba(0, 17, 28, 0.04) 10px 20px);
}

html body .om-ts-check-range { display: block; margin: 6px 0 10px; }
html body .om-ts-check-range input { width: 100%; accent-color: var(--om-color-primary, #00111C); }

.om-ts .om-ts-check-done.om-ts-check-done {
	min-height: 40px;
	margin: 0;
	padding: 0 16px;
	border: 0;
	border-radius: 999px;
	background: var(--om-color-primary, #00111C);
	font: inherit;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--om-color-background, #fff);
	cursor: pointer;
}

@media (max-width: 800px) {
	html body .om-ts { width: 100vw; max-width: 100vw; max-height: 100vh; height: 100%; border-radius: 0; }
	html body .om-ts-inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: 44vh minmax(0, 1fr); height: 100%; }
	html body .om-ts-side { padding: 18px 16px 24px; gap: 14px; }
	html body .om-ts h2.om-ts-title { font-size: 22px; }
	html body .om-ts-picks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.om-ts .om-ts-pick.om-ts-pick { min-width: 0; }
}

/* =========================================================
   1.26 Help me choose
   ========================================================= */

.om-rb-ways--3 .om-rb-way { padding: 26px 24px 22px; }

html body .om-rb-guide-wrap {
	display: grid;
	grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
	gap: 44px;
	align-items: start;
}

html body .om-rb-guide-form { display: flex; flex-direction: column; gap: 26px; }

.om-builder .om-rb-q { display: flex; flex-direction: column; gap: 12px; min-width: 0; margin: 0; padding: 0; border: 0; }

.om-builder .om-rb-q legend,
html body .om-rb-q-label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin: 0 0 12px;
	padding: 0;
	font-size: 15px;
	font-weight: 500;
	color: var(--om-color-primary, #00111C);
}

html body .om-rb-q-label { margin: 0; }
html body .om-rb-q-n { color: #8a6a3b; }
html body .om-rb-q-value { font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 28px; font-weight: 400; }
.om-builder .om-rb-q input[type=range] { width: 100%; accent-color: var(--om-color-primary, #00111C); }
html body .om-rb-q-ends { display: flex; justify-content: space-between; font-size: 12px; color: #6e6e6e; }
.om-builder p.om-rb-q-note { margin: 0; font-size: 13px; line-height: 1.5; color: #595959; }

/* Radio choices drawn as tiles, cards and a segmented switch. */
html body .om-rb-q-shapes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
html body .om-rb-q-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
html body .om-rb-q-seg { display: inline-flex; align-self: flex-start; padding: 4px; border: 1px solid var(--om-rb-hair); border-radius: 999px; background: var(--om-rb-panel); }

html body .om-rb-q-shape, html body .om-rb-q-card, html body .om-rb-q-seg label { position: relative; margin: 0; cursor: pointer; }

html body .om-rb-q-shape input, html body .om-rb-q-card input, html body .om-rb-q-seg input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

html body .om-rb-q-shape > span {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 10px 2px 8px;
	border: 1px solid var(--om-rb-hair);
	border-radius: 12px;
	background: var(--om-rb-panel);
	font-size: 11px;
	color: var(--om-color-primary, #00111C);
}

html body .om-rb-q-shape svg { width: 24px; height: 24px; }

html body .om-rb-q-card > span {
	display: flex;
	flex-direction: column;
	gap: 4px;
	height: 100%;
	box-sizing: border-box;
	padding: 14px;
	border: 1px solid var(--om-rb-hair);
	border-radius: 14px;
	background: var(--om-rb-panel);
	font-size: 12px;
	line-height: 1.4;
}

html body .om-rb-q-card strong { font-size: 14px; font-weight: 500; color: var(--om-color-primary, #00111C); }

html body .om-rb-q-seg label > span { display: block; padding: 9px 18px; border-radius: 999px; font-size: 13px; color: var(--om-color-primary, #00111C); }

.om-rb-q-shape input:checked + span,
.om-rb-q-card input:checked + span { border-color: var(--om-color-primary, #00111C); background: var(--om-rb-soft); }
.om-rb-q-seg input:checked + span { background: var(--om-color-primary, #00111C); color: var(--om-color-background, #fff); }

.om-rb-q-shape input:focus-visible + span,
.om-rb-q-card input:focus-visible + span,
.om-rb-q-seg input:focus-visible + span { outline: 2px solid var(--om-color-primary, #00111C); outline-offset: 2px; }

/* With the script, answers update the list at once. */
.om-js .om-rb-guide-go { display: none; }

.om-builder .om-rb-guide-go {
	align-self: flex-start;
	min-height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: var(--om-btn-radius, 999px);
	background: var(--om-color-primary, #00111C);
	font-size: 12px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--om-color-background, #fff);
	cursor: pointer;
}

html body .om-rb-guide-results { display: flex; flex-direction: column; gap: 16px; transition: opacity 0.2s ease; }
.om-rb-guide-results.is-loading { opacity: 0.5; }

.om-builder p.om-rb-guide-results-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 28px;
	color: var(--om-color-primary, #00111C);
}

html body .om-rb-pick {
	display: grid;
	grid-template-columns: 108px minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	padding: 18px;
	border: 1px solid var(--om-rb-hair);
	border-radius: calc(var(--om-rb-radius) + 2px);
	background: var(--om-rb-panel);
}

.om-rb-pick.is-first { border-color: var(--om-color-primary, #00111C); box-shadow: 0 18px 40px rgba(0, 17, 28, 0.08); }

html body .om-rb-pick-media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 108px;
	height: 108px;
	overflow: hidden;
	border-radius: 14px;
	background: var(--om-rb-tone);
}

html body .om-rb-pick-media img { width: 100%; height: 100%; object-fit: cover; }
html body .om-rb-pick-media svg { width: 48px; height: 48px; }

html body .om-rb-pick-info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

html body .om-rb-pick-tag {
	align-self: flex-start;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--om-rb-soft);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--om-color-primary, #00111C);
}

.om-rb-pick.is-first .om-rb-pick-tag { background: var(--om-gold-light, #f4dc9c); }
.om-builder p.om-rb-pick-title { margin: 0; font-size: 17px; font-weight: 500; color: var(--om-color-primary, #00111C); }
.om-builder p.om-rb-pick-why { margin: 0; font-size: 13px; line-height: 1.55; }
.om-builder p.om-rb-pick-meta { margin: 0; font-size: 12px; color: #595959; }

html body .om-rb-pick-end { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
html body .om-rb-pick-price { font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 24px; color: var(--om-color-primary, #00111C); white-space: nowrap; }

.om-builder .om-rb-pick-choose {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 22px;
	border-radius: var(--om-btn-radius, 999px);
	background: var(--om-color-primary, #00111C);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--om-color-background, #fff);
	text-decoration: none;
}

.om-builder .om-rb-pick-choose:is(:hover, :focus-visible) { color: var(--om-color-background, #fff); opacity: 0.9; }
.om-builder p.om-rb-guide-empty { margin: 0; padding: 20px; border-radius: 14px; background: var(--om-rb-soft); font-size: 14px; line-height: 1.6; }
.om-builder p.om-rb-guide-all { margin: 0; font-size: 13px; }
html body .om-rb-tip a { color: inherit; }

@media (max-width: 1000px) {
	html body .om-rb-guide-wrap { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

@media (max-width: 600px) {
	html body .om-rb-q-shapes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	html body .om-rb-q-cards { grid-template-columns: minmax(0, 1fr); }
	html body .om-rb-pick { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; }
	html body .om-rb-pick-media { width: 72px; height: 72px; }
	html body .om-rb-pick-end { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
}

/* =========================================================
   1.28 Saved designs: hearts, header button, Saved panel
   ========================================================= */

html body .om-save-icon {
	display: inline-block;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 20.2s-7.6-4.6-9.3-9.5C1.6 7.4 3.8 4.3 7.1 4.3c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.3 0 5.5 3.1 4.4 6.4-1.7 4.9-9.3 9.5-9.3 9.5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 20.2s-7.6-4.6-9.3-9.5C1.6 7.4 3.8 4.3 7.1 4.3c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.3 0 5.5 3.1 4.4 6.4-1.7 4.9-9.3 9.5-9.3 9.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.om-save-toggle.is-on .om-save-icon,
.om-saved-open.has-items .om-save-icon,
.om-saved-float .om-save-icon {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 20.2s-7.6-4.6-9.3-9.5C1.6 7.4 3.8 4.3 7.1 4.3c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.3 0 5.5 3.1 4.4 6.4-1.7 4.9-9.3 9.5-9.3 9.5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 20.2s-7.6-4.6-9.3-9.5C1.6 7.4 3.8 4.3 7.1 4.3c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.3 0 5.5 3.1 4.4 6.4-1.7 4.9-9.3 9.5-9.3 9.5z'/%3E%3C/svg%3E");
}

.om-save-toggle.om-save-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	border: 1px solid var(--om-hair, #e6e0d6);
	background: #fff;
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, inherit);
	line-height: 1;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.om-save-toggle.om-save-toggle:is(:hover, :focus, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
	background: #fff;
	color: var(--om-color-primary, #00111C);
}

.om-save-toggle.om-save-toggle.is-on,
.om-save-toggle.om-save-toggle.is-on:is(:hover, :focus, :focus-visible) {
	color: #9e2b3a;
}

.om-save-toggle.om-save-toggle:focus-visible {
	outline: 2px solid var(--om-color-primary, #00111C);
	outline-offset: 2px;
}

.om-save-toggle.is-pop .om-save-icon { animation: om-save-pop 0.45s cubic-bezier(0.3, 1.6, 0.5, 1); }

@keyframes om-save-pop {
	0% { transform: scale(1); }
	40% { transform: scale(1.35); }
	100% { transform: scale(1); }
}

/* On cards: top-right of the photo. */
html body .om-card-cell { position: relative; }

.om-card-cell .om-save-toggle--card.om-save-toggle--card {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 6;
	width: 40px;
	height: 40px;
	padding: 0;
	border-color: transparent;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 4px 14px rgba(0, 17, 28, 0.08);
}

.om-card-cell .om-save-toggle--card.om-save-toggle--card:is(:hover, :focus, :focus-visible) {
	border-color: var(--om-color-primary, #00111C);
	background: #fff;
}

.om-layout-boxed .om-card-cell .om-save-toggle--card.om-save-toggle--card { top: 24px; right: 24px; }

/* Make room: a top-right video mark or compare button moves aside. */
.om-card-cell:has(.om-save-toggle--card) .om-card-play--tr { right: 60px; }
.om-refined .om-card-cell:has(.om-save-toggle--card) .om-compare-toggle.om-compare-toggle { top: 60px; }
.om-refined .om-layout-boxed .om-card-cell:has(.om-save-toggle--card) .om-compare-toggle.om-compare-toggle { top: 72px; }

/* Product page and quick view: "Save" beside the title. */
html body .om-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

.om-title-row .om-product-title { flex: 1 1 auto; min-width: 0; }

.om-save-toggle--page.om-save-toggle--page {
	flex: 0 0 auto;
	height: 44px;
	margin-top: 4px;
	padding: 0 18px 0 14px;
	border-radius: var(--om-btn-radius, 999px);
	font-size: 13px;
	letter-spacing: 0.02em;
}

.om-title-row:not(:has(.om-product-title)) { justify-content: flex-end; }

@media (max-width: 600px) {
	.om-save-toggle--page.om-save-toggle--page { width: 44px; padding: 0; }
	.om-save-toggle--page .om-save-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Header button. */
html body .om-saved-open-wrap { display: flex; }

.om-saved-open.om-saved-open {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 0 6px;
	border: 0;
	background: transparent;
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, inherit);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
}

.om-saved-open.om-saved-open:is(:hover, :focus, :focus-visible) { background: transparent; color: var(--om-color-primary, #00111C); }
.om-saved-open.om-saved-open:focus-visible { outline: 2px solid var(--om-color-primary, #00111C); outline-offset: 2px; }
.om-saved-open .om-save-icon { width: 22px; height: 22px; }

html body .om-saved-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--om-color-primary, #00111C);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
}

.om-saved-count[hidden] { display: none; }

/* The Saved panel: a sheet from the right. */
html body .om-saved-dialog {
	width: min(440px, 100vw);
	max-width: 100vw;
	height: 100vh;
	height: 100dvh;
	max-height: none;
	margin: 0 0 0 auto;
	padding: 0;
	border: 0;
	background: var(--om-color-background, #fff);
	color: var(--om-color-text, #464646);
	box-shadow: -20px 0 60px rgba(0, 17, 28, 0.18);
	font-family: var(--om-font-body, Inter, sans-serif);
}

.om-saved-dialog[open] { animation: om-saved-in 0.32s cubic-bezier(0.22, 1, 0.36, 1); }
html body .om-saved-dialog::backdrop { background: rgba(0, 17, 28, 0.4); }

@keyframes om-saved-in {
	from { transform: translateX(40px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.om-saved-dialog[open],
	.om-save-toggle.is-pop .om-save-icon { animation: none; }
}

html body .om-saved-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
}

html body .om-saved-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 20px 14px 24px;
	border-bottom: 1px solid var(--om-hair, #e6e0d6);
}

.om-saved-dialog .om-saved-title {
	margin: 0;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 26px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--om-color-primary, #00111C);
}

html body .om-saved-title-n { font-family: var(--om-font-body, inherit); font-size: 15px; color: #6e6e6e; }

.om-saved-dialog .om-saved-close.om-saved-close {
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--om-hair, #e6e0d6);
	border-radius: 50%;
	background: #fff;
	color: var(--om-color-primary, #00111C);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.om-saved-dialog .om-saved-close.om-saved-close:is(:hover, :focus, :focus-visible) { border-color: var(--om-color-primary, #00111C); background: #fff; color: var(--om-color-primary, #00111C); }

html body .om-saved-body {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 8px 24px;
}

.om-saved-dialog .om-saved-empty {
	margin: 24px 0;
	padding: 20px;
	border-radius: 14px;
	background: var(--om-soft, #faf9f7);
	font-size: 14px;
	line-height: 1.6;
}

html body .om-saved-list { margin: 0; padding: 0; list-style: none; }

html body .om-saved-item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) 44px;
	align-items: center;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid var(--om-hair, #e6e0d6);
}

html body .om-saved-photo {
	display: block;
	width: 72px;
	height: 72px;
	overflow: hidden;
	border-radius: 12px;
	background: var(--om-photo-tone, #f3efe8);
}

html body .om-saved-photo img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: var(--om-photo-blend, multiply); }

html body .om-saved-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }

.om-saved-dialog a.om-saved-name,
.om-saved-dialog a.om-saved-name:visited {
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 17px;
	line-height: 1.3;
	text-decoration: none;
}

.om-saved-dialog a.om-saved-name:is(:hover, :focus, :focus-visible) { text-decoration: underline; text-underline-offset: 3px; }

html body .om-saved-style { font-size: 12px; color: #6e6e6e; }

.om-saved-dialog .om-saved-drop.om-saved-drop {
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #6e6e6e;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.om-saved-dialog .om-saved-drop.om-saved-drop:is(:hover, :focus, :focus-visible) { background: var(--om-soft, #faf9f7); color: var(--om-color-primary, #00111C); }

html body .om-saved-foot {
	padding: 16px 24px calc(20px + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--om-hair, #e6e0d6);
	background: var(--om-color-background, #fff);
}

.om-saved-foot:empty { display: none; }

html body .om-saved-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
}

.om-saved-dialog .om-saved-btn.om-saved-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin: 0;
	padding: 0 22px;
	border: 1px solid var(--om-color-primary, #00111C);
	border-radius: var(--om-btn-radius, 999px);
	background: var(--om-color-primary, #00111C);
	box-shadow: none;
	color: #fff;
	font-family: var(--om-font-body, inherit);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.om-saved-dialog .om-saved-btn.om-saved-btn:is(:hover, :focus, :focus-visible) { border-color: var(--om-color-primary, #00111C); background: #fff; color: var(--om-color-primary, #00111C); }
.om-saved-dialog .om-saved-btn.om-saved-btn--line { background: #fff; color: var(--om-color-primary, #00111C); }
.om-saved-dialog .om-saved-btn.om-saved-btn--line:is(:hover, :focus, :focus-visible) { background: var(--om-color-primary, #00111C); color: #fff; }
.om-saved-dialog .om-saved-btn.om-saved-btn:focus-visible { outline: 2px solid var(--om-color-primary, #00111C); outline-offset: 2px; }
.om-saved-dialog .om-saved-btn:disabled { opacity: 0.6; cursor: wait; }
.om-saved-dialog .om-saved-compare.om-saved-compare { margin-right: auto; }

.om-saved-dialog :is(.om-saved-share, .om-saved-clear):is(button) {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	margin: 0;
	padding: 0 4px;
	border: 0;
	background: transparent;
	color: var(--om-color-primary, #00111C);
	font-family: var(--om-font-body, inherit);
	font-size: 13px;
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}

.om-saved-dialog :is(.om-saved-share, .om-saved-clear):is(button):is(:hover, :focus, :focus-visible) { background: transparent; color: var(--om-gold-dark, #8a6a3b); }

html body .om-saved-email {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--om-hair, #e6e0d6);
}

.om-saved-dialog .om-saved-email-title { margin: 0; font-size: 15px; font-weight: 500; color: var(--om-color-primary, #00111C); }
.om-saved-dialog .om-saved-email-intro { margin: 2px 0 10px; font-size: 13px; color: #6e6e6e; }

html body .om-saved-email-row { display: flex; gap: 8px; }

.om-saved-dialog .om-saved-email input:is([type=email], [type=text]):not(.om-hp) {
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--om-hair, #d9d3c9);
	border-radius: 12px;
	background: #fff;
	color: var(--om-color-text, #464646);
	font-size: 14px;
	box-sizing: border-box;
}

.om-saved-dialog .om-saved-email .om-saved-name-input { margin-top: 8px; }
.om-saved-dialog .om-saved-email-row .om-saved-btn { flex: 0 0 auto; }
.om-saved-dialog .om-saved-email-status { margin: 8px 0 0; font-size: 13px; color: #2f6b3f; }
.om-saved-dialog .om-saved-email-status:empty { display: none; }
.om-saved-dialog .om-saved-email-status.is-error { color: #a4262c; }

/* Saved: slim toolbar heart and the floating button. */
.om-sticky-tools .om-st-saved.om-st-saved { position: relative; }
.om-sticky-tools .om-st-saved[hidden] { display: none; }
.om-sticky-tools .om-st-saved .om-save-icon { width: 18px; height: 18px; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 20.2s-7.6-4.6-9.3-9.5C1.6 7.4 3.8 4.3 7.1 4.3c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.3 0 5.5 3.1 4.4 6.4-1.7 4.9-9.3 9.5-9.3 9.5z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 20.2s-7.6-4.6-9.3-9.5C1.6 7.4 3.8 4.3 7.1 4.3c2 0 3.6 1.1 4.9 2.9 1.3-1.8 2.9-2.9 4.9-2.9 3.3 0 5.5 3.1 4.4 6.4-1.7 4.9-9.3 9.5-9.3 9.5z'/%3E%3C/svg%3E"); }
.om-sticky-tools .om-st-saved .om-saved-count { position: absolute; top: 2px; right: -2px; min-width: 18px; height: 18px; padding: 0 5px; font-size: 10px; }
.om-cdesign-refined .om-sticky-tools .om-st-saved .om-saved-count { background: var(--om-gold-light, #f4dc9c); color: var(--om-color-primary, #00111C); }

.om-saved-float.om-saved-float {
	position: fixed;
	left: 16px;
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 9980;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	margin: 0;
	padding: 0 8px 0 16px;
	border: 0;
	border-radius: 999px;
	background: var(--om-color-primary, #00111C);
	box-shadow: 0 14px 34px rgba(0, 17, 28, 0.25);
	color: #fff;
	font-family: var(--om-font-body, inherit);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
	animation: om-saved-float-in 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	transition: bottom 0.3s ease;
}

.om-saved-float.om-saved-float:is(:hover, :focus, :focus-visible) { background: var(--om-color-primary, #00111C); color: #fff; }
.om-saved-float.om-saved-float:focus-visible { outline: 2px solid var(--om-color-primary, #00111C); outline-offset: 3px; }
.om-saved-float[hidden] { display: none; }
.om-saved-float .om-save-icon { width: 18px; height: 18px; }
html body .om-saved-float-n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	padding: 0 8px;
	border-radius: 999px;
	background: var(--om-gold-light, #f4dc9c);
	color: var(--om-color-primary, #00111C);
	font-size: 13px;
	letter-spacing: 0;
}

@keyframes om-saved-float-in {
	from { transform: translateY(20px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

/* Out of the way of the other bottom bars; the slim toolbar has its own heart. */
html.om-has-compare .om-saved-float { bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }
html:has(.om-sticky-tools.is-shown .om-st-saved:not([hidden])) .om-saved-float { display: none; }

@media (max-width: 800px) {
	html.om-has-sticky-bar .om-saved-float { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
	html:has(.om-rb-bar) .om-saved-float { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
	.om-saved-float .om-saved-float-text { display: none; }
	.om-saved-float.om-saved-float { padding: 0 8px 0 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.om-saved-float.om-saved-float { animation: none; transition: none; }
}

/* =========================================================
   1.29.1 Carat switch in place
   ========================================================= */

.om-product-wrap.is-switching :is(.om-product-gallery, .om-price, .om-product-title, .om-style-meta) {
	opacity: 0.55;
	transition: opacity 0.2s ease 0.15s;
}

.om-product-wrap.is-switching .om-variant-link.is-pending { cursor: progress; }

@media (prefers-reduced-motion: no-preference) {
	html body ::view-transition-old(root),
	html body ::view-transition-new(root) { animation-duration: 0.28s; }
}

/* =========================================================
   1.31 "Ask our jeweller": the AI assistant chat
   ========================================================= */

html body .om-ai {
	--om-ai-ink: var(--om-color-primary, #00111C);
	--om-ai-line: var(--om-hair, #e6e0d6);
	--om-ai-soft: #f6f3ee;
	font-family: var(--om-font-body, Inter, sans-serif);
}

html body .om-ai-spark {
	display: inline-block;
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 2l2 5.6L18.6 10 13 12l-2 5.6L9 12 3.4 10 9 7.6zM18.5 14l1 2.6 2.5 1-2.5 1-1 2.4-1-2.4-2.5-1 2.5-1z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 2l2 5.6L18.6 10 13 12l-2 5.6L9 12 3.4 10 9 7.6zM18.5 14l1 2.6 2.5 1-2.5 1-1 2.4-1-2.4-2.5-1 2.5-1z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Launcher */
.om-ai .om-ai-launch.om-ai-launch {
	position: fixed;
	right: var(--om-ai-x, 20px);
	bottom: calc(var(--om-ai-y, 20px) + env(safe-area-inset-bottom, 0px));
	z-index: 9985;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 52px;
	margin: 0;
	padding: 0 22px 0 18px;
	border: 1px solid rgba(232, 207, 152, 0.5);
	border-radius: 999px;
	background: var(--om-ai-ink);
	box-shadow: 0 14px 34px rgba(0, 17, 28, 0.28);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1;
	cursor: pointer;
	animation: om-ai-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
	transition: transform 0.2s ease, bottom 0.3s ease;
}

.om-ai .om-ai-launch .om-ai-spark { color: #e8cf98; }
.om-ai .om-ai-launch.om-ai-launch:is(:hover, :focus, :focus-visible) { background: var(--om-ai-ink); color: #fff; transform: translateY(-2px); }
.om-ai .om-ai-launch.om-ai-launch:focus-visible { outline: 2px solid var(--om-ai-ink); outline-offset: 3px; }
.om-ai.is-open .om-ai-launch { display: none; }

@keyframes om-ai-in {
	from { transform: translateY(16px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

/* Left-hand placement. */
.om-ai.om-ai--left .om-ai-launch.om-ai-launch { right: auto; left: var(--om-ai-x, 20px); }
.om-ai.om-ai--left .om-ai-panel { right: auto; left: var(--om-ai-x, 20px); }

/* Panel */
html body .om-ai-panel {
	position: fixed;
	right: var(--om-ai-x, 20px);
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	z-index: 99990;
	display: flex;
	flex-direction: column;
	width: min(400px, calc(100vw - 32px));
	height: min(640px, calc(100vh - 40px));
	height: min(640px, calc(100dvh - 40px));
	overflow: hidden;
	border: 1px solid var(--om-ai-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 30px 80px rgba(0, 17, 28, 0.25);
	color: var(--om-color-text, #464646);
	animation: om-ai-in 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.om-ai-panel[hidden] { display: none; }

html body .om-ai-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 12px 14px 16px;
	background: var(--om-ai-ink);
	color: #fff;
}

html body .om-ai-avatar {
	display: inline-flex;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(232, 207, 152, 0.16);
	color: #e8cf98;
}

html body .om-ai-head-text { flex: 1 1 auto; min-width: 0; }

.om-ai .om-ai-head h2.om-ai-title {
	margin: 0;
	color: #fff;
	font-family: var(--om-font-heading, Arapey, Georgia, serif);
	font-size: 19px;
	font-weight: 400;
	line-height: 1.2;
}

.om-ai .om-ai-head p.om-ai-sub { margin: 2px 0 0; color: rgba(255, 255, 255, 0.72); font-size: 12px; line-height: 1.3; }

.om-ai .om-ai-icon-btn.om-ai-icon-btn {
	display: inline-flex;
	flex: 0 0 40px;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.om-ai .om-ai-icon-btn.om-ai-icon-btn:is(:hover, :focus, :focus-visible) { background: rgba(255, 255, 255, 0.12); color: #fff; }
.om-ai .om-ai-icon-btn.om-ai-icon-btn:focus-visible { outline: 2px solid #e8cf98; outline-offset: 1px; }

/* Messages */
html body .om-ai-log {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 16px 14px 8px;
	background: var(--om-ai-soft);
}

html body .om-ai-msg { display: flex; flex-direction: column; margin: 0 0 12px; }
.om-ai-msg.is-user { align-items: flex-end; }
.om-ai-msg.is-ai { align-items: flex-start; }

html body .om-ai-bubble {
	max-width: 88%;
	padding: 11px 14px;
	border-radius: 16px;
	font-size: 14px;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.om-ai-msg.is-ai .om-ai-bubble { border: 1px solid var(--om-ai-line); border-top-left-radius: 6px; background: #fff; color: var(--om-color-text, #3c4650); }
.om-ai-msg.is-user .om-ai-bubble { border-top-right-radius: 6px; background: var(--om-ai-ink); color: #fff; white-space: pre-wrap; }
.om-ai-msg.is-error .om-ai-bubble { border-color: #e7c7b4; }

.om-ai .om-ai-bubble p { margin: 0 0 8px; font-size: inherit; line-height: inherit; color: inherit; }
.om-ai .om-ai-bubble p:last-child { margin-bottom: 0; }
.om-ai .om-ai-bubble ul { margin: 4px 0 8px; padding-left: 18px; }
.om-ai .om-ai-bubble li { margin: 0 0 4px; font-size: inherit; line-height: inherit; color: inherit; }
.om-ai .om-ai-bubble strong { color: var(--om-ai-ink); font-weight: 600; }

html body .om-ai-dots { display: inline-flex; gap: 4px; padding: 4px 2px; }
html body .om-ai-dots i { width: 7px; height: 7px; border-radius: 50%; background: #b9ad9b; animation: om-ai-dot 1.2s infinite ease-in-out; }
.om-ai-dots i:nth-child(2) { animation-delay: 0.15s; }
.om-ai-dots i:nth-child(3) { animation-delay: 0.3s; }

@keyframes om-ai-dot {
	0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
	30% { transform: translateY(-4px); opacity: 1; }
}

/* Design cards in a reply */
html body .om-ai-cards {
	display: flex;
	gap: 10px;
	max-width: 100%;
	margin-top: 8px;
	padding-bottom: 4px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
}

html body .om-ai-card {
	position: relative;
	flex: 0 0 150px;
	overflow: hidden;
	border: 1px solid var(--om-ai-line);
	border-radius: 14px;
	background: #fff;
	scroll-snap-align: start;
}

.om-ai .om-ai-card-link,
.om-ai .om-ai-card-link:visited { display: flex; flex-direction: column; color: var(--om-ai-ink); text-decoration: none; }
.om-ai .om-ai-card-link:is(:hover, :focus-visible) .om-ai-card-title { text-decoration: underline; text-underline-offset: 3px; }
.om-ai .om-ai-card-link:focus-visible { outline: 2px solid var(--om-ai-ink); outline-offset: -2px; border-radius: 14px; }

html body .om-ai-card-img { display: block; aspect-ratio: 1; background: var(--om-photo-tone, #f3efe8); }
html body .om-ai-card-img img { display: block; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: var(--om-photo-blend, multiply); }
html body .om-ai-card-title { display: block; padding: 8px 10px 0; font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 14px; line-height: 1.3; }
html body .om-ai-card-meta { display: block; padding: 2px 10px 10px; color: #6e6e6e; font-size: 11.5px; }

.om-ai .om-save-toggle--ai.om-save-toggle--ai {
	position: absolute;
	top: 6px;
	right: 6px;
	width: 32px;
	height: 32px;
	padding: 0;
	border-color: transparent;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
}

.om-ai .om-save-toggle--ai .om-save-icon { width: 15px; height: 15px; }

/* Team hand-over button */
.om-ai .om-ai-team-btn.om-ai-team-btn {
	margin: 8px 0 0;
	padding: 9px 16px;
	border: 1px solid var(--om-ai-ink);
	border-radius: 999px;
	background: #fff;
	color: var(--om-ai-ink);
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
}

.om-ai .om-ai-team-btn.om-ai-team-btn:is(:hover, :focus, :focus-visible) { background: var(--om-ai-ink); color: #fff; }

/* Suggested questions */
html body .om-ai-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 4px 14px 10px;
	background: var(--om-ai-soft);
}

.om-ai-chips[hidden] { display: none; }

.om-ai .om-ai-chip.om-ai-chip {
	margin: 0;
	padding: 8px 12px;
	border: 1px solid #d9cdb8;
	border-radius: 999px;
	background: #fff;
	color: var(--om-ai-ink);
	font-family: inherit;
	font-size: 12.5px;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
}

.om-ai .om-ai-chip.om-ai-chip:is(:hover, :focus, :focus-visible) { border-color: var(--om-ai-ink); background: #fff; color: var(--om-ai-ink); }

/* Input */
html body .om-ai-input {
	display: flex;
	align-items: flex-end;
	gap: 8px;
	margin: 0;
	padding: 10px 12px;
	border-top: 1px solid var(--om-ai-line);
	background: #fff;
}

.om-ai .om-ai-input textarea {
	flex: 1 1 auto;
	min-height: 44px;
	max-height: 120px;
	margin: 0;
	padding: 11px 14px;
	border: 1px solid #d9d3ca;
	border-radius: 22px;
	background: #fff;
	color: var(--om-ai-ink);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.4;
	resize: none;
	box-shadow: none;
}

.om-ai .om-ai-input textarea:focus { border-color: var(--om-ai-ink); outline: none; box-shadow: 0 0 0 1px var(--om-ai-ink); }

.om-ai .om-ai-send.om-ai-send {
	display: inline-flex;
	flex: 0 0 44px;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--om-ai-ink);
	color: #fff;
	cursor: pointer;
}

.om-ai .om-ai-send.om-ai-send:is(:hover, :focus, :focus-visible) { background: #22313e; color: #fff; }
.om-ai .om-ai-send.om-ai-send:focus-visible { outline: 2px solid var(--om-ai-ink); outline-offset: 2px; }
.om-ai.is-busy .om-ai-send { opacity: 0.6; cursor: progress; }

html body .om-ai-send-icon {
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5m-6 6 6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5m-6 6 6-6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.om-ai .om-ai-panel p.om-ai-note { margin: 0; padding: 0 14px 10px; background: #fff; color: #6e6e6e; font-size: 11px; line-height: 1.4; text-align: center; }

.om-ai .is-away { display: none; }

/* Talk to our team */
html body .om-ai-team { flex: 1 1 auto; overflow-y: auto; padding: 12px 16px 16px; background: #fff; }
.om-ai-team[hidden] { display: none; }
.om-ai .om-ai-back.om-ai-back { margin: 0 0 10px; padding: 8px 0; border: 0; background: transparent; color: var(--om-ai-ink); font-family: inherit; font-size: 13px; font-weight: 500; cursor: pointer; }
.om-ai .om-ai-back.om-ai-back:is(:hover, :focus, :focus-visible) { background: transparent; color: var(--om-ai-ink); text-decoration: underline; }
.om-ai-team .om-inquiry { margin: 0; border: 0; padding: 0; }

/* Phones: a full-screen sheet; the launcher becomes a round button. */
@media (max-width: 600px) {
	html body .om-ai-panel {
		inset: 0;
		right: 0;
		bottom: 0;
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		border: 0;
		border-radius: 0;
	}
	html body .om-ai-head { padding-top: calc(12px + env(safe-area-inset-top, 0px)); }
	html body .om-ai-input { padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
	.om-ai .om-ai-launch.om-ai-launch { width: 56px; min-height: 56px; padding: 0; justify-content: center; }
	.om-ai.om-ai--left .om-ai-panel { left: 0; }
	.om-ai .om-ai-launch .om-ai-launch-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.om-ai .om-ai-launch .om-ai-spark { width: 24px; height: 24px; }
	html:has(.om-ai.is-open) body { overflow: hidden; }
}

@media (prefers-reduced-motion: reduce) {
	.om-ai .om-ai-launch.om-ai-launch,
	html body .om-ai-panel { animation: none; transition: none; }
	html body .om-ai-dots i { animation: none; opacity: 0.8; }
}
.om-ai .om-ai-msg p.om-ai-debug { max-width: 88%; margin: 6px 0 0; padding: 8px 10px; border-left: 3px solid #b4540a; border-radius: 8px; background: #fff7ef; color: #8a3f06; font-size: 12px; line-height: 1.45; }

/* Ring builder: finishing without a diamond */
.om-builder .om-rb-skip a { font-weight: 500; }
.om-rb-review .om-review-media .om-rb-later-mark { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border: 1px dashed #cfc6b8; border-radius: 12px; background: var(--om-rb-soft); color: var(--om-gold, #b8925a); font-size: 26px; }
.om-rb-review .om-rb-later-note { margin: 4px 0 0; color: #6e6e6e; font-size: 13px; line-height: 1.5; }

/* =========================================================
   1.34 Journey polish
   ========================================================= */

/* The AI assistant: docked into the ring builder, shrinks when scrolled. */
.om-ai.om-ai--docked .om-ai-launch.om-ai-launch { display: none; }
.om-ai.is-mini .om-ai-launch.om-ai-launch:not(:hover):not(:focus-visible) { width: 52px; padding: 0; justify-content: center; }
.om-ai.is-mini .om-ai-launch.om-ai-launch:not(:hover):not(:focus-visible) .om-ai-launch-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.om-builder .om-rb-chat[hidden] { display: none; }
.om-builder .om-rb-chat.om-rb-chat {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	margin: 0;
	padding: 0 16px 0 12px;
	border: 1px solid var(--om-rb-hair, #e5e1da);
	border-radius: 999px;
	background: var(--om-color-background, #fff);
	font: inherit;
	font-size: 13px;
	line-height: 1;
	color: var(--om-color-primary, #00111C);
	white-space: nowrap;
	cursor: pointer;
}
.om-builder .om-rb-chat .om-ai-spark { width: 16px; height: 16px; color: var(--om-gold, #b8925a); }
.om-builder .om-rb-chat.om-rb-chat:is(:hover, :focus, :focus-visible) { border-color: var(--om-color-primary, #00111C); background: var(--om-color-background, #fff); color: var(--om-color-primary, #00111C); }
.om-builder .om-rb-chat.om-rb-chat:focus-visible { outline: 2px solid var(--om-color-primary, #00111C); outline-offset: 2px; }
.om-builder .om-rb-chat--review.om-rb-chat { justify-content: center; min-height: 48px; }

.om-builder .om-rb-next-hint {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #6e6e6e;
	white-space: nowrap;
}
.om-builder .om-rb-next-hint::after { content: "\2193"; color: var(--om-gold, #b8925a); }

/* Helper lines read as links; a light tint so they stand apart on white. */
.om-builder .om-rb-tip { background: var(--om-rb-soft, #f7f5f1); }
.om-builder .om-rb-tip a { color: var(--om-color-primary, #00111C); font-weight: 500; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.om-builder .om-rb-tip a:is(:hover, :focus-visible) { color: var(--om-color-primary, #00111C); text-decoration-thickness: 2px; }

/* Steps: one alignment; the page heading steps back behind the step title. */
.om-builder:not(.om-builder--start) .om-builder-heading.om-builder-heading { margin: 0 0 18px; font-size: 20px; text-align: left; color: #6e6e6e; }
/* (Beats the catalog widget's own alignment, which the builder borrows.) */
html body .om-builder .om-filter-bar.om-filter-bar.om-filter-bar.om-filter-bar { justify-content: flex-start; }

/* Review: the photo names the stone and metal; no bar, so no gap under it. */
html body .om-rb-hero { position: relative; aspect-ratio: 16 / 11; }
html body .om-rb-hero-tag {
	position: absolute;
	left: 16px;
	bottom: 16px;
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: calc(100% - 32px);
	margin: 0;
	padding: 10px 16px 10px 10px;
	border: 1px solid var(--om-rb-hair, #e5e1da);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 6px 20px rgba(0, 17, 28, 0.08);
}
html body .om-rb-hero-stone { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: 0 0 auto; border-radius: 50%; background: var(--om-rb-soft, #f7f5f1); color: var(--om-color-primary, #00111C); }
.om-rb-hero-stone .om-shape-icon, html body .om-rb-hero-stone svg { width: 22px; height: 22px; }
html body .om-rb-hero-text { display: flex; flex-direction: column; min-width: 0; }
html body .om-rb-hero-line { overflow: hidden; font-size: 14px; color: var(--om-color-primary, #00111C); white-space: nowrap; text-overflow: ellipsis; }
html body .om-rb-hero-meta { font-size: 12px; color: #6e6e6e; }
.om-builder--review .om-rb-review { margin-bottom: 24px; }
.om-review-summary > [hidden] { display: none !important; }

/* Form: a reassuring line under the button. */
html body .om-inquiry-reassure { margin: 12px 0 0; font-size: 12.5px; line-height: 1.5; color: #6e6e6e; }

/* After sending. */
html body .om-rb-done { display: flex; flex-direction: column; gap: 14px; outline: 0; }
.om-rb-done[hidden] { display: none; }
html body .om-rb-done-mark { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin: 0; border-radius: 50%; background: var(--om-rb-soft, #f7f5f1); }
html body .om-rb-done-mark::before { content: ""; width: 20px; height: 11px; margin-top: -5px; border-left: 2px solid var(--om-gold, #b8925a); border-bottom: 2px solid var(--om-gold, #b8925a); transform: rotate(-45deg); }
html .om-builder .om-rb-done-title { margin: 0; font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 26px; font-weight: 400; line-height: 1.2; color: var(--om-color-primary, #00111C); }
html body .om-rb-done-text { margin: 0; font-size: 14px; line-height: 1.6; }
html body .om-rb-done-ring { display: flex; align-items: center; gap: 14px; padding: 12px; border: 1px solid var(--om-rb-hair, #e5e1da); border-radius: 14px; }
html body .om-rb-done-img { width: 64px; height: 64px; flex: 0 0 auto; overflow: hidden; border-radius: 10px; background: var(--om-rb-tone, #fff); }
html body .om-rb-done-img img { width: 100%; height: 100%; object-fit: contain; }
html body .om-rb-done-name { display: flex; flex-direction: column; gap: 4px; font-size: 14px; line-height: 1.4; color: var(--om-color-primary, #00111C); }
html body .om-rb-done-total { font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 18px; }
html body .om-rb-done-steps { margin: 0; padding-left: 20px; font-size: 14px; line-height: 1.6; }
html body .om-rb-done-steps li + li { margin-top: 6px; }

/* Diamonds: photo in the row when there is one; compare. */
html body .om-dt-thumb { display: block; width: 36px; height: 36px; flex: 0 0 auto; overflow: hidden; border-radius: 8px; background: var(--om-photo-tone, #fff); }
html body .om-dt-thumb img { width: 100%; height: 100%; object-fit: cover; }

.om-diamonds .om-dcmp-toggle.om-dcmp-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--om-rb-hair, #e5e1da);
	border-radius: 999px;
	background: var(--om-color-background, #fff);
	font: inherit;
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
	cursor: pointer;
}
.om-diamonds .om-dcmp-toggle.om-dcmp-toggle:is(:hover, :focus, :focus-visible) { border-color: var(--om-color-primary, #00111C); background: var(--om-color-background, #fff); color: var(--om-color-primary, #00111C); }
html body .om-dcmp-box { position: relative; width: 16px; height: 16px; border: 1.5px solid currentColor; border-radius: 4px; }
.om-dcmp-toggle[aria-pressed="true"] .om-dcmp-box { background: var(--om-color-primary, #00111C); border-color: var(--om-color-primary, #00111C); }
.om-dcmp-toggle[aria-pressed="true"] .om-dcmp-box::after { content: ""; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }

html body .om-dcmp-strip {
	position: sticky;
	top: calc(var(--om-sticky-offset, var(--om-header-h, 0px)) + 8px);
	z-index: 20;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 0 0 16px;
	padding: 10px 12px 10px 18px;
	border: 1px solid var(--om-rb-hair, #e5e1da);
	border-radius: 999px;
	background: var(--om-color-background, #fff);
	box-shadow: 0 8px 24px rgba(0, 17, 28, 0.08);
	font-size: 13px;
	color: var(--om-color-primary, #00111C);
}
.om-dcmp-strip[hidden] { display: none; }
html body .om-dcmp-count { margin-right: auto; }
.om-diamonds .om-dcmp-open.om-dcmp-open,
.om-diamonds .om-dcmp-clear.om-dcmp-clear { min-height: 40px; margin: 0; padding: 0 18px; border: 1px solid var(--om-color-primary, #00111C); border-radius: 999px; background: var(--om-color-primary, #00111C); font: inherit; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--om-color-background, #fff); cursor: pointer; }
.om-diamonds .om-dcmp-clear.om-dcmp-clear { border-color: transparent; background: transparent; color: var(--om-color-primary, #00111C); text-decoration: underline; text-underline-offset: 4px; }
.om-diamonds .om-dcmp-open.om-dcmp-open:disabled { opacity: 0.45; cursor: default; }
.om-diamonds .om-dcmp-open.om-dcmp-open:is(:hover, :focus, :focus-visible) { background: var(--om-color-primary, #00111C); color: var(--om-color-background, #fff); }
.om-diamonds .om-dcmp-clear.om-dcmp-clear:is(:hover, :focus, :focus-visible) { background: transparent; color: var(--om-color-primary, #00111C); }

html body .om-dcmp-dialog { width: min(1040px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: 18px; color: var(--om-color-text, #464646); font-family: var(--om-font-body, Inter, sans-serif); }
html body .om-dcmp-dialog::backdrop { background: rgba(0, 17, 28, 0.45); }
html body .om-dcmp-inner { display: flex; flex-direction: column; max-height: calc(100vh - 48px); }
html body .om-dcmp-top { display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-bottom: 1px solid #eee; }
html .om-dcmp-dialog .om-dcmp-title { margin: 0 auto 0 0; font-family: var(--om-font-heading, Arapey, Georgia, serif); font-size: 24px; font-weight: 400; color: var(--om-color-primary, #00111C); }
html body .om-dcmp-diff { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.om-dcmp-diff[hidden] { display: none; }
html body .om-dcmp-scroll { overflow: auto; padding: 0 22px 22px; }
html body .om-dcmp-table { width: 100%; border-collapse: collapse; font-size: 14px; }
html body .om-dcmp-table th, html body .om-dcmp-table td { padding: 10px 12px; border-bottom: 1px solid #f0eeea; text-align: left; vertical-align: top; }
html body .om-dcmp-table tbody th { width: 150px; font-weight: 400; color: #6e6e6e; white-space: nowrap; }
html body .om-dcmp-table td { color: var(--om-color-primary, #00111C); }
html body .om-dcmp-table thead th { padding-top: 18px; font-weight: 400; vertical-align: bottom; }
html body .om-dcmp-media { display: flex; align-items: center; justify-content: center; width: 88px; height: 88px; margin-bottom: 10px; overflow: hidden; border-radius: 12px; background: var(--om-rb-soft, #f7f5f1); color: var(--om-color-primary, #00111C); }
html body .om-dcmp-media img { width: 100%; height: 100%; object-fit: cover; }
html body .om-dcmp-media svg { width: 40px; height: 40px; }
html body .om-dcmp-name { margin: 0 0 6px; font-size: 14px; line-height: 1.35; color: var(--om-color-primary, #00111C); }
.om-dcmp-dialog .om-dcmp-remove.om-dcmp-remove { margin: 0; padding: 0; border: 0; background: none; font: inherit; font-size: 12px; color: #6e6e6e; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
html body .om-dcmp-actions td, html body .om-dcmp-actions th { border-bottom: 0; }
.om-dcmp-actions .om-btn { white-space: nowrap; }
.om-dcmp-dialog.is-diff tr.is-same { display: none; }

@media (max-width: 800px) {
	.om-builder .om-rb-chat.om-rb-chat:not(.om-rb-chat--review) { width: 44px; min-height: 44px; padding: 0; justify-content: center; }
	.om-builder .om-rb-chat:not(.om-rb-chat--review) .om-rb-chat-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.om-builder .om-rb-bar-end { gap: 10px; }
	html body .om-rb-hero { aspect-ratio: 1 / 1; }
	html body .om-rb-hero-tag { left: 10px; bottom: 10px; max-width: calc(100% - 20px); }
	html body .om-dcmp-strip { border-radius: 18px; }
	html body .om-dcmp-dialog { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; }
	html body .om-dcmp-inner { max-height: 100dvh; }
	html body .om-dcmp-table tbody th { width: 110px; white-space: normal; }
}
/* The diamond shape outlines (inline SVG, not the catalog's mask icons). */
:is(.om-rb-hero-stone, .om-dcmp-media, .om-dt-shape, .om-dd-placeholder) svg.om-shape-icon { display: block; background: none; -webkit-mask: none; mask: none; }
html .om-dcmp-dialog .om-dcmp-table, html .om-dcmp-dialog .om-dcmp-table :is(th, td) { border: 0; border-bottom: 1px solid #f0eeea; background: transparent; }
html .om-dcmp-dialog .om-dcmp-table tbody tr:nth-child(odd) :is(th, td) { background: transparent; }
html .om-dcmp-dialog .om-dcmp-close.om-dcmp-close { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0; padding: 0; border: 1px solid #e5e1da; border-radius: 50%; background: #fff; font-size: 22px; line-height: 1; color: var(--om-color-primary, #00111C); cursor: pointer; }
html .om-dcmp-dialog .om-dcmp-close.om-dcmp-close:is(:hover, :focus, :focus-visible) { border-color: var(--om-color-primary, #00111C); background: #fff; color: var(--om-color-primary, #00111C); }
html .om-dcmp-dialog .om-dcmp-select { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; background: var(--om-color-primary, #00111C); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--om-color-background, #fff); text-decoration: none; white-space: nowrap; }
html .om-dcmp-dialog .om-dcmp-select:is(:hover, :focus, :focus-visible) { color: var(--om-color-background, #fff); opacity: 0.9; }

/* The site's menu or a pop-up is open: our floating pieces step aside
   (they sit above the page, so they would cover it). */
html.om-site-menu-open :is(.om-sticky-tools, .om-saved-float, .om-compare-tray, .om-sticky-bar, .om-ai:not(.is-open) .om-ai-launch) {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease, visibility 0s linear 0.15s;
}

/* Label above the header's story reels: says what the circles are. */
html body .om-intro-reels-title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0 0 14px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
	color: #6e6e6e;
}
.om-intro-head--left .om-intro-reels-title { justify-content: flex-start; }
.om-intro-head--right .om-intro-reels-title { justify-content: flex-end; }
html body .om-intro-reels-play {
	position: relative;
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	border: 1px solid var(--om-gold, #b8925a);
	border-radius: 50%;
}
html body .om-intro-reels-play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -3.5px 0 0 -2px;
	border-style: solid;
	border-width: 3.5px 0 3.5px 6px;
	border-color: transparent transparent transparent var(--om-gold, #b8925a);
}
html p.om-intro-reels-title { margin: 0 0 14px; }
.om-intro-reels .om-reels-heading { display: none; }

/* =========================================================
   1.35 Assistant: branded, and answers from the website
   ========================================================= */

/* Accent (sparkle and details): from Settings, else soft gold. */
.om-ai .om-ai-launch .om-ai-spark,
html body .om-ai-avatar { color: var(--om-ai-accent, #e8cf98); }
.om-ai .om-ai-icon-btn.om-ai-icon-btn:focus-visible { outline-color: var(--om-ai-accent, #e8cf98); }

/* The shop's logo, round: header avatar and (optionally) the button. */
.om-ai-avatar.has-logo { overflow: hidden; background: #fff; box-shadow: 0 0 0 2px var(--om-ai-accent, #e8cf98); }
.om-ai-avatar.has-logo img { width: 100%; height: 100%; object-fit: contain; }
html body .om-ai-launch-logo {
	display: inline-flex;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	margin-left: -6px;
	overflow: hidden;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 2px var(--om-ai-accent, #e8cf98);
}
html body .om-ai-launch-logo img { width: 100%; height: 100%; object-fit: contain; }
.om-ai .om-ai-launch.has-logo.om-ai-launch { padding-left: 14px; }
@media (max-width: 600px) {
	html body .om-ai-launch-logo { width: 34px; height: 34px; margin-left: 0; }
	.om-ai .om-ai-launch.has-logo.om-ai-launch { padding-left: 0; }
}
.om-ai.is-mini .om-ai-launch.has-logo.om-ai-launch:not(:hover):not(:focus-visible) { padding-left: 0; }
.om-ai.is-mini .om-ai-launch.has-logo:not(:hover):not(:focus-visible) .om-ai-launch-logo { margin-left: 0; }

/* Pages of the shop's website it answered from. */
html body .om-ai-pages { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.om-ai .om-ai-page {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	max-width: 100%;
	padding: 6px 12px 6px 9px;
	border: 1px solid var(--om-ai-line, #e6e0d6);
	border-radius: 999px;
	background: #fff;
	font-size: 12.5px;
	line-height: 1.3;
	color: var(--om-ai-ink, #00111C);
	text-decoration: none;
}
.om-ai .om-ai-page:is(:hover, :focus-visible) { border-color: var(--om-ai-ink, #00111C); color: var(--om-ai-ink, #00111C); }
html body .om-ai-page-text { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
html body .om-ai-page-icon {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	background: var(--om-ai-accent-ink, #8a6a3b);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3h7v7M10 14 21 3M21 14v7H3V3h7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3h7v7M10 14 21 3M21 14v7H3V3h7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* A live diamond card (no photo: a soft diamond mark). */
.om-ai-card-img.is-stone { display: flex; align-items: center; justify-content: center; background: var(--om-ai-soft, #f6f3ee); }
.om-ai-card-img.is-stone::before {
	content: "";
	width: 40%;
	height: 40%;
	background: var(--om-ai-accent-ink, #8a6a3b);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'%3E%3Cpath d='M6 3h12l3 6-9 12L3 9z M3 9h18 M9 3l3 6 3-6 M12 9v12'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linejoin='round'%3E%3Cpath d='M6 3h12l3 6-9 12L3 9z M3 9h18 M9 3l3 6 3-6 M12 9v12'/%3E%3C/svg%3E") center / contain no-repeat;
}
