/* ==========================================================================
   Dragon Shop — WooCommerce stylesheet (v1.3)
   Product cards, shop banner, quick view, cart/checkout — reference design.
   ========================================================================== */

/* ---------- Shop banner ---------- */
.ds-shop-banner {
	background: var(--ds-navy);
	text-align: center;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.ds-shop-banner-title {
	margin: 0 0 .4rem;
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 900;
	color: #fff;
}
.ds-shop-banner-sub { margin: 0; color: #94a3b8; font-size: 1.05rem; }

/* ---------- Shop archive / product grid ---------- */
.ds-wc-main { padding-bottom: clamp(2rem, 4vw, 3.5rem); }

.woocommerce .woocommerce-result-count {
	font-size: .95rem; font-weight: 600; color: var(--ds-navy);
	margin: 0 0 1.25rem;
}
.woocommerce .woocommerce-ordering { margin-bottom: 1.25rem; }
.woocommerce .woocommerce-ordering select {
	padding: .55rem 2rem .55rem .8rem;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-sm);
	background: #fff;
}
.woocommerce .woocommerce-products-header { display: none; } /* replaced by .ds-shop-banner */

ul.products,
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	margin: 0;
	padding: 0;
}
@media (max-width: 1023px) {
	ul.products, .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
	ul.products, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
}
@media (max-width: 480px) {
	ul.products, .woocommerce ul.products { grid-template-columns: 1fr; }
}

ul.products li.product,
.woocommerce ul.products li.product {
	position: relative;
	display: flex; flex-direction: column;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 1.1rem;
	background: #fff;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	overflow: hidden;
	text-align: center;
	transition: transform .25s ease, box-shadow .25s ease;
}
ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: var(--ds-shadow-lg);
}

/* Image */
.woocommerce ul.products li.product a img {
	width: 100%;
	margin: 0;
	aspect-ratio: 1/1;
	object-fit: contain;
	padding: 1.25rem;
	background: #fff;
}

/* "BEST SELLER" text label above the title */
.ds-best-label {
	display: block;
	margin: 1rem 0 .35rem;
	font-size: .68rem; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--ds-gray-2);
}

/* Badge on single product pages */
.ds-badge {
	display: inline-block;
	padding: .35rem .8rem;
	font-size: .68rem; font-weight: 800;
	letter-spacing: .1em; text-transform: uppercase;
	color: var(--ds-navy);
	background: var(--ds-yellow);
	border-radius: 999px;
}
.single-product .ds-badge { position: absolute; top: 16px; left: 16px; z-index: 5; }

