/* UI1-T2 — commercial Product Card. Domain data remains Core-owned. */

.dpc-product-loop-item {
	min-inline-size: 0;
}

.dpc-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-inline-size: 0;
	block-size: 100%;
	padding: var(--dpc-space-3);
	background: var(--dpc-color-surface);
	border: 1px solid var(--dpc-color-border);
	border-radius: var(--dpc-radius-card);
	box-shadow: none;
	color: var(--dpc-color-text);
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.dpc-product-card:hover,
.dpc-product-card:focus-within {
	border-color: var(--dpc-color-border-strong);
	box-shadow: var(--dpc-shadow-card-hover);
}

.dpc-product-card__media {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	inline-size: 100%;
	overflow: hidden;
	background: var(--dpc-color-neutral-50);
	border-radius: var(--dpc-radius-image);
}

.dpc-product-card__image {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: contain;
}

.dpc-product-card__image-placeholder {
	display: block;
	inline-size: 56px;
	block-size: 56px;
	border: 1px dashed var(--dpc-color-border-strong);
	border-radius: var(--dpc-radius-image);
	background: var(--dpc-color-surface);
}

.dpc-product-card__sale-badge {
	position: absolute;
	z-index: 1;
	inset-block-start: var(--dpc-space-2);
	inset-inline-start: var(--dpc-space-2);
	display: inline-flex;
	align-items: center;
	min-block-size: 28px;
	padding-inline: var(--dpc-space-2);
	background: var(--dpc-color-primary);
	border-radius: var(--dpc-radius-pill);
	color: var(--dpc-color-neutral-0);
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
}

.dpc-product-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-inline-size: 0;
	padding-block-start: var(--dpc-space-3);
}

.dpc-product-card :where(p, h2, dl, footer) {
	margin: 0;
}

.dpc-product-card__brand {
	color: var(--dpc-color-text-muted);
	font-size: 13px;
	font-weight: 500;
	line-height: 22px;
	overflow-wrap: anywhere;
}

.dpc-product-card__title {
	display: -webkit-box;
	min-inline-size: 0;
	margin-block-start: var(--dpc-space-1);
	overflow: hidden;
	color: var(--dpc-color-text);
	font-size: 15px;
	font-weight: 600;
	line-height: 24px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.dpc-product-card__primary-link {
	position: static;
	color: inherit;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.dpc-product-card__primary-link::after {
	position: absolute;
	z-index: 2;
	inset: 0;
	border-radius: var(--dpc-radius-card);
	content: "";
}

.dpc-product-card__primary-link:focus {
	outline: none;
}

.dpc-product-card__primary-link:focus-visible::after {
	outline: 3px solid var(--dpc-color-focus);
	outline-offset: 3px;
}

.dpc-product-card__primary-link--fallback {
	position: static;
}

.dpc-product-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dpc-space-2);
	align-items: center;
	margin-block-start: var(--dpc-space-3);
}

.dpc-product-card__badge {
	display: inline-flex;
	gap: var(--dpc-space-1);
	align-items: center;
	min-block-size: 28px;
	padding-inline: var(--dpc-space-2);
	border: 1px solid var(--dpc-color-border);
	border-radius: var(--dpc-radius-pill);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
}

.dpc-product-card__grade {
	background: var(--dpc-color-neutral-100);
	color: var(--dpc-color-graphite);
}

.dpc-product-card__battery {
	background: var(--dpc-color-primary-subtle);
	color: var(--dpc-color-primary-active);
}

.dpc-product-card__specs {
	display: grid;
	gap: var(--dpc-space-1);
	padding: 0;
	margin-block-start: var(--dpc-space-3);
	color: var(--dpc-color-text-secondary);
	font-size: 13px;
	line-height: 20px;
}

.dpc-product-card__spec {
	display: grid;
	grid-template-columns: minmax(max-content, auto) minmax(0, 1fr);
	gap: var(--dpc-space-2);
	align-items: baseline;
	min-inline-size: 0;
}

.dpc-product-card__spec dt,
.dpc-product-card__spec dd {
	min-inline-size: 0;
	margin: 0;
}

.dpc-product-card__spec dt {
	color: var(--dpc-color-text-muted);
}

.dpc-product-card__spec dd {
	color: var(--dpc-color-text-secondary);
	font-weight: 500;
	text-align: end;
	overflow-wrap: anywhere;
}

.dpc-product-card__spec bdi,
.dpc-product-card__brand bdi,
.dpc-product-card__title bdi {
	unicode-bidi: isolate;
}

.dpc-product-card__trust {
	margin-block-start: var(--dpc-space-3) !important;
	color: var(--dpc-color-success);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
}

.dpc-product-card__footer {
	display: grid;
	gap: var(--dpc-space-3);
	margin-block-start: auto;
	padding-block-start: var(--dpc-space-4);
}

