/* ===== WooCommerce Facelift =============================================
   Targets existing Royal + Woo markup (no PHP overrides) — keeps the parent
   theme's functionality intact while modernizing the visual layer.
   ========================================================================= */

/* Container — make Woo pages share our base typography */
body.woocommerce, body.woocommerce-page {
	font-family: var(--prd-ff-sans);
	color: var(--prd-c-ink);
	background: var(--prd-c-bg);
}

body.prd-template-woocommerce h1,
body.prd-template-woocommerce h2,
body.prd-template-woocommerce h3 {
	font-family: var(--prd-ff-display);
	color: var(--prd-c-ink);
	font-weight: 600;
	letter-spacing: -0.01em;
}

/* SHOP / ARCHIVE — page heading */
body.prd-template-woocommerce .woocommerce-products-header,
body.prd-template-woocommerce .term-description {
	max-width: var(--prd-container-max);
	margin-inline: auto;
	padding: var(--prd-s-7) var(--prd-container-pad) var(--prd-s-3);
}
body.prd-template-woocommerce .woocommerce-products-header__title {
	font-family: var(--prd-ff-display);
	font-size: clamp(2rem, 4vw, var(--prd-fs-3xl));
	margin: 0 0 var(--prd-s-3);
}

/* Archive ordering / result count bar */
body.prd-template-woocommerce .woocommerce-result-count,
body.prd-template-woocommerce .woocommerce-ordering {
	font-family: var(--prd-ff-sans);
	font-size: var(--prd-fs-sm);
	color: var(--prd-c-muted);
}
body.prd-template-woocommerce .woocommerce-ordering select {
	border: 1px solid var(--prd-c-line);
	border-radius: var(--prd-r-pill);
	padding: 0.5rem 1rem;
	font-family: inherit;
	font-size: var(--prd-fs-sm);
	background: #fff;
}

/* Product loop cards */
body.prd-template-woocommerce ul.products li.product {
	background: #fff;
	border-radius: var(--prd-r-md);
	overflow: hidden;
	box-shadow: var(--prd-shadow-sm);
	transition: transform var(--prd-dur) var(--prd-ease), box-shadow var(--prd-dur) var(--prd-ease);
	padding-bottom: var(--prd-s-4) !important;
	border: 1px solid var(--prd-c-line);
}
body.prd-template-woocommerce ul.products li.product:hover {
	transform: translateY(-3px);
	box-shadow: var(--prd-shadow-md);
}
body.prd-template-woocommerce ul.products li.product a img,
body.prd-template-woocommerce ul.products li.product img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: contain;
	padding: var(--prd-s-3);
	box-sizing: border-box;
	margin-bottom: var(--prd-s-3);
	background: #fff;
}
body.prd-template-woocommerce ul.products li.product .woocommerce-loop-product__title,
body.prd-template-woocommerce ul.products li.product h2,
body.prd-template-woocommerce ul.products li.product h3 {
	padding: 0 var(--prd-s-4) !important;
	font-family: var(--prd-ff-sans) !important;
	font-size: var(--prd-fs-base) !important;
	font-weight: 600 !important;
	margin: 0 0 var(--prd-s-2) !important;
	color: var(--prd-c-ink) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
body.prd-template-woocommerce ul.products li.product .price {
	padding: 0 var(--prd-s-4);
	font-size: var(--prd-fs-md);
	color: var(--prd-c-accent-ink);
	font-weight: 600;
	font-family: var(--prd-ff-sans);
}
body.prd-template-woocommerce ul.products li.product .button,
body.prd-template-woocommerce ul.products li.product .quotelist-button-icon a,
body.prd-template-woocommerce ul.products li.product .quotelist-added-icon,
body.prd-template-woocommerce ul.products li.product .quotelist-remove-icon {
	margin: var(--prd-s-3) var(--prd-s-4) 0 !important;
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	padding: 0.55rem 1rem !important;
	font-size: var(--prd-fs-xs) !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em;
	border-radius: var(--prd-r-pill) !important;
	background: var(--prd-c-ink) !important;
	color: #fff !important;
	text-decoration: none !important;
	border: 0 !important;
	transition: background-color var(--prd-dur) var(--prd-ease) !important;
}
body.prd-template-woocommerce ul.products li.product .button:hover,
body.prd-template-woocommerce ul.products li.product .quotelist-button-icon a:hover {
	background: var(--prd-c-accent) !important;
	color: #fff !important;
}

/* Sale badge */
body.prd-template-woocommerce span.onsale {
	background: var(--prd-c-accent);
	color: #fff;
	font-family: var(--prd-ff-sans);
	font-size: var(--prd-fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	border-radius: var(--prd-r-pill);
	padding: 0.35rem 0.85rem;
	min-height: 0;
	min-width: 0;
	line-height: 1;
}

/* SINGLE PRODUCT */
body.prd-template-woocommerce.single-product .product .summary {
	padding-left: clamp(1rem, 3vw, 2.5rem);
}
body.prd-template-woocommerce.single-product .product_title {
	font-family: var(--prd-ff-display);
	font-size: clamp(1.75rem, 3.5vw, var(--prd-fs-3xl));
	margin: 0 0 var(--prd-s-3);
}
body.prd-template-woocommerce.single-product .summary .price {
	font-family: var(--prd-ff-sans);
	font-size: var(--prd-fs-xl);
	color: var(--prd-c-accent-ink);
	font-weight: 600;
}
body.prd-template-woocommerce.single-product .summary .woocommerce-product-details__short-description {
	color: var(--prd-c-ink-soft);
	line-height: var(--prd-lh-loose);
	font-size: var(--prd-fs-base);
	margin: var(--prd-s-4) 0;
}
body.prd-template-woocommerce.single-product .summary .button,
body.prd-template-woocommerce.single-product .summary .single_add_to_cart_button,
body.prd-template-woocommerce.single-product .summary .quotelist-button-icon a {
	background: var(--prd-c-ink) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--prd-r-pill) !important;
	padding: 1rem 2rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em;
	font-family: var(--prd-ff-sans) !important;
	font-size: var(--prd-fs-sm) !important;
}
body.prd-template-woocommerce.single-product .summary .button:hover,
body.prd-template-woocommerce.single-product .summary .single_add_to_cart_button:hover {
	background: var(--prd-c-accent) !important;
}

/* Tabs */
body.prd-template-woocommerce .woocommerce-tabs ul.tabs {
	border: 0 !important;
	border-bottom: 1px solid var(--prd-c-line) !important;
	padding: 0 !important;
	margin: 0 0 var(--prd-s-5) !important;
}
body.prd-template-woocommerce .woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.prd-template-woocommerce .woocommerce-tabs ul.tabs li.active {
	border-bottom-color: var(--prd-c-accent) !important;
}
body.prd-template-woocommerce .woocommerce-tabs ul.tabs li a {
	font-family: var(--prd-ff-sans);
	font-size: var(--prd-fs-xs);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 1rem 1.25rem !important;
	color: var(--prd-c-muted) !important;
}
body.prd-template-woocommerce .woocommerce-tabs ul.tabs li.active a {
	color: var(--prd-c-ink) !important;
}

/* Breadcrumbs (when shown) */
body.prd-template-woocommerce .woocommerce-breadcrumb {
	font-family: var(--prd-ff-sans);
	font-size: var(--prd-fs-xs);
	color: var(--prd-c-muted);
	letter-spacing: 0.04em;
	padding: var(--prd-s-4) var(--prd-container-pad);
	max-width: var(--prd-container-max);
	margin-inline: auto;
}
body.prd-template-woocommerce .woocommerce-breadcrumb a {
	color: var(--prd-c-ink-soft);
	text-decoration: none;
}
body.prd-template-woocommerce .woocommerce-breadcrumb a:hover { color: var(--prd-c-accent-ink); }

/* Pagination */
body.prd-template-woocommerce nav.woocommerce-pagination ul {
	border: 0 !important;
}
body.prd-template-woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
	margin: 0 var(--prd-s-1) !important;
}
body.prd-template-woocommerce nav.woocommerce-pagination ul li a,
body.prd-template-woocommerce nav.woocommerce-pagination ul li span {
	border: 1px solid var(--prd-c-line) !important;
	border-radius: 50% !important;
	width: 40px !important;
	height: 40px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-family: var(--prd-ff-sans) !important;
	font-size: var(--prd-fs-sm) !important;
	color: var(--prd-c-ink) !important;
	background: #fff !important;
	padding: 0 !important;
}
body.prd-template-woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--prd-c-ink) !important;
	color: #fff !important;
	border-color: var(--prd-c-ink) !important;
}

