/* ==========================================================================
   AmozonPill Single Product Redesign
   Skins WooCommerce's existing single-product markup to the new site design
   (cream/green editorial). Does NOT alter the pack-size variations table
   (the .apvt- plugin) — that markup is left exactly as-is on purpose.
   ========================================================================== */

body.asr-redesigned-product {
	--asr-cream:      #FBF9F4;
	--asr-paper:      #FFFFFF;
	--asr-tint:       #F6F1E6;
	--asr-ink:        #211E17;
	--asr-ink-soft:   #6B604E;
	--asr-ink-faint:  #A89E8A;
	--asr-green:      #1F4D3A;
	--asr-green-dark: #163829;
	--asr-ochre:      #B98A2E;
	--asr-brick:      #A3392E;
	--asr-hairline:   #E6E0D4;
	--asr-hairline-soft: #ECE6D9;
	--asr-font-display: 'Source Serif 4', Georgia, serif;
	--asr-font-body:    'Public Sans', -apple-system, BlinkMacSystemFont, sans-serif;
	--asr-radius:    8px;
	--asr-radius-lg: 12px;

	background: var(--asr-cream);
	font-family: var(--asr-font-body);
	color: var(--asr-ink);
}
body.asr-redesigned-product #primary,
body.asr-redesigned-product .content-area,
body.asr-redesigned-product .site-content,
body.asr-redesigned-product #content { background: var(--asr-cream); }

/* ---------- Topbar / secondary navigation fix ----------
   The topbar uses inline SVGs from the design; constrain their size and
   lay the contact links out as a horizontal strip. Without these rules
   the SVGs inherit no max dimensions and blow up to fill their container. */
body.asr-redesigned-product .topbar {
	background: var(--asr-green-dark); color: #cfe3d8; font-size: 12.5px;
}
body.asr-redesigned-product .topbar .topbar-inner,
body.asr-redesigned-product .topbar .wrap {
	display: flex; justify-content: space-between; align-items: center;
	padding: 7px 28px; flex-wrap: wrap; gap: 8px;
	max-width: 1180px; margin: 0 auto;
}
body.asr-redesigned-product .topbar-contacts {
	display: flex; gap: 18px; align-items: center; flex-wrap: wrap;
}
body.asr-redesigned-product .topbar-contacts a {
	display: inline-flex; align-items: center; gap: 5px;
	color: #fff; text-decoration: none; font-size: 12.5px;
}
body.asr-redesigned-product .topbar-contacts a:hover { text-decoration: underline; }
/* KEY FIX: constrain SVGs to their intended tiny size */
body.asr-redesigned-product .topbar svg,
body.asr-redesigned-product .topbar-contacts svg {
	width: 13px !important; height: 13px !important;
	max-width: 13px !important; max-height: 13px !important;
	flex-shrink: 0;
}

/* Also handle StoreVilla's own .top-header if the topbar is built through
   the theme's existing markup instead of the design HTML */
body.asr-redesigned-product .top-header {
	background: var(--asr-green-dark); border-bottom: none;
}
body.asr-redesigned-product .top-header svg {
	width: 13px !important; height: 13px !important;
	max-width: 13px !important; max-height: 13px !important;
	flex-shrink: 0;
}

/* ---------- Layout fix: StoreVilla floats #primary at width:70% expecting a
   sidebar, but product pages have none — leaving 30% empty on the right (the
   "empty space" below the menu). Force full width and remove the theme's
   30px vertical padding on .site-main. ---------- */
body.asr-redesigned-product #primary {
	width: 100% !important; float: none !important;
}
body.asr-redesigned-product #primary .site-main {
	padding-top: 0 !important;
}
body.asr-redesigned-product #secondaryright,
body.asr-redesigned-product #secondaryleft { display: none !important; }

/* Gallery / summary column split ----------
   The image column sits at 38% so the summary (title, price, SKU, category)
   gets the majority of horizontal space.  max-height on the gallery wrapper
   keeps the image from dwarfing the summary — it'll be slightly taller than
   the text block on the right, not double its size. */
body.asr-redesigned-product .woocommerce div.product .woocommerce-product-gallery,
body.asr-redesigned-product .woocommerce div.product .images {
	width: 38% !important; float: left !important; margin-bottom: 24px !important;
	max-height: 320px !important; overflow: hidden;
}
body.asr-redesigned-product .woocommerce div.product .woocommerce-product-gallery img,
body.asr-redesigned-product .woocommerce div.product .images img {
	width: 100%; height: auto; max-height: 300px; object-fit: contain;
}
body.asr-redesigned-product .woocommerce div.product div.summary,
body.asr-redesigned-product .woocommerce div.product .entry-summary {
	width: 58% !important; float: right !important;
}
@media (max-width: 768px) {
	body.asr-redesigned-product .woocommerce div.product .woocommerce-product-gallery,
	body.asr-redesigned-product .woocommerce div.product .images,
	body.asr-redesigned-product .woocommerce div.product div.summary,
	body.asr-redesigned-product .woocommerce div.product .entry-summary {
		width: 100% !important; float: none !important;
	}
}

