/* Type switch follows the site’s light Nunito headings and grey palette. */
.nivoda-diamonds__type-tabs {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
	border-bottom: 1px solid #ddd;
	margin-bottom: 1.5em;
}
.nivoda-diamonds .nivoda-diamonds__type-tab {
	appearance: none;
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	box-shadow: none;
	padding: 0.5em 0.35em 0.65em;
	min-height: 44px;
	font-family: Nunito, sans-serif;
	font-size: 20px;
	font-weight: 200;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: normal;
	color: #707070;
	cursor: pointer;
}
.nivoda-diamonds .nivoda-diamonds__type-tab[aria-pressed="true"] {
	color: #222;
	border-bottom-color: #606060;
}
.nivoda-diamonds .nivoda-diamonds__type-tab:hover { color: #222; }
.nivoda-diamonds .nivoda-diamonds__type-tab:focus-visible {
	outline: 2px solid #777;
	outline-offset: 3px;
}

.nivoda-diamonds {
	margin: 2em 0;
}

.nivoda-diamonds__filters {
	display: block;
	margin-bottom: 2em;
	padding: 0;
	background: none;
}
.nivoda-diamonds__filter-selects {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1em;
	align-items: end;
}

.nivoda-diamonds__filters label {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	font: inherit;
	font-size: 1em;
	letter-spacing: normal;
	color: #555;
	gap: 0.4em;
	white-space: nowrap;
}



.nivoda-diamonds__filters select,
.nivoda-diamonds__filters input[type="number"] {
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #ddd;
	border-radius: 2px;
	padding: 0.55em 0.7em;
	font-family: inherit;
	font-size: max(1em, 16px);
	line-height: 1.5;
	min-height: 44px;
	color: #333;
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
}

.nivoda-diamonds__filters select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3e%3cpath d='M0 0l5 6 5-6z' fill='%23999'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 0.9em center;
	padding-right: 2em;
}

.nivoda-diamonds__filters select:focus,
.nivoda-diamonds__filters input[type="number"]:focus {
	outline: none;
	border-color: #999;
}

.nivoda-diamonds__filters-submit {
	align-self: center;
	flex-shrink: 0;
	background: none;
	border: none;
	border-bottom: 1px solid #333;
	border-radius: 0;
	padding: 0.4em 0;
	font-size: 0.7em;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	color: #333;
	white-space: nowrap;
}

.nivoda-diamonds__filters-submit:hover {
	color: #000;
	border-color: #000;
}

/* Below this width the filter row no longer fits without horizontal
   scrolling, and nothing in the design hints that it scrolls — a visitor
   on a phone would just see Shape/Color and assume that's all there is.
   Stack it into a 2-up grid instead so every filter is visible at once. */
@media (max-width: 1000px) {
	.nivoda-diamonds__filter-selects {
		flex-wrap: wrap;
		align-items: stretch;
		overflow-x: visible;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.8em 1em;
	}

	.nivoda-diamonds__filters label {
		width: 100%;
		white-space: normal;
	}

	.nivoda-diamonds__filters select,
	.nivoda-diamonds__filters input[type="number"] {
		width: 100%;
		min-width: 0;
	}

	.nivoda-diamonds__filters-currency,
	.nivoda-diamonds__filters-labgrown,
	.nivoda-diamonds__filters-submit {
		grid-column: 1 / -1;
	}

	.nivoda-diamonds__filters-submit {
		justify-self: start;
	}
}

.nivoda-diamonds__status {
	min-height: 1.2em;
	font-style: italic;
	color: #666;
}

.nivoda-diamonds__error,
.nivoda-diamonds__empty {
	color: #a00;
}

.nivoda-diamonds__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.5em;
}

