.dp-product-review {
	background: var(--dp-color-canvas);
}

.dp-product-breadcrumb {
	padding-block: var(--dp-space-4);
	background: #fff;
	border-block-end: 1px solid var(--dp-color-border);
}

.dp-product-breadcrumb__inner {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	align-items: center;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-sm);
}

.dp-product-breadcrumb a {
	color: var(--dp-color-muted);
	text-decoration: none;
}

.dp-product-breadcrumb a:hover {
	color: var(--dp-color-brand);
}

.dp-product-main {
	padding-block: var(--dp-space-7) var(--dp-space-10);
}

.dp-product-top {
	display: grid;
	gap: var(--dp-space-6);
	align-items: start;
}

.dp-product-gallery,
.dp-product-info {
	min-width: 0;
}

.dp-product-gallery {
	display: grid;
	gap: var(--dp-space-3);
}

.dp-product-stage {
	position: relative;
	display: grid;
	min-height: 25rem;
	place-items: center;
	overflow: hidden;
	padding: clamp(1.5rem, 5vw, 3rem);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-xl);
	background:
		radial-gradient(circle at 78% 18%, rgb(215 164 74 / .16), transparent 16rem),
		radial-gradient(circle at 18% 80%, rgb(28 106 102 / .12), transparent 14rem),
		linear-gradient(145deg, #fff, var(--dp-color-canvas));
	box-shadow: var(--dp-shadow-sm);
}

.dp-product-stage__badge {
	position: absolute;
	inset-block-start: var(--dp-space-4);
	inset-inline-start: var(--dp-space-4);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding-inline: .75rem;
	border-radius: var(--dp-radius-pill);
	background: var(--dp-color-beauty);
	color: #fff;
	font-size: var(--dp-text-xs);
	font-weight: 850;
}

.dp-product-illustration {
	width: min(100%, 34rem);
	filter: drop-shadow(0 24px 35px rgb(30 35 41 / .12));
}

.dp-product-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--dp-space-2);
}

.dp-product-thumb {
	display: grid;
	min-height: 5.75rem;
	place-items: center;
	padding: var(--dp-space-2);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-md);
	background: #fff;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
	font-weight: 700;
	text-align: center;
	cursor: pointer;
}

.dp-product-thumb:first-child {
	border-color: var(--dp-color-brand);
	box-shadow: inset 0 0 0 1px var(--dp-color-brand);
	color: var(--dp-color-brand);
}

.dp-product-thumb__mini {
	position: relative;
	width: 2.7rem;
	height: 1.65rem;
	margin-block-end: .35rem;
	border-radius: 45% 45% 52% 52%;
	background: linear-gradient(180deg, #40444a, #17191c);
}

.dp-product-thumb__mini::before,
.dp-product-thumb__mini::after {
	content: "";
	position: absolute;
	width: .72rem;
	height: .42rem;
	inset-block-start: .52rem;
	border-radius: 50%;
	background: rgb(255 255 255 / .22);
}

.dp-product-thumb__mini::before { inset-inline-start: .42rem; }
.dp-product-thumb__mini::after { inset-inline-end: .42rem; }

.dp-product-info {
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-xl);
	background: #fff;
	box-shadow: var(--dp-shadow-sm);
}

.dp-product-meta-top {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dp-space-2);
	align-items: center;
	margin-block-end: var(--dp-space-4);
}

.dp-product-chip {
	display: inline-flex;
	align-items: center;
	min-height: 1.85rem;
	padding-inline: .7rem;
	border-radius: var(--dp-radius-pill);
	background: var(--dp-color-surface-muted);
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
	font-weight: 800;
}

.dp-product-chip--stock {
	background: var(--dp-color-home-soft);
	color: var(--dp-color-secondary-hover);
}

.dp-product-chip--sale {
	background: var(--dp-color-error-soft);
	color: var(--dp-color-beauty);
}

.dp-product-info h1 {
	margin: 0;
	color: var(--dp-color-ink);
	font-size: clamp(1.65rem, 1.35rem + 1vw, 2.45rem);
	line-height: 1.55;
}

