/*
 * Product cards, listings and the product page. Geometry measured from the Wix Stores widgets
 * at 1440px (desktop) and Wix's 320px mobile layout; lengths scale with --u (see base.css).
 */

/* ---------------------------------------------------------------- cards */

.vd-card { position: relative; }
.vd-card[hidden] { display: none; }
.vd-card__link { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.vd-card__media { position: relative; display: block; width: 100%; aspect-ratio: 1; overflow: hidden; }
.vd-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity 0.4s; }
.vd-card__img--hover { opacity: 0; }
.vd-card:hover .vd-card__img--hover { opacity: 1; }
.vd-card__ribbon {
	position: absolute; top: 0; left: 0; z-index: 2;
	padding: calc(var(--u) * 2) calc(var(--u) * 12);
	background: rgb(92, 82, 73); color: rgb(248, 245, 240);
	font-family: vd-figtree-medium, sans-serif; font-size: calc(var(--u) * 14); line-height: calc(var(--u) * 20);
}
.vd-card__name { display: block; margin-top: calc(var(--u) * 15); font-family: vd-eb-garamond, serif; font-size: calc(var(--u) * 21); line-height: 1.4; color: rgb(92, 82, 73); text-align: center; }
.vd-card__price { display: block; margin-top: calc(var(--u) * 5); font-family: vd-figtree-medium, sans-serif; font-size: calc(var(--u) * 17); color: rgb(92, 82, 73); text-align: center; }

/* ---------------------------------------------------------------- category grids (Wix category page) */

.vd-page .vd-products-wrap { width: 100% !important; margin-left: 0 !important; }

.vd-shop { display: block; }
.vd-products--category {
	display: grid; grid-template-columns: repeat(4, calc(var(--u) * 300)); column-gap: calc(var(--u) * 19.7); row-gap: calc(var(--u) * 19);
	justify-content: center;
}
.vd-products--category .vd-card__name { font-family: vd-glowgirl, serif; font-size: calc(var(--u) * 16); color: rgb(26, 26, 26); }

.vd-shop--filters { display: grid; grid-template-columns: calc(var(--u) * 200) 1fr; column-gap: calc(var(--u) * 40); padding: 0 calc(var(--u) * 60); }
.vd-shop--filters .vd-products--category { grid-template-columns: repeat(3, calc(var(--u) * 273)); column-gap: calc(var(--u) * 100); row-gap: calc(var(--u) * 100); justify-content: start; padding-left: calc(var(--u) * 11); }
.vd-shop--filters .vd-card__name { font-family: vd-eb-garamond, serif; font-size: calc(var(--u) * 21); color: rgb(92, 82, 73); }

.vd-shop__filters { font-family: vd-glowgirl, serif; color: rgb(26, 26, 26); }
.vd-shop__filters-title { margin: 0 0 calc(var(--u) * 14); padding-bottom: calc(var(--u) * 14); border-bottom: 1px solid rgba(26, 26, 26, 0.2); font-family: vd-figtree-medium, sans-serif; font-weight: 400; font-size: calc(var(--u) * 22); }
.vd-shop__group { border-bottom: 1px solid rgba(26, 26, 26, 0.2); padding: calc(var(--u) * 14) 0; }
.vd-shop__group summary { display: flex; justify-content: space-between; cursor: pointer; list-style: none; font-size: calc(var(--u) * 16); }
.vd-shop__group summary::-webkit-details-marker { display: none; }
.vd-shop__group summary::after { content: '+'; font-family: vd-figtree-light, sans-serif; }
.vd-shop__group[open] summary::after { content: '\2212'; }
.vd-shop__cats, .vd-shop__choices { margin: calc(var(--u) * 12) 0 0; padding: 0; list-style: none; font-size: calc(var(--u) * 14); }
.vd-shop__cats li, .vd-shop__choices li { display: flex; align-items: center; gap: 8px; margin: 0 0 calc(var(--u) * 6); }
.vd-shop__cats a { color: inherit; text-decoration: none; }
.vd-shop__cats a[aria-current='true'] { text-decoration: underline; }
.vd-shop__range { margin: calc(var(--u) * 12) 0 0; font-family: vd-figtree-medium, sans-serif; font-size: calc(var(--u) * 14); }