/* ---------- Breadcrumb ---------- */
body.asr-redesigned-product .woocommerce-breadcrumb {
	font-size: 12.5px; color: var(--asr-ink-faint);
	max-width: 1180px; margin: 24px auto 8px; padding: 0 20px;
}
body.asr-redesigned-product .woocommerce-breadcrumb a { color: var(--asr-ink-faint); text-decoration: none; }
body.asr-redesigned-product .woocommerce-breadcrumb a:hover { color: var(--asr-green); }

/* ---------- Product summary header ---------- */
body.asr-redesigned-product div.product .product_title.entry-title {
	font-family: var(--asr-font-display); font-weight: 500; color: var(--asr-ink) !important;
	font-size: 1.9rem; line-height: 1.2; letter-spacing: -.2px; margin: 0 0 12px;
}

/* Price */
body.asr-redesigned-product div.product p.price,
body.asr-redesigned-product div.product .summary .price {
	color: var(--asr-green); font-weight: 700; font-size: 1.5rem; font-variant-numeric: tabular-nums;
	margin: 0 0 14px;
}
body.asr-redesigned-product div.product p.price del { color: var(--asr-brick); font-weight: 400; opacity: 1; font-size: 1.1rem; }
body.asr-redesigned-product div.product p.price ins { text-decoration: none; }

/* SKU / category meta */
body.asr-redesigned-product .product_meta {
	font-size: 13.5px; color: var(--asr-ink-soft); border-top: 1px solid var(--asr-hairline);
	padding-top: 14px; margin-top: 4px;
}
body.asr-redesigned-product .product_meta > span { display: block; margin-bottom: 6px; }
body.asr-redesigned-product .product_meta a { color: var(--asr-green); text-decoration: none; }
body.asr-redesigned-product .product_meta a:hover { text-decoration: underline; }

/* ---------- Product gallery card styling ---------- */
body.asr-redesigned-product .woocommerce-product-gallery {
	border: 1px solid var(--asr-hairline); border-radius: var(--asr-radius-lg);
	background: var(--asr-paper); padding: 10px; overflow: hidden;
}
body.asr-redesigned-product .woocommerce-product-gallery img { border-radius: var(--asr-radius); }