.dpc-product-card__commerce {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dpc-space-2) var(--dpc-space-3);
	align-items: flex-end;
	justify-content: space-between;
}

.dpc-product-card__price {
	min-inline-size: 0;
	color: var(--dpc-color-text);
	font-size: 20px;
	font-weight: 700;
	line-height: 30px;
}

.dpc-product-card__price del {
	display: block;
	color: var(--dpc-color-text-muted);
	font-size: 13px;
	font-weight: 500;
	line-height: 20px;
}

.dpc-product-card__price ins {
	color: var(--dpc-color-primary);
	text-decoration: none;
}

.dpc-product-card__price--missing {
	color: var(--dpc-color-text-muted);
	font-size: 13px;
	font-weight: 500;
	line-height: 20px;
}

.dpc-product-card__stock {
	display: inline-flex;
	align-items: center;
	min-block-size: 28px;
	padding-inline: var(--dpc-space-2);
	background: var(--dpc-color-neutral-100);
	border-radius: var(--dpc-radius-pill);
	color: var(--dpc-color-text-secondary);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
	white-space: nowrap;
}

.dpc-product-card__stock--instock {
	background: var(--dpc-color-success-soft);
	color: var(--dpc-color-success);
}

.dpc-product-card__stock--outofstock {
	background: var(--dpc-color-error-soft);
	color: var(--dpc-color-error);
}

.dpc-product-card__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	min-block-size: var(--dpc-control-medium);
	padding-inline: var(--dpc-space-4);
	background: var(--dpc-color-primary);
	border-radius: var(--dpc-radius-control);
	color: var(--dpc-color-neutral-0);
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	transition: background-color 160ms ease;
}

.dpc-product-card:hover .dpc-product-card__cta,
.dpc-product-card:focus-within .dpc-product-card__cta {
	background: var(--dpc-color-primary-hover);
}

.dpc-product-card--unavailable {
	min-block-size: 164px;
	justify-content: center;
	color: var(--dpc-color-text-secondary);
	text-align: center;
}

.dpc-product-card--unavailable p {
	margin: 0;
}

/* Generic Product Card grids, including Homepage. Catalog gets tighter page-level control. */
.woocommerce ul.products,
ul.products.dpc-home-products {
	display: grid;
	padding: 0;
	list-style: none;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dpc-space-4);
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
ul.products.dpc-home-products > li {
	float: none;
	inline-size: auto;
	margin: 0;
}

@media (min-width: 480px) {
	.dpc-product-card {
		padding: var(--dpc-space-4);
	}

	.woocommerce ul.products,
	ul.products.dpc-home-products {
		grid-template-columns: repeat(2, minmax(164px, 1fr));
	}
}

@media (min-width: 768px) {
	.dpc-product-card__title {
		font-size: 16px;
		line-height: 26px;
	}

	.dpc-product-card__price {
		font-size: 22px;
		line-height: 32px;
	}
}

@media (min-width: 1024px) {
	.woocommerce ul.products,
	ul.products.dpc-home-products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1280px) {
	.woocommerce ul.products,
	ul.products.dpc-home-products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.dpc-product-card,
	.dpc-product-card__cta {
		transition: none;
	}
}

/* UI2 final incomplete-data state. */
.dpc-product-card__image-placeholder {
	display: grid;
	place-items: center;
	gap: var(--dpc-space-2);
	inline-size: 100%;
	block-size: 100%;
	padding: var(--dpc-space-4);
	background: linear-gradient(145deg, var(--dpc-color-neutral-50), var(--dpc-color-neutral-100));
	border: 0;
	border-radius: var(--dpc-radius-image);
	color: var(--dpc-color-text-muted);
	text-align: center;
}

.dpc-product-card__image-placeholder > span {
	inline-size: 44px;
	block-size: 34px;
	border: 2px solid var(--dpc-color-neutral-300);
	border-radius: var(--dpc-radius-control);
}

.dpc-product-card__image-placeholder small {
	font-size: 12px;
	line-height: 20px;
}


/* 0.7.0 — truthful visual fallback for products without real device photos. */
.dpc-product-card__image-placeholder {
	position: relative;
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	place-items: stretch;
	gap: 0;
	padding: 0;
	overflow: hidden;
	background: var(--dpc-color-neutral-50);
}

.dpc-product-card__fallback-art {
	display: grid;
	place-items: center;
	min-block-size: 0;
	overflow: hidden;
}

.dpc-product-card__fallback-image {
	inline-size: 100%;
	block-size: 100%;
	object-fit: contain;
	opacity: 0.72;
}

.dpc-product-card__image-placeholder small {
	position: relative;
	z-index: 1;
	display: block;
	padding: var(--dpc-space-2) var(--dpc-space-3);
	background: rgb(255 255 255 / 0.92);
	border-block-start: 1px solid var(--dpc-color-border);
	color: var(--dpc-color-text-muted);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
	text-align: center;
}

