/* DN Mart Core - Style 1 cards/shortcodes/widgets. Uses theme variables when the
   DN Mart theme is active; fallbacks below are the same Style 1 palette. */
:root{
  --dnmart-brand:#EE6500; --dnmart-deep:#23262B; --dnmart-mint:#FF9E45;
  --dnmart-bg:#f6f4ef; --dnmart-bg2:#efece4; --dnmart-surface:#fffdf8;
  --dnmart-ink:#17302c; --dnmart-ink2:#4A423B; --dnmart-muted:#8A7F72; --dnmart-line:#ddd6c6;
  --dnmart-accent:#EE6500;
  --dnmart-shadow-sm:0 1px 2px rgba(35,38,43,.07),0 4px 14px rgba(35,38,43,.07);
  --dnmart-shadow-md:0 2px 4px rgba(35,38,43,.06),0 14px 34px rgba(35,38,43,.13);
  --dnmart-shadow-lg:0 4px 8px rgba(35,38,43,.08),0 30px 60px rgba(35,38,43,.18);
}
.dnmart-btn{display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;border-radius:999px;padding:13px 26px;font-weight:800;font-size:.95rem;background:var(--dnmart-brand);color:#fff;box-shadow:0 3px 0 var(--dnmart-deep),0 10px 22px rgba(35,38,43,.28);transition:transform .15s ease,background .15s ease;text-decoration:none}
.dnmart-btn:hover{background:var(--dnmart-mint);color:#fff;transform:translateY(-2px)}
.dnmart-hero{background:linear-gradient(180deg,var(--dnmart-bg),var(--dnmart-bg2));border-radius:24px;padding:34px;box-shadow:var(--dnmart-shadow-sm);border:1px solid var(--dnmart-line)}
.dnmart-hero__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center}
.dnmart-hero__title{font-size:clamp(1.9rem,4vw,3rem);line-height:1.1;letter-spacing:-.03em;margin:0 0 12px;color:var(--dnmart-ink)}
.dnmart-hero__sub{color:var(--dnmart-ink2);font-size:1.05rem;margin:0 0 22px}
.dnmart-hero__img{border-radius:24px;box-shadow:var(--dnmart-shadow-lg);width:100%;object-fit:cover;aspect-ratio:1}
.dnmart-cats,.dnmart-products{display:grid;gap:20px}
.dnmart-cols-1{grid-template-columns:1fr}.dnmart-cols-2{grid-template-columns:repeat(2,1fr)}.dnmart-cols-3{grid-template-columns:repeat(3,1fr)}.dnmart-cols-4{grid-template-columns:repeat(4,1fr)}
.dnmart-cat-card{background:var(--dnmart-surface);border:1px solid var(--dnmart-line);border-radius:24px;overflow:hidden;box-shadow:var(--dnmart-shadow-sm);transition:transform .2s ease,box-shadow .2s ease;display:block;color:var(--dnmart-ink);text-decoration:none}
.dnmart-cat-card:hover{transform:translateY(-6px);box-shadow:var(--dnmart-shadow-md)}
.dnmart-cat-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.dnmart-cat-card__body{display:block;padding:16px 18px}
.dnmart-cat-card__name{font-weight:900;font-size:1.05rem}
.dnmart-cat-card__count{color:var(--dnmart-muted);font-size:.88rem}
.dnmart-pcard{background:var(--dnmart-surface);border:1px solid var(--dnmart-line);border-radius:24px;overflow:hidden;box-shadow:var(--dnmart-shadow-sm);display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease;position:relative}
.dnmart-pcard:hover{transform:translateY(-7px);box-shadow:var(--dnmart-shadow-lg)}
.dnmart-pcard__thumb img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.dnmart-pcard__badge{position:absolute;top:10px;left:10px;z-index:2;background:var(--dnmart-accent);color:#23262B;font-size:.7rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.dnmart-pcard__body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:7px;flex:1}
.dnmart-pcard__cat{font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--dnmart-mint)}
.dnmart-pcard__title{font-size:1rem;line-height:1.35;margin:0}
.dnmart-pcard__title a{color:var(--dnmart-ink);text-decoration:none}
.dnmart-pcard__rating{color:var(--dnmart-accent);font-size:.88rem;font-weight:700}
.dnmart-pcard__price{margin-top:auto;font-size:1.12rem;font-weight:900;color:var(--dnmart-brand)}
.dnmart-pcard__price del{color:var(--dnmart-muted);font-weight:600;font-size:.92rem;margin-right:7px}
.dnmart-pcard__btn{margin-top:9px;justify-content:center}
.dnmart-features{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0;padding:0;list-style:none}
.dnmart-feature{background:var(--dnmart-surface);border:1px solid var(--dnmart-line);border-radius:16px;box-shadow:var(--dnmart-shadow-sm);padding:10px 15px;font-weight:700;font-size:.88rem}
.dnmart-feature b{color:var(--dnmart-brand)}
.dnmart-shipbar{background:var(--dnmart-surface);border:1px solid var(--dnmart-line);border-radius:24px;box-shadow:var(--dnmart-shadow-sm);padding:16px 20px;margin:0 0 22px}
.dnmart-shipbar__msg{margin:0 0 10px;font-weight:700}
.dnmart-shipbar__msg--ok{color:#1e7d4f}
.dnmart-shipbar__track{background:var(--dnmart-bg2);border-radius:999px;height:12px;overflow:hidden}
.dnmart-shipbar__fill{display:block;height:100%;background:linear-gradient(90deg,var(--dnmart-mint,#FF9E45),var(--dnmart-brand));border-radius:999px;transition:width .4s ease}
.dnmart-paynote{background:var(--dnmart-bg2);border:1px solid var(--dnmart-line);border-radius:24px;padding:18px 22px;margin:0 0 20px}
.dnmart-paynote h3{margin:0 0 8px}
.dnmart-paynote__promo{font-weight:800;color:var(--dnmart-brand)}
/* Shop archive grid (1.0.2): proper 4-column grid so card buttons align across a row.
   Scoped to shop / product taxonomy archives only — homepage shortcodes are untouched. */
body.woocommerce-shop ul.products,body.tax-product_cat ul.products,body.tax-product_tag ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
body.woocommerce-shop ul.products li.product,body.tax-product_cat ul.products li.product,body.tax-product_tag ul.products li.product{width:auto;float:none;margin:0;display:flex;flex-direction:column}
body.woocommerce-shop ul.products li.product .price,body.tax-product_cat ul.products li.product .price,body.tax-product_tag ul.products li.product .price{margin-top:auto}
body.woocommerce-shop ul.products::before,body.woocommerce-shop ul.products::after,body.tax-product_cat ul.products::before,body.tax-product_cat ul.products::after{content:none;display:none}
@media (max-width:1100px){body.woocommerce-shop ul.products,body.tax-product_cat ul.products,body.tax-product_tag ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){body.woocommerce-shop ul.products,body.tax-product_cat ul.products,body.tax-product_tag ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){body.woocommerce-shop ul.products,body.tax-product_cat ul.products,body.tax-product_tag ul.products{grid-template-columns:1fr}}
/* Single product (1.0.3) */
body.single-product .dnmart-breadcrumbs{margin:0 0 16px;font-size:.9rem;color:var(--dnmart-muted)}
body.single-product .dnmart-breadcrumbs a{color:var(--dnmart-brand);font-weight:700}
body.single-product .single_add_to_cart_button{background:var(--dnmart-brand)!important;color:#fff!important;border-radius:999px!important;padding:13px 30px!important;font-weight:800;box-shadow:0 3px 0 var(--dnmart-deep),0 10px 22px rgba(35,38,43,.28)}
body.single-product .single_add_to_cart_button:hover{background:var(--dnmart-mint)!important}
body.single-product form.cart .quantity .qty{border-radius:999px;border:1.5px solid var(--dnmart-line);padding:11px 8px}
body.single-product .dnmart-save-line{display:inline-block;background:#e2f4e8;color:#1e7d4f;font-weight:800;border-radius:999px;padding:5px 14px;margin:8px 0 4px;font-size:.92rem}
body.single-product .stock.in-stock{color:#1e7d4f;font-weight:800;margin:6px 0}
body.single-product .product_meta{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--dnmart-line);padding-top:14px;margin-top:16px;font-size:.92rem;color:var(--dnmart-ink2)}
body.single-product .product_meta span{display:block}
body.single-product .dnmart-buy-now{display:flex;justify-content:center;margin-top:14px;background:var(--dnmart-accent,#EE6500);color:#23262B;border-radius:999px;padding:14px 30px;font-weight:900;text-decoration:none;box-shadow:0 3px 0 #B44A00,0 10px 22px rgba(238,101,0,.3)}
body.single-product .dnmart-buy-now:hover{filter:brightness(1.05);color:#23262B}
body.single-product .dnmart-trust-lines{list-style:none;margin:14px 0 0;padding:12px 16px;background:var(--dnmart-surface);border:1px solid var(--dnmart-line);border-radius:16px;font-size:.9rem;color:var(--dnmart-ink2)}
body.single-product .dnmart-trust-lines li{margin:3px 0}
body.single-product .dnmart-trust-lines li::before{content:"✓ ";color:#1e7d4f;font-weight:900}
body.single-product #review_form #respond .form-submit input,#respond input#submit{background:var(--dnmart-brand)!important;color:#fff!important;border-radius:999px!important;padding:12px 26px!important;font-weight:800;border:0;cursor:pointer}
body.single-product .related ul.products,body.single-product .upsells ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
body.single-product .related ul.products li.product,body.single-product .upsells ul.products li.product{width:auto;float:none;margin:0;display:flex;flex-direction:column}
body.single-product .related ul.products li.product .price,body.single-product .upsells ul.products li.product .price{margin-top:auto}
body.single-product .related ul.products::before,body.single-product .related ul.products::after{content:none;display:none}
@media (max-width:1100px){body.single-product .related ul.products,body.single-product .upsells ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){body.single-product .related ul.products,body.single-product .upsells ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){body.single-product .related ul.products,body.single-product .upsells ul.products{grid-template-columns:1fr}}
/* Cart page (1.0.5) */
body.woocommerce-cart .wc-block-cart__submit-button,body.woocommerce-cart a.wc-block-components-checkout-button,body.woocommerce-cart .wc-block-components-checkout-button{background:var(--dnmart-brand)!important;color:#fff!important;border-radius:999px!important;font-weight:800;box-shadow:0 3px 0 var(--dnmart-deep),0 10px 22px rgba(35,38,43,.28)}
body.woocommerce-cart .wc-block-cart__submit-button:hover,body.woocommerce-cart .wc-block-components-checkout-button:hover{background:var(--dnmart-mint)!important}
.dnmart-continue-shopping{margin:18px 0 6px;font-weight:800}
.dnmart-continue-shopping a{color:var(--dnmart-brand)}
.dnmart-cart-interested{margin-top:26px}
.dnmart-cart-interested h2{font-size:1.5rem;letter-spacing:-.02em;margin:0 0 18px}
body.woocommerce-cart .wc-block-grid__product-onsale,body.woocommerce-cart .wc-block-components-product-sale-badge{background:var(--dnmart-accent)!important;color:#23262B!important;border:0!important;border-radius:999px!important;font-weight:900;padding:5px 12px;text-transform:uppercase;letter-spacing:.04em}
.wc-block-components-product-sale-badge{background:var(--dnmart-accent);color:#23262B;border-radius:999px;font-weight:900}
body.woocommerce-cart .dnmart-cart-interested ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
body.woocommerce-cart .dnmart-cart-interested ul.products li.product{width:auto!important;float:none;margin:0;display:flex;flex-direction:column}
body.woocommerce-cart .dnmart-cart-interested ul.products li.product .price{margin-top:auto}
body.woocommerce-cart .dnmart-cart-interested ul.products::before,body.woocommerce-cart .dnmart-cart-interested ul.products::after{content:none;display:none}
@media (max-width:1100px){body.woocommerce-cart .dnmart-cart-interested ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){body.woocommerce-cart .dnmart-cart-interested ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){body.woocommerce-cart .dnmart-cart-interested ul.products{grid-template-columns:1fr}}
/* Loop card polish (1.0.8): rating count sits BESIDE the stars (not on its own
   line below), price never wraps to two lines, images uniform squares — so
   buttons line up. Applies to shop archives, related products and the cart
   "You may be interested in" row alike. */
.woocommerce ul.products li.product .woocommerce-product-rating{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;margin:4px 0 6px}
.woocommerce ul.products li.product .star-rating{flex:0 0 auto;margin:0!important;float:none}
.dnmart-rating-count{font-weight:700;color:var(--dnmart-muted);font-size:.9rem;line-height:1}
.woocommerce ul.products li.product .price{display:flex;align-items:baseline;gap:8px;flex-wrap:nowrap;white-space:nowrap}
.woocommerce ul.products li.product .price del,.woocommerce ul.products li.product .price ins,.woocommerce ul.products li.product .price .amount{white-space:nowrap}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link img,.woocommerce ul.products li.product a.woocommerce-LoopProduct-link img{aspect-ratio:1/1;object-fit:cover;width:100%}
.dnmart-cart-interested{clear:both;width:100%}
@media (max-width:820px){.dnmart-hero__inner{grid-template-columns:1fr}.dnmart-cols-3,.dnmart-cols-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.dnmart-cols-2,.dnmart-cols-3,.dnmart-cols-4{grid-template-columns:1fr}}

/* v1.0.12: homepage product sections get the same tidy grid as Shop
   (previously no column rules applied there, so cards rendered giant).
   NOTE: these rules live in dn-mart-core.css — the file actually enqueued. */
body.home .woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
	margin: 0;
	padding: 0;
}
body.home .woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}
@media (max-width: 1100px) {
	body.home .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
	body.home .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
	body.home .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); }
}

/* v1.0.14: checkout form polish (CSS ONLY - no structural changes):
   each checkout step becomes a tidy Style 1 card with proper spacing,
   inputs get matching rounded corners. */
.wp-block-woocommerce-checkout .wc-block-components-checkout-step {
	background: #ffffff;
	border: 1px solid #E9E2D5;
	border-radius: 18px;
	padding: 22px 24px;
	margin-bottom: 18px;
	box-shadow: 0 8px 24px rgba(35, 38, 43, .05);
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading {
	margin-bottom: 14px;
}
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-text-input textarea,
.wc-block-components-address-form input[type="text"],
.wc-block-components-address-form input[type="email"],
.wc-block-components-address-form input[type="tel"] {
	border-radius: 12px !important;
	border-color: #d8dedb !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus {
	border-color: var(--dnmart-teal, #EE6500) !important;
	box-shadow: 0 0 0 3px rgba(13, 92, 80, .15);
	outline: none;
}

/* v1.0.15: (a) checkout form - clearer gaps between field rows and sections;
   (b) mini cart drawer - full Style 1 look (owner feedback: drawer looked
   plain/dry). CSS ONLY. */
/* (a) checkout gaps */
.wp-block-woocommerce-checkout .wc-block-components-checkout-step {
	padding: 26px 28px;
	margin-bottom: 22px;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading {
	margin-bottom: 18px;
}
.wp-block-woocommerce-checkout .wc-block-components-address-form {
	gap: 18px 14px;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step .wc-block-components-text-input,
.wp-block-woocommerce-checkout .wc-block-components-checkout-step .wc-block-components-country-input,
.wp-block-woocommerce-checkout .wc-block-components-checkout-step .wc-block-components-state-input {
	margin-bottom: 4px;
}
/* (b) mini cart drawer */
.dnmart-cart-drawer__panel { padding: 26px 24px; }
.dnmart-cart-drawer__panel h2 {
	font-size: 1.35rem;
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid #E9E2D5;
	color: var(--dnmart-teal-dark, #23262B);
}
.dnmart-cart-drawer__close {
	width: 38px; height: 38px;
	border-radius: 50%;
	background: #f1efe9;
	display: flex; align-items: center; justify-content: center;
	top: 16px; right: 16px;
	font-size: 1.4rem;
}
.dnmart-cart-drawer ul.woocommerce-mini-cart { list-style: none; margin: 0 0 6px; padding: 0; }
.dnmart-cart-drawer .woocommerce-mini-cart-item {
	display: flex; align-items: flex-start; gap: 10px;
	background: #fff;
	border: 1px solid #E9E2D5;
	border-radius: 18px;
	padding: 14px;
	margin: 0 0 12px;
	box-shadow: 0 6px 18px rgba(35, 38, 43, .05);
}
.dnmart-cart-drawer .woocommerce-mini-cart-item .remove {
	flex: none;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: #fdecec;
	color: #c0392b !important;
	display: flex; align-items: center; justify-content: center;
	font-size: 16px; line-height: 1;
	text-decoration: none;
	margin-top: 2px;
}
.dnmart-cart-drawer .woocommerce-mini-cart-item > a:not(.remove) {
	display: flex; gap: 12px; align-items: center;
	flex: 1;
	font-weight: 700;
	font-size: .95rem;
	line-height: 1.35;
	color: var(--dnmart-teal-dark, #23262B);
	text-decoration: none;
}
.dnmart-cart-drawer .woocommerce-mini-cart-item img {
	width: 64px; height: 64px;
	object-fit: cover;
	border-radius: 14px;
	flex: none;
}
.dnmart-cart-drawer .woocommerce-mini-cart-item .quantity {
	font-weight: 700;
	color: var(--dnmart-teal, #EE6500);
	white-space: nowrap;
	margin-top: 8px;
	font-size: .92rem;
}
.dnmart-cart-drawer .woocommerce-mini-cart__total {
	display: flex; justify-content: space-between; align-items: center;
	border-top: 1px solid #E9E2D5;
	padding-top: 14px;
	margin: 6px 0 12px;
	font-size: 1.05rem;
}
.dnmart-cart-drawer .woocommerce-mini-cart__total strong { color: #6B6259; font-weight: 600; }
.dnmart-cart-drawer .woocommerce-mini-cart__total .amount { color: var(--dnmart-teal, #EE6500); font-weight: 800; }
.dnmart-cart-drawer .dnmart-ship-note {
	background: #fdf6e9;
	border: 1px solid #f0dfba;
	color: #7a5410;
	border-radius: 14px;
	padding: 10px 14px;
	font-weight: 700;
	text-align: center;
	margin: 0 0 14px;
}
.dnmart-cart-drawer .dnmart-ship-note--ok { background: #e9f7ef; border-color: #bfe6cf; color: #1e7d4f; }
.dnmart-cart-drawer .woocommerce-mini-cart__buttons { display: grid; gap: 10px; margin: 0; }
.dnmart-cart-drawer .woocommerce-mini-cart__buttons .button {
	display: block;
	text-align: center;
	border-radius: 999px !important;
	padding: 13px 18px;
	font-weight: 700;
	text-decoration: none;
	background: #ffffff !important;
	color: var(--dnmart-teal, #EE6500) !important;
	border: 2px solid var(--dnmart-teal, #EE6500);
}
.dnmart-cart-drawer .woocommerce-mini-cart__buttons .button.checkout {
	order: -1;
	background: var(--dnmart-teal, #EE6500) !important;
	color: #ffffff !important;
	box-shadow: 0 10px 22px rgba(13, 92, 80, .25);
}
.dnmart-cart-drawer .woocommerce-mini-cart__empty-message { text-align: center; color: #6B6259; padding: 18px 0; }

/* v1.0.16: Place Order button in Style 1 teal (CSS ONLY - this rule was not
   the cause of the 1.0.13 breakage; the render_block injection was). */
.wc-block-components-checkout-place-order-button {
	background: var(--dnmart-teal, #EE6500) !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: #fff !important;
	font-weight: 700;
	box-shadow: 0 10px 22px rgba(13, 92, 80, .28);
}
.wc-block-components-checkout-place-order-button:hover {
	background: var(--dnmart-teal-dark, #23262B) !important;
}

/* v1.1.2: centre the Cart and Checkout pages (owner feedback: content sat to
   the left with the right side empty). Narrows ONLY the main content column
   on those two pages to 1024px, centred - header/footer keep full width.
   CSS ONLY. */
body.woocommerce-cart main .dnmart-container,
body.woocommerce-checkout main .dnmart-container {
	max-width: 1024px;
}

/* v1.1.3: centre the content/essential pages too (About, Contact, FAQ,
   Shipping & Returns, Privacy, Terms, Track Order, My Account): same 1024px
   centred column as Cart/Checkout. Homepage is excluded. CSS ONLY. */
body.page:not(.home) main .dnmart-container {
	max-width: 1024px;
}

/* v1.1.4: MOBILE HARDENING (owner: "mobile me scroll bar aa ri ha, koi
   responsiveness ni ha"). Forensic audit found the sticky header row is the
   horizontal-overflow culprit on every page (~356px min content vs 350px
   container at 390px, 320px at 360px) plus several too-big mobile layouts.
   CSS ONLY - desktop untouched. */

/* Hard guard: nothing may widen the page on small screens. */
@media (max-width: 860px) {
	html, body { overflow-x: clip; }
	img, iframe, video, table { max-width: 100%; }
	.dnmart-prose, .entry-content, .dnmart-page__body { overflow-wrap: break-word; }
	.dnmart-container { padding-left: 14px; padding-right: 14px; }

	/* Header: reclaim the ~36px - smaller toggle, logo and cart button,
	   tighter gaps, nothing allowed to force the row wider than the screen. */
	.dnmart-header__inner { gap: 10px !important; flex-wrap: nowrap; }
	.dnmart-nav-toggle { width: 40px; height: 40px; flex: 0 0 auto; }
	.dnmart-branding { min-width: 0; flex: 0 1 auto; }
	.dnmart-logo { gap: 8px; min-width: 0; }
	.dnmart-logo__mark { width: 34px; height: 34px; border-radius: 10px; flex: 0 0 auto; }
	.dnmart-logo__text { font-size: 1.05rem; }
	.dnmart-header__actions { gap: 8px; margin-left: auto; flex: 0 0 auto; }
	.dnmart-cart-toggle { padding: 8px 11px; gap: 5px; font-size: .9rem; }
	.dnmart-topbar__inner { justify-content: center; text-align: center; font-size: .78rem; gap: 2px 12px; }
	.dnmart-nav .dnmart-menu a { padding: 12px 14px; }

	/* Hero + sections: calmer spacing and type on phones. */
	.dnmart-hero { padding: 30px 0 12px; }
	.dnmart-hero__title { font-size: 1.9rem; }
	.dnmart-hero__sub { font-size: 1rem; }
	.dnmart-section { padding-top: 28px; }
	.dnmart-section__title, .dnmart-page__title { font-size: 1.4rem; }
	.site-main { padding: 18px 0 40px; }
}

/* Phones: product grids go 2-across (the old 1-column made giant cards and
   endless pages); cards, prices and buttons sized for the narrow column. */
@media (max-width: 640px) {
	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products,
	body.single-product .related ul.products,
	body.single-product .upsells ul.products,
	body.woocommerce-cart .dnmart-cart-interested ul.products,
	body.home .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 12px;
	}
	.dnmart-cats.dnmart-cols-3, .dnmart-cats.dnmart-cols-2,
	.dnmart-products.dnmart-cols-3, .dnmart-products.dnmart-cols-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .86rem; line-height: 1.3; }
	.woocommerce ul.products li.product .price {
		flex-wrap: wrap; white-space: normal; gap: 0 6px; font-size: .95rem;
	}
	.woocommerce ul.products li.product .button {
		width: 100%; justify-content: center; padding: 9px 8px; font-size: .8rem;
	}
	.woocommerce ul.products li.product .onsale {
		font-size: .68rem; padding: 3px 8px; min-height: 0; min-width: 0; line-height: 1.5;
	}
	.dnmart-pcard__body, .dnmart-cat-card__body { padding: 11px 12px 14px; }
	.dnmart-pcard__title, .dnmart-cat-card__name { font-size: .9rem; }
	.dnmart-feature { flex: 1 1 calc(50% - 10px); justify-content: center; text-align: center; }

	/* Single product: comfortable buy row. */
	body.single-product div.product form.cart { flex-wrap: wrap; }
	body.single-product .dnmart-buy-now { width: 100%; text-align: center; justify-content: center; }

	/* Cart/Checkout blocks: less padding, full-width main buttons. */
	.wp-block-woocommerce-checkout .wc-block-components-checkout-step { padding: 18px 16px; }
	.wc-block-components-checkout-place-order-button { width: 100%; }
	.dnmart-shipbar, .dnmart-paynote { padding: 14px 16px; }

	/* Forms (incl. Contact Form 7 + order tracking): full-width fields. */
	.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea { width: 100%; }
	.woocommerce-form-track-order input, form.track_order input { width: 100%; }
	input, select, textarea { max-width: 100%; }
}

/* ================================================================
   v1.2.0: "Shopify look" homepage + mobile cards fix.
   Owner: mobile cards looked bad as a cramped 2-column grid; homepage
   should feel like a polished Shopify store. Backup of the previous
   design (Core 1.1.4) is kept in dn-mart-build/backups/.
   ================================================================ */

/* --- Homepage: clean Shopify-style presentation (brand colours kept) --- */
body.home { background: #ffffff; }
body.home .site-main { padding-bottom: 0; }
body.home .dnmart-section { padding: 56px 0 10px; }
body.home .dnmart-section__title {
	font-size: 1.9rem; font-weight: 800; letter-spacing: -.02em;
	margin-bottom: 26px; color: var(--dnmart-teal-dark, #23262B);
}
body.home .dnmart-section--alt {
	background: #f6f4ef; border-radius: 0; margin: 56px 0 0; padding-bottom: 48px;
}
body.home .dnmart-hero { padding: 64px 0 46px; }
body.home .dnmart-hero__title { letter-spacing: -.03em; }
body.home .dnmart-hero .dnmart-btn { padding: 15px 34px; font-size: 1rem; }
/* Minimal cards: thin border, no heavy shadow, gentle image zoom. */
body.home .woocommerce ul.products li.product,
body.home .dnmart-cat-card {
	border: 1px solid #e7e4dc; box-shadow: none; background: #fff;
}
body.home .woocommerce ul.products li.product { overflow: hidden; }
body.home .woocommerce ul.products li.product img { transition: transform .45s ease; }
body.home .woocommerce ul.products li.product:hover img { transform: scale(1.05); }
body.home .woocommerce ul.products li.product:hover,
body.home .dnmart-cat-card:hover { box-shadow: 0 14px 34px rgba(35, 38, 43, .10); }
body.home .woocommerce ul.products li.product .price { color: var(--dnmart-teal-dark, #23262B); }
body.home .dnmart-cat-card { box-shadow: none; }

/* --- Injected homepage sections (promo / testimonials / newsletter) --- */
.dnmart-promo { padding: 18px 0 6px; background: #fff; }
.dnmart-promo__card {
	background: linear-gradient(120deg, #23262B, #EE6500);
	color: #eafaf3; border-radius: 28px; padding: 38px 42px;
	display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
	box-shadow: 0 24px 48px rgba(35, 38, 43, .22);
}
.dnmart-promo__text { flex: 1 1 340px; }
.dnmart-promo__text h2 { margin: 0 0 8px; font-size: 1.8rem; letter-spacing: -.02em; color: #fff; }
.dnmart-promo__text p { margin: 0; color: #FFE7CC; max-width: 56ch; }
.dnmart-promo__btn {
	background: #EE6500; color: #23262B; font-weight: 800; border-radius: 999px;
	padding: 14px 30px; text-decoration: none; box-shadow: 0 3px 0 #B44A00;
	white-space: nowrap;
}
.dnmart-promo__btn:hover { background: #FF8A2A; color: #23262B; }
.dnmart-loved { padding: 56px 0 10px; background: #fff; }
.dnmart-loved__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.dnmart-loved__card {
	margin: 0; background: #fbfaf6; border: 1px solid #e7e4dc; border-radius: 24px;
	padding: 26px 26px 22px;
}
.dnmart-loved__stars { color: #EE6500; letter-spacing: 3px; margin-bottom: 10px; }
.dnmart-loved__card blockquote { margin: 0 0 14px; font-size: 1.02rem; line-height: 1.6; color: #24382f; }
.dnmart-loved__card figcaption { font-weight: 700; color: #6B6259; font-size: .92rem; }
.dnmart-news { padding: 56px 0 64px; background: #fff; }
.dnmart-news__card {
	background: #f6f4ef; border: 1px solid #e7e4dc; border-radius: 28px;
	padding: 42px; text-align: center;
}
.dnmart-news__card h2 { margin: 0 0 8px; font-size: 1.7rem; letter-spacing: -.02em; }
.dnmart-news__card p { margin: 0 auto 20px; color: #6B6259; max-width: 52ch; }
.dnmart-news__form { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.dnmart-news__form input[type="email"] {
	width: min(360px, 100%); border-radius: 999px; padding: 13px 20px;
	border: 1.5px solid #ddd6c6; font: inherit; background: #fff;
}
.dnmart-news__form button {
	border: 0; cursor: pointer; border-radius: 999px; padding: 13px 28px;
	background: var(--dnmart-teal, #EE6500); color: #fff; font-weight: 800; font: inherit;
}
.dnmart-news__thanks { font-weight: 800; color: var(--dnmart-teal, #EE6500); }

/* --- Mobile cards: carousel for showcase lists, tidy single column on Shop.
   Overrides the 1.1.4 two-column rules below 640px. --- */
@media (max-width: 640px) {
	/* Showcase lists become swipe carousels (scroll-snap, no page overflow). */
	body.home .woocommerce ul.products,
	body.single-product .related ul.products,
	body.single-product .upsells ul.products,
	body.woocommerce-cart .dnmart-cart-interested ul.products {
		display: flex !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 14px;
		padding-bottom: 12px;
		scrollbar-width: none;
	}
	body.home .woocommerce ul.products::-webkit-scrollbar,
	body.single-product .related ul.products::-webkit-scrollbar,
	body.single-product .upsells ul.products::-webkit-scrollbar,
	body.woocommerce-cart .dnmart-cart-interested ul.products::-webkit-scrollbar { display: none; }
	body.home .woocommerce ul.products li.product,
	body.single-product .related ul.products li.product,
	body.single-product .upsells ul.products li.product,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product {
		flex: 0 0 72%;
		width: 72%;
		scroll-snap-align: start;
		margin: 0;
	}
	body.home .woocommerce ul.products li.product .button { width: auto; }

	/* Shop archives: single column, but compact and tidy (not giant). */
	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 16px;
	}
	body.woocommerce-shop ul.products li.product a img,
	body.tax-product_cat ul.products li.product a img,
	body.tax-product_tag ul.products li.product a img {
		aspect-ratio: 4 / 3; object-fit: cover; width: 100%;
	}
	body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
	body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
	body.tax-product_tag ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; }
	body.woocommerce-shop ul.products li.product .button,
	body.tax-product_cat ul.products li.product .button,
	body.tax-product_tag ul.products li.product .button { width: auto; padding: 11px 22px; font-size: .9rem; }

	/* Injected sections stack on phones. */
	.dnmart-promo__card { padding: 28px 22px; text-align: center; justify-content: center; }
	.dnmart-promo__text h2 { font-size: 1.45rem; }
	.dnmart-loved__grid { grid-template-columns: 1fr; }
	.dnmart-news__card { padding: 30px 20px; }
	body.home .dnmart-section { padding-top: 38px; }
	body.home .dnmart-section__title { font-size: 1.45rem; }
	body.home .dnmart-hero { padding: 38px 0 26px; }
}

/* === My Account (1.2.2) — Style 1 teal pill buttons on account pages === */
body.woocommerce-account .woocommerce-MyAccount-content .button,
body.woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
body.woocommerce-account .woocommerce-form-login .button,
body.woocommerce-account .woocommerce-form-register .button,
body.woocommerce-account .lost_reset_password .button {
	background: var(--dnmart-teal, #EE6500);
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 11px 24px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: opacity .15s ease;
}
body.woocommerce-account .woocommerce-MyAccount-content .button:hover,
body.woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover,
body.woocommerce-account .woocommerce-form-login .button:hover,
body.woocommerce-account .woocommerce-form-register .button:hover,
body.woocommerce-account .lost_reset_password .button:hover {
	opacity: .88;
	color: #fff;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	font-weight: 700;
}

/* v1.2.5: mobile layout repair round 2 (deep audit of the LIVE cascade).
   - v1.2.0 desktop spacing was overriding the v1.1.4 mobile spacing on the
     homepage (hero ~110px whitespace, every section 56px top on phones).
   - WooCommerce core floats the single-product gallery/summary and the
     My Account nav/content side-by-side with no phone stacking - both
     squeezed badly at 390px. Stack them.
   - Testimonials kept 3 squeezed columns at 641-860px. Stack them.
   CSS ONLY, all inside one max-width media query; desktop untouched. */
@media (max-width: 860px) {
	body.home .dnmart-hero { padding: 30px 0 12px; }
	body.home .dnmart-section { padding: 28px 0 10px; }
	body.home .dnmart-section--alt { margin: 28px 0 0; padding-bottom: 28px; }
	.dnmart-loved { padding: 28px 0 10px; }
	.dnmart-news { padding: 28px 0 32px; }
	.dnmart-loved__grid { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }

	.woocommerce div.product div.images,
	.woocommerce div.product div.summary { float: none; width: 100%; }
	.woocommerce div.product div.images { margin-bottom: 20px; }

	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
	.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 18px; }
}

/* v1.2.6: owner phone feedback — (1) homepage products looked LEFT-shifted:
   centre the showcase carousel cards (snap to centre, balanced side room,
   centred card text). (2) Shop page still showed a sideways scrollbar on
   phones: stack the toolbar full-width, cap every shop element at the
   viewport width, clip any residual overflow on archive pages.
   CSS ONLY, phone widths; desktop untouched. */
@media (max-width: 640px) {
	body.home .woocommerce ul.products,
	body.single-product .related ul.products,
	body.single-product .upsells ul.products,
	body.woocommerce-cart .dnmart-cart-interested ul.products {
		padding-inline: 14%;
		scroll-padding-inline: 14%;
	}
	body.home .woocommerce ul.products li.product,
	body.single-product .related ul.products li.product,
	body.single-product .upsells ul.products li.product,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product {
		scroll-snap-align: center;
		text-align: center;
	}
	body.home .woocommerce ul.products li.product .star-rating,
	body.single-product .related ul.products li.product .star-rating,
	body.single-product .upsells ul.products li.product .star-rating,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product .star-rating { margin-inline: auto; }
	body.home .woocommerce ul.products li.product .dnmart-price-row,
	body.single-product .related ul.products li.product .dnmart-price-row,
	body.single-product .upsells ul.products li.product .dnmart-price-row,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product .dnmart-price-row { justify-content: center; }
}

@media (max-width: 860px) {
	body.woocommerce-shop main,
	body.tax-product_cat main,
	body.tax-product_tag main { overflow-x: clip; }

	body.woocommerce-shop .woocommerce-ordering,
	body.tax-product_cat .woocommerce-ordering,
	body.tax-product_tag .woocommerce-ordering { float: none; margin: 0 0 14px; }
	body.woocommerce-shop .woocommerce-ordering select,
	body.tax-product_cat .woocommerce-ordering select,
	body.tax-product_tag .woocommerce-ordering select { width: 100%; max-width: 100%; }
	body.woocommerce-shop .woocommerce-result-count,
	body.tax-product_cat .woocommerce-result-count,
	body.tax-product_tag .woocommerce-result-count { float: none; display: block; margin: 0 0 8px; }

	body.woocommerce-shop .dnmart-sidebar .widget,
	body.tax-product_cat .dnmart-sidebar .widget,
	body.tax-product_tag .dnmart-sidebar .widget { max-width: 100%; overflow: hidden; }
	body.woocommerce-shop .dnmart-sidebar img,
	body.woocommerce-shop .dnmart-sidebar input,
	body.woocommerce-shop .dnmart-sidebar select,
	body.tax-product_cat .dnmart-sidebar img,
	body.tax-product_cat .dnmart-sidebar input,
	body.tax-product_cat .dnmart-sidebar select { max-width: 100%; }

	body.woocommerce-shop ul.products li.product,
	body.tax-product_cat ul.products li.product,
	body.tax-product_tag ul.products li.product { min-width: 0; max-width: 100%; }
}

/* v1.2.7: owner verdict — the phone carousel cards look structure-less and
   only ~half the screen (the 1.2.6 centring padding shrank the flex basis).
   Carousel REMOVED on phones: showcase lists become a structured
   SINGLE-COLUMN stack of full-width cards (owner's own first suggestion),
   same tidy structure as desktop cards. Shop: force the archive grid to a
   true single column (kill any floated/half-width card rules) and use
   overflow-x:hidden alongside clip (older phone browsers ignore clip,
   which is why the sideways scroll kept coming back).
   CSS ONLY, phone widths; desktop untouched. */
@media (max-width: 860px) {
	html, body { overflow-x: hidden; overflow-x: clip; }
}

@media (max-width: 640px) {
	body.home .woocommerce ul.products,
	body.single-product .related ul.products,
	body.single-product .upsells ul.products,
	body.woocommerce-cart .dnmart-cart-interested ul.products {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
		overflow-x: visible;
		padding-inline: 0;
		scroll-padding-inline: 0;
	}
	body.home .woocommerce ul.products li.product,
	body.single-product .related ul.products li.product,
	body.single-product .upsells ul.products li.product,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product {
		flex: none;
		width: auto;
		max-width: 100%;
		margin: 0;
		text-align: left;
	}
	body.home .woocommerce ul.products li.product .star-rating,
	body.single-product .related ul.products li.product .star-rating,
	body.single-product .upsells ul.products li.product .star-rating,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product .star-rating { margin-inline: 0; }
	body.home .woocommerce ul.products li.product .dnmart-price-row,
	body.single-product .related ul.products li.product .dnmart-price-row,
	body.single-product .upsells ul.products li.product .dnmart-price-row,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product .dnmart-price-row { justify-content: flex-start; }
	body.home .woocommerce ul.products li.product a img,
	body.single-product .related ul.products li.product a img,
	body.single-product .upsells ul.products li.product a img,
	body.woocommerce-cart .dnmart-cart-interested ul.products li.product a img {
		aspect-ratio: 4 / 3; object-fit: cover; width: 100%;
	}

	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
	}
	body.woocommerce-shop ul.products li.product,
	body.tax-product_cat ul.products li.product,
	body.tax-product_tag ul.products li.product {
		float: none !important;
		width: auto !important;
		margin: 0 !important;
		clear: none;
	}
}

/* v1.2.8: owner phone VIDEO evidence — on their ~360px phone the whole
   page sits ~10-16px too wide and pans right (Shop title, cards and
   footer text clipped at the left edge), while 412px renders are fine.
   The header row is the only in-flow element whose minimum width is that
   close to the limit (toggle + logo + wordmark + cart pill + gaps), so
   any slightly narrower phone or larger system font size pushes it over
   and the whole page becomes sideways-scrollable. Fix: make the header
   genuinely compressible on small phones (tighter gaps, smaller
   wordmark, and under 480px the cart button drops its "Cart" word —
   icon + count badge remain). Also clip the fixed cart drawer so its
   slid-away panel can never add page width, and guard the shop grid
   against min-content blowout. CSS ONLY; desktop untouched. */
.dnmart-cart-drawer { overflow: hidden; }

@media (max-width: 860px) {
	.dnmart-layout > *, .dnmart-shop, .site-main { min-width: 0; }
}

@media (max-width: 640px) {
	.dnmart-header__inner { gap: 10px; }
	.dnmart-logo { gap: 8px; }
	.dnmart-logo__text { font-size: 1rem; }
	.dnmart-header__actions { gap: 8px; }
	.dnmart-cart-toggle { padding: 8px 12px; gap: 6px; }
}

@media (max-width: 480px) {
	.dnmart-cart-toggle span:nth-of-type(2) { display: none; }
	.dnmart-logo__text { font-size: .95rem; }
	.dnmart-nav-toggle { width: 38px; height: 38px; }
}

/* === v1.3.0: marquee bar, welcome popup, card second view ===
   Owner asked for three things seen on a reference store: a scrolling
   announcement bar like a news headline, a welcome discount popup on
   load, and product images that change on cards. */

/* Marquee replaces the static topbar (only when JS placed it). */
body.dnmart-has-marquee .dnmart-topbar { display: none; }
.dnmart-marquee {
	background: #EE6500;
	color: #23262B;
	overflow: hidden;
	padding: 8px 0;
	font-size: .85rem;
	font-weight: 700;
	white-space: nowrap;
}
.dnmart-marquee__track {
	display: inline-flex;
	width: max-content;
	animation: dnmart-marquee-scroll 28s linear infinite;
}
.dnmart-marquee:hover .dnmart-marquee__track { animation-play-state: paused; }
.dnmart-marquee__chunk { padding-right: 8px; }
@keyframes dnmart-marquee-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.dnmart-marquee__track { animation: none; }
}

/* Welcome popup */
.dnmart-pop {
	position: fixed;
	inset: 0;
	z-index: 300;
	display: grid;
	place-items: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s;
}
.dnmart-pop.is-show { opacity: 1; visibility: visible; }
.dnmart-pop__scrim { position: absolute; inset: 0; background: rgba(35, 38, 43, .55); }
.dnmart-pop__card {
	position: relative;
	background: var(--dnmart-surface, #fff);
	border-radius: 24px;
	box-shadow: var(--dnmart-shadow-lg, 0 24px 60px rgba(35, 38, 43, .25));
	width: calc(100% - 40px);
	max-width: 420px;
	padding: 30px 26px 24px;
	text-align: center;
	transform: translateY(14px) scale(.97);
	transition: transform .3s ease;
}
.dnmart-pop.is-show .dnmart-pop__card { transform: none; }
.dnmart-pop__x {
	position: absolute;
	top: 8px;
	right: 14px;
	background: none;
	border: 0;
	font-size: 1.8rem;
	line-height: 1;
	color: #6B6259;
	cursor: pointer;
}
.dnmart-pop__badge {
	display: inline-block;
	background: #fdf3e0;
	color: #8a5a00;
	border-radius: 999px;
	padding: 6px 14px;
	font-weight: 800;
	font-size: .82rem;
	margin: 0 0 12px;
}
.dnmart-pop__title { font-size: 1.55rem; margin: 0 0 8px; color: var(--dnmart-teal-dark, #23262B); }
.dnmart-pop__text { color: #4A423B; margin: 0 0 16px; }
.dnmart-pop__code {
	display: block;
	width: 100%;
	background: var(--dnmart-bg, #f6f4ef);
	border: 2px dashed var(--dnmart-teal, #EE6500);
	border-radius: 16px;
	padding: 12px;
	cursor: pointer;
	font: inherit;
}
.dnmart-pop__code strong { font-size: 1.35rem; letter-spacing: .12em; color: var(--dnmart-teal, #EE6500); display: block; }
.dnmart-pop__code small { color: #6B6259; font-weight: 700; }
.dnmart-pop__feedback { min-height: 1.3em; margin: 8px 0 4px; color: var(--dnmart-teal, #EE6500); font-weight: 800; }
.dnmart-pop__cta {
	display: block;
	background: var(--dnmart-teal, #EE6500);
	color: #fff;
	border-radius: 999px;
	padding: 13px;
	font-weight: 800;
	text-decoration: none;
	margin-top: 6px;
}
.dnmart-pop__fine { margin: 12px 0 0; font-size: .85rem; color: #6B6259; }
body.dnmart-pop-open { overflow: hidden; }

/* Card second view (detail zoom crossfade) */
.woocommerce ul.products li.product a.woocommerce-loop-product__link.dnmart-hasalt,
.dnmart-pcard__thumb.dnmart-hasalt { position: relative; overflow: hidden; }
.dnmart-altview {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .45s ease;
	pointer-events: none;
	z-index: 2;
}
.dnmart-altview img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	margin: 0 !important;
}
.woocommerce ul.products li.product:hover .dnmart-altview,
.woocommerce ul.products li.product:focus-within .dnmart-altview,
.woocommerce ul.products li.product.dnmart-alt-on .dnmart-altview,
.dnmart-pcard:hover .dnmart-altview,
.dnmart-pcard.dnmart-alt-on .dnmart-altview { opacity: 1; }
.woocommerce ul.products li.product .onsale { z-index: 4; }
.dnmart-dots {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 10px;
	display: flex;
	gap: 6px;
	z-index: 3;
	pointer-events: none;
}
.dnmart-dots i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(35, 38, 43, .28);
	transition: background .3s;
}
.dnmart-dots i.on { background: var(--dnmart-teal, #EE6500); }

/* v1.3.1: make the popup close button unmistakable — a proper circular
   button (during 1.3.0 verification the plain grey × was too faint to
   spot at the card's top-right corner). CSS ONLY. */
.dnmart-pop__x {
	top: 10px;
	right: 10px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #efece4;
	color: var(--dnmart-teal-dark, #23262B);
	font-size: 1.35rem;
	font-weight: 800;
	display: grid;
	place-items: center;
	z-index: 5;
	box-shadow: 0 2px 8px rgba(35, 38, 43, .18);
}
.dnmart-pop__x:hover { background: #e3ded0; }

/* === v1.4.0: homepage hero slider (auto, under the navbar) === */
.dnmart-hslider {
	position: relative;
	border-radius: 24px;
	overflow: hidden;
	margin: 18px 0 4px;
	box-shadow: var(--dnmart-shadow-md, 0 14px 34px rgba(35, 38, 43, .16));
	background: var(--dnmart-teal-dark, #23262B);
}
.dnmart-hslider__slides { position: relative; aspect-ratio: 21 / 9; }
.dnmart-hslider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .7s ease;
	pointer-events: none;
	display: block;
}
.dnmart-hslider__slide.is-active { opacity: 1; pointer-events: auto; z-index: 1; }
.dnmart-hslider__img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	margin: 0 !important;
}
.dnmart-hslider__slide.is-active .dnmart-hslider__img { animation: dnmart-hslider-zoom 3.4s ease forwards; }
@keyframes dnmart-hslider-zoom {
	from { transform: scale(1); }
	to { transform: scale(1.06); }
}
.dnmart-hslider__slide::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(78deg, rgba(35, 38, 43, .82) 0%, rgba(35, 38, 43, .35) 46%, rgba(35, 38, 43, 0) 72%);
}
.dnmart-hslider__cap {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 2;
	padding: 22px 26px;
	display: flex;
	flex-direction: column;
	gap: 5px;
	max-width: 640px;
}
.dnmart-hslider__cat {
	color: #FFC38F;
	font-weight: 800;
	font-size: .78rem;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.dnmart-hslider__name {
	color: #fff;
	font-size: 1.65rem;
	font-weight: 800;
	line-height: 1.15;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.dnmart-hslider__row { display: flex; align-items: center; gap: 14px; margin-top: 4px; flex-wrap: wrap; }
.dnmart-hslider__price { color: #fff; font-size: 1.15rem; font-weight: 800; }
.dnmart-hslider__price del { color: rgba(255, 255, 255, .65); font-weight: 600; font-size: .95rem; }
.dnmart-hslider__price ins { text-decoration: none; }
.dnmart-hslider__btn {
	background: var(--dnmart-accent, #EE6500);
	color: #23262B;
	border-radius: 999px;
	padding: 9px 18px;
	font-weight: 800;
	font-size: .92rem;
}
.dnmart-hslider__dots {
	position: absolute;
	right: 16px;
	bottom: 14px;
	z-index: 3;
	display: flex;
	gap: 7px;
}
.dnmart-hslider__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	background: rgba(255, 255, 255, .45);
	cursor: pointer;
	padding: 0;
}
.dnmart-hslider__dot.is-active { background: #fff; }
@media (max-width: 640px) {
	.dnmart-hslider__slides { aspect-ratio: 4 / 3; }
	.dnmart-hslider__cap { padding: 16px 18px; }
	.dnmart-hslider__name { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	.dnmart-hslider__slide.is-active .dnmart-hslider__img { animation: none; }
}

/* v1.4.2: the card second view now uses the product's REAL gallery
   photo (no fabricated zoom clone of the main photo) and its layer is
   positioned by JS exactly over the main photo's box, dots included.
   Cards of products without a gallery image get no second view at all. */

/* v1.4.3: the card second-view layer is now rendered by PHP directly
   into the card (only when the product has a real gallery photo); the
   1.4.2 footer data-map approach failed live and was removed. The
   existing .dnmart-altview / .dnmart-dots rules above still apply. */

/* === v1.4.4: in-hero photo rotator ===
   The existing hero media box crossfades product photos in place.
   The original hero image stays in flow (it defines the box height);
   added slides sit absolutely over the same box. Hero text, buttons
   and the floating badges are untouched; badges stay on top. */
.dnmart-hero__slide { opacity: 0; transition: opacity .8s ease; }
.dnmart-hero__slide.is-active { opacity: 1; }
.dnmart-hero__slide--abs {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 28px;
	z-index: 1;
}
.dnmart-hero__float { z-index: 3; }
@media (prefers-reduced-motion: reduce) {
	.dnmart-hero__slide { transition: none; }
}

/* === v1.4.5: designed hero banners ===
   The hero media box now rotates designed banner slides (curated
   brand scene photo + real HTML headline + CTA chip), modelled on the
   reference store's homepage hero. The theme hero image remains in
   flow as an invisible height anchor; hero text/buttons/badges are
   untouched (badges keep z-index 3 from v1.4.4, above the slides). */
.dnmart-hero__anchor { visibility: hidden; }
.dnmart-hbanner {
	position: absolute;
	inset: 0;
	border-radius: 28px;
	overflow: hidden;
	box-shadow: var(--dnmart-shadow-lg, 0 24px 60px rgba(35, 38, 43, .25));
	opacity: 0;
	transition: opacity .8s ease;
	pointer-events: none;
	z-index: 1;
	display: block;
	text-decoration: none;
}
.dnmart-hbanner.is-active { opacity: 1; pointer-events: auto; }
.dnmart-hbanner__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.dnmart-hbanner::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(246, 244, 239, .92) 0%, rgba(246, 244, 239, .55) 42%, rgba(246, 244, 239, 0) 68%);
}
.dnmart-hbanner__cap {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 2;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
	padding: 26px;
	max-width: 58%;
}
.dnmart-hbanner__title {
	font-size: clamp(1.45rem, 2.6vw, 2.1rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.02em;
	color: var(--dnmart-teal-dark, #23262B);
}
.dnmart-hbanner__sub { color: #4A423B; font-weight: 600; font-size: .98rem; }
.dnmart-hbanner__cta {
	margin-top: 8px;
	align-self: flex-start;
	background: var(--dnmart-teal, #EE6500);
	color: #fff;
	border-radius: 999px;
	padding: 9px 18px;
	font-weight: 800;
	font-size: .9rem;
}
.dnmart-hbanner__dots {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 12px;
	z-index: 2;
	display: flex;
	gap: 7px;
}
.dnmart-hbanner__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: rgba(35, 38, 43, .28);
	cursor: pointer;
}
.dnmart-hbanner__dot.is-active { background: var(--dnmart-teal, #EE6500); }
@media (max-width: 640px) {
	.dnmart-hbanner__cap { padding: 18px; max-width: 64%; }
}
@media (prefers-reduced-motion: reduce) {
	.dnmart-hbanner { transition: none; }
}

/* === v1.4.6: hero sequence slides ===
   Category slides keep the 1.4.5 left caption (name + short
   description, NO Shop now chip). Product slides show the product's
   own photo with a bottom caption bar (name + price) and an optional
   sale badge. Dots shrink a little — there are more slides now. */
.dnmart-hbanner--product::after {
	background: linear-gradient(to top, rgba(35, 38, 43, .82) 0%, rgba(35, 38, 43, .30) 42%, rgba(35, 38, 43, 0) 65%);
}
.dnmart-hbanner__pcap {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 34px 18px 26px;
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.dnmart-hbanner__ptitle {
	color: #fff;
	font-weight: 800;
	font-size: 1.02rem;
	line-height: 1.2;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.dnmart-hbanner__price { color: #FFC38F; font-weight: 800; font-size: .98rem; }
.dnmart-hbanner__price del { color: rgba(255, 255, 255, .6); font-weight: 600; font-size: .85rem; margin-right: 6px; }
.dnmart-hbanner__price ins { text-decoration: none; }
.dnmart-hbanner__badge {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	background: var(--dnmart-accent, #EE6500);
	color: #23262B;
	border-radius: 999px;
	padding: 5px 11px;
	font-weight: 800;
	font-size: .8rem;
}
.dnmart-hbanner__sub { max-width: 34ch; line-height: 1.45; }
.dnmart-hbanner__dot { width: 7px; height: 7px; }
.dnmart-hbanner__dots { gap: 5px; flex-wrap: wrap; justify-content: center; max-width: 92%; }

/* === v1.6.3: owner phone fixes (2026-10-19) ===
   1) Hero corners square: the owner asked for the hero border radius
      gone (hero band, anchor image and the slide layers).
   2) Phones: the header search is display:none at <=820px, and the
      theme's sibling rule then cancels the actions' margin-left:auto,
      so the cart button sat right next to the logo. Push the header
      actions back to the right corner on small screens. */
.dnmart-hero,
.dnmart-hero__img,
.dnmart-hero__slide--abs,
.dnmart-hbanner { border-radius: 0; }
@media (max-width: 820px) {
	.dnmart-header__actions { margin-left: auto; }
	.dnmart-header__search + .dnmart-header__actions { margin-left: auto; }
}