/* Notices */
body.prd-template-woocommerce .woocommerce-message,
body.prd-template-woocommerce .woocommerce-info,
body.prd-template-woocommerce .woocommerce-error {
	border-radius: var(--prd-r-md) !important;
	border-left-width: 4px !important;
	font-family: var(--prd-ff-sans);
	font-size: var(--prd-fs-sm);
	padding: var(--prd-s-4) var(--prd-s-5) !important;
}
body.prd-template-woocommerce .woocommerce-message { border-left-color: var(--prd-c-success) !important; background: #f0f8f3 !important; }
body.prd-template-woocommerce .woocommerce-info    { border-left-color: var(--prd-c-accent) !important;  background: var(--prd-c-bg-alt) !important; }
body.prd-template-woocommerce .woocommerce-error   { border-left-color: var(--prd-c-danger) !important;  background: #fff4f4 !important; }

/* Sidebar widgets (filter sidebar) */
body.prd-template-woocommerce .widget {
	background: var(--prd-c-bg-alt);
	padding: var(--prd-s-5);
	border-radius: var(--prd-r-md);
	margin-bottom: var(--prd-s-5);
}
body.prd-template-woocommerce .widget-title,
body.prd-template-woocommerce .widget h3 {
	font-family: var(--prd-ff-sans) !important;
	font-size: var(--prd-fs-xs) !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	margin: 0 0 var(--prd-s-4) !important;
	color: var(--prd-c-ink) !important;
}

/* ===== Hide broken Royal toolbar bits (filter button, grid/list toggle) =====
   The parent theme's toolbar JS doesn't run cleanly with our header refactor;
   the buttons sit there and do nothing. Hide them — woo's native ordering /
   our sidebar widgets cover the same intent. */
body.prd-template-woocommerce .toolbar-products,
body.prd-template-woocommerce .products-filter,
body.prd-template-woocommerce .display-mode,
body.prd-template-woocommerce .toolbar-products .filter-button,
body.prd-template-woocommerce .filter-button-mobile,
body.prd-template-woocommerce .show-filter,
body.prd-template-woocommerce .filter-toggle,
body.prd-template-woocommerce .a-center,
body.prd-template-woocommerce .columns-mode,
body.prd-template-woocommerce .listing-toolbar { display: none !important; }

/* ===== Single product layout polish ===== */
body.prd-template-woocommerce.single-product div.product {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
gap: clamp(2rem, 5vw, 4rem);
max-width: var(--prd-container-max);
margin: var(--prd-s-7) auto;
padding: 0 var(--prd-container-pad);
}
@media (max-width: 900px) {
body.prd-template-woocommerce.single-product div.product { grid-template-columns: 1fr; gap: var(--prd-s-5); }
}
body.prd-template-woocommerce.single-product div.product .images,
body.prd-template-woocommerce.single-product div.product .woocommerce-product-gallery {
width: 100% !important;
float: none !important;
margin: 0 !important;
border-radius: var(--prd-r-lg);
overflow: hidden;
background: var(--prd-c-bg-alt);
}
body.prd-template-woocommerce.single-product div.product .woocommerce-product-gallery img {
border-radius: var(--prd-r-lg);
}
body.prd-template-woocommerce.single-product div.product .summary {
width: 100% !important;
float: none !important;
margin: 0 !important;
padding: 0 !important;
display: flex;
flex-direction: column;
gap: var(--prd-s-3);
}
body.prd-template-woocommerce.single-product div.product .summary > * { margin: 0 !important; }
body.prd-template-woocommerce.single-product .product_meta {
font-size: var(--prd-fs-xs);
color: var(--prd-c-muted);
border-top: 1px solid var(--prd-c-line);
padding-top: var(--prd-s-4);
margin-top: var(--prd-s-3) !important;
}
body.prd-template-woocommerce.single-product .product_meta a { color: var(--prd-c-ink-soft); text-decoration: none; }
body.prd-template-woocommerce.single-product .product_meta a:hover { color: var(--prd-c-accent-ink); }
body.prd-template-woocommerce.single-product .related,
body.prd-template-woocommerce.single-product .upsells {
max-width: var(--prd-container-max);
margin: var(--prd-s-8) auto !important;
padding: 0 var(--prd-container-pad);
clear: both;
}
body.prd-template-woocommerce.single-product .related h2,
body.prd-template-woocommerce.single-product .upsells h2 {
font-family: var(--prd-ff-display);
font-size: clamp(1.5rem, 3vw, 2rem);
margin: 0 0 var(--prd-s-5);
}
body.prd-template-woocommerce.single-product .woocommerce-tabs {
max-width: var(--prd-container-max);
margin: var(--prd-s-7) auto !important;
padding: 0 var(--prd-container-pad);
clear: both;
}

/* ===== PRD Shop Layout (overrides for our archive-product / single-product templates) =========== */

html body .prd-shop-hero{
background: var(--prd-c-bg-alt);
padding: 3.5rem 0 2rem;
border-bottom: 1px solid var(--prd-c-line);
}
html body .prd-shop-hero .prd-eyebrow{
font-size: 0.875rem;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--prd-c-accent);
font-weight: 700;
margin: 0 0 .75rem;
}
html body .prd-shop-hero .prd-h1{
font-family: var(--prd-ff-display);
font-size: clamp(2.25rem, 4.5vw, 3.5rem);
line-height: 1.05;
margin: 0 0 .75rem;
}
html body .prd-shop-hero .prd-lead{
font-size: 1.125rem;
color: var(--prd-c-muted);
max-width: 60ch;
margin: 0;
}
@media (max-width: 720px){
	html body .prd-shop-hero{ padding: 1.25rem 0 1.25rem; }
	html body .prd-shop-hero .prd-breadcrumb{ margin: 0 0 .65rem; font-size: .8125rem; }
	html body .prd-shop-hero .prd-eyebrow{ font-size: .7rem; margin: 0 0 .25rem; }
	html body .prd-shop-hero .prd-h1{ font-size: 1.875rem; line-height: 1.1; margin: 0 0 .25rem; }
	html body .prd-shop-hero .prd-lead{ font-size: 1rem; }
	html body .prd-shop-body{ padding: 1.5rem 0 3rem !important; }
}
html body .prd-breadcrumb{
font-size: .875rem;
color: var(--prd-c-muted);
margin: 0 0 1.5rem;
}
html body .prd-breadcrumb a{ color: var(--prd-c-muted); text-decoration: none; }
html body .prd-breadcrumb a:hover{ color: var(--prd-c-accent); text-decoration: underline; }
html body .prd-breadcrumb .prd-bc-current{ color: var(--prd-c-ink); font-weight: 600; }
html body .prd-breadcrumb .prd-bc-sep,
html body .prd-breadcrumb .sep{ margin: 0 .5rem; color: var(--prd-c-line); }

html body .prd-shop-body{ padding: 3rem 0 5rem; }
html body .prd-shop-grid{
display: grid;
grid-template-columns: 260px 1fr;
gap: 2.5rem;
align-items: start;
}
@media (max-width: 900px){
html body .prd-shop-grid{ grid-template-columns: 1fr; gap: 1.5rem; }
}

html body .prd-shop-sidebar{ position: sticky; top: 110px; }
@media (max-width: 900px){ html body .prd-shop-sidebar{ position: static; } }

html body .prd-shop-widget{
background: #fff;
border: 1px solid var(--prd-c-line);
border-radius: 18px;
padding: 1.25rem 1.25rem;
margin-bottom: 1.25rem;
box-shadow: 0 1px 0 rgba(17,20,24,0.02), 0 14px 28px -22px rgba(17,20,24,0.10);
}
html body .prd-shop-widget-head{ margin-bottom: 1rem; }
html body .prd-shop-widget-eyebrow{
font-size: .68rem;
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--prd-c-accent);
margin: 0 0 .25rem;
}
html body .prd-shop-widget-title{
font-size: 1.35rem !important;
font-family: var(--prd-ff-display) !important;
font-weight: 400 !important;
letter-spacing: -0.01em;
text-transform: none;
color: var(--prd-c-ink);
margin: 0;
line-height: 1.1;
}
/* CTA widget keeps its tighter sans title */
html body .prd-shop-cta .prd-shop-widget-title{
font-family: var(--prd-ff-sans) !important;
font-size: 1rem !important;
font-weight: 700 !important;
letter-spacing: .08em;
text-transform: uppercase;
}