.dpc-product-card__fallback-icon {
	align-self: center;
	justify-self: center;
	inline-size: 52px;
	block-size: 40px;
	border: 2px solid var(--dpc-color-neutral-300);
	border-radius: var(--dpc-radius-control);
	background: var(--dpc-color-surface);
}


/* 0.8.0 — stronger merchandising hierarchy after HostDL runtime review. */
.dpc-product-card {
	border-radius: 16px;
	box-shadow: 0 6px 24px rgb(18 20 23 / .035);
}
.dpc-product-card__media { background: #fff; border: 1px solid var(--dpc-color-neutral-100); }
.dpc-product-card__body { padding-block-start: var(--dpc-space-4); }
.dpc-product-card__title { font-weight: 700; }
.dpc-product-card__price--missing { font-size: 14px; font-weight: 650; }
.dpc-product-card__cta { min-block-size: 46px; border-radius: 10px; }
.dpc-product-card--unavailable {
	min-block-size: 280px;
	padding: var(--dpc-space-6);
	background: repeating-linear-gradient(-45deg,#fff,#fff 12px,#fafafa 12px,#fafafa 24px);
}
@media (min-width: 1024px) {
	ul.products.dpc-home-products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* 0.8.1 — archive card polish after real HostDL catalog screenshot. */
.woocommerce-shop .dpc-product-card,
.tax-product_cat .dpc-product-card,
.tax-product_tag .dpc-product-card {
	padding: var(--dpc-space-4);
	border-color: var(--dpc-color-neutral-200);
	box-shadow: 0 6px 22px rgb(18 20 23 / .03);
}

.woocommerce-shop .dpc-product-card:hover,
.tax-product_cat .dpc-product-card:hover,
.tax-product_tag .dpc-product-card:hover,
.woocommerce-shop .dpc-product-card:focus-within,
.tax-product_cat .dpc-product-card:focus-within,
.tax-product_tag .dpc-product-card:focus-within {
	border-color: var(--dpc-color-neutral-300);
	box-shadow: 0 12px 30px rgb(18 20 23 / .075);
}

.woocommerce-shop .dpc-product-card__media,
.tax-product_cat .dpc-product-card__media,
.tax-product_tag .dpc-product-card__media {
	aspect-ratio: 1.32 / 1;
	padding: var(--dpc-space-2);
	background: linear-gradient(180deg, #fff, #fbfcfd);
}

.woocommerce-shop .dpc-product-card__brand,
.tax-product_cat .dpc-product-card__brand,
.tax-product_tag .dpc-product-card__brand {
	font-size: 12px;
	font-weight: 650;
}

.woocommerce-shop .dpc-product-card__title,
.tax-product_cat .dpc-product-card__title,
.tax-product_tag .dpc-product-card__title {
	margin-block-start: 6px;
	font-size: 16px;
	font-weight: 750;
	line-height: 25px;
}

.woocommerce-shop .dpc-product-card__trust,
.tax-product_cat .dpc-product-card__trust,
.tax-product_tag .dpc-product-card__trust {
	inline-size: fit-content;
	padding: 3px 8px;
	background: var(--dpc-color-success-soft);
	border-radius: var(--dpc-radius-pill);
	font-size: 11px;
	line-height: 18px;
}

.woocommerce-shop .dpc-product-card__footer,
.tax-product_cat .dpc-product-card__footer,
.tax-product_tag .dpc-product-card__footer {
	gap: var(--dpc-space-3);
	padding-block-start: var(--dpc-space-4);
}

.woocommerce-shop .dpc-product-card__commerce,
.tax-product_cat .dpc-product-card__commerce,
.tax-product_tag .dpc-product-card__commerce {
	padding-block-start: var(--dpc-space-3);
	border-block-start: 1px solid var(--dpc-color-neutral-100);
}

.woocommerce-shop .dpc-product-card__price--missing,
.tax-product_cat .dpc-product-card__price--missing,
.tax-product_tag .dpc-product-card__price--missing {
	color: var(--dpc-color-neutral-700);
	font-size: 13px;
	font-weight: 700;
}

.dpc-product-card__cta--details {
	background: var(--dpc-color-graphite);
}

.dpc-product-card:hover .dpc-product-card__cta--details,
.dpc-product-card:focus-within .dpc-product-card__cta--details {
	background: var(--dpc-color-graphite-soft);
}

@media (max-width: 479px) {
	.woocommerce-shop .dpc-product-card,
	.tax-product_cat .dpc-product-card,
	.tax-product_tag .dpc-product-card {
		padding: var(--dpc-space-3);
	}

	.woocommerce-shop .dpc-product-card__title,
	.tax-product_cat .dpc-product-card__title,
	.tax-product_tag .dpc-product-card__title {
		font-size: 15px;
		line-height: 24px;
	}
}