.vd-swatch { display: inline-block; width: 18px; height: 18px; border-radius: 50%; background: var(--swatch); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15); }

/* grid gallery (/new) */
.vd-products--grid { display: grid; grid-template-columns: repeat(4, calc(var(--u) * 282)); column-gap: calc(var(--u) * 78); row-gap: calc(var(--u) * 40); padding: 0 calc(var(--u) * 40); }
.vd-products--grid .vd-card__media { aspect-ratio: 282 / 375; }
.vd-products--grid .vd-card__img { object-fit: cover; }

/* ---------------------------------------------------------------- sliders */

.vd-products--slider { position: relative; padding: 0 calc(var(--u) * 41); }
.vd-products__title { margin: 0 0 calc(var(--u) * 40); font-family: vd-eb-garamond, serif; font-weight: 400; font-size: calc(var(--u) * 25); line-height: 1.4; color: rgb(26, 26, 26); }
.vd-products__track { display: flex; gap: calc(var(--u) * 19.5); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.vd-products__track::-webkit-scrollbar { display: none; }
.vd-products--slider .vd-card { flex: 0 0 calc(var(--u) * 210); scroll-snap-align: start; }
.vd-products--slider .vd-card__img { object-fit: cover; }
.vd-products--slider .vd-card__name { margin-top: calc(var(--u) * 16); font-family: vd-figtree-medium, sans-serif; font-size: calc(var(--u) * 16); color: rgb(26, 26, 26); text-align: left; }
.vd-products--slider .vd-card__price { text-align: left; font-size: calc(var(--u) * 16); color: rgb(26, 26, 26); }
.vd-products__arrow {
	position: absolute; top: calc(var(--u) * 105); width: calc(var(--u) * 24); height: calc(var(--u) * 24);
	padding: 0; border: 0; background: none; cursor: pointer; color: rgb(26, 26, 26);
}
.vd-products__title ~ .vd-products__arrow { top: calc(var(--u) * 180); }
.vd-products__arrow::before {
	content: ''; display: block; width: 40%; height: 40%; margin: auto;
	border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
}
.vd-products__arrow--prev { left: calc(var(--u) * 4); }
.vd-products__arrow--prev::before { transform: rotate(135deg); }
.vd-products__arrow--next { right: calc(var(--u) * 4); }
.vd-products__arrow--next::before { transform: rotate(-45deg); }

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

.vd-announcement { display: flex; align-items: center; justify-content: center; min-height: calc(var(--u) * 40); padding: calc(var(--u) * 9) calc(var(--u) * 13); background: rgba(193, 190, 187, 0.8); }
.vd-announcement p { margin: 0; max-width: calc(var(--u) * 980); font-family: vd-eb-garamond, serif; font-size: calc(var(--u) * 16); line-height: 1.4; color: rgb(92, 82, 73); text-align: center; }

.vd-product-page__inner { width: calc(var(--u) * 980); margin: 0 auto; padding: calc(var(--u) * 25) 0 calc(var(--u) * 20); }

.vd-product {
	display: grid; grid-template-columns: calc(var(--u) * 500) calc(var(--u) * 355); column-gap: calc(var(--u) * 35);
	grid-template-areas: 'gallery summary' 'desc summary';
	padding-left: calc(var(--u) * 45);
}
.vd-product-gallery { grid-area: gallery; display: grid; grid-template-columns: calc(var(--u) * 44) 1fr; column-gap: calc(var(--u) * 14); height: calc(var(--u) * 332); }
.vd-product-gallery__thumbs { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: calc(var(--u) * 6); max-height: calc(var(--u) * 332); overflow-y: auto; scrollbar-width: none; }
.vd-product-gallery__thumb { position: relative; display: block; width: calc(var(--u) * 44); height: calc(var(--u) * 44); padding: 0; border: 1px solid transparent; background: none; cursor: pointer; }
.vd-product-gallery__thumb[aria-current='true'] { border-color: rgb(26, 26, 26); }
.vd-product-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vd-product-gallery__thumb.is-video::after { content: '\25B6'; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 12px; text-shadow: 0 0 3px #000; }
.vd-product-gallery__stage { grid-column: 2; display: flex; align-items: center; justify-content: center; height: calc(var(--u) * 332); border: 1px solid rgb(92, 82, 73); overflow: hidden; }
.vd-product-gallery__thumbs + .vd-product-gallery__stage { grid-column: 2; }
.vd-product-gallery:not(:has(.vd-product-gallery__thumbs)) .vd-product-gallery__stage { grid-column: 1 / -1; }
.vd-product-gallery__media { display: block; width: 100%; height: 100%; object-fit: contain; }
.vd-product-gallery__dots { display: none; }

.vd-product__summary { grid-area: summary; color: rgb(92, 82, 73); }
.vd-product__title { margin: 0; font-family: vd-inter18-semibold, sans-serif; font-weight: 400; font-size: calc(var(--u) * 32); line-height: 1.2; color: rgb(92, 82, 73); }
.vd-product__price { margin: calc(var(--u) * 24) 0 0; font-family: 'Avenir Next', Avenir, vd-figtree-light, sans-serif; font-weight: 300; font-size: calc(var(--u) * 21); line-height: 1.24; }
.vd-product__price del { margin-right: 8px; opacity: 0.6; }
.vd-option { margin-top: calc(var(--u) * 20); }
.vd-option fieldset { margin: 0; padding: 0; border: 0; }
.vd-option__label { display: block; margin: 0 0 calc(var(--u) * 8); padding: 0; font-family: vd-inter18-light, sans-serif; font-size: calc(var(--u) * 15); line-height: 1.2; color: rgb(26, 26, 26); }
.vd-option select {
	width: 100%; height: calc(var(--u) * 36); padding: 0 calc(var(--u) * 10); border: 1px solid rgb(26, 26, 26); border-radius: 0;
	background: transparent; font-family: vd-inter18-light, sans-serif; font-size: calc(var(--u) * 15); color: rgb(26, 26, 26);
}
.vd-swatches { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 10); }
.vd-swatch-choice { position: relative; cursor: pointer; }
.vd-swatch-choice input { position: absolute; opacity: 0; }
.vd-swatch-choice .vd-swatch { width: calc(var(--u) * 22); height: calc(var(--u) * 22); }
.vd-swatch-choice input:checked + .vd-swatch { box-shadow: 0 0 0 2px rgb(248, 245, 240), 0 0 0 3px rgb(26, 26, 26); }
.vd-swatch-choice input:focus-visible + .vd-swatch { outline: 2px solid rgb(63, 92, 88); outline-offset: 3px; }
.vd-qty { display: inline-flex; align-items: center; width: calc(var(--u) * 90); height: calc(var(--u) * 36); border: 1px solid rgb(26, 26, 26); }
.vd-qty button { width: calc(var(--u) * 30); height: 100%; padding: 0; border: 0; background: none; cursor: pointer; font-size: calc(var(--u) * 18); color: rgb(26, 26, 26); }
.vd-qty input { width: calc(var(--u) * 30); height: 100%; padding: 0; border: 0; background: none; text-align: center; font-family: vd-inter18-light, sans-serif; font-size: calc(var(--u) * 15); -moz-appearance: textfield; appearance: textfield; }
.vd-qty input::-webkit-inner-spin-button, .vd-qty input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.vd-product__notice { margin: calc(var(--u) * 20) 0 0; padding: 10px 12px; border: 1px dashed rgb(92, 82, 73); font-family: vd-inter18-light, sans-serif; font-size: 13px; line-height: 1.4; }
/* Inquiry-only purchase area (in the place and style of Wix's Add to Cart / Buy Now) */
.vd-product__inquiry { display: grid; gap: calc(var(--u) * 12); margin-top: calc(var(--u) * 24); }
.vd-product__cta {
	display: flex; align-items: center; justify-content: center; min-height: max(44px, calc(var(--u) * 42)); padding: 0 16px;
	border: 1px solid rgb(26, 26, 26); background: transparent; color: rgb(26, 26, 26); text-decoration: none;
	font-family: vd-inter18-light, sans-serif; font-size: max(15px, calc(var(--u) * 15)); letter-spacing: 0.02em;
}
.vd-product__cta--primary { background: rgb(26, 26, 26); color: rgb(248, 245, 240); }
.vd-product__cta:hover, .vd-product__cta:focus-visible { opacity: 0.85; }
.vd-product__cta:focus-visible { outline: 2px solid rgb(63, 92, 88); outline-offset: 3px; }
.vd-product__inquiry-note { margin: 0; font-family: vd-inter18-light, sans-serif; font-size: max(13px, calc(var(--u) * 13)); line-height: 1.4; color: rgb(92, 82, 73); }

.vd-product-info { margin-top: calc(var(--u) * 40); }
.vd-product-info details { border-bottom: 1px solid rgba(92, 82, 73, 0.4); }
.vd-product-info summary {
	display: flex; justify-content: space-between; align-items: center; padding: calc(var(--u) * 8) 0 calc(var(--u) * 14);
	cursor: pointer; list-style: none; font-family: vd-figtree-medium, sans-serif; font-size: calc(var(--u) * 17); line-height: 1.4;
}
.vd-product-info details + details summary { padding-top: calc(var(--u) * 16); }
.vd-product-info summary::-webkit-details-marker { display: none; }
.vd-product-info summary::after { content: '+'; font-family: vd-figtree-light, sans-serif; font-size: calc(var(--u) * 22); line-height: 1; padding-right: calc(var(--u) * 6); }
.vd-product-info details[open] summary::after { content: '\2212'; }
.vd-product-info__body { padding: 0 0 calc(var(--u) * 16); font-family: vd-inter18-light, sans-serif; font-size: calc(var(--u) * 15); line-height: 1.6; color: rgb(26, 26, 26); }
.vd-product-info__body p { margin: 0; }

.vd-product__description { grid-area: desc; margin-top: calc(var(--u) * 20); font-family: vd-inter18-light, sans-serif; font-size: calc(var(--u) * 17); line-height: calc(var(--u) * 26); color: rgb(26, 26, 26); }
.vd-product__description p { margin: 0; }

.vd-product-details {
	display: grid; grid-template-columns: calc(var(--u) * 284) calc(var(--u) * 324); column-gap: calc(var(--u) * 255); row-gap: calc(var(--u) * 37);
	margin: calc(var(--u) * 75) 0 0; padding: 0 0 0 calc(var(--u) * 58); list-style: none;
}
.vd-product-details__item {
	display: grid; grid-template-columns: calc(var(--u) * 49) 1fr; grid-template-rows: auto auto; align-items: start;
	padding-bottom: calc(var(--u) * 2); border-bottom: 1px solid rgb(26, 26, 26); color: rgb(92, 82, 73);
}
.vd-product-details__icon { grid-row: 1 / 3; width: calc(var(--u) * 43); height: calc(var(--u) * 43); margin-top: calc(var(--u) * 7); }
.vd-product-details__icon svg { display: block; width: 100%; height: 100%; }
.vd-product-details__label { font-family: vd-figtree-medium, sans-serif; font-size: calc(var(--u) * 15); line-height: 1.4; letter-spacing: -0.05em; }
.vd-product-details__value { font-family: vd-eb-garamond, serif; font-size: calc(var(--u) * 24); line-height: 1.4; }

.vd-related { margin-top: calc(var(--u) * 25); }

.vd-products__more { display: none; }

/* Tablet: Wix renders the shop on a 980px page, where the Stores grid keeps 3 columns of 127px images. */
@media (max-width: 999px) and (min-width: 751px) {
	.vd-shop--filters .vd-products--category { grid-template-columns: repeat(3, calc(var(--u) * 127)); column-gap: calc(var(--u) * 100); padding-left: calc(var(--u) * 6); }
	/* The Stores widget is responsive on Wix: its section is as tall as the (smaller) grid, not the 1440px height. */
	.vd-page .vd-s:has(> .vd-products-wrap .vd-shop--filters) { min-height: 0 !important; padding-bottom: calc(var(--u) * 100); }
}

@media (max-width: 750px) {
	.vd-products--paged:not(.is-expanded) .vd-card:nth-child(n + 11) { display: none; }
	.vd-products__more {
		display: block; width: calc(var(--u) * 212); height: calc(var(--u) * 36); margin: calc(var(--u) * 20) auto 0;
		border: 1px solid rgb(26, 26, 26); background: transparent; cursor: pointer;
		font-family: vd-figtree-medium, sans-serif; font-size: calc(var(--u) * 15); color: rgb(26, 26, 26);
	}
	.vd-products--paged.is-expanded + .vd-products__more { display: none; }
	.vd-shop--filters { grid-template-columns: 1fr; padding: 0 calc(var(--u) * 10); }
	.vd-shop--filters .vd-shop__filters { display: none; }
	.vd-shop--filters .vd-products--category { grid-template-columns: repeat(2, calc(var(--u) * 130)); column-gap: calc(var(--u) * 20); row-gap: calc(var(--u) * 20); padding: 0; }
	.vd-products--category { grid-template-columns: calc(var(--u) * 260); row-gap: calc(var(--u) * 20); }
	.vd-products--grid { grid-template-columns: calc(var(--u) * 280); justify-content: center; padding: 0; row-gap: calc(var(--u) * 20); }

	.vd-products--slider { padding: 0 calc(var(--u) * 41); }
	.vd-products--slider .vd-card { flex-basis: calc(var(--u) * 198); }
	.vd-products__track { gap: calc(var(--u) * 20); }
	.vd-products__title { text-align: center; font-size: calc(var(--u) * 22); margin-bottom: calc(var(--u) * 48); }
	.vd-related { padding-bottom: calc(var(--u) * 30); }
	.vd-products__arrow { top: calc(var(--u) * 90); }
	.vd-products__title ~ .vd-products__arrow { top: calc(var(--u) * 160); }

	.vd-announcement { min-height: calc(var(--u) * 46); padding: calc(var(--u) * 9) calc(var(--u) * 13); }
	.vd-announcement p { font-size: calc(var(--u) * 10); }

	.vd-product-page__inner { width: auto; padding: 0 calc(var(--u) * 20) calc(var(--u) * 20); }
	.vd-product { display: block; padding: 0; }
	/* Wix mobile: a 280×280 image inside the 20px page margins, dots underneath (gallery 318 tall). */
	.vd-product-gallery { display: block; height: auto; margin: 0; }
	.vd-product-gallery__thumbs { display: none; }
	.vd-product-gallery__stage { height: calc(var(--u) * 280); border: 0; }
	.vd-product-gallery__dots { display: flex; justify-content: center; gap: calc(var(--u) * 6); margin-top: calc(var(--u) * 15); height: calc(var(--u) * 23); align-items: flex-start; }
	.vd-product-gallery__dots button { width: calc(var(--u) * 8); height: calc(var(--u) * 8); padding: 0; border: 1px solid rgb(26, 26, 26); border-radius: 50%; background: none; cursor: pointer; }
	.vd-product-gallery__dots .is-active { background: rgb(26, 26, 26); }
	/* Wix mobile order: gallery, title, price, options, quantity, description, information panels */
	.vd-product { display: flex; flex-direction: column; }
	.vd-product__summary { display: contents; }
	.vd-product-gallery { order: 1; }
	.vd-product__summary > * { order: 2; }
	.vd-product__description { order: 3; }
	.vd-product-info { order: 4; }
	.vd-product__title { margin-top: calc(var(--u) * 24); font-size: calc(var(--u) * 32); }
	.vd-product__price { margin-top: calc(var(--u) * 8); font-size: calc(var(--u) * 21); font-weight: 400; color: rgb(92, 82, 73); }
	.vd-product__description { margin-top: calc(var(--u) * 24); font-size: calc(var(--u) * 17); line-height: calc(var(--u) * 26); }
	.vd-product-info summary { font-family: vd-eb-garamond, serif; font-size: calc(var(--u) * 14); color: rgba(92, 82, 73, 0.8); }
	.vd-product-details {
		grid-template-columns: 1fr 1fr; column-gap: 0; row-gap: calc(var(--u) * 20); margin-top: calc(var(--u) * 30); padding: 0;
	}
	.vd-product-details__item { display: flex; flex-direction: column; align-items: center; text-align: center; padding-bottom: calc(var(--u) * 4); }
	.vd-product-details__label { order: 1; }
	.vd-product-details__icon { order: 2; width: calc(var(--u) * 32); height: calc(var(--u) * 32); margin: calc(var(--u) * 5) 0; }
	.vd-product-details__value { order: 3; font-size: calc(var(--u) * 12); }
}