.dp-product-code {
	margin: var(--dp-space-2) 0 0;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
}

.dp-product-categories {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-block-start: var(--dp-space-4);
}

.dp-product-categories span {
	display: inline-flex;
	align-items: center;
	min-height: 1.9rem;
	padding-inline: .7rem;
	border: 1px solid rgb(28 106 102 / .18);
	border-radius: var(--dp-radius-pill);
	background: var(--dp-color-home-soft);
	color: var(--dp-color-secondary-hover);
	font-size: var(--dp-text-xs);
	font-weight: 750;
}

.dp-product-summary {
	margin: var(--dp-space-5) 0 0;
	padding-block: var(--dp-space-4);
	border-block: 1px solid var(--dp-color-border);
	color: var(--dp-color-muted);
	line-height: 2;
}

.dp-product-price {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1rem;
	align-items: baseline;
	margin-block-start: var(--dp-space-5);
}

.dp-product-price__current {
	color: var(--dp-color-brand);
	font-size: clamp(1.65rem, 1.45rem + .6vw, 2.1rem);
	font-weight: 900;
}

.dp-product-price__regular {
	color: var(--dp-color-muted);
	font-size: var(--dp-text-sm);
}

.dp-product-discount {
	display: inline-flex;
	align-items: center;
	min-height: 1.8rem;
	padding-inline: .55rem;
	border-radius: var(--dp-radius-pill);
	background: var(--dp-color-beauty);
	color: #fff;
	font-size: var(--dp-text-xs);
	font-weight: 850;
}

.dp-product-stock-note {
	display: flex;
	gap: var(--dp-space-2);
	align-items: center;
	margin-block-start: var(--dp-space-3);
	color: var(--dp-color-secondary-hover);
	font-size: var(--dp-text-sm);
	font-weight: 750;
}

.dp-product-stock-note::before {
	content: "";
	width: .55rem;
	height: .55rem;
	border-radius: 50%;
	background: var(--dp-color-secondary);
	box-shadow: 0 0 0 4px rgb(28 106 102 / .12);
}

.dp-product-buybox {
	display: grid;
	gap: var(--dp-space-3);
	margin-block-start: var(--dp-space-5);
	padding: var(--dp-space-4);
	border: 1px solid rgb(91 41 75 / .13);
	border-radius: var(--dp-radius-lg);
	background: linear-gradient(145deg, #fff, rgb(248 244 242 / .75));
}

.dp-product-buyrow {
	display: grid;
	grid-template-columns: 6rem minmax(0, 1fr);
	gap: var(--dp-space-3);
}

.dp-product-qty {
	display: grid;
	grid-template-columns: 2.4rem minmax(0, 1fr) 2.4rem;
	min-height: 3rem;
	overflow: hidden;
	border: 1px solid var(--dp-color-border-strong);
	border-radius: var(--dp-radius-md);
	background: #fff;
}

.dp-product-qty button {
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #fff;
	color: var(--dp-color-brand);
	font-size: 1.2rem;
}

.dp-product-qty button:hover {
	background: var(--dp-color-beauty-soft);
	color: var(--dp-color-brand);
}

.dp-product-qty input {
	width: 100%;
	min-width: 0;
	padding: 0;
	border: 0;
	border-inline: 1px solid var(--dp-color-border);
	border-radius: 0;
	text-align: center;
}

.dp-product-buyrow .dp-button {
	min-height: 3rem;
	font-size: 1rem;
}

.dp-product-purchase-hint {
	margin: 0;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
}

.dp-product-trust {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--dp-space-2);
	margin-block-start: var(--dp-space-5);
}

.dp-product-trust__item {
	display: flex;
	gap: var(--dp-space-3);
	align-items: center;
	padding: var(--dp-space-3);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-md);
	background: #fff;
}

.dp-product-trust__icon {
	display: grid;
	flex: 0 0 2.4rem;
	width: 2.4rem;
	height: 2.4rem;
	place-items: center;
	border-radius: 50%;
	background: var(--dp-color-accent-soft);
	color: var(--dp-color-warning);
	font-weight: 900;
}