.nivoda-diamonds__card {
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
	cursor: pointer;
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.nivoda-diamonds__card:hover,
.nivoda-diamonds__card:focus-visible {
	border-color: #bbb;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	outline: none;
}

.nivoda-diamonds__card-media {
	aspect-ratio: 1 / 1;
	background: #fafafa;
	display: flex;
	align-items: center;
	justify-content: center;
}

.nivoda-diamonds__card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nivoda-diamonds__card-noimage {
	color: #999;
	font-size: 0.85em;
}

.nivoda-diamonds__card-body {
	padding: 0.9em 1em 1.1em;
}

.nivoda-diamonds__card-title {
	margin: 0 0 0.35em;
	font-size: 0.95em;
	font-weight: 600;
	color: #222;
}

.nivoda-diamonds__card-specs {
	margin: 0 0 0.9em;
	font-size: 0.8em;
	color: #666;
	line-height: 1.5;
}

.nivoda-diamonds__card-specs strong {
	color: #222;
	font-weight: 600;
}

.nivoda-diamonds__card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0 0 0.9em;
}

.nivoda-diamonds__card-price {
	font-weight: 700;
	font-size: 1.05em;
	margin: 0;
	color: #111;
}

.nivoda-diamonds__card-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	font-size: 0.7em;
	letter-spacing: 0.02em;
	color: #666;
	white-space: nowrap;
}

.nivoda-diamonds__card-badge-icon {
	width: 1.1em;
	height: 1.1em;
	fill: #999;
	flex-shrink: 0;
}

.nivoda-diamonds__card-view {
	display: block;
	width: 100%;
	background: none;
	border: 1px solid #333;
	border-radius: 2px;
	padding: 0.5em 0;
	font-size: 0.78em;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #333;
	cursor: pointer;
}

.nivoda-diamonds__card:hover .nivoda-diamonds__card-view {
	background: #333;
	color: #fff;
}

.nivoda-diamonds__pagination {
	margin-top: 1.5em;
	text-align: center;
}

.nivoda-diamonds__load-more {
	background: none;
	border: 1px solid #333;
	border-radius: 2px;
	padding: 0.7em 2em;
	font-size: 0.85em;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #333;
	cursor: pointer;
}

.nivoda-diamonds__load-more:hover {
	background: #333;
	color: #fff;
}

.nivoda-diamonds__load-more[disabled] {
	opacity: 0.5;
	cursor: default;
}

/* Invisible trigger for infinite scroll — IntersectionObserver watches
   this instead of a "Load more" button. Given height so it actually
   enters the viewport (a 0-height element never intersects). */
.nivoda-diamonds__load-more-sentinel {
	height: 1px;
}

/* Single-diamond page (?diamond=<id>) — a real page, not a popup. */

.nivoda-diamonds__back {
	margin: 0 0 1.5em;
	font-size: 0.9em;
}

.nivoda-diamonds__back a {
	color: #555;
	text-decoration: none;
}

.nivoda-diamonds__back a:hover {
	color: #000;
	text-decoration: underline;
}

.nivoda-diamonds__single {
	display: flex;
	flex-wrap: wrap;
	gap: 2.5em;
}

/* Native detail links skip the page banner. Allow room for the sticky
   site header; themes can override this offset without changing the JS. */
#nivoda-diamond-details {
	scroll-margin-top: var(--nivoda-detail-scroll-offset, 120px);
}

.nivoda-diamonds__single .nivoda-diamonds__back {
	flex-basis: 100%;
}

.nivoda-diamonds__detail-media {
	flex: 1 1 320px;
	max-width: 380px;
	min-width: 0;
	width: 100%;
}

.nivoda-diamonds__detail-media img {
	width: 100%;
	border-radius: 4px;
	display: block;
}

/* Keep the photo and native turntable in the same stable, uncropped stage. */
.nivoda-diamonds__gallery-stage {
	position: relative;
	aspect-ratio: 1 / 1;
	background: #fafafa;
	border-radius: 4px;
	overflow: hidden;
}

.nivoda-diamonds__gallery-stage .nivoda-diamonds__gallery-main {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 0;
}