/* Title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title {
	padding: 0 1rem;
	font-size: 1.02rem;
	font-weight: 800;
	line-height: 1.35;
	color: var(--ds-navy);
}
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--ds-blue); }

/* Star rating */
.woocommerce .star-rating {
	margin: .5rem auto 0;
	font-size: .95rem;
	color: var(--ds-star);
}
.woocommerce .star-rating span { color: var(--ds-star); }
.woocommerce .star-rating::before { color: #e2e8f0; }

/* Price */
.woocommerce ul.products li.product .price {
	display: flex; align-items: baseline; justify-content: center; gap: .55rem;
	margin: .6rem 0 0;
	font-size: 1.2rem; font-weight: 800;
	color: var(--ds-navy);
}
.woocommerce ul.products li.product .price del {
	font-size: .92rem; font-weight: 500;
	color: var(--ds-gray-2);
}
.woocommerce ul.products li.product .price ins {
	text-decoration: none;
	color: var(--ds-blue);
}

/* "Save $X" pill under the price */
.onsale.ds-save-pill {
	display: inline-flex; align-items: center;
	position: static;
	min-height: 0;
	margin: .55rem auto 0;
	padding: .3rem .85rem;
	font-size: .74rem; font-weight: 700; line-height: 1.4;
	color: var(--ds-red);
	background: #fee2e2;
	border-radius: 999px;
}
.woocommerce span.onsale { position: static; } /* loop flash removed via hooks; single uses corner */
.single-product span.onsale {
	position: absolute; top: 20px; left: 20px; z-index: 5;
	margin: 0;
	padding: .35rem .8rem;
	font-size: .72rem; font-weight: 800;
	color: #fff; background: var(--ds-red);
	border-radius: 999px;
}

/* Short description in loop */
.ds-loop-desc {
	padding: 0 1.25rem;
	margin: .7rem 0 0;
	font-size: .88rem;
	color: var(--ds-gray);
	flex: 1;
}

/* ---------- Card action row: wishlist | ADD | quick view ---------- */
.ds-card-actions {
	display: flex; align-items: center; justify-content: center;
	gap: .5rem;
	margin: 1rem 1rem 0;
}
.ds-card-actions .button,
.ds-card-actions .added_to_cart {
	flex: 1;
	display: inline-flex; align-items: center; justify-content: center;
	gap: .45rem;
	margin: 0;
	padding: .7rem 1rem;
	min-height: 46px;
	font-weight: 700; font-size: .92rem;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: #fff;
	background: var(--ds-blue);
	border-radius: var(--ds-radius-sm);
	transition: background .2s ease, transform .2s ease;
}
.ds-card-actions .button:hover {
	color: #fff;
	background: var(--ds-blue-hover);
	transform: translateY(-2px);
}
.ds-card-actions .button.added { display: none; }
.ds-card-actions .added_to_cart { background: var(--ds-success); }
.ds-card-actions .added_to_cart:hover { color: #fff; background: var(--ds-success); }
.ds-card-actions .button.loading { opacity: .7; }

.ds-wishlist-btn,
.ds-quick-view {
	flex: none;
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px;
	padding: 0;
	color: var(--ds-navy);
	background: #fff;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-sm);
	cursor: pointer;
	transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.ds-wishlist-btn:hover, .ds-quick-view:hover {
	color: var(--ds-blue);
	border-color: var(--ds-blue);
	background: var(--ds-blue-soft);
}
.ds-wishlist-btn.is-active { color: var(--ds-red); border-color: var(--ds-red); background: #fef2f2; }
.ds-quick-view span[aria-hidden] { display: none; } /* replaced by SVG below */
.ds-quick-view::before {
	content: "";
	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='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* ---------- Quick view modal ---------- */
.ds-qv-overlay {
	position: fixed; inset: 0; z-index: 200;
	display: flex; align-items: center; justify-content: center;
	padding: 1rem;
	background: rgba(15, 23, 42, .55);
	backdrop-filter: blur(3px);
}
.ds-qv-overlay[hidden] { display: none; }
.ds-qv-modal {
	position: relative;
	width: min(100%, 860px);
	max-height: 90vh;
	overflow-y: auto;
	background: #fff;
	border-radius: 18px;
	box-shadow: var(--ds-shadow-lg);
	padding: clamp(1.25rem, 3vw, 2.25rem);
}
.ds-qv-close {
	position: absolute; top: 14px; right: 14px; z-index: 2;
	width: 38px; height: 38px;
	border: 0; border-radius: 50%;
	background: #f1f5f9; color: var(--ds-navy);
	font-size: 1.35rem; line-height: 1;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}
.ds-qv-close:hover { background: var(--ds-red); color: #fff; }
.ds-qv-loading { padding: 4rem 1rem; text-align: center; color: var(--ds-gray); }

.ds-qv-layout {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: center;
}
@media (max-width: 720px) { .ds-qv-layout { grid-template-columns: 1fr; } }
.ds-qv-image img { width: 100%; border-radius: var(--ds-radius); }
.ds-qv-kicker {
	margin: 0 0 .5rem;
	font-size: .72rem; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--ds-gray-2);
}
.ds-qv-kicker a { color: inherit; }
.ds-qv-content h2 { font-size: clamp(1.4rem, 2.5vw, 1.9rem); color: var(--ds-navy); margin: 0 0 .6rem; }
.ds-qv-rating { margin-bottom: .5rem; }
.ds-qv-rating .star-rating { margin: 0; }
.ds-qv-price { font-size: 1.6rem; font-weight: 800; color: var(--ds-blue); }
.ds-qv-price del { font-size: 1.05rem; font-weight: 500; color: var(--ds-gray-2); margin-right: .5rem; }
.ds-qv-price ins { text-decoration: none; }
.ds-qv-save { margin: .5rem 0 .75rem; }
.ds-qv-save .onsale.ds-save-pill { margin: 0; }
.ds-qv-description { color: var(--ds-gray); font-size: .95rem; }
.ds-qv-points { margin: 1rem 0 1.25rem; padding: 0; list-style: none; }
.ds-qv-points li { display: flex; align-items: center; gap: .55rem; padding: .25rem 0; font-size: .95rem; font-weight: 500; }
.ds-qv-points li::before {
	content: "";
	flex: none;
	width: 18px; height: 18px;
	background: var(--ds-blue);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat;
	border-radius: 4px;
}
.ds-qv-cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.ds-qv-cart form.cart { display: flex; gap: .75rem; align-items: center; margin: 0; flex: 1; min-width: 240px; }
.ds-qv-cart .single_add_to_cart_button,
.ds-qv-cart .button {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	flex: 1;
	min-height: 52px;
	padding: .8rem 1.5rem;
	font-weight: 700; font-size: .95rem;
	text-transform: uppercase; letter-spacing: .03em;
	color: #fff;
	background: var(--ds-blue);
	border: 0; border-radius: 10px;
	cursor: pointer;
	transition: background .2s ease;
}
.ds-qv-cart .single_add_to_cart_button:hover, .ds-qv-cart .button:hover { background: var(--ds-blue-hover); color: #fff; }
.ds-qv-cart .quantity .qty { width: 78px; padding: .75rem; border: 1px solid var(--ds-line); border-radius: 10px; }
.ds-qv-buy {
	display: inline-flex; align-items: center; justify-content: center;
	flex: 1; min-width: 160px;
	min-height: 52px;
	padding: .8rem 1.5rem;
	font-weight: 700; font-size: .95rem;
	text-transform: uppercase; letter-spacing: .03em;
	color: #fff;
	background: var(--ds-navy);
	border-radius: 10px;
	transition: background .2s ease;
}
.ds-qv-buy:hover { color: #fff; background: #000; }
.ds-qv-details { display: inline-block; margin-top: 1rem; font-size: .88rem; font-weight: 600; }

/* ---------- Single product ---------- */
.woocommerce div.product { padding-top: 1rem; }
.woocommerce div.product .product_title { font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--ds-navy); }
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 1.6rem; font-weight: 800;
	color: var(--ds-blue);
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins { text-decoration: none; }
.woocommerce div.product p.price del,
.woocommerce div.product span.price del { font-size: 1.1rem; color: var(--ds-gray-2); }

.woocommerce div.product form.cart .button.single_add_to_cart_button,
.woocommerce div.product form.cart .button {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px;
	padding: .9rem 2.25rem;
	font-weight: 700; font-size: 1rem;
	color: #fff;
	background: var(--ds-blue);
	border-radius: 10px;
	transition: background .2s ease, transform .2s ease;
}
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover {
	color: #fff; background: var(--ds-blue-hover);
	transform: translateY(-2px);
}
.woocommerce .quantity .qty {
	width: 90px;
	padding: .8rem;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-sm);
}

/* Product Open Pricing (Name Your Price) field styling */
.woocommerce form.cart input[name="nyp"],
.woocommerce form.cart .nyp-input,
.woocommerce form.cart input[type="text"][id*="nyp"] {
	max-width: 200px;
	padding: .8rem 1rem;
	border: 2px solid var(--ds-blue);
	border-radius: var(--ds-radius-sm);
	font-weight: 700;
}
.woocommerce form.cart .nyp .minimum-price { font-size: .85rem; color: var(--ds-gray); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	border-bottom: 2px solid var(--ds-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--ds-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--ds-bg);
	border: 1px solid var(--ds-line);
	border-bottom: 0;
	border-radius: var(--ds-radius-sm) var(--ds-radius-sm) 0 0;
	margin: 0 4px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--ds-blue); border-color: var(--ds-blue); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: #fff; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-weight: 600; color: var(--ds-text); padding: .7rem 1.4rem; }
.woocommerce div.product .woocommerce-tabs .panel { padding: 1.5rem 0; }

/* Reviews stars in forms */
.woocommerce p.stars a { color: var(--ds-star); }
.woocommerce #review_form .submit { border-radius: 10px; background: var(--ds-blue); color: #fff; font-weight: 700; }
.woocommerce #review_form .submit:hover { background: var(--ds-blue-hover); }

/* Related / upsells */
.related.products > h2, .upsells.products > h2 {
	text-align: center;
	font-size: clamp(1.4rem, 2.5vw, 1.9rem);
	margin: 3rem 0 1.5rem;
	color: var(--ds-navy);
}

/* ---------- Cart ---------- */
.woocommerce table.shop_table {
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce table.shop_table th {
	background: var(--ds-bg);
	font-weight: 700;
	border: 0;
	color: var(--ds-navy);
}
.woocommerce table.shop_table td { border-top: 1px solid var(--ds-line); }
.woocommerce table.shop_table .product-remove a.remove { color: var(--ds-red) !important; }
.woocommerce table.shop_table .product-remove a.remove:hover { background: var(--ds-red); color: #fff !important; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 46px;
	padding: .7rem 1.5rem;
	font-weight: 700;
	color: var(--ds-navy);
	background: var(--ds-bg);
	border: 1px solid var(--ds-line);
	border-radius: 10px;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
	color: var(--ds-blue);
	background: var(--ds-blue-soft);
	border-color: var(--ds-blue);
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce button.checkout-button,
a.checkout-button {
	color: #fff;
	background: var(--ds-blue);
	border-color: var(--ds-blue);
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.woocommerce button.checkout-button:hover, a.checkout-button:hover {
	color: #fff;
	background: var(--ds-blue-hover);
	transform: translateY(-2px);
}
.woocommerce .cart-collaterals .cart_totals {
	background: var(--ds-bg);
	border: 1px solid var(--ds-line);
	padding: 1.75rem;
	border-radius: var(--ds-radius);
}
.woocommerce .cart-collaterals .cart_totals table { background: #fff; }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 1.3rem; color: var(--ds-navy); }

/* Coupon input */
.woocommerce .coupon input.input-text {
	padding: .7rem 1rem;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-sm);
}

/* ---------- Checkout (two-card layout like the reference) ---------- */
.woocommerce-checkout .ds-wc-main { padding-top: clamp(2rem, 4vw, 3rem); }
.woocommerce form.checkout .form-row input.input-text,
.woocommerce form.checkout .form-row select,
.woocommerce form.checkout .form-row textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	padding: .85rem 1rem;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-sm);
	background: #fff;
}
.woocommerce form .form-row input:focus, .woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	outline: 2px solid var(--ds-blue); outline-offset: -1px; border-color: transparent;
}
.woocommerce form.checkout h3, .woocommerce-billing-fields > h3, .woocommerce-shipping-fields > h3,
#order_review_heading { font-size: 1.35rem; color: var(--ds-navy); }
.woocommerce form.checkout .col2-set .col-1,
.woocommerce form.checkout .col2-set .col-2,
#order_review, #order_review_heading {
	background: #fff;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	box-shadow: var(--ds-shadow);
	padding: 1.75rem;
}
#order_review_heading { border-bottom: 0; border-radius: var(--ds-radius) var(--ds-radius) 0 0; margin-bottom: 0; }
#order_review { border-radius: 0 0 var(--ds-radius) var(--ds-radius); }
.woocommerce #payment {
	background: var(--ds-bg);
	border-radius: var(--ds-radius-sm);
}
.woocommerce #payment div.payment_box { background: #fff; }
.woocommerce #payment ul.payment_methods { border-bottom-color: var(--ds-line); }
.woocommerce #place_order {
	width: 100%;
	min-height: 54px;
	font-size: 1.05rem; font-weight: 800;
	text-transform: uppercase; letter-spacing: .04em;
	color: #fff;
	background: var(--ds-navy);
	border-radius: 10px;
	border: 0;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}
.woocommerce #place_order:hover { background: #000; transform: translateY(-2px); }

/* ---------- My account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0; padding: 0; list-style: none;
	display: flex; flex-direction: column; gap: .4rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: .8rem 1.1rem;
	font-weight: 600;
	color: var(--ds-navy);
	background: var(--ds-bg);
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-sm);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	color: #fff;
	background: var(--ds-blue);
	border-color: var(--ds-blue);
}
@media (min-width: 900px) {
	.woocommerce-account .woocommerce-MyAccount-navigation { width: 24%; float: left; }
	.woocommerce-account .woocommerce-MyAccount-content { width: 72%; float: right; }
}

/* ---------- Notices ---------- */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
	border-top-color: var(--ds-blue);
	background: var(--ds-blue-soft);
	border-radius: var(--ds-radius-sm);
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before { color: var(--ds-blue); }
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-error .button { min-height: 40px; padding: .4rem 1.1rem; }

/* ---------- Mini cart / widgets ---------- */
.widget_shopping_cart .mini_cart_item {
	display: flex; gap: .75rem; align-items: center;
	padding: .6rem 0;
	border-bottom: 1px solid var(--ds-line);
}
.widget_shopping_cart .mini_cart_item img { width: 48px; border-radius: var(--ds-radius-sm); }
.woocommerce-widget-layered-nav ul li a { font-weight: 500; }
.widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--ds-line); }
.widget_price_filter .ui-slider .ui-slider-handle,
.widget_price_filter .ui-slider .ui-slider-range { background: var(--ds-blue); }

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
	.woocommerce table.shop_table_responsive tr td::before { font-weight: 700; }
	.woocommerce div.product .woocommerce-tabs ul.tabs { display: grid; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 0 4px; border-radius: var(--ds-radius-sm); border: 1px solid var(--ds-line); }
	.woocommerce form.checkout .col2-set .col-1,
	.woocommerce form.checkout .col2-set .col-2,
	#order_review, #order_review_heading { padding: 1.25rem; }
}