.dp-product-trust__copy {
	display: grid;
	gap: .1rem;
}

.dp-product-trust__copy strong {
	font-size: var(--dp-text-sm);
}

.dp-product-trust__copy span {
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
}

.dp-product-content {
	padding-block: var(--dp-space-4) var(--dp-space-12);
}

.dp-product-anchor-nav {
	position: sticky;
	inset-block-start: calc(var(--dp-header-height) + .5rem);
	z-index: 20;
	display: flex;
	gap: var(--dp-space-2);
	overflow-x: auto;
	margin-block-end: var(--dp-space-5);
	padding: var(--dp-space-2);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-lg);
	background: rgb(255 255 255 / .95);
	box-shadow: var(--dp-shadow-sm);
	backdrop-filter: blur(12px);
	scrollbar-width: none;
}

.dp-product-anchor-nav::-webkit-scrollbar {
	display: none;
}

.dp-product-anchor-nav a {
	flex: 0 0 auto;
	padding: .65rem .9rem;
	border-radius: var(--dp-radius-md);
	color: var(--dp-color-muted);
	font-size: var(--dp-text-sm);
	font-weight: 750;
	text-decoration: none;
	white-space: nowrap;
}

.dp-product-anchor-nav a:first-child,
.dp-product-anchor-nav a:hover {
	background: var(--dp-color-beauty-soft);
	color: var(--dp-color-brand);
}

.dp-product-section {
	scroll-margin-top: 9rem;
	margin-block-end: var(--dp-space-5);
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-xl);
	background: #fff;
	box-shadow: var(--dp-shadow-sm);
}

.dp-product-section h2 {
	margin-block-end: var(--dp-space-4);
	color: var(--dp-color-brand);
	font-size: var(--dp-text-xl);
}

.dp-product-section p {
	color: var(--dp-color-muted);
	line-height: 2.05;
}

.dp-product-feature-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--dp-space-3);
	margin-block-start: var(--dp-space-5);
}

.dp-product-feature {
	position: relative;
	padding: var(--dp-space-4);
	padding-inline-start: 3.1rem;
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-lg);
	background: var(--dp-color-canvas);
}

.dp-product-feature::before {
	content: "✓";
	position: absolute;
	inset-block-start: var(--dp-space-4);
	inset-inline-start: var(--dp-space-4);
	display: grid;
	width: 1.65rem;
	height: 1.65rem;
	place-items: center;
	border-radius: 50%;
	background: var(--dp-color-home-soft);
	color: var(--dp-color-secondary);
	font-weight: 900;
}

.dp-product-feature strong {
	display: block;
	margin-block-end: .25rem;
	color: var(--dp-color-ink);
	font-size: var(--dp-text-sm);
}

.dp-product-feature span {
	color: var(--dp-color-muted);
	font-size: var(--dp-text-xs);
	line-height: 1.8;
}

.dp-product-specs {
	width: 100%;
	border-collapse: collapse;
}

.dp-product-specs th,
.dp-product-specs td {
	padding: .9rem 1rem;
	border-block-end: 1px solid var(--dp-color-border);
	text-align: start;
	vertical-align: top;
}

.dp-product-specs tr:last-child th,
.dp-product-specs tr:last-child td {
	border-block-end: 0;
}

.dp-product-specs th {
	width: 34%;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-sm);
	font-weight: 650;
}

.dp-product-specs td {
	color: var(--dp-color-ink);
	font-size: var(--dp-text-sm);
	font-weight: 750;
}

.dp-product-guide {
	display: grid;
	gap: var(--dp-space-4);
}

.dp-product-guide__box {
	padding: var(--dp-space-4);
	border-radius: var(--dp-radius-lg);
	background: linear-gradient(135deg, var(--dp-color-home-soft), #fff);
	border: 1px solid rgb(28 106 102 / .16);
}

.dp-product-guide__box h3 {
	margin-block-end: var(--dp-space-2);
	color: var(--dp-color-secondary-hover);
	font-size: var(--dp-text-base);
}

.dp-product-guide__box p {
	margin: 0;
	font-size: var(--dp-text-sm);
}

.dp-related {
	padding-block: var(--dp-space-4) var(--dp-space-14);
}

.dp-related__head {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dp-space-3);
	align-items: end;
	justify-content: space-between;
	margin-block-end: var(--dp-space-4);
}