/* Categories — visual list */
html body .prd-shop-cats{ padding: 1.5rem 1rem 1rem; }
html body .prd-shop-cat-list{
list-style: none; padding: 0; margin: 0;
display: flex; flex-direction: column; gap: .25rem;
}
html body .prd-shop-cat-list li a{
display: grid;
grid-template-columns: 40px 1fr auto;
gap: .85rem;
align-items: center;
padding: .6rem .65rem;
border-radius: 12px;
color: var(--prd-c-ink);
font-size: .9375rem;
text-decoration: none;
transition: background .18s ease, color .18s ease;
position: relative;
}
html body .prd-shop-cat-thumb{
width: 40px; height: 40px;
border-radius: 10px;
background: var(--prd-c-bg-alt, #f7f4ee);
background-size: cover;
background-position: center;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--prd-c-accent);
flex-shrink: 0;
border: 1px solid var(--prd-c-line);
}
html body .prd-shop-cat-thumb--all,
html body .prd-shop-cat-thumb--ph{ color: var(--prd-c-muted); }
html body .prd-shop-cat-body{
display: flex; flex-direction: column;
min-width: 0;
line-height: 1.2;
}
html body .prd-shop-cat-name{
font-weight: 500;
color: var(--prd-c-ink);
overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
html body .prd-shop-cat-meta{
font-size: .75rem;
color: var(--prd-c-muted);
margin-top: .15rem;
font-weight: 400;
}
html body .prd-shop-cat-arrow{
color: var(--prd-c-muted);
opacity: 0;
transform: translateX(-4px);
transition: all .18s ease;
font-size: 1rem;
}
html body .prd-shop-cat-list li a:hover{
background: var(--prd-c-bg-alt);
}
html body .prd-shop-cat-list li a:hover .prd-shop-cat-arrow{
opacity: 1;
transform: translateX(0);
color: var(--prd-c-ink);
}
html body .prd-shop-cat-list li a:hover .prd-shop-cat-thumb--all,
html body .prd-shop-cat-list li a:hover .prd-shop-cat-thumb--ph{
color: var(--prd-c-accent);
}
html body .prd-shop-cat-list li.is-current a{
background: var(--prd-c-ink);
}
html body .prd-shop-cat-list li.is-current a .prd-shop-cat-name,
html body .prd-shop-cat-list li.is-current a .prd-shop-cat-arrow{ color: #fff; }
html body .prd-shop-cat-list li.is-current a .prd-shop-cat-meta{ color: rgba(255,255,255,.65); }
html body .prd-shop-cat-list li.is-current a .prd-shop-cat-thumb{
border-color: rgba(255,255,255,.15);
}
html body .prd-shop-cat-list li.is-current a .prd-shop-cat-arrow{
opacity: 1; transform: translateX(0);
}
html body .prd-shop-cat-all{
border-bottom: 1px dashed var(--prd-c-line);
padding-bottom: .5rem;
margin-bottom: .25rem;
}

html body .prd-shop-cta{ background: var(--prd-c-ink); color: #fff; border: 0; overflow: hidden; }
html body .prd-shop-cta .prd-shop-widget-title{ color: #fff; }
html body .prd-shop-cta p{ color: rgba(255,255,255,.85); font-size: .9375rem; line-height: 1.5; margin: 0 0 1rem; }
html body .prd-shop-cta .prd-btn{ width: 100%; box-sizing: border-box; }
html body .prd-shop-cta .prd-btn:hover{ transform: none; box-shadow: none; }

html body .prd-shop-toolbar{
display: flex; justify-content: space-between; align-items: center;
padding-bottom: 1rem; margin-bottom: 0;
gap: 1rem; flex-wrap: wrap;
}
html body .prd-shop-toolbar .woocommerce-result-count{ margin: 0; font-size: .9375rem; color: var(--prd-c-muted); }
html body .prd-shop-toolbar .woocommerce-ordering{ margin: 0; }

html body .prd-shop-main ul.products{
display: grid !important;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem;
margin: 0 0 2rem !important;
padding: 0 !important;
list-style: none !important;
}
@media (max-width: 1100px){ html body .prd-shop-main ul.products{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ html body .prd-shop-main ul.products{ grid-template-columns: 1fr; } }

html body .prd-shop-main ul.products li.product{
width: auto !important;
margin: 0 !important;
float: none !important;
background: #fff;
border: 1px solid var(--prd-c-line);
border-radius: var(--prd-r-md, 14px);
overflow: hidden;
display: flex; flex-direction: column;
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
html body .prd-shop-main ul.products li.product:hover{
transform: translateY(-2px);
box-shadow: 0 12px 32px -16px rgba(0,0,0,.18);
border-color: var(--prd-c-accent);
}
html body .prd-shop-main ul.products li.product a{
text-decoration: none; color: var(--prd-c-ink);
display: flex; flex-direction: column; height: 100%;
}
html body .prd-shop-main ul.products li.product img{
width: 100% !important; height: 240px !important; object-fit: contain; display: block;
padding: 0.85rem; box-sizing: border-box; background: #fff;
margin: 0 !important; border-radius: 0 !important;
transition: transform .35s ease;
}
html body .prd-shop-main ul.products li.product:hover img{ transform: scale(1.04); }
html body .prd-shop-main ul.products li.product .woocommerce-loop-product__title,
html body .prd-shop-main ul.products li.product h2,
html body .prd-shop-main ul.products li.product h3{
font-size: 1.0625rem !important;
font-family: var(--prd-ff-sans) !important;
font-weight: 600 !important;
color: var(--prd-c-ink) !important;
padding: 1rem 1.15rem .35rem !important;
margin: 0 !important;
line-height: 1.3 !important;
}
html body .prd-shop-main ul.products li.product .price{
padding: 0 1.15rem 1rem !important;
color: var(--prd-c-accent) !important;
font-weight: 700 !important;
font-size: 1rem !important;
margin: 0 !important;
}
html body .prd-shop-main ul.products li.product .button,
html body .prd-shop-main ul.products li.product .add_to_quotelist,
html body .prd-shop-main ul.products li.product .added_to_cart{
margin: auto 1.15rem 1.15rem !important;
border-radius: var(--prd-r-pill, 999px) !important;
background: var(--prd-c-ink) !important;
color: #fff !important;
padding: .65rem 1rem !important;
font-size: .875rem !important;
font-weight: 600 !important;
text-align: center;
text-decoration: none !important;
display: inline-block;
border: 0 !important;
transition: background .2s ease;
}
html body .prd-shop-main ul.products li.product .button:hover,
html body .prd-shop-main ul.products li.product .add_to_quotelist:hover{
background: var(--prd-c-accent) !important;
}

/* hide noisy Royal helpers inside cards */
html body .prd-shop-main ul.products li.product .product-fade-thumbnail-image,
html body .prd-shop-main ul.products li.product .product-images-slider,
html body .prd-shop-main ul.products li.product .label,
html body .prd-shop-main ul.products li.product .swap-images,
html body .prd-shop-main ul.products li.product .product-second-image,
html body .prd-shop-main ul.products li.product .links-container,
html body .prd-shop-main ul.products li.product .product-buttons{ display: none !important; }

html body .prd-shop-empty{ font-size: 1.125rem; color: var(--prd-c-muted); margin: 0 0 1.5rem; }

/* Pagination */
html body .prd-shop-main .woocommerce-pagination{ margin-top: 0; }
html body .prd-shop-main .woocommerce-pagination,
html body .prd-shop-main .woocommerce-pagination ul.page-numbers{
border: 0 !important;
float: none !important;
}
html body .prd-shop-main .woocommerce-pagination ul{
display: inline-flex !important; gap: .35rem; list-style: none; padding: 0 !important; margin: 0 !important; justify-content: flex-end;
border: 0 !important;
}
html body .prd-shop-main .woocommerce-pagination ul li{
display: inline-flex !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
float: none !important;
}
html body .prd-shop-main .woocommerce-pagination ul li a,
html body .prd-shop-main .woocommerce-pagination ul li span{
display: inline-flex !important;
align-items: center;
justify-content: center;
box-sizing: border-box;
min-width: 36px; height: 36px; line-height: 1; padding: 0 .65rem !important;
border-radius: 8px !important; border: 1px solid var(--prd-c-line) !important;
background: #fff !important; color: var(--prd-c-ink) !important; text-decoration: none !important;
font-weight: 600; font-size: .9375rem;
float: none !important;
margin: 0 !important;
}
html body .prd-shop-main .woocommerce-pagination ul li span.dots{
border-color: transparent !important;
background: transparent !important;
}
html body .prd-shop-main .woocommerce-pagination ul li span.current,
html body .prd-shop-main .woocommerce-pagination ul li a:hover{
background: var(--prd-c-ink) !important; color: #fff !important; border-color: var(--prd-c-ink) !important;
}

/* ========== Single Product layout ========== */
html body.single-product div.product{
max-width: var(--prd-container-max, 1280px);
margin: 3rem auto;
padding: 0 var(--prd-container-pad, 1.5rem);
display: grid !important;
grid-template-columns: 1fr 1fr;
gap: 3rem;
align-items: start;
}
@media (max-width: 900px){
html body.single-product div.product{ grid-template-columns: 1fr; gap: 1.75rem; }
}

html body.single-product div.product .woocommerce-product-gallery{
float: none !important; width: 100% !important; margin: 0 !important;
}
html body.single-product div.product .woocommerce-product-gallery__image img{
border-radius: var(--prd-r-md, 14px); width: 100%; height: auto;
}
html body.single-product div.product .summary{
float: none !important; width: 100% !important; margin: 0 !important;
}
html body.single-product div.product .product_title{
font-family: var(--prd-ff-display) !important;
font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
line-height: 1.1 !important;
margin: 0 0 1rem !important;
}
html body.single-product div.product p.price,
html body.single-product div.product span.price{
font-size: 1.5rem !important; color: var(--prd-c-accent) !important;
font-weight: 700 !important; margin: 0 0 1.25rem !important;
}
html body.single-product div.product .woocommerce-product-details__short-description{
font-size: 1.0625rem; line-height: 1.6; color: var(--prd-c-ink); margin-bottom: 1.5rem;
}
html body.single-product div.product .quantity input.qty{
border: 1px solid var(--prd-c-line); border-radius: 8px; padding: .65rem; width: 80px; font-size: 1rem;
}
html body.single-product div.product .single_add_to_cart_button,
html body.single-product div.product .single_add_to_quotelist_button,
html body.single-product div.product .add_to_quotelist{
background: var(--prd-c-ink) !important; color: #fff !important;
border: 0 !important; border-radius: var(--prd-r-pill, 999px) !important;
padding: 1rem 2rem !important; font-size: 1.0625rem !important; font-weight: 700 !important;
text-transform: none !important; letter-spacing: 0 !important;
}
html body.single-product div.product .single_add_to_cart_button:hover,
html body.single-product div.product .single_add_to_quotelist_button:hover,
html body.single-product div.product .add_to_quotelist:hover{
background: var(--prd-c-accent) !important;
}

html body.single-product .woocommerce-tabs{
max-width: var(--prd-container-max, 1280px);
margin: 2rem auto 4rem;
padding: 0 var(--prd-container-pad, 1.5rem);
clear: both;
}
html body.single-product .woocommerce-tabs ul.tabs{
border-bottom: 1px solid var(--prd-c-line) !important; padding: 0 !important; margin: 0 0 1.5rem !important;
}
html body.single-product .woocommerce-tabs ul.tabs li{
background: transparent !important; border: 0 !important; border-radius: 0 !important;
margin: 0 !important; padding: 0 !important;
}
html body.single-product .woocommerce-tabs ul.tabs li a{
padding: .85rem 1.25rem !important; font-size: 1rem !important; font-weight: 600 !important;
color: var(--prd-c-muted) !important; text-decoration: none !important; display: block;
border-bottom: 3px solid transparent !important;
}
html body.single-product .woocommerce-tabs ul.tabs li.active a{
color: var(--prd-c-ink) !important; border-bottom-color: var(--prd-c-accent) !important;
}

/* hide royal product helpers we don't want on single */
html body.single-product .product-share,
html body.single-product .product-page-attributes,
html body.single-product .yith-wcwl-add-to-wishlist,
html body.single-product .compare,
html body.single-product .single-product-images-thumbnails .product-second-image{ display: none !important; }

/* Royal uses <div class="row products-loop products-grid"> not <ul class="products">. Cover both. */
html body .prd-shop-main .products-loop,
html body .prd-shop-main .products-grid,
html body .prd-shop-main ul.products{
display: grid !important;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem !important;
margin: 0 0 2rem !important;
padding: 0 !important;
list-style: none !important;
float: none !important;
}
html body .prd-shop-main .products-loop > *,
html body .prd-shop-main .products-grid > *{
width: auto !important; max-width: none !important;
margin: 0 !important; padding: 0 !important;
float: none !important;
flex: none !important;
}
@media (max-width: 1100px){
html body .prd-shop-main .products-loop,
html body .prd-shop-main .products-grid,
html body .prd-shop-main ul.products{ grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px){
html body .prd-shop-main .products-loop,
html body .prd-shop-main .products-grid,
html body .prd-shop-main ul.products{ grid-template-columns: 1fr !important; }
}

html body .prd-shop-main .products-loop .product,
html body .prd-shop-main .products-grid .product,
html body .prd-shop-main ul.products li.product{
background: #fff;
border: 1px solid var(--prd-c-line);
border-radius: var(--prd-r-md, 14px);
overflow: hidden;
display: flex !important; flex-direction: column !important;
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
width: auto !important; margin: 0 !important; float: none !important;
max-width: none !important;
}
html body .prd-shop-main .products-loop .product:hover,
html body .prd-shop-main .products-grid .product:hover{
transform: translateY(-2px);
box-shadow: 0 12px 32px -16px rgba(0,0,0,.18);
border-color: var(--prd-c-accent);
}
html body .prd-shop-main .products-loop .content-product,
html body .prd-shop-main .products-grid .content-product{
display: flex; flex-direction: column; height: 100%;
background: transparent !important; border: 0 !important; box-shadow: none !important;
padding: 0 !important; margin: 0 !important;
}
html body .prd-shop-main .product-image-wrapper,
html body .prd-shop-main .product-content-image{
width: 100% !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important;
overflow: hidden;
}
html body .prd-shop-main .product-image-wrapper img,
html body .prd-shop-main .product-content-image img{
width: 100% !important; height: 240px !important; object-fit: contain !important;
padding: 0.85rem !important; box-sizing: border-box !important; background: #fff !important;
display: block; margin: 0 !important; border-radius: 0 !important;
transition: transform .35s ease;
}
html body .prd-shop-main .product:hover .product-image-wrapper img{ transform: scale(1.04); }
html body .prd-shop-main .footer-product,
html body .prd-shop-main .product-details{
padding: 1rem 1.15rem 1.15rem !important;
text-align: left !important;
background: #fff !important;
border: 0 !important;
}
html body .prd-shop-main .product-title,
html body .prd-shop-main .product-details h2,
html body .prd-shop-main .product-details h3,
html body .prd-shop-main .product-details a{
font-size: 1.0625rem !important;
font-family: var(--prd-ff-sans) !important;
font-weight: 600 !important;
color: var(--prd-c-ink) !important;
margin: 0 0 .35rem !important;
line-height: 1.3 !important;
text-decoration: none !important;
}
html body .prd-shop-main .product-details .price,
html body .prd-shop-main .product .price{
color: var(--prd-c-accent) !important;
font-weight: 700 !important;
font-size: 1rem !important;
margin: 0 !important;
display: block !important;
}

/* Hide royal's hover overlays + label/swap helpers so cards stay clean */
html body .prd-shop-main .label-product,
html body .prd-shop-main .product-buttons,
html body .prd-shop-main .swap-images,
html body .prd-shop-main .product-second-image,
html body .prd-shop-main .links-container,
html body .prd-shop-main .product-share,
html body .prd-shop-main .yith-wcwl-add-to-wishlist,
html body .prd-shop-main .compare,
html body .prd-shop-main .quick-view{ display: none !important; }

/* ===== Quote page layout ===== */
html body .prd-quote-grid{
display: grid;
grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
gap: 2rem;
align-items: start;
}
@media (max-width: 960px){
html body .prd-quote-grid{ grid-template-columns: 1fr; }
}
html body .prd-quote-form-wrap{
background: #fff;
border: 1px solid var(--prd-c-line);
border-radius: var(--prd-r-md, 14px);
padding: 1.75rem 1.75rem;
position: sticky; top: 110px;
box-shadow: 0 12px 32px -20px rgba(0,0,0,.18);
}
@media (max-width: 960px){
html body .prd-quote-form-wrap{ position: static; }
}
html body .prd-quote-form-title{
font-family: var(--prd-ff-display); font-size: 1.5rem; margin: 0 0 .35rem; color: var(--prd-c-ink);
}
html body .prd-quote-form-sub{
color: var(--prd-c-muted); font-size: .9375rem; margin: 0 0 1.25rem;
}

/* Style the dvin-wcql plugin form (table layout) */
html body .prd-quote-form-wrap form,
html body .prd-quote-form-wrap .woocommerce form,
html body .prd-quote-form-wrap .checkout_coupon{ margin: 0 !important; padding: 0 !important; }
html body .prd-quote-form-wrap table{
width: 100% !important; border: 0 !important; background: transparent !important;
border-collapse: collapse !important;
}
html body .prd-quote-form-wrap table td,
html body .prd-quote-form-wrap table th{
display: block; width: 100% !important; padding: 0 !important; border: 0 !important; background: transparent !important;
margin: 0 0 .9rem !important;
}
html body .prd-quote-form-wrap table tr{ display: block; }
html body .prd-quote-form-wrap label{
display: block; font-size: .875rem; font-weight: 600; color: var(--prd-c-ink); margin-bottom: .35rem;
}
html body .prd-quote-form-wrap input[type="text"],
html body .prd-quote-form-wrap input[type="email"],
html body .prd-quote-form-wrap textarea{
width: 100% !important; box-sizing: border-box;
border: 1px solid var(--prd-c-line) !important;
border-radius: 10px !important;
padding: .85rem 1rem !important;
font-family: var(--prd-ff-sans) !important;
font-size: 1rem !important;
background: #fff !important;
color: var(--prd-c-ink) !important;
transition: border-color .15s ease, box-shadow .15s ease;
}
html body .prd-quote-form-wrap input[type="text"]:focus,
html body .prd-quote-form-wrap input[type="email"]:focus,
html body .prd-quote-form-wrap textarea:focus{
outline: 0 !important;
border-color: var(--prd-c-accent) !important;
box-shadow: 0 0 0 3px rgba(180,140,80,.18) !important;
}
html body .prd-quote-form-wrap textarea{ min-height: 120px; resize: vertical; }
html body .prd-quote-form-wrap button,
html body .prd-quote-form-wrap .button{
width: 100% !important;
background: var(--prd-c-accent) !important;
color: #fff !important;
border: 0 !important;
border-radius: var(--prd-r-pill, 999px) !important;
padding: 1rem 1.5rem !important;
font-size: 1.0625rem !important;
font-weight: 700 !important;
font-family: var(--prd-ff-sans) !important;
cursor: pointer;
letter-spacing: 0 !important; text-transform: none !important;
transition: background .15s ease, transform .1s ease;
}
html body .prd-quote-form-wrap button:hover,
html body .prd-quote-form-wrap .button:hover{
background: var(--prd-c-ink) !important;
}

/* hide plugin's "Send Quote" table headers (they say PRODUCT/QUANTITY style headers) — show as labels via ::before? */
html body .prd-quote-form-wrap thead{ display: none !important; }

/* Inject readable labels for the plugin's bare inputs */
html body .prd-quote-form-wrap input#req_name{ }
html body .prd-quote-form-wrap input#req_name::before,
html body .prd-quote-form-wrap input#req_email::before,
html body .prd-quote-form-wrap textarea#req_details::before{}
html body .prd-quote-form-wrap td:has(> input#req_name)::before{ content: "Your name"; display: block; font-size: .875rem; font-weight: 600; color: var(--prd-c-ink); margin-bottom: .35rem; }
html body .prd-quote-form-wrap td:has(> input#req_email)::before{ content: "Email"; display: block; font-size: .875rem; font-weight: 600; color: var(--prd-c-ink); margin-bottom: .35rem; }
html body .prd-quote-form-wrap td:has(> textarea#req_details)::before{ content: "Event details (date, location, anything else)"; display: block; font-size: .875rem; font-weight: 600; color: var(--prd-c-ink); margin-bottom: .35rem; }

html body .prd-quote-form-wrap .ajax-loading-img{ width: 18px !important; height: 18px !important; }

/* ===== Quote shell — wraps the GF form so it sits in a clean card ===== */
html body .prd-quote-shell{
background: #fff;
border: 1px solid var(--prd-c-line);
border-radius: var(--prd-r-md, 14px);
padding: 2rem 2rem 2.25rem;
box-shadow: 0 12px 32px -20px rgba(0,0,0,.12);
max-width: 920px;
margin: 0 auto;
}
@media (max-width: 640px){
html body .prd-quote-shell{ padding: 1.25rem 1rem 1.5rem; }
}

/* ===== Gravity Forms quote-form styling (form ID 1) ===== */
html body .prd-quote-shell .gform_wrapper{ margin: 0; max-width: none; }
html body .prd-quote-shell .gform_wrapper form{ margin: 0; }
html body .prd-quote-shell .gform_body{ padding: 0; }
html body .prd-quote-shell .gform_fields{
display: grid !important;
grid-template-columns: 1fr 1fr;
gap: 1rem 1.25rem !important;
list-style: none !important;
padding: 0 !important; margin: 0 !important;
}
html body .prd-quote-shell .gfield{
margin: 0 !important; padding: 0 !important;
max-width: none !important; width: auto !important;
background: transparent !important; border: 0 !important;
}
/* full-width fields */
html body .prd-quote-shell .gfield--type-html,
html body .prd-quote-shell .gfield--type-textarea,
html body .prd-quote-shell .gfield--type-radio,
html body .prd-quote-shell .gfield--type-captcha,
html body .prd-quote-shell .gfield--width-full,
html body .prd-quote-shell #field_1_13,
html body .prd-quote-shell #field_1_19,
html body .prd-quote-shell #field_1_20,
html body .prd-quote-shell #field_1_18{ grid-column: 1 / -1; }
@media (max-width: 640px){
html body .prd-quote-shell .gform_fields{ grid-template-columns: 1fr !important; }
}

/* labels */
html body .prd-quote-shell .gfield_label{
display: block;
font-size: .875rem !important;
font-weight: 600 !important;
color: var(--prd-c-ink) !important;
margin: 0 0 .35rem !important;
font-family: var(--prd-ff-sans) !important;
line-height: 1.3;
text-transform: none !important;
}
html body .prd-quote-shell .gfield_required_asterisk{ color: var(--prd-c-accent); margin-left: .15rem; }

/* inputs */
html body .prd-quote-shell .ginput_container input[type="text"],
html body .prd-quote-shell .ginput_container input[type="email"],
html body .prd-quote-shell .ginput_container input[type="tel"],
html body .prd-quote-shell .ginput_container input[type="number"],
html body .prd-quote-shell .ginput_container textarea,
html body .prd-quote-shell .ginput_container select,
html body .prd-quote-shell .ginput_container input.datepicker,
html body .prd-quote-shell .gfield_captcha_input_container input[type="text"]{
width: 100% !important; box-sizing: border-box !important;
border: 1px solid var(--prd-c-line) !important;
border-radius: 10px !important;
padding: .85rem 1rem !important;
font-family: var(--prd-ff-sans) !important;
font-size: 1rem !important;
background: #fff !important;
color: var(--prd-c-ink) !important;
min-height: 0 !important; height: auto !important;
transition: border-color .15s ease, box-shadow .15s ease;
}
html body .prd-quote-shell .ginput_container input:focus,
html body .prd-quote-shell .ginput_container textarea:focus,
html body .prd-quote-shell .ginput_container select:focus{
outline: 0 !important;
border-color: var(--prd-c-accent) !important;
box-shadow: 0 0 0 3px rgba(180,140,80,.18) !important;
}
html body .prd-quote-shell .ginput_container textarea{ min-height: 110px !important; resize: vertical; }

/* radio buttons */
html body .prd-quote-shell .gfield_radio{ list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; }
html body .prd-quote-shell .gfield_radio .gchoice{ display: flex; align-items: center; gap: .5rem; margin: 0 !important; }
html body .prd-quote-shell .gfield_radio input[type="radio"]{ margin: 0; width: 18px; height: 18px; accent-color: var(--prd-c-accent); }
html body .prd-quote-shell .gfield_radio label{ font-size: .9375rem !important; color: var(--prd-c-ink) !important; margin: 0 !important; cursor: pointer; }

/* captcha */
html body .prd-quote-shell .gfield_captcha_container{ display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
html body .prd-quote-shell .gfield_captcha{ border-radius: 6px; }
html body .prd-quote-shell .gfield_captcha_input_container{ flex: 1; min-width: 180px; }

/* hide untitled / placeholder fields */
html body .prd-quote-shell #field_1_18{ display: none !important; }

/* submit */
html body .prd-quote-shell .gform_footer{
padding: 1.25rem 0 0 !important;
margin: 1.25rem 0 0 !important;
border-top: 1px solid var(--prd-c-line);
display: flex; justify-content: flex-end;
}
html body .prd-quote-shell .gform_button{
background: var(--prd-c-accent) !important;
color: #fff !important;
border: 0 !important;
border-radius: var(--prd-r-pill, 999px) !important;
padding: 1rem 2.5rem !important;
font-size: 1.0625rem !important;
font-weight: 700 !important;
font-family: var(--prd-ff-sans) !important;
text-transform: none !important; letter-spacing: 0 !important;
cursor: pointer;
min-width: 180px;
transition: background .15s ease, transform .1s ease;
}
html body .prd-quote-shell .gform_button:hover{ background: var(--prd-c-ink) !important; }

/* the embedded listing inside field_1_13 — pull it out as a styled section */
html body .prd-quote-shell #field_1_13{
padding: 1.25rem 0 !important;
border-bottom: 1px solid var(--prd-c-line);
margin-bottom: .75rem !important;
}
html body .prd-quote-shell #field_1_13 .gfield_label{ display: none !important; }
html body .prd-quote-shell #field_1_13 .woocommerce-cart{ background: transparent !important; padding: 0 !important; }
html body .prd-quote-shell #field_1_13 table{
width: 100% !important;
border-collapse: collapse !important;
background: var(--prd-c-bg-alt) !important;
border-radius: var(--prd-r-md, 14px);
overflow: hidden;
border: 1px solid var(--prd-c-line) !important;
}
html body .prd-quote-shell #field_1_13 thead{ display: table-header-group !important; background: var(--prd-c-ink) !important; }
html body .prd-quote-shell #field_1_13 thead td{
display: table-cell !important;
color: #fff !important; font-weight: 600 !important; font-size: .875rem !important;
text-transform: uppercase; letter-spacing: .08em; padding: .85rem 1rem !important;
margin: 0 !important;
}
html body .prd-quote-shell #field_1_13 tbody td{
display: table-cell !important;
padding: 1rem !important; margin: 0 !important;
border-top: 1px solid var(--prd-c-line) !important;
background: #fff !important; vertical-align: middle !important;
}
html body .prd-quote-shell #field_1_13 tbody tr:first-child td{ border-top: 0 !important; }
html body .prd-quote-shell #field_1_13 .product-thumbnail img{
width: 70px !important; height: 70px !important; object-fit: cover; border-radius: 8px;
}
html body .prd-quote-shell #field_1_13 .product-quantity input{
width: 64px !important; text-align: center;
border: 1px solid var(--prd-c-line) !important; border-radius: 8px !important;
padding: .45rem !important; font-size: .9375rem !important;
}
html body .prd-quote-shell #field_1_13 .actions{ background: transparent !important; padding-top: 1rem !important; }
html body .prd-quote-shell #field_1_13 .actions .button{
background: var(--prd-c-ink) !important; color: #fff !important;
border: 0 !important; border-radius: var(--prd-r-pill, 999px) !important;
padding: .75rem 1.5rem !important; font-size: .9375rem !important; font-weight: 600 !important;
text-transform: none !important;
}
html body .prd-quote-shell #field_1_13 .return-to-shop{ margin: 1rem 0 0 !important; text-align: center; }
html body .prd-quote-shell #field_1_13 .return-to-shop a{
display: inline-block; background: var(--prd-c-ink) !important; color: #fff !important;
border-radius: var(--prd-r-pill, 999px) !important; padding: .85rem 1.85rem !important;
font-weight: 600 !important; text-decoration: none !important;
}

/* validation */
html body .prd-quote-shell .gfield_error .gfield_label{ color: #b3261e !important; }
html body .prd-quote-shell .gfield_error input,
html body .prd-quote-shell .gfield_error textarea{ border-color: #b3261e !important; }
html body .prd-quote-shell .validation_message{
color: #b3261e !important; font-size: .875rem !important; margin-top: .35rem !important;
}
html body .prd-quote-shell .gform_validation_errors{
background: #fdecea !important; border: 1px solid #f3a39c !important;
color: #b3261e !important; padding: 1rem 1.25rem !important;
border-radius: 10px !important; margin: 0 0 1.25rem !important;
}

/* ===========================================================================
   ROYAL PRODUCT-LOOP OVERRIDES
   Royal renders .row.products-loop > .product.col-lg-4 (Bootstrap floats)
   instead of WC's ul.products>li.product. Convert to clean CSS grid, fix
   blank #1 caused by float clearing, stop cropping images, polish text + CTA.
   =========================================================================== */

html body .prd-shop-main .products-loop.products-grid{
display: grid !important;
grid-template-columns: repeat(3, 1fr) !important;
gap: 1.5rem !important;
margin: 0 0 2rem !important;
padding: 0 !important;
float: none !important;
}
html body .prd-shop-main .products-loop.products-grid::before,
html body .prd-shop-main .products-loop.products-grid::after{ display: none !important; content: none !important; }
@media (max-width: 1100px){ html body .prd-shop-main .products-loop.products-grid{ grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 560px){ html body .prd-shop-main .products-loop.products-grid{ grid-template-columns: 1fr !important; } }

html body .prd-shop-main .products-loop .product{
width: auto !important;
max-width: none !important;
margin: 0 !important;
padding: 0 !important;
float: none !important;
clear: none !important;
background: #fff !important;
border: 1px solid var(--prd-c-line) !important;
border-radius: 14px !important;
overflow: hidden !important;
display: flex !important;
flex-direction: column !important;
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease !important;
}
html body .prd-shop-main .products-loop .product:hover{
transform: translateY(-2px);
box-shadow: 0 12px 32px -16px rgba(0,0,0,.18);
border-color: var(--prd-c-accent);
}
html body .prd-shop-main .products-loop .product > a.woocommerce-LoopProduct-link{
display: flex !important;
flex-direction: column !important;
flex: 1 1 auto !important;
color: var(--prd-c-ink) !important;
text-decoration: none !important;
}
html body .prd-shop-main .products-loop .product .content-product{
display: flex !important;
flex-direction: column !important;
flex: 1 1 auto !important;
}
html body .prd-shop-main .products-loop .product .product-image-wrapper{
background: #ffffff !important;
padding: 1.25rem !important;
border-bottom: 1px solid var(--prd-c-line) !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
aspect-ratio: 4 / 3;
}
html body .prd-shop-main .products-loop .product .product-content-image{
display: block !important;
width: 100% !important;
height: 100% !important;
max-height: 260px !important;
}
html body .prd-shop-main .products-loop .product img{
width: 100% !important;
height: 100% !important;
max-height: 240px !important;
object-fit: contain !important;
display: block !important;
margin: 0 auto !important;
border-radius: 0 !important;
transition: transform .35s ease;
background: transparent !important;
}
html body .prd-shop-main .products-loop .product:hover img{ transform: scale(1.03); }

/* hide noisy royal helpers */
html body .prd-shop-main .products-loop .product .label-product,
html body .prd-shop-main .products-loop .product .footer-product,
html body .prd-shop-main .products-loop .product .show-quickly,
html body .prd-shop-main .products-loop .product .product-excerpt,
html body .prd-shop-main .products-loop .product .products-page-cats,
html body .prd-shop-main .products-loop .product .product-second-image,
html body .prd-shop-main .products-loop .product .swap-images{ display: none !important; }

/* product details column */
html body .prd-shop-main .products-loop .product .product-details{
display: flex !important;
flex-direction: column !important;
flex: 1 1 auto !important;
text-align: left !important;
padding: 1rem 1.15rem 1.15rem !important;
gap: .5rem !important;
}
html body .prd-shop-main .products-loop .product .product-title{
margin: 0 !important;
padding: 0 !important;
flex: 1 1 auto;
}
html body .prd-shop-main .products-loop .product .product-title a{
font-size: 0.95rem !important;
font-family: var(--prd-ff-sans) !important;
font-weight: 500 !important;
color: var(--prd-c-ink) !important;
line-height: 1.35 !important;
text-decoration: none !important;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
html body .prd-shop-main .products-loop .product .product-title a:hover{ color: var(--prd-c-accent-ink) !important; }

/* CTA — Add to Quote button */
html body .prd-shop-main .products-loop .product .addquotelistlink,
html body .prd-shop-main .products-loop .product .quotelistadd,
html body .prd-shop-main .products-loop .product .dvin_wcql_shopbtn_wrap{
display: block !important;
width: 100% !important;
margin: 0 !important;
padding: 0 !important;
}
html body .prd-shop-main .products-loop .product .addquotelistbutton,
html body .prd-shop-main .products-loop .product .button.alt{
display: block !important;
width: 100% !important;
margin: 0 !important;
background: var(--prd-c-ink) !important;
color: #ffffff !important;
border: 0 !important;
border-radius: 999px !important;
padding: .7rem 1rem !important;
font-size: .8125rem !important;
font-weight: 600 !important;
letter-spacing: .04em !important;
text-transform: uppercase !important;
font-family: var(--prd-ff-sans) !important;
cursor: pointer !important;
text-align: center !important;
box-shadow: none !important;
transition: background .15s ease !important;
}
html body .prd-shop-main .products-loop .product .addquotelistbutton:hover,
html body .prd-shop-main .products-loop .product .button.alt:hover{
background: var(--prd-c-accent) !important;
color: #ffffff !important;
}
html body .prd-shop-main .products-loop .product .quotelistaddedbrowse,
html body .prd-shop-main .products-loop .product .quotelistexistsbrowse{
margin-top: .5rem !important;
text-align: center !important;
}
html body .prd-shop-main .products-loop .product .quotelistaddedbrowse a,
html body .prd-shop-main .products-loop .product .quotelistexistsbrowse a{
display: inline !important;
background: transparent !important;
color: var(--prd-c-muted) !important;
border: 0 !important;
border-radius: 0 !important;
padding: 0 !important;
text-align: center !important;
font-size: .75rem !important;
font-weight: 500 !important;
letter-spacing: 0 !important;
text-transform: none !important;
text-decoration: underline !important;
transition: color .15s ease !important;
}
html body .prd-shop-main .products-loop .product .quotelistaddedbrowse a:hover,
html body .prd-shop-main .products-loop .product .quotelistexistsbrowse a:hover{
background: transparent !important;
color: var(--prd-c-accent-ink) !important;
}
html body .prd-shop-main .products-loop .product .quotelistaddresponse{ display: none !important; }

/* Quote-list "adding…" spinner.
   The plugin ships a tiny black GIF inside .ajax-loading-img and toggles its
   display via fadeIn/fadeOut. We hide that GIF entirely and instead paint a
   CSS ring spinner on the Add-to-Quote button itself when JS adds .is-adding. */
@keyframes prd-spin { to { transform: rotate(360deg); } }

html body .prd-shop-main .products-loop .product .dvin_wcql_shopbtn_ajaxico_wrap,
html body .prd-shop-main .products-loop .product .ajax-loading-img,
html body .prd-shop-main .products-loop .product .ajax-loading-img-bottom{
display: none !important;
}

html body .prd-shop-main .products-loop .product .addquotelistbutton.is-adding,
html body .prd-shop-main .products-loop .product .button.alt.is-adding{
color: transparent !important;
position: relative !important;
pointer-events: none !important;
}
html body .prd-shop-main .products-loop .product .addquotelistbutton.is-adding::after,
html body .prd-shop-main .products-loop .product .button.alt.is-adding::after{
content: "" !important;
position: absolute !important;
top: 50% !important;
left: 50% !important;
width: 18px !important;
height: 18px !important;
margin: -9px 0 0 -9px !important;
border: 2px solid rgba(255,255,255,0.35) !important;
border-top-color: #fff !important;
border-radius: 50% !important;
animation: prd-spin .65s linear infinite !important;
box-sizing: border-box !important;
}

/* ===========================================================================
   PRD PDP — single product page
   =========================================================================== */
html body .prd-pdp{ font-family: var(--prd-ff-sans); color: var(--prd-c-ink); }

.prd-pdp-hero{
background: var(--prd-c-bg-alt);
padding-block: clamp(1.75rem, 4vw, 2.75rem) !important;
border-bottom: 1px solid var(--prd-c-line);
}
.prd-pdp-hero .prd-breadcrumb{ margin-bottom: .85rem; }
.prd-pdp-eyebrow{ color: var(--prd-c-accent-ink) !important; margin: 0 0 .5rem !important; }
.prd-pdp-title{ margin: 0 !important; max-width: 900px; }

/* Layout */
.prd-pdp-body{ padding-block: clamp(2rem, 5vw, 3.5rem) !important; }
.prd-pdp-grid{
display: grid !important;
grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
gap: clamp(1.5rem, 4vw, 3.5rem);
align-items: start;
}
@media (max-width: 900px){ .prd-pdp-grid{ grid-template-columns: 1fr; } }

/* Gallery */
.prd-pdp-gallery{ display: flex; flex-direction: column; gap: 1rem; }
.prd-pdp-gallery-main{
background: #ffffff;
border-radius: 18px;
border: 1px solid var(--prd-c-line);
overflow: hidden;
display: flex; align-items: center; justify-content: center;
aspect-ratio: 1 / 1;
padding: 2rem;
}
.prd-pdp-gallery-main img{
max-width: 100%; max-height: 100%;
width: auto; height: auto;
object-fit: contain;
display: block;
}
.prd-pdp-gallery-thumbs{
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: .65rem;
}
.prd-pdp-gallery-thumb{
background: #fff;
border: 1px solid var(--prd-c-line);
border-radius: 10px;
padding: .5rem;
cursor: pointer;
aspect-ratio: 1 / 1;
display: flex; align-items: center; justify-content: center;
transition: border-color .15s ease, transform .15s ease;
}
.prd-pdp-gallery-thumb:hover{ border-color: var(--prd-c-accent); }
.prd-pdp-gallery-thumb.is-active{ border-color: var(--prd-c-ink); box-shadow: 0 0 0 2px rgba(17,20,24,.08); }
.prd-pdp-gallery-thumb img{ max-width: 100%; max-height: 100%; object-fit: contain; }

/* Info panel */
.prd-pdp-info{ position: sticky; top: 110px; }
@media (max-width: 900px){ .prd-pdp-info{ position: static; } }

.prd-pdp-cat{ margin: 0 0 .35rem; font-size: .8125rem; color: var(--prd-c-muted); }
.prd-pdp-cat a{ color: var(--prd-c-accent-ink); text-decoration: none; font-weight: 600; }
.prd-pdp-cat a:hover{ text-decoration: underline; }

.prd-pdp-info-title{
margin: 0 0 .85rem !important;
font-family: var(--prd-ff-display);
font-size: clamp(1.65rem, 3vw, 2.1rem);
font-weight: 600;
line-height: 1.15;
color: var(--prd-c-ink);
}

.prd-pdp-price{
margin: 0 0 1.25rem !important;
font-size: 1.5rem;
font-weight: 700;
color: var(--prd-c-accent-ink);
font-family: var(--prd-ff-sans);
}
.prd-pdp-price .woocommerce-Price-amount{ color: var(--prd-c-accent-ink); }
.prd-pdp-price del{ color: var(--prd-c-muted); font-weight: 400; margin-right: .5rem; font-size: 1.1rem; }
.prd-pdp-price ins{ background: transparent; text-decoration: none; }

.prd-pdp-short{ font-size: 1rem; color: var(--prd-c-ink-soft); margin: 0 0 1.5rem; line-height: 1.55; }
.prd-pdp-short p{ margin: 0 0 .75rem; }

/* Add-to-cart row → quote button */
html body .prd-pdp-cta-row{ margin: 0 0 1.5rem; }
html body .prd-pdp-cta-row form.cart{
display: flex !important;
gap: .65rem !important;
align-items: stretch !important;
margin: 0 !important;
flex-wrap: wrap;
}
html body .prd-pdp-cta-row .quantity{
display: flex !important;
margin: 0 !important;
}
html body .prd-pdp-cta-row .quantity input.qty,
html body .prd-pdp-cta-row .quantity input[type="number"]{
width: 78px !important;
height: 52px !important;
border: 1px solid var(--prd-c-line) !important;
border-radius: 12px !important;
padding: 0 .85rem !important;
font-size: 1rem !important;
font-family: var(--prd-ff-sans) !important;
text-align: center !important;
background: #fff !important;
color: var(--prd-c-ink) !important;
box-shadow: none !important;
}
html body .prd-pdp-cta-row .single_add_to_cart_button{ display: none !important; }
html body .prd-pdp-cta-row .addquotelistbutton_prodpage,
html body .prd-pdp-cta-row .button.alt{
flex: 1 1 220px !important;
min-height: 52px !important;
background: var(--prd-c-accent) !important;
color: #ffffff !important;
border: 0 !important;
border-radius: 999px !important;
padding: .9rem 2rem !important;
font-size: .9375rem !important;
font-weight: 700 !important;
letter-spacing: .06em !important;
text-transform: uppercase !important;
font-family: var(--prd-ff-sans) !important;
cursor: pointer !important;
box-shadow: none !important;
transition: background .15s ease !important;
}
html body .prd-pdp-cta-row .addquotelistbutton_prodpage:hover,
html body .prd-pdp-cta-row .button.alt:hover{ background: var(--prd-c-ink) !important; color: #fff !important; }
html body .prd-pdp-cta-row .dvin_wcql_btn_ajaxico_wrap,
html body .prd-pdp-cta-row .ajax-loading-img,
html body .prd-pdp-cta-row .ajax-loading-img-bottom{
display: none !important;
}
html body .prd-pdp-cta-row .addquotelistbutton_prodpage.is-adding,
html body .prd-pdp-cta-row .button.alt.is-adding{
color: transparent !important;
position: relative !important;
pointer-events: none !important;
}
html body .prd-pdp-cta-row .addquotelistbutton_prodpage.is-adding::after,
html body .prd-pdp-cta-row .button.alt.is-adding::after{
content: "" !important;
position: absolute !important;
top: 50% !important;
left: 50% !important;
width: 22px !important;
height: 22px !important;
margin: -11px 0 0 -11px !important;
border: 2px solid rgba(255,255,255,0.35) !important;
border-top-color: #fff !important;
border-radius: 50% !important;
animation: prd-spin .65s linear infinite !important;
box-sizing: border-box !important;
}
html body .prd-pdp-cta-row .quotelistaddedbrowse_prodpage a,
html body .prd-pdp-cta-row .quotelistexistsbrowse_prodpage a{
display: inline-block;
background: var(--prd-c-ink);
color: #fff !important;
border-radius: 999px;
padding: .85rem 1.5rem;
text-decoration: none !important;
font-weight: 700;
letter-spacing: .04em;
text-transform: uppercase;
font-size: .85rem;
}

/* Trust bullets */
.prd-pdp-trust{
list-style: none; padding: 1.25rem 0 0; margin: 0;
border-top: 1px solid var(--prd-c-line);
display: flex; flex-direction: column; gap: .7rem;
clear: both; width: 100%;
}
.prd-pdp-trust li{
display: flex; align-items: center; gap: .65rem;
font-size: .9375rem;
color: var(--prd-c-ink-soft);
}
.prd-pdp-trust svg{ color: var(--prd-c-accent); flex-shrink: 0; }

.prd-pdp-help{
display: inline-flex; align-items: center; gap: .5rem;
margin-top: 1.25rem;
color: var(--prd-c-ink) !important;
text-decoration: none !important;
font-weight: 600;
font-size: .9375rem;
border-bottom: 1px solid var(--prd-c-line);
padding-bottom: .25rem;
}
.prd-pdp-help:hover{ color: var(--prd-c-accent-ink) !important; border-color: var(--prd-c-accent); }

/* Description */
.prd-pdp-desc{ padding-block: clamp(2rem, 4vw, 3rem) !important; border-top: 1px solid var(--prd-c-line); }
.prd-pdp-desc-title{ margin: 0 0 1rem !important; }
.prd-pdp-desc-body{ font-size: 1rem; line-height: 1.6; color: var(--prd-c-ink-soft); max-width: 820px; }
.prd-pdp-desc-body ul{ padding-left: 1.25rem; margin: .5rem 0 1rem; }
.prd-pdp-desc-body li{ margin: .25rem 0; }

/* Related */
.prd-pdp-related{ padding-block: clamp(2rem, 4vw, 3rem) !important; }
.prd-pdp-related .related.products > h2,
.prd-pdp-related .related > h2{
font-family: var(--prd-ff-display) !important;
font-size: clamp(1.5rem, 3vw, 2rem) !important;
font-weight: 600 !important;
color: var(--prd-c-ink) !important;
margin: 0 0 1.5rem !important;
border: 0 !important;
padding: 0 !important;
text-align: left !important;
text-transform: none !important;
letter-spacing: 0 !important;
}
.prd-pdp-related ul.products,
.prd-pdp-related .products-loop{
display: grid !important;
grid-template-columns: repeat(4, 1fr) !important;
gap: 1.25rem !important;
list-style: none !important;
padding: 0 !important;
margin: 0 !important;
}
@media (max-width: 1100px){ .prd-pdp-related ul.products, .prd-pdp-related .products-loop{ grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 700px){ .prd-pdp-related ul.products, .prd-pdp-related .products-loop{ grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 460px){ .prd-pdp-related ul.products, .prd-pdp-related .products-loop{ grid-template-columns: 1fr !important; } }

.prd-pdp-related .product,
.prd-pdp-related li.product{
width: auto !important; max-width: none !important; margin: 0 !important;
padding: 0 !important; float: none !important; clear: none !important;
background: #fff !important;
border: 1px solid var(--prd-c-line) !important;
border-radius: 14px !important;
overflow: hidden !important;
display: flex !important; flex-direction: column !important;
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.prd-pdp-related .product:hover{ transform: translateY(-2px); box-shadow: 0 12px 32px -16px rgba(0,0,0,.18); border-color: var(--prd-c-accent); }
.prd-pdp-related .product .woocommerce-LoopProduct-link,
.prd-pdp-related .product > a{ display: flex !important; flex-direction: column !important; flex: 1 1 auto !important; color: var(--prd-c-ink) !important; text-decoration: none !important; }
.prd-pdp-related .product .product-image-wrapper{
background: #ffffff !important;
padding: 1rem !important;
border-bottom: 1px solid var(--prd-c-line) !important;
display: flex !important; align-items: center !important; justify-content: center !important;
aspect-ratio: 4 / 3;
}
.prd-pdp-related .product img{
width: 100% !important; height: 100% !important; max-height: 200px !important;
object-fit: contain !important; background: transparent !important;
margin: 0 auto !important; border-radius: 0 !important;
}
.prd-pdp-related .product .label-product,
.prd-pdp-related .product .footer-product,
.prd-pdp-related .product .show-quickly,
.prd-pdp-related .product .product-excerpt,
.prd-pdp-related .product .products-page-cats,
.prd-pdp-related .product .product-second-image,
.prd-pdp-related .product .swap-images,
.prd-pdp-related .product .price{ display: none !important; }
.prd-pdp-related .product .product-details{
display: flex !important; flex-direction: column !important; flex: 1 1 auto !important;
text-align: left !important;
padding: .85rem 1rem 1rem !important;
gap: .5rem !important;
}
.prd-pdp-related .product .product-title{ margin: 0 !important; padding: 0 !important; flex: 1 1 auto; }
.prd-pdp-related .product .product-title a{
font-size: .9rem !important; font-family: var(--prd-ff-sans) !important;
font-weight: 500 !important; color: var(--prd-c-ink) !important;
line-height: 1.35 !important; text-decoration: none !important;
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.prd-pdp-related .product .addquotelistbutton,
.prd-pdp-related .product .button.alt{
display: block !important; width: 100% !important; margin: 0 !important;
background: var(--prd-c-ink) !important; color: #fff !important;
border: 0 !important; border-radius: 999px !important;
padding: .6rem 1rem !important;
font-size: .75rem !important; font-weight: 600 !important;
letter-spacing: .04em !important; text-transform: uppercase !important;
font-family: var(--prd-ff-sans) !important;
cursor: pointer !important; text-align: center !important;
}
.prd-pdp-related .product .addquotelistbutton:hover,
.prd-pdp-related .product .button.alt:hover{ background: var(--prd-c-accent) !important; }
.prd-pdp-related .product .dvin_wcql_shopbtn_ajaxico_wrap,
.prd-pdp-related .product .ajax-loading-img,
.prd-pdp-related .product .quotelistaddresponse{ display: none !important; }

/* Hide Royal's PDP container clutter just in case */
html body .prd-pdp .product-navigation,
html body .prd-pdp .meta-title,
html body .prd-pdp .email-link,
html body .prd-pdp .product_meta,
html body .prd-pdp .single-product-sidebar,
html body .prd-pdp .tabs.tabs-default,
html body .prd-pdp .carousel-area{ display: none !important; }

/* ===========================================================================
   PDP — break out of Royal's div.product flex/grid layout
   =========================================================================== */
html body .prd-pdp,
html body div.product.prd-pdp{
display: block !important;
width: 100% !important;
max-width: none !important;
float: none !important;
margin: 0 !important;
padding: 0 !important;
background: transparent !important;
}
html body .prd-pdp > .prd-pdp-hero,
html body .prd-pdp > .prd-pdp-body,
html body .prd-pdp > .prd-pdp-desc,
html body .prd-pdp > .prd-pdp-related{
display: block !important;
width: 100% !important;
max-width: none !important;
float: none !important;
clear: both !important;
}
html body .prd-pdp .prd-container{
max-width: var(--prd-container-max, 1280px) !important;
margin-inline: auto !important;
padding-inline: var(--prd-container-pad, 1.25rem) !important;
width: auto !important;
float: none !important;
}

/* The H1 in the hero was inheriting Royal's huge .prd-h1 -- shrink for PDP */
html body .prd-pdp .prd-pdp-title{
font-family: var(--prd-ff-display) !important;
font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
font-weight: 400 !important;
line-height: 1.15 !important;
text-transform: none !important;
letter-spacing: -0.01em !important;
max-width: 800px !important;
}

/* Hide the duplicate info-title (we already have hero H1) */
html body .prd-pdp .prd-pdp-info-title{ display: none !important; }

/* Make sure related products section's outer Royal wrappers don't break grid */
html body .prd-pdp .prd-pdp-related .related,
html body .prd-pdp .prd-pdp-related .related.products{
display: block !important; width: 100% !important; max-width: none !important;
}

/* ===========================================================================
   PDP polish — breadcrumb alignment, CTA row, in-column description
   =========================================================================== */

/* Breadcrumb left-aligned, no inherited centering from Royal */
html body .prd-pdp .prd-pdp-hero .woocommerce-breadcrumb,
html body .prd-pdp .prd-pdp-hero .prd-breadcrumb{
text-align: left !important;
justify-content: flex-start !important;
margin: 0 0 .85rem !important;
padding: 0 !important;
font-size: .8125rem !important;
color: var(--prd-c-ink-soft) !important;
}
html body .prd-pdp .prd-pdp-hero .woocommerce-breadcrumb a,
html body .prd-pdp .prd-pdp-hero .prd-breadcrumb a{
color: var(--prd-c-ink-soft) !important;
text-decoration: none !important;
}
html body .prd-pdp .prd-pdp-hero .woocommerce-breadcrumb a:hover{ color: var(--prd-c-accent-ink) !important; }
html body .prd-pdp .prd-pdp-hero .prd-bc-current{ color: var(--prd-c-ink) !important; font-weight: 500 !important; }
html body .prd-pdp .prd-pdp-hero .prd-bc-sep{ color: var(--prd-c-ink-soft) !important; opacity: .65 !important; margin: 0 .35rem !important; }

html body .prd-pdp .prd-pdp-eyebrow{ text-align: left !important; margin: .25rem 0 .5rem !important; }
html body .prd-pdp .prd-pdp-title{ text-align: left !important; }

/* Info column — description now lives here, drop sticky */
html body .prd-pdp .prd-pdp-info{ position: static !important; top: auto !important; }

/* CTA row clean-up: align qty + button on one tidy row */
html body .prd-pdp .prd-pdp-cta-row{ margin: 0 0 1.25rem !important; }
html body .prd-pdp .prd-pdp-cta-row form.cart{
gap: .65rem !important;
align-items: center !important;
flex-wrap: nowrap !important;
}
html body .prd-pdp .prd-pdp-cta-row .quantity input.qty,
html body .prd-pdp .prd-pdp-cta-row .quantity input[type="number"]{
width: 64px !important;
height: 48px !important;
border-radius: 10px !important;
font-size: .95rem !important;
flex-shrink: 0 !important;
}
html body .prd-pdp .prd-pdp-cta-row .addquotelistbutton_prodpage,
html body .prd-pdp .prd-pdp-cta-row .button.alt{
flex: 0 1 auto !important;
min-width: 200px !important;
min-height: 48px !important;
padding: 0 1.75rem !important;
font-size: .8125rem !important;
letter-spacing: .08em !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
}
@media (max-width: 480px){
html body .prd-pdp .prd-pdp-cta-row form.cart{ flex-wrap: wrap !important; }
html body .prd-pdp .prd-pdp-cta-row .addquotelistbutton_prodpage,
html body .prd-pdp .prd-pdp-cta-row .button.alt{ flex: 1 1 100% !important; }
}

/* Inside-column description block */
html body .prd-pdp .prd-pdp-info .prd-pdp-desc{
margin-top: 1.5rem !important;
padding-top: 0 !important;
border-top: 0 !important;
border-bottom: 0 !important;
padding-block: 0 !important;
}
html body .prd-pdp .prd-pdp-info .prd-pdp-desc-title{
font-family: var(--prd-ff-sans) !important;
font-size: .75rem !important;
font-weight: 700 !important;
letter-spacing: .14em !important;
text-transform: uppercase !important;
color: var(--prd-c-ink-soft) !important;
margin: 0 0 .85rem !important;
}
html body .prd-pdp .prd-pdp-info .prd-pdp-desc-body{
font-size: .9375rem !important;
color: var(--prd-c-ink-soft) !important;
max-width: none !important;
line-height: 1.6 !important;
}
html body .prd-pdp .prd-pdp-info .prd-pdp-desc-body p{ margin: 0 0 .75rem; }
html body .prd-pdp .prd-pdp-info .prd-pdp-desc-body ul{
padding-left: 1.1rem; margin: .5rem 0 .75rem;
}
html body .prd-pdp .prd-pdp-info .prd-pdp-desc-body li{
margin: .2rem 0;
color: var(--prd-c-ink) !important;
}

/* Kill inherited Royal/WC hover borders on PDP gallery thumbs */
html body .prd-pdp .prd-pdp-gallery-thumb,
html body .prd-pdp .prd-pdp-gallery-thumb:hover,
html body .prd-pdp .prd-pdp-gallery-thumb:focus,
html body .prd-pdp .prd-pdp-gallery-thumb:active{
outline: 0 !important;
box-shadow: none !important;
}
html body .prd-pdp .prd-pdp-gallery-thumb img,
html body .prd-pdp .prd-pdp-gallery-thumb:hover img,
html body .prd-pdp .prd-pdp-gallery-thumb img:hover{
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
background: transparent !important;
padding: 0 !important;
}
html body .prd-pdp .prd-pdp-gallery-thumb:hover{ border-color: var(--prd-c-accent) !important; }
html body .prd-pdp .prd-pdp-gallery-thumb.is-active{
border-color: var(--prd-c-ink) !important;
box-shadow: 0 0 0 2px rgba(17,20,24,.08) !important;
}

/* =====================================================================
   Variable products
   ===================================================================== */

/* --- Shop archive: "Choose Options" CTA for variable products --- */
html body .prd-shop-main .prd-choose-variation-wrap{
	margin: 0 !important;
	width: 100% !important;
	display: block !important;
	padding: 0 !important;
}
html body .prd-shop-main .products-loop .product a.prd-choose-variation,
html body .prd-shop-main a.prd-choose-variation{
	display: block !important;
	width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	background: var(--prd-c-ink) !important;
	color: #ffffff !important;
	text-align: center !important;
	padding: .7rem 1rem !important;
	border-radius: 999px !important;
	font-size: .8125rem !important;
	font-weight: 600 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	font-family: var(--prd-ff-sans) !important;
	border: 0 !important;
	box-shadow: none !important;
	transition: background .15s ease !important;
}
html body .prd-shop-main .products-loop .product a.prd-choose-variation:hover,
html body .prd-shop-main .products-loop .product a.prd-choose-variation:focus,
html body .prd-shop-main a.prd-choose-variation:hover,
html body .prd-shop-main a.prd-choose-variation:focus{
	background: var(--prd-c-accent) !important;
	color: #ffffff !important;
}

/* --- PDP: Variation picker styling --- */
html body.single-product .prd-pdp-cta-row form.variations_form.cart,
html body.single-product.woocommerce div.product form.variations_form.cart{
	display: block !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: none !important;
	flex-wrap: nowrap;
	overflow: hidden;
}
html body.single-product .prd-pdp-cta-row table.variations,
html body.single-product.woocommerce div.product form.cart table.variations{
	display: block !important;
	width: 100% !important;
	border: 0 !important;
	margin: 0 0 1rem !important;
	background: transparent !important;
}
html body.single-product .prd-pdp-cta-row table.variations tbody{
	display: block !important;
	width: 100% !important;
	background: transparent !important;
}
html body.single-product .prd-pdp-cta-row table.variations tr{
	display: flex !important;
	flex-direction: column !important;
	gap: .35rem;
	margin: 0 0 .85rem;
	border: 0 !important;
	background: transparent !important;
	width: 100% !important;
}
html body.single-product .prd-pdp-cta-row table.variations th,
html body.single-product .prd-pdp-cta-row table.variations td,
html body.single-product.woocommerce div.product form.cart .variations th,
html body.single-product.woocommerce div.product form.cart .variations td{
	display: block !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	width: 100% !important;
	text-align: left !important;
	float: none !important;
}
html body.single-product .prd-pdp-cta-row table.variations th.label,
html body.single-product.woocommerce div.product form.cart .variations th.label{
	font-family: var(--prd-ff-sans) !important;
	font-size: .75rem !important;
	font-weight: 600 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	color: var(--prd-c-muted) !important;
	padding: 0 0 .25rem !important;
	text-align: left !important;
}
html body.single-product .prd-pdp-cta-row table.variations th.label label,
html body.single-product.woocommerce div.product form.cart .variations label{
	margin: 0 !important;
	font: inherit !important;
	color: inherit !important;
	text-align: left !important;
	display: block !important;
	float: none !important;
}
html body.single-product .prd-pdp-cta-row table.variations td.value{
	position: relative;
}
html body.single-product .prd-pdp-cta-row table.variations select{
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 100%;
	min-height: 52px;
	border: 1px solid var(--prd-c-line);
	border-radius: 12px;
	padding: 0 2.5rem 0 1rem;
	font-size: 1rem;
	font-family: var(--prd-ff-sans);
	color: var(--prd-c-ink);
	background-color: #fff;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23111418' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	cursor: pointer;
	box-shadow: none;
}
html body.single-product .prd-pdp-cta-row table.variations select:focus{
	outline: 0;
	border-color: var(--prd-c-ink);
	box-shadow: 0 0 0 3px rgba(17,20,24,0.08);
}
html body.single-product .prd-pdp-cta-row .reset_variations{
	display: inline-block !important;
	font-size: .8rem;
	color: var(--prd-c-muted);
	text-decoration: underline;
	margin: -.35rem 0 .85rem;
	padding: 0;
}
html body.single-product .prd-pdp-cta-row .reset_variations:hover{
	color: var(--prd-c-ink);
}

html body.single-product .prd-pdp-cta-row .single_variation_wrap{
	width: 100% !important;
	display: block !important;
	clear: both !important;
	float: none !important;
}
html body.single-product .prd-pdp-cta-row .woocommerce-variation{ margin: 0 0 .85rem; }
html body.single-product .prd-pdp-cta-row .woocommerce-variation-price{
	font-family: var(--prd-ff-display);
	font-size: 1.5rem;
	color: var(--prd-c-ink);
	margin: 0 0 .35rem;
}
html body.single-product .prd-pdp-cta-row .woocommerce-variation-price .price{
	font-family: var(--prd-ff-display);
	font-weight: 400;
}
html body.single-product .prd-pdp-cta-row .woocommerce-variation-availability{
	font-size: .9rem;
	color: var(--prd-c-muted);
	margin: 0 0 .25rem;
}
html body.single-product .prd-pdp-cta-row .woocommerce-variation-description{
	font-size: .95rem;
	color: var(--prd-c-ink-soft);
	line-height: 1.55;
}

/* The variation form's qty + add-to-quote row */
html body.single-product .prd-pdp-cta-row .variations_form .woocommerce-variation-add-to-cart{
	display: flex !important;
	gap: .65rem !important;
	align-items: stretch !important;
	flex-wrap: wrap;
	margin: 0;
}
html body.single-product .prd-pdp-cta-row .variations_form .woocommerce-variation-add-to-cart .quantity{
	display: flex;
	margin: 0;
}

/* Disabled state for add-to-quote when no variation chosen */
html body.single-product .prd-pdp-cta-row .addquotelistbutton_prodpage.disabled,
html body.single-product .prd-pdp-cta-row .button.alt.disabled{
	opacity: .55 !important;
	cursor: not-allowed !important;
	background: var(--prd-c-muted) !important;
}
html body.single-product .prd-pdp-cta-row .addquotelistbutton_prodpage.disabled:hover,
html body.single-product .prd-pdp-cta-row .button.alt.disabled:hover{
	background: var(--prd-c-muted) !important;
}

@media (max-width: 640px){
	html body.single-product .prd-pdp-cta-row .variations_form .woocommerce-variation-add-to-cart{
		flex-direction: column;
		align-items: stretch !important;
	}
	html body.single-product .prd-pdp-cta-row .variations_form .quantity input.qty{
		width: 100% !important;
	}
}

/* ===== Force white text on the main shop page hero (override Royal/Woo) ===== */
html body .prd-shop-page-hero,
html body .prd-shop-page-hero .prd-page-hero-inner,
html body .prd-shop-page-hero .prd-page-hero-title,
html body .prd-shop-page-hero .prd-page-hero-lead,
html body .prd-shop-page-hero h1,
html body .prd-shop-page-hero h1.prd-page-hero-title,
html body .prd-shop-page-hero h2,
html body .prd-shop-page-hero p{
	color: #fff !important;
}
html body .prd-shop-page-hero .prd-page-hero-lead{
	color: rgba(255,255,255,0.92) !important;
}
html body .prd-shop-page-hero .prd-page-hero-eyebrow{
	color: #fff !important;
	background: rgba(25,55,101,0.95) !important;
}

/* ===== Top + bottom pagination wrappers ===== */
html body .prd-shop-pagination{
display: flex;
justify-content: flex-end;
}
html body .prd-shop-pagination--top{
margin: 0 0 1.5rem;
padding: .25rem 0 1.25rem;
border-bottom: 1px solid var(--prd-c-line);
}
html body .prd-shop-pagination--top .woocommerce-pagination{
margin: 0;
}
html body .prd-shop-pagination--bottom{
margin-top: 1.5rem;
padding-top: 1.25rem;
border-top: 1px solid var(--prd-c-line);
}