.nivoda-diamonds__gallery-stage .nivoda-diamonds__card-noimage {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Native frames keep their full aspect ratio, including on narrow screens. */
.nivoda-diamonds__turntable {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	touch-action: pan-y;
	cursor: grab;
	user-select: none;
}
.nivoda-diamonds__turntable:active { cursor: grabbing; }
/* Focus belongs on the instruction text, never over the diamond itself. */
.nivoda-diamonds__gallery .nivoda-diamonds__turntable,
.nivoda-diamonds__gallery .nivoda-diamonds__turntable:focus,
.nivoda-diamonds__gallery .nivoda-diamonds__turntable:focus-visible {
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
}
.nivoda-diamonds__gallery:has(.nivoda-diamonds__turntable:focus-visible) .nivoda-diamonds__turntable-status {
	color: #333;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.nivoda-diamonds__detail-media .nivoda-diamonds__turntable img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	pointer-events: none;
}
.nivoda-diamonds__turntable-status { font-size: 0.8em; margin: 0.6em 0; color: #666; }
.nivoda-diamonds__gallery .nivoda-diamonds__turntable-toggle {
	appearance: none;
	-webkit-appearance: none;
	min-height: 38px;
	padding: 0.7em 1.4em;
	margin: 0.4em 0 0;
	border: 1px solid #ccc;
	border-radius: 2px;
	background: #fff;
	color: #555;
	font-family: inherit;
	font-size: 0.75em;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	box-shadow: none;
	cursor: pointer;
}
.nivoda-diamonds__gallery .nivoda-diamonds__turntable-toggle:hover {
	background: #333;
	border-color: #333;
	color: #fff;
}
.nivoda-diamonds__gallery .nivoda-diamonds__turntable-toggle:focus-visible {
	outline: 2px solid #777;
	outline-offset: 3px;
}
.nivoda-diamonds__gallery [hidden] { display: none !important; }

.nivoda-diamonds__gallery-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em;
	margin-top: 0.8em;
}

.nivoda-diamonds__gallery-thumb {
	width: 64px;
	height: 64px;
	padding: 0;
	border: 1px solid #e2e2e2;
	border-radius: 3px;
	background: #fafafa;
	overflow: hidden;
	cursor: pointer;
}

.nivoda-diamonds__gallery-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nivoda-diamonds__gallery-thumb.is-active {
	border-color: #333;
}

.nivoda-diamonds__detail-body {
	flex: 1 1 360px;
}

.nivoda-diamonds__detail-title {
	margin: 0 0 0.3em;
	font-size: 1.6em;
	font-weight: 600;
}

.nivoda-diamonds__detail-subline {
	margin: 0 0 1.2em;
	color: #666;
	font-size: 0.95em;
}

.nivoda-diamonds__detail-subline strong {
	color: #222;
}

.nivoda-diamonds__detail-cert {
	display: flex;
	align-items: center;
	gap: 0.8em;
	border: 1px solid #e2e2e2;
	border-radius: 4px;
	padding: 0.9em 1.1em;
	margin: 0 0 1.2em;
	font-size: 0.85em;
	color: #555;
}

.nivoda-diamonds__detail-cert .nivoda-diamonds__card-badge-icon {
	width: 1.8em;
	height: 1.8em;
	fill: #999;
	flex-shrink: 0;
}

.nivoda-diamonds__detail-cert strong {
	color: #222;
}

/* Certificate link follows the site's grey palette; keep keyboard focus visible. */
.nivoda-diamonds__detail-cert-link {
	color: #777 !important;
	text-decoration: none !important;
	font-weight: 600;
}

.nivoda-diamonds__detail-cert-link:hover,
.nivoda-diamonds__detail-cert-link:focus-visible {
	color: #555 !important;
	text-decoration: none !important;
}



.nivoda-diamonds__detail-price {
	font-size: 1.5em;
	font-weight: 700;
	margin: 0 0 1.2em;
	color: #111;
}

.nivoda-diamonds__detail-heading {
	margin: 1.8em 0 0.8em;
	font-size: 1em;
	font-weight: 600;
	border-top: 1px solid #eee;
	padding-top: 1.2em;
}

.nivoda-diamonds__detail-specs-wrap {
	display: flex;
	flex-wrap: wrap;
	border: 1px solid #e2e2e2;
	border-radius: 4px;
	overflow: hidden;
}

.nivoda-diamonds__detail-specs {
	flex: 1 1 260px;
	display: grid;
	grid-template-columns: auto 1fr;
	align-content: start;
	gap: 0.6em 1.5em;
	margin: 0;
	padding: 1em 1.5em;
	font-size: 0.9em;
}

/* Slight divider between the two columns, professional-looking rather
   than the two lists just floating next to each other with no
   separation. Only the second (and later) column gets the left border,
   so a lone column on narrow screens isn't split by a stray line. */
.nivoda-diamonds__detail-specs + .nivoda-diamonds__detail-specs {
	border-left: 1px solid #e2e2e2;
}

.nivoda-diamonds__detail-specs dt {
	color: #777;
}

.nivoda-diamonds__detail-specs dd {
	margin: 0;
	color: #222;
	font-weight: 600;
}

.nivoda-diamonds__enquire {
	display: inline-block;
	padding: 0.7em 1.6em;
	border: 1px solid #333;
	border-radius: 2px;
	font-size: 0.85em;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: #333;
	text-align: center;
}

.nivoda-diamonds__enquire:hover {
	background: #333;
	color: #fff;
}

.nivoda-diamonds__enquire--full {
	display: block;
	width: 100%;
	padding: 0.9em 1.6em;
	margin: 0 0 0.5em;
	background: #333;
	color: #fff;
}

.nivoda-diamonds__enquire--full:hover {
	background: #000;
	color: #fff;
}

.nivoda-diamonds__enquiry-form {
	border: 1px solid #e2e2e2;
	border-radius: 4px;
	padding: 1.1em 1.2em;
	margin: -0.3em 0 0.8em;
}

.nivoda-diamonds__enquiry-fields {
	display: flex;
	flex-direction: column;
	gap: 0.9em;
}

.nivoda-diamonds__enquiry-fields label {
	display: flex;
	flex-direction: column;
	gap: 0.35em;
	font: inherit;
	font-size: 1em;
	letter-spacing: normal;
	color: #545454;
}

.nivoda-diamonds__enquiry-fields input {
	border: 1px solid #ddd;
	border-radius: 2px;
	padding: 0.6em 0.7em;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	min-height: 44px;
	font-family: inherit;
	font-size: max(1em, 16px);
	line-height: 1.5;
	color: #222;
	background: #fff;
}

.nivoda-diamonds__enquiry-fields input:focus {
	outline: none;
	border-color: #999;
}

/* Honeypot — present in the markup for bots to find, invisible and
   unreachable for a real visitor (off-screen rather than display:none,
   which some bots skip past when filling forms). */
.nivoda-diamonds__enquiry-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	margin: 0;
}