.dp-related__head h2 {
	margin: 0;
	color: var(--dp-color-brand);
	font-size: var(--dp-text-2xl);
}

.dp-related__head p {
	margin: 0;
	color: var(--dp-color-muted);
	font-size: var(--dp-text-sm);
}

.dp-related-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--dp-space-4);
}

.dp-related-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--dp-color-border);
	border-radius: var(--dp-radius-xl);
	background: #fff;
	box-shadow: var(--dp-shadow-sm);
}

.dp-related-card__media {
	position: relative;
	display: grid;
	aspect-ratio: 4 / 3;
	place-items: center;
	background:
		radial-gradient(circle at 72% 18%, rgb(215 164 74 / .18), transparent 22%),
		linear-gradient(145deg, #fff, var(--dp-color-canvas));
}

.dp-related-card__media::before {
	content: "";
	width: 35%;
	height: 55%;
	border-radius: 1.6rem 1.6rem 1rem 1rem;
	background: linear-gradient(180deg, #fff 0 22%, rgb(178 82 106 / .36) 22% 100%);
	box-shadow: 0 15px 28px rgb(91 41 75 / .1);
}

.dp-related-card:nth-child(2n) .dp-related-card__media::before {
	border-radius: 1rem;
	background: linear-gradient(180deg, #fff 0 28%, rgb(28 106 102 / .3) 28% 100%);
}

.dp-related-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--dp-space-4);
}

.dp-related-card__category {
	color: var(--dp-color-secondary);
	font-size: var(--dp-text-xs);
	font-weight: 800;
}

.dp-related-card h3 {
	margin: var(--dp-space-2) 0 var(--dp-space-4);
	font-size: var(--dp-text-base);
	line-height: 1.8;
}

.dp-related-card__price {
	margin-block-start: auto;
	color: var(--dp-color-brand);
	font-weight: 900;
}

.dp-product-mobile-bar {
	position: sticky;
	inset-block-end: 0;
	z-index: 40;
	display: flex;
	gap: var(--dp-space-3);
	align-items: center;
	justify-content: space-between;
	padding: var(--dp-space-3) max(var(--dp-space-4), env(safe-area-inset-left)) calc(var(--dp-space-3) + env(safe-area-inset-bottom)) max(var(--dp-space-4), env(safe-area-inset-right));
	border-block-start: 1px solid var(--dp-color-border);
	background: rgb(255 255 255 / .97);
	box-shadow: 0 -10px 30px rgb(30 35 41 / .09);
	backdrop-filter: blur(12px);
}

.dp-product-mobile-bar__price {
	display: grid;
	gap: .1rem;
}

.dp-product-mobile-bar__price span {
	color: var(--dp-color-muted);
	font-size: .7rem;
}

.dp-product-mobile-bar__price strong {
	color: var(--dp-color-brand);
	font-size: var(--dp-text-sm);
}

.dp-product-mobile-bar .dp-button {
	flex: 0 0 auto;
	min-height: 2.8rem;
}

@media (min-width: 36rem) {
	.dp-product-trust {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.dp-product-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dp-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 62rem) {
	.dp-product-main {
		padding-block: var(--dp-space-9) var(--dp-space-12);
	}

	.dp-product-top {
		direction: ltr;
		grid-template-columns: minmax(0, 1.05fr) minmax(23rem, .95fr);
		gap: var(--dp-space-7);
	}

	.dp-product-gallery,
	.dp-product-info {
		direction: rtl;
	}

	.dp-product-info {
		position: sticky;
		top: calc(var(--dp-header-height) + 1.5rem);
	}

	.dp-product-stage {
		min-height: 34rem;
	}

	.dp-product-feature-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.dp-product-guide {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dp-related-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.dp-product-mobile-bar {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dp-product-anchor-nav {
		scroll-behavior: auto;
	}
}

/* Product reviews use WooCommerce's native moderated comments and real ratings. */
.dp-product-reviews .dp-product-reviews__intro {
 margin: 0 0 1.25rem;
 color: var(--dp-color-muted);
}
.dp-product-reviews__rating {
 display: flex;
 align-items: center;
 gap: .85rem;
 flex-wrap: wrap;
 margin-bottom: 1.5rem;
 font-weight: 750;
}
.dp-product-reviews .woocommerce-Reviews,
.dp-product-reviews #comments,
.dp-product-reviews #review_form_wrapper {
 min-width: 0;
}
.dp-product-reviews .woocommerce-Reviews-title {
 font-size: var(--dp-text-lg);
 margin: .75rem 0 1.25rem;
}
.dp-product-reviews .commentlist {
 list-style: none;
 margin: 0;
 padding: 0;
 display: grid;
 gap: 1rem;
}
.dp-product-reviews .commentlist li.review {
 list-style: none;
 margin: 0;
 padding: 1.1rem;
 background: var(--dp-color-canvas);
 border: 1px solid var(--dp-color-border);
 border-radius: var(--dp-radius-lg);
}
.dp-product-reviews .comment_container {
 display: flex;
 align-items: flex-start;
 gap: 1rem;
}
.dp-product-reviews .comment_container > img.avatar {
 width: 3rem;
 height: 3rem;
 flex: 0 0 3rem;
 border-radius: 50%;
 object-fit: cover;
}
.dp-product-reviews .comment-text {
 flex: 1;
 min-width: 0;
}
.dp-product-reviews .meta {
 margin: 0 0 .45rem;
}
.dp-product-reviews .description p {
 margin-bottom: .5rem;
}
.dp-product-reviews #review_form_wrapper {
 margin-top: 1.65rem;
 padding-top: 1.25rem;
 border-top: 1px solid var(--dp-color-border);
}
.dp-product-reviews #reply-title {
 display: block;
 font-size: var(--dp-text-lg);
 font-weight: 800;
 margin-bottom: 1rem;
}
.dp-product-reviews #review_form .comment-form {
 display: grid;
 gap: .8rem;
}
.dp-product-reviews #review_form label {
 display: block;
 margin-bottom: .35rem;
 font-weight: 700;
}
.dp-product-reviews #review_form input:not([type=submit]),
.dp-product-reviews #review_form select,
.dp-product-reviews #review_form textarea {
 display: block;
 width: 100%;
 max-width: 40rem;
 padding: .7rem .85rem;
 border: 1px solid var(--dp-color-border);
 border-radius: var(--dp-radius-md);
 background: #fff;
 color: var(--dp-color-ink);
 font: inherit;
 box-sizing: border-box;
}
.dp-product-reviews #review_form textarea {
 min-height: 8rem;
 resize: vertical;
}
.dp-product-reviews #review_form input[type=submit] {
 font: inherit;
 font-weight: 800;
 padding: .65rem 1.4rem;
 border: 0;
 border-radius: var(--dp-radius-md);
 background: var(--dp-color-brand);
 color: #fff;
 cursor: pointer;
}


/* Explicit product attribute labels and WooCommerce tags, only if configured. */
.dp-product-chip--fact {
    background: #f3eff7;
    border: 1px solid #ddd3e5;
    color: #613d70;
    font-weight: 750;
}
.dp-product-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
    margin-block-start: .75rem;
    line-height: 1.7;
}
.dp-product-tags__heading {
    color: var(--dp-color-muted);
    font-size: var(--dp-text-xs);
    font-weight: 700;
}
.dp-product-tags a {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: .23rem .65rem;
    border: 1px solid var(--dp-color-border);
    border-radius: var(--dp-radius-pill);
    background: #fff;
    color: var(--dp-color-secondary);
    font-size: var(--dp-text-xs);
    text-decoration: none;
    overflow-wrap: anywhere;
}
.dp-product-tags a:hover,
.dp-product-tags a:focus-visible {
    border-color: var(--dp-color-secondary);
    text-decoration: underline;
}