/* ---------- Tabs (Description / Additional info / Reviews) ---------- */
body.asr-redesigned-product .woocommerce-tabs ul.tabs {
	border: none; padding: 0; margin: 0 0 22px; display: flex; gap: 8px; flex-wrap: wrap;
}
body.asr-redesigned-product .woocommerce-tabs ul.tabs::before { display: none; }
body.asr-redesigned-product .woocommerce-tabs ul.tabs li {
	background: transparent; border: 1px solid var(--asr-hairline); border-radius: 999px;
	margin: 0; padding: 0;
}
body.asr-redesigned-product .woocommerce-tabs ul.tabs li::before,
body.asr-redesigned-product .woocommerce-tabs ul.tabs li::after { display: none; }
body.asr-redesigned-product .woocommerce-tabs ul.tabs li a {
	font-family: var(--asr-font-body); font-size: 13.5px; font-weight: 600; color: var(--asr-ink-soft);
	padding: 9px 20px; display: block; text-decoration: none;
}
body.asr-redesigned-product .woocommerce-tabs ul.tabs li.active {
	background: var(--asr-green); border-color: var(--asr-green);
}
body.asr-redesigned-product .woocommerce-tabs ul.tabs li.active a { color: #fff; }

/* Tab panels */
body.asr-redesigned-product .woocommerce-Tabs-panel {
	font-size: 15px; line-height: 1.75; color: var(--asr-ink);
}
body.asr-redesigned-product .woocommerce-Tabs-panel h2,
body.asr-redesigned-product .woocommerce-Tabs-panel h3 {
	font-family: var(--asr-font-body); color: var(--asr-ink); font-weight: 700;
}
body.asr-redesigned-product .woocommerce-Tabs-panel h2 { font-size: 20px; margin: 30px 0 12px; }
body.asr-redesigned-product .woocommerce-Tabs-panel h3 { font-size: 16px; margin: 24px 0 10px; }
body.asr-redesigned-product .woocommerce-Tabs-panel p { margin: 0 0 16px; }
body.asr-redesigned-product .woocommerce-Tabs-panel ul,
body.asr-redesigned-product .woocommerce-Tabs-panel ol { margin: 0 0 16px; padding-left: 22px; }
body.asr-redesigned-product .woocommerce-Tabs-panel li { margin-bottom: 8px; }
body.asr-redesigned-product .woocommerce-Tabs-panel a { color: var(--asr-green); }

/* WooCommerce auto-prints an <h2>Description</h2> at the top of the
   Description panel, but the product content already starts with its own
   heading — hide WooCommerce's so "Description" doesn't appear twice. */
body.asr-redesigned-product #tab-description > h2:first-child {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------- Medical / editorial callout (if present in content) ---------- */
body.asr-redesigned-product .medical-editorial,
body.asr-redesigned-product .medical-notice {
	background: var(--asr-tint); border: 1px solid var(--asr-hairline); border-left: 4px solid var(--asr-green);
	border-radius: var(--asr-radius); padding: 18px 20px; margin: 0 0 24px;
	font-size: 14px; color: var(--asr-ink-soft); line-height: 1.65;
}

/* ---------- Summary-area add-to-cart button (NOT the .apvt- table) ---------- */
body.asr-redesigned-product .entry-summary .single_add_to_cart_button,
body.asr-redesigned-product .entry-summary button.button.alt {
	background: var(--asr-green) !important; color: #fff !important; border: none !important;
	border-radius: 6px !important; font-family: var(--asr-font-body) !important;
	font-weight: 600 !important; text-transform: none !important; padding: 12px 26px !important;
}
body.asr-redesigned-product .entry-summary .single_add_to_cart_button:hover,
body.asr-redesigned-product .entry-summary button.button.alt:hover {
	background: var(--asr-green-dark) !important;
}

/* ---------- Related products — uses the plugin's own .asr-card-* markup
   (the wp_loaded hook replaces WooCommerce loop hooks globally, so related
   products render with the same card structure as the shop page) ---------- */
body.asr-redesigned-product .related.products > h2 {
	font-family: var(--asr-font-display); font-weight: 500; font-size: 1.4rem; color: var(--asr-ink);
	margin-bottom: 18px; border: none; padding: 0;
}
body.asr-redesigned-product .related.products ul.products {
	display: grid !important; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr;
	gap: 18px; list-style: none; margin: 0 !important;
}
body.asr-redesigned-product .related.products ul.products::before,
body.asr-redesigned-product .related.products ul.products::after { content: none !important; }
body.asr-redesigned-product .related.products ul.products li.product {
	background: var(--asr-paper); border: 1px solid var(--asr-hairline); border-radius: var(--asr-radius-lg);
	padding: 12px; margin: 0 !important; width: auto !important; float: none !important; height: 100%;
	display: flex; flex-direction: column;
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
body.asr-redesigned-product .related.products ul.products li.product::before,
body.asr-redesigned-product .related.products ul.products li.product::after { content: none !important; }
body.asr-redesigned-product .related.products ul.products li.product:hover {
	border-color: var(--asr-green); transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(33,30,23,0.08);
}

/* Image — .asr-card-* markup */
body.asr-redesigned-product .related.products .asr-card-imglink { display: block; text-decoration: none; }
body.asr-redesigned-product .related.products .asr-card-img {
	position: relative;
	display: flex; align-items: center; justify-content: center;
	height: 190px; background: var(--asr-tint); border-radius: var(--asr-radius);
	overflow: hidden; margin-bottom: 10px;
}
body.asr-redesigned-product .related.products .asr-card-img img {
	width: 100%; height: 100%; object-fit: contain; display: block;
}
body.asr-redesigned-product .related.products .asr-card-sale {
	position: absolute; top: 10px; left: 10px; z-index: 2;
	background: var(--asr-brick); color: #fff;
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px;
	padding: 4px 10px; border-radius: 20px;
}

/* Category eyebrow */
body.asr-redesigned-product .related.products .asr-card-cat {
	display: block; font-size: 10.5px; font-weight: 700; text-transform: uppercase;
	letter-spacing: .4px; color: var(--asr-ink-faint); margin-bottom: 3px;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Title */
body.asr-redesigned-product .related.products .asr-card-title {
	font-family: var(--asr-font-body); font-weight: 600; font-size: 13.5px; line-height: 1.35;
	margin: 0 0 6px; min-height: 2.7em;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
body.asr-redesigned-product .related.products .asr-card-title a {
	color: var(--asr-ink); text-decoration: none;
}
body.asr-redesigned-product .related.products li.product:hover .asr-card-title a {
	color: var(--asr-green);
}

/* Rating */
body.asr-redesigned-product .related.products .asr-card-rating {
	display: flex; align-items: center; gap: 6px; margin-bottom: 6px;
}
body.asr-redesigned-product .related.products .asr-card-rating .star-rating {
	color: var(--asr-ochre); font-size: 12px; margin: 0;
}
body.asr-redesigned-product .related.products .asr-card-rating .star-rating::before { color: var(--asr-hairline); }
body.asr-redesigned-product .related.products .asr-card-rating .star-rating span::before { color: var(--asr-ochre); }
body.asr-redesigned-product .related.products .asr-card-rating-count {
	font-size: 11.5px; color: var(--asr-ink-faint);
}

/* Price */
body.asr-redesigned-product .related.products .asr-card-price {
	font-variant-numeric: tabular-nums; font-size: 15px; font-weight: 600; color: var(--asr-green);
	margin: 0 0 12px; min-height: 1.4em; line-height: 1.4;
}
body.asr-redesigned-product .related.products .asr-card-price del {
	color: var(--asr-brick); text-decoration: line-through; font-weight: 400; font-size: 13px;
	opacity: 1; margin-right: 6px;
}
body.asr-redesigned-product .related.products .asr-card-price ins { text-decoration: none; }

/* Buttons */
body.asr-redesigned-product .related.products .asr-card-actions {
	display: flex; flex-direction: column; gap: 6px; margin-top: auto;
}
body.asr-redesigned-product .related.products .asr-card-actions a {
	display: flex; align-items: center; justify-content: center;
	font-family: var(--asr-font-body); font-size: 12.5px; font-weight: 600;
	padding: 9px 14px; border-radius: 6px; text-align: center; text-decoration: none;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
	line-height: 1.3;
}
/* Primary — add-to-cart / select-options */
body.asr-redesigned-product .related.products .asr-card-actions a.button,
body.asr-redesigned-product .related.products .asr-card-actions a.add_to_cart_button,
body.asr-redesigned-product .related.products .asr-card-actions a.product_type_variable,
body.asr-redesigned-product .related.products .asr-card-actions a.added_to_cart {
	border: 1.5px solid var(--asr-green); background: var(--asr-green); color: #fff !important;
	text-transform: none !important; margin: 0 !important; float: none !important;
}
body.asr-redesigned-product .related.products .asr-card-actions a.button:hover,
body.asr-redesigned-product .related.products .asr-card-actions a.add_to_cart_button:hover,
body.asr-redesigned-product .related.products .asr-card-actions a.product_type_variable:hover,
body.asr-redesigned-product .related.products .asr-card-actions a.added_to_cart:hover {
	background: var(--asr-green-dark); border-color: var(--asr-green-dark);
}
/* Outline secondary — View details */
body.asr-redesigned-product .related.products .asr-card-actions a.asr-card-details {
	border: 1.5px solid var(--asr-green); background: transparent; color: var(--asr-green) !important;
}
body.asr-redesigned-product .related.products .asr-card-actions a.asr-card-details:hover {
	background: var(--asr-tint);
}
/* Kill WooCommerce's loading/tick pseudo-elements */
body.asr-redesigned-product .related.products .asr-card-actions a.button::before,
body.asr-redesigned-product .related.products .asr-card-actions a.button::after { display: none !important; }

/* Legacy StoreVilla markup fallback — in case any related product still
   renders through the theme's own hooks (e.g. cross-sells, upsells) */
body.asr-redesigned-product .related.products .item-img,
body.asr-redesigned-product .upsells .item-img {
	height: 190px; background: var(--asr-tint); overflow: hidden; border-radius: var(--asr-radius);
	display: flex; align-items: center; justify-content: center; margin-bottom: 10px;
}
body.asr-redesigned-product .related.products .item-img img,
body.asr-redesigned-product .upsells .item-img img { width: 100%; height: 100%; object-fit: contain; }
body.asr-redesigned-product .related.products .add-to-links,
body.asr-redesigned-product .upsells .add-to-links { display: none !important; }

@media (max-width: 1100px) { body.asr-redesigned-product .related.products ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 780px)  { body.asr-redesigned-product .related.products ul.products { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Product Image Magnifier (circular lens on hover) ---------- */
body.asr-redesigned-product .asr-magnifier-ready {
	position: relative;
	cursor: none;
}
body.asr-redesigned-product .asr-magnifier-lens {
	position: absolute;
	border-radius: 50%;
	border: 3px solid rgba(255,255,255,0.9);
	box-shadow: 0 4px 20px rgba(0,0,0,0.25), 0 0 0 1px rgba(0,0,0,0.08);
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: 10;
	opacity: 0;
	transform: scale(0.6);
	transition: opacity .15s ease, transform .15s ease;
}
body.asr-redesigned-product .asr-magnifier-lens.asr-magnifier-active {
	opacity: 1;
	transform: scale(1);
}
/* Hide the default WooCommerce zoom since we handle it ourselves */
body.asr-redesigned-product .zoomImg {
	display: none !important;
}
/* Keep the lightbox trigger clickable above the lens */
body.asr-redesigned-product .woocommerce-product-gallery__trigger {
	z-index: 15;
	position: relative;
}