/* Match the contact page's outlined PT Sans button treatment. */
.nivoda-diamonds .nivoda-diamonds__enquiry-submit,
.nivoda-diamonds .nivoda-diamonds__enquiry-toggle {
	appearance: none;
	align-self: flex-start;
	background: #fff;
	color: #606060;
	border: 1px solid #606060;
	border-radius: 2px;
	padding: 13px 29px;
	font-family: "PT Sans", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 17px;
	letter-spacing: normal;
	text-transform: uppercase;
	box-shadow: none;
	cursor: pointer;
}
.nivoda-diamonds .nivoda-diamonds__enquiry-submit:hover,
.nivoda-diamonds .nivoda-diamonds__enquiry-toggle:hover {
	background: #606060;
	color: #fff;
}
.nivoda-diamonds .nivoda-diamonds__enquiry-submit:focus-visible,
.nivoda-diamonds .nivoda-diamonds__enquiry-toggle:focus-visible {
	outline: 2px solid #777;
	outline-offset: 3px;
}

.nivoda-diamonds__enquiry-submit[disabled] {
	opacity: 0.6;
	cursor: default;
}

.nivoda-diamonds__enquiry-status {
	margin: 0;
	font-size: 0.85em;
	color: #555;
	min-height: 1.2em;
}

/* Quiet paired range controls, on their own row below the dropdowns. */
.nivoda-diamonds__filter-ranges {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1em;
	align-items: start;
	margin-top: 1.5em;
}
.nivoda-diamonds__range {
	grid-column: span 2;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
.nivoda-diamonds__filters .nivoda-diamonds__sort { min-width: 0; white-space: normal; align-self: end; }
.nivoda-diamonds__range legend { font-size: 1em; color: #444; padding: 0; margin-bottom: 0.7em; }
.nivoda-diamonds__range-unit { font-size: 0.8em; color: #777; margin-left: 0.35em; }
.nivoda-diamonds__range-track { position: relative; height: 24px; margin: 0 8px 0.8em; }
.nivoda-diamonds__range-track::before {
	content: ''; position: absolute; left: 0; right: 0; top: 10px; height: 3px; border-radius: 3px;
	background: linear-gradient(to right, #eee var(--range-start, 0%), #606060 var(--range-start, 0%), #606060 var(--range-end, 100%), #eee var(--range-end, 100%));
}
.nivoda-diamonds__range-track input[type="range"] {
	position: absolute; inset: 0; width: 100%; height: 24px; margin: 0; padding: 0; border: 0;
	background: transparent; appearance: none; -webkit-appearance: none; pointer-events: none; z-index: 3;
}
.nivoda-diamonds__range-track input[type="range"]::-webkit-slider-thumb {
	appearance: none; -webkit-appearance: none; width: 17px; height: 17px; border-radius: 50%;
	border: 1px solid #aaa; background: #fff; pointer-events: auto; cursor: grab;
}
.nivoda-diamonds__range-track input[type="range"]::-moz-range-thumb {
	width: 15px; height: 15px; border-radius: 50%; border: 1px solid #aaa; background: #fff; pointer-events: auto; cursor: grab;
}
.nivoda-diamonds__range-track input[type="range"]:focus-visible { outline: 1px solid #777; outline-offset: 4px; }
.nivoda-diamonds__range-values { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1em; }
.nivoda-diamonds__range-values label { min-width: 0; }
.nivoda-diamonds__range-values input[type="number"] { background: transparent; font-size: max(1em, 16px); padding: 0.6em 0.8em; }
@media (max-width: 1000px) {
	.nivoda-diamonds__filter-ranges { grid-template-columns: minmax(0, 1fr); gap: 1.4em; }
	.nivoda-diamonds__range { grid-column: auto; }
}

/* Compact, removable filter summary beneath the controls. */
.nivoda-diamonds__applied-filters { display: flex; flex-wrap: wrap; gap: 0.5em; margin-top: 1.2em; }
.nivoda-diamonds__applied-filters[hidden] { display: none; }
.nivoda-diamonds .nivoda-diamonds__applied-filters button {
	appearance: none; font-family: inherit; font-size: 13px; font-weight: 400;
	line-height: 1.4; letter-spacing: normal; text-transform: none;
	padding: 6px 10px; min-height: 32px; border: 1px solid #ddd;
	border-radius: 3px; background: #f7f7f7; color: #606060; box-shadow: none; cursor: pointer;
}
.nivoda-diamonds .nivoda-diamonds__applied-filters button:hover { border-color: #777; color: #333; }
.nivoda-diamonds .nivoda-diamonds__applied-filters button:focus-visible { outline: 2px solid #777; outline-offset: 2px; }
.nivoda-diamonds .nivoda-diamonds__applied-filters .nivoda-diamonds__clear-filters { background: transparent; border-color: transparent; text-decoration: underline; text-underline-offset: 3px; }

/* tdv-filter.html: scoped to the catalogue UI, never the host theme. */
.nivoda-diamonds { max-width: 1332px; margin-left: auto; margin-right: auto; }
.nivoda-diamonds__type-tabs { gap: 32px; border-bottom: 1px solid #ccc; margin-bottom: 22px; }
.nivoda-diamonds .nivoda-diamonds__type-tab {
 font-family: Nunito, sans-serif; font-size: 21px; font-weight: 300; line-height: normal;
 color: #777; padding: 14px 8px 12px; position: relative; top: 1px; min-height: 0;
}
.nivoda-diamonds .nivoda-diamonds__type-tab[aria-pressed="true"] { color: #222; border-bottom-color: #555; }
.nivoda-diamonds .nivoda-diamonds__filters--visual { font-family: Nunito, sans-serif; color: #333; }
.nivoda-diamonds__filters--visual *, .nivoda-diamonds__filters--visual *::before, .nivoda-diamonds__filters--visual *::after { box-sizing: border-box; }
.nivoda-diamonds__filters--visual .nd-shape-sec { margin-bottom: 26px; }
.nivoda-diamonds__filters--visual .nd-tile-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.nivoda-diamonds__filters--visual .nd-lbl { display: block; float: none; width: 100%; padding: 0; font-size: 14px; line-height: normal; font-weight: 400; color: #555; margin: 0 0 9px; }
.nivoda-diamonds__filters--visual .nd-sub { padding-top: 14px; }
.nivoda-diamonds__filters--visual .nd-shape-grid { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 10px; }
.nivoda-diamonds__filters--visual .nd-grade-grid { display: grid; gap: 8px; }
.nivoda-diamonds__filters--visual .nd-color { grid-template-columns: repeat(16, minmax(0, 1fr)); }
.nivoda-diamonds__filters--visual .nd-clarity { grid-template-columns: repeat(11, minmax(0, 1fr)); }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-choice {
 appearance: none; min-width: 0; margin: 0; padding: 0 2px; border: 1px solid #c8c8c8; border-radius: 2px;
 background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center;
 cursor: pointer; font-family: inherit; font-size: 12px; font-weight: 400; line-height: normal; color: #444;
 letter-spacing: normal; text-transform: none; box-shadow: none; transition: border-color .15s, background .15s;
}
.nivoda-diamonds__filters--visual .nd-shape { height: 74px; gap: 6px; }
.nivoda-diamonds__filters--visual .nd-grade { height: 62px; gap: 4px; }
.nivoda-diamonds__filters--visual .nd-choice svg { display: block; fill: none; stroke: #666; stroke-width: .6; stroke-linejoin: round; stroke-linecap: round; flex-shrink: 0; }
.nivoda-diamonds__filters--visual .nd-shape svg { width: 44px; height: 44px; }
.nivoda-diamonds__filters--visual .nd-grade svg { width: 28px; height: 28px; }
.nivoda-diamonds__filters--visual .nd-grade svg .body { stroke: none; fill-opacity: .85; }
.nivoda-diamonds__filters--visual .nd-grade svg .inc { fill: #2a2a2a; stroke: none; }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-choice:hover { border-color: #888; }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-choice[aria-pressed="true"] { border-color: #333; background: #f6f6f6; color: #111; }
.nivoda-diamonds__filters--visual .nd-choice[aria-pressed="true"] svg { stroke: #222; }
.nivoda-diamonds__filters--visual .nd-choice:focus-visible { outline: 2px solid #777; outline-offset: 2px; }
.nivoda-diamonds__filters--visual .nd-one-row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-field { display: flex; flex-direction: column; min-width: 0; gap: 7px; font-size: 13px; line-height: normal; font-weight: 400; color: #555; letter-spacing: normal; white-space: nowrap; margin: 0; }
.nivoda-diamonds__filters--visual .nd-field small { font-size: 10px; color: #888; margin-left: 3px; }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-input,
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-select { width: 100%; height: 40px; min-height: 40px; border: 1px solid #c8c8c8; border-radius: 2px; background-color: #fff; font-family: inherit; font-size: 15px; line-height: normal; color: #222; padding: 0 12px; margin: 0; box-shadow: none; }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-select { padding-right: 30px; background-position: right 15px center; cursor: pointer; }
.nivoda-diamonds__filters--visual .nd-input::placeholder { color: #999; }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-input:focus,
.nivoda-diamonds .nivoda-diamonds__filters--visual .nd-select:focus { border-color: #888; outline: 1px solid #888; }
.nivoda-diamonds__filters--visual .nivoda-diamonds__applied-filters { align-items: center; gap: 18px; margin-top: 14px; }
.nivoda-diamonds .nivoda-diamonds__filters--visual .nivoda-diamonds__filter-chip { background: #f2f2f2; border-color: #ddd; border-radius: 2px; color: #555; padding: 7px 10px; }

/* tdv-filter-2.html: carat slider, guidance and compact mobile rows. */
  .nivoda-diamonds .nd-carat-range{position:relative;height:20px;margin:9px 8px 0}
  .nivoda-diamonds .nd-carat-range .nd-track{position:absolute;top:9px;left:0;right:0;height:2px;background:#e6e6e6}
  .nivoda-diamonds .nd-carat-range .nd-fill{position:absolute;top:8px;height:3px;background:#555}
  .nivoda-diamonds .nd-carat-range input{position:absolute;left:-8px;width:calc(100% + 16px);top:0;height:20px;-webkit-appearance:none;appearance:none;background:none;pointer-events:none;margin:0}
  .nivoda-diamonds .nd-carat-range input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:1px solid #777;pointer-events:auto;cursor:pointer}
  .nivoda-diamonds .nd-carat-range input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:1px solid #777;pointer-events:auto;cursor:pointer}
  .nivoda-diamonds .nd-carat-range input::-moz-range-track{background:none}

  .nivoda-diamonds .nd-carat-field{grid-column:span 2}
  .nivoda-diamonds .nd-carat-wrap{display:grid;grid-template-columns:4fr 1fr 1fr;gap:8px;align-items:center;height:40px}
  .nivoda-diamonds .nd-carat-wrap .nd-carat-range{margin:0 10px 0 8px}
  .nivoda-diamonds .nd-carat-wrap .nd-input{padding:0 8px;text-align:center;min-width:0}
  .nivoda-diamonds .nd-info{position:relative;display:inline-flex;vertical-align:middle;margin-left:6px}
  .nivoda-diamonds .nd-info-btn{width:15px;height:15px;border-radius:50%;border:1px solid #999;background:#fff;color:#777;font:italic 600 9px/13px Georgia,serif;padding:0;cursor:pointer;text-align:center}
  .nivoda-diamonds .nd-info-btn:hover,.nivoda-diamonds .nd-info.nd-open .nd-info-btn{border-color:#333;color:#333}
  .nivoda-diamonds .nd-tip{position:absolute;left:-12px;top:100%;padding-top:8px;width:260px;z-index:20;visibility:hidden;opacity:0;font-size:12.5px;line-height:1.5;color:#444;font-weight:400;white-space:normal;letter-spacing:0}
  .nivoda-diamonds .nd-tip-in{display:block;background:#fff;border:1px solid #d0d0d0;border-radius:2px;box-shadow:0 6px 18px rgba(0,0,0,.10);padding:12px 14px}
  .nivoda-diamonds .nd-info{z-index:1}
  .nivoda-diamonds .nd-info:hover,.nivoda-diamonds .nd-info:focus-within,.nivoda-diamonds .nd-info.nd-open{z-index:100}
  .nivoda-diamonds .nd-tip a{display:block;margin-top:6px;color:#222;text-decoration:underline;font-size:12px}
  .nivoda-diamonds .nd-info:hover .nd-tip,.nivoda-diamonds .nd-info:focus-within .nd-tip,.nivoda-diamonds .nd-info.nd-open .nd-tip{visibility:visible;opacity:1}
  .nivoda-diamonds .nd-see-more{display:none;margin:8px 0 0;background:none;border:0;padding:0;font-family:inherit;font-size:12px;color:#555;text-decoration:underline;cursor:pointer}
  @media (max-width:1024px){
    .nivoda-diamonds .nd-shape-grid{grid-template-columns:repeat(5,1fr)}
    .nivoda-diamonds .nd-grade-grid.nd-color{grid-template-columns:repeat(8,1fr)}
    .nivoda-diamonds .nd-grade-grid.nd-clarity{grid-template-columns:repeat(6,1fr)}
    .nivoda-diamonds .nd-one-row{grid-template-columns:repeat(4,1fr);row-gap:16px}
    .nivoda-diamonds .nd-carat-field{grid-column:span 2}
  }
  @media (max-width:640px){
    .nivoda-diamonds .nivoda-diamonds__type-tabs{gap:20px;margin-bottom:18px}
    .nivoda-diamonds .nivoda-diamonds__type-tab{font-size:17px}
    .nivoda-diamonds .nd-shape-grid{grid-template-columns:repeat(5,1fr);gap:6px}
    .nivoda-diamonds .nd-shape{height:64px;font-size:10.5px;gap:4px}
    .nivoda-diamonds .nd-shape svg{width:28px;height:28px}
    .nivoda-diamonds .nd-grade-grid{gap:6px}
    .nivoda-diamonds .nd-grade-grid.nd-color{grid-template-columns:repeat(6,1fr)}
    .nivoda-diamonds .nd-grade-grid.nd-clarity{grid-template-columns:repeat(4,1fr)}
    .nivoda-diamonds .nd-grade{height:56px;font-size:11px}
    .nivoda-diamonds .nd-grade svg{width:24px;height:24px}
    .nivoda-diamonds .nd-shape-grid:not(.nd-expanded)>:nth-child(n+6),.nivoda-diamonds .nd-color:not(.nd-expanded)>:nth-child(n+7),.nivoda-diamonds .nd-clarity:not(.nd-expanded)>:nth-child(n+5){display:none}
    .nivoda-diamonds .nd-see-more{display:inline-block}
    .nivoda-diamonds .nd-one-row{grid-template-columns:1fr 1fr;column-gap:10px;row-gap:14px;margin-top:20px}
    .nivoda-diamonds .nd-carat-field,.nivoda-diamonds .nd-one-row .nd-field:last-child{grid-column:1/-1}
    .nivoda-diamonds .nd-one-row .nd-input,.nivoda-diamonds .nd-one-row .nd-select{font-size:16px}
    .nivoda-diamonds .nd-tip{width:min(260px,calc(100vw - 48px))}
    .nivoda-diamonds .nivoda-diamonds__applied-filters{flex-wrap:wrap;gap:8px}
  }

.nivoda-diamonds .nd-see-more { min-height:0; border-radius:0; box-shadow:none; text-transform:none; letter-spacing:normal; line-height:normal; }
.nivoda-diamonds .nd-info-btn { min-height:0; box-shadow:none; text-transform:none; letter-spacing:normal; }
.nivoda-diamonds .nd-carat-range input { padding:0; border:0; box-shadow:none; min-height:0; }
@media (max-width:640px) {
 .nivoda-diamonds .nivoda-diamonds__filters--visual .nd-shape { font-size:10.5px; }
 .nivoda-diamonds .nivoda-diamonds__filters--visual .nd-grade { font-size:11px; }
 .nivoda-diamonds .nd-tip { left:-65px; max-width:calc(100vw - 64px); }
}
.nivoda-diamonds .nd-carat-wrap { grid-template-columns:minmax(0, 4fr) minmax(58px, 1fr) minmax(58px, 1fr); }
.nivoda-diamonds .nd-carat-wrap .nd-input { -moz-appearance:textfield; }
.nivoda-diamonds .nd-carat-wrap .nd-input::-webkit-inner-spin-button,
.nivoda-diamonds .nd-carat-wrap .nd-input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
