/* ===== Quote Flow Pages ============================== */

body.prd-template-quote .prd-main { padding-block: var(--prd-s-7); background: var(--prd-c-bg-alt); }
body.prd-template-quote #content { max-width: var(--prd-container-max); margin-inline: auto; padding-inline: var(--prd-container-pad); }

/* Quotelist table restyle */
body.prd-template-quote table.shop_table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: var(--prd-r-lg);
	overflow: hidden;
	box-shadow: var(--prd-shadow-sm);
	font-family: var(--prd-ff-sans);
	margin-bottom: var(--prd-s-6);
}
body.prd-template-quote table.shop_table thead {
	background: var(--prd-c-ink);
	color: #fff;
}
body.prd-template-quote table.shop_table th {
	text-align: left;
	padding: var(--prd-s-4) var(--prd-s-5);
	font-size: var(--prd-fs-xs);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
body.prd-template-quote table.shop_table td {
	padding: var(--prd-s-4) var(--prd-s-5);
	border-bottom: 1px solid var(--prd-c-line);
	vertical-align: middle;
	font-size: var(--prd-fs-sm);
}
body.prd-template-quote table.shop_table img { max-width: 64px; height: auto; border-radius: var(--prd-r-sm); }
body.prd-template-quote table.shop_table .product-name a { color: var(--prd-c-ink); font-weight: 600; text-decoration: none; }
body.prd-template-quote .grandtotalpricecell, body.prd-template-quote .grandqtynumcell {
	font-weight: 700; font-size: var(--prd-fs-md);
}
body.prd-template-quote .remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--prd-c-bg-alt);
	color: var(--prd-c-danger);
	text-decoration: none;
	font-size: 18px;
	line-height: 1;
}
body.prd-template-quote .remove:hover { background: var(--prd-c-danger); color: #fff; }
body.prd-template-quote .wcqlupdatelistbtn,
body.prd-template-quote .button.wc-backward,
body.prd-template-quote .button.wc-forward {
	display: inline-flex;
	align-items: center;
	gap: var(--prd-s-2);
	padding: 0.7rem 1.25rem;
	border-radius: var(--prd-r-pill);
	background: var(--prd-c-ink);
	color: #fff;
	border: 0;
	font-family: var(--prd-ff-sans);
	font-size: var(--prd-fs-sm);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--prd-dur) var(--prd-ease);
}
body.prd-template-quote .wcqlupdatelistbtn:hover { background: #000; }

/* Quote form */
.prd-quote-form {
	background: #fff;
	border-radius: var(--prd-r-lg);
	padding: clamp(1.5rem, 4vw, var(--prd-s-7));
	box-shadow: var(--prd-shadow-sm);
	margin-top: var(--prd-s-6);
	font-family: var(--prd-ff-sans);
}
.prd-quote-form-head { margin-bottom: var(--prd-s-6); }
.prd-quote-form-head .prd-h2 { margin-bottom: var(--prd-s-2); }
.prd-quote-form-head .prd-lead { margin: 0; font-size: var(--prd-fs-sm); color: var(--prd-c-ink-soft); }
.prd-form-msg, .prd-form-errors { margin-top: var(--prd-s-3); font-size: var(--prd-fs-sm); color: var(--prd-c-danger); }
.prd-form-errors:not(:empty) {
	background: #fff4f4;
	border: 1px solid #f3c2c2;
	padding: var(--prd-s-3) var(--prd-s-4);
	border-radius: var(--prd-r-md);
}

.prd-quote-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--prd-s-4) var(--prd-s-5);
}
@media (max-width: 700px) { .prd-quote-fields { grid-template-columns: 1fr; } }
.prd-field { display: flex; flex-direction: column; }
.prd-field-full { grid-column: 1 / -1; }
.prd-field-checks { grid-column: 1 / -1; flex-direction: row; gap: var(--prd-s-5); flex-wrap: wrap; }
.prd-field label { font-size: var(--prd-fs-xs); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--prd-c-ink-soft); margin-bottom: var(--prd-s-2); }
.prd-req { color: var(--prd-c-danger); }
.prd-field input[type="text"],
.prd-field input[type="email"],
.prd-field input[type="tel"],
.prd-field input[type="date"],
.prd-field input[type="number"],
.prd-field select,
.prd-field textarea {
	border: 1px solid var(--prd-c-line);
	border-radius: var(--prd-r-md);
	padding: 0.7rem 0.9rem;
	font-family: inherit;
	font-size: var(--prd-fs-sm);
	color: var(--prd-c-ink);
	background: #fff;
	width: 100%;
	transition: border-color var(--prd-dur) var(--prd-ease), box-shadow var(--prd-dur) var(--prd-ease);
}
.prd-field input:focus, .prd-field select:focus, .prd-field textarea:focus {
	outline: none;
	border-color: var(--prd-c-accent);
	box-shadow: 0 0 0 3px rgba(25, 55, 101, 0.18);
}
.prd-check {
	display: inline-flex;
	align-items: center;
	gap: var(--prd-s-2);
	font-size: var(--prd-fs-sm);
	font-weight: 500;
	color: var(--prd-c-ink-soft);
	text-transform: none;
	letter-spacing: 0;
	margin: 0;
}
.prd-check input { width: 18px; height: 18px; }

.prd-field-radios { grid-column: 1 / -1; }
.prd-field-legend {
	display: block;
	font-size: var(--prd-fs-xs);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--prd-c-ink-soft);
	margin-bottom: var(--prd-s-2);
}
.prd-radio-row { display: flex; flex-wrap: wrap; gap: var(--prd-s-3); }
.prd-radio {
	display: inline-flex;
	align-items: center;
	gap: var(--prd-s-2);
	padding: 0.55rem 0.9rem;
	border: 1px solid var(--prd-c-line);
	border-radius: var(--prd-r-md);
	background: #fff;
	font-size: var(--prd-fs-sm);
	font-weight: 500;
	color: var(--prd-c-ink);
	cursor: pointer;
	transition: border-color var(--prd-dur) var(--prd-ease), box-shadow var(--prd-dur) var(--prd-ease), background var(--prd-dur) var(--prd-ease);
}
.prd-radio input { width: 16px; height: 16px; margin: 0; accent-color: var(--prd-c-accent); }
.prd-radio:hover { border-color: var(--prd-c-accent); }
.prd-radio:has(input:checked) {
	border-color: var(--prd-c-accent);
	background: rgba(25, 55, 101, 0.06);
	box-shadow: 0 0 0 2px rgba(25, 55, 101, 0.15);
}

.prd-quote-form-actions {
	margin-top: var(--prd-s-6);
	padding-top: var(--prd-s-5);
	border-top: 1px solid var(--prd-c-line);
}
.prd-quote-form-fineprint { color: var(--prd-c-muted); font-size: var(--prd-fs-xs); margin: var(--prd-s-3) 0 0; }

/* Mini cart override */
ul.cart_list.product_list_widget {
	list-style: none;
	padding: 0;
	margin: 0;
	font-family: var(--prd-ff-sans);
}
ul.cart_list.product_list_widget li {
	display: flex;
	gap: var(--prd-s-2);
	padding: var(--prd-s-2) 0;
	border-bottom: 1px solid var(--prd-c-line);
	font-size: var(--prd-fs-sm);
}
ul.cart_list.product_list_widget img { width: 48px; height: 48px; object-fit: cover; border-radius: var(--prd-r-sm); }
ul.cart_list.product_list_widget .quantity { color: var(--prd-c-muted); display: block; font-size: var(--prd-fs-xs); }

/* Empty state */
.cart-empty {
	font-size: var(--prd-fs-md);
	color: var(--prd-c-muted);
	font-family: var(--prd-ff-display);
	text-align: center;
	padding: var(--prd-s-7) 0;
}
.return-to-shop { text-align: center; }

/* ===== Modern Quote page (page-templates/quote.php) ===== */
.prd-quote-hero {
background: linear-gradient(180deg, var(--prd-c-bg) 0%, var(--prd-c-bg-alt) 100%);
padding-block: clamp(2.5rem, 6vw, 4.5rem);
border-bottom: 1px solid var(--prd-c-line);
}
.prd-quote-hero .prd-eyebrow { color: var(--prd-c-accent-ink); }
.prd-quote-hero .prd-h1 { margin: 0.25rem 0 var(--prd-s-3); }
.prd-quote-hero .prd-lead { max-width: 640px; }

.prd-quote-body { background: var(--prd-c-bg-alt); padding-block: clamp(2.5rem, 5vw, 4rem); }
/* .prd-container width is inherited from base.css (1280px); the form itself
   is constrained to 940px below for readability on the quote template. */

/* Empty list state */
.prd-quote-body .quotelist-empty,
.prd-quote-body .woocommerce-info {
background: #fff;
border-radius: var(--prd-r-lg);
padding: clamp(2rem, 5vw, 3rem);
text-align: center;
box-shadow: var(--prd-shadow-sm);
border-left: 0 !important;
font-size: var(--prd-fs-base);
color: var(--prd-c-ink);
}
.prd-quote-body .button.wc-backward {
display: inline-block;
margin-top: var(--prd-s-4);
}

/* Hide the legacy Royal page heading on the quote template */
body.prd-template-quote .page-heading,
body.prd-template-quote .breadcrumbs,
body.prd-template-quote .page-heading-title,
body.prd-template-quote h1.entry-title { display: none !important; }

/* Wrap any sidebar that sneaks in on this template */
body.prd-template-quote aside.sidebar,
body.prd-template-quote .widget-area,
body.prd-template-quote #sidebar { display: none !important; }
body.prd-template-quote .content,
body.prd-template-quote .page-content > .row > .content { width: 100% !important; max-width: 100% !important; flex: 1 1 100% !important; }

/* ===========================================================================
   QUOTE PAGE — modern card shell + Gravity Forms styling
   These styles use body.prd-template-quote + #gform_wrapper_1 selectors so
   they always beat Gravity Forms' legacy CSS that enqueues after ours.
   =========================================================================== */

body.prd-template-quote .prd-quote-shell{
background: #ffffff !important;
border: 1px solid var(--prd-c-line) !important;
border-radius: 18px !important;
padding: clamp(1.5rem, 3vw, 2.25rem) !important;
box-shadow: 0 14px 36px -22px rgba(17,20,24,.18) !important;
max-width: 880px !important;
margin: 0 auto !important;
}
body.prd-template-quote .prd-quote-body > .prd-container{ max-width: 940px !important; }

/* ----- Items table (rendered inside field_1_13 by dvin-wcql) ----- */
body.prd-template-quote .prd-quote-shell #field_1_13{
padding: 0 0 1.25rem !important;
margin: 0 0 1.25rem !important;
border-bottom: 1px solid var(--prd-c-line);
}
body.prd-template-quote .prd-quote-shell #field_1_13 > .gfield_label{ display: none !important; }
body.prd-template-quote .prd-quote-shell .woocommerce,
body.prd-template-quote .prd-quote-shell .woocommerce-cart{
background: transparent !important; padding: 0 !important; margin: 0 !important;
}
body.prd-template-quote .prd-quote-shell #field_1_13 table.shop_table,
body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table{
border-radius: 12px !important;
overflow: hidden !important;
border: 1px solid var(--prd-c-line) !important;
box-shadow: none !important;
margin: 0 !important;
background: #fff !important;
border-collapse: collapse !important;
width: 100% !important;
}
body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table thead{
background: var(--prd-c-ink) !important;
}
body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table thead td,
body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table thead th{
padding: 0.85rem 1rem !important;
color: #ffffff !important;
font-size: 0.75rem !important;
font-weight: 700 !important;
letter-spacing: 0.12em !important;
text-transform: uppercase !important;
text-align: left !important;
border: 0 !important;
}
body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table tbody td{
padding: 1rem !important;
background: #fff !important;
border: 0 !important;
border-top: 1px solid var(--prd-c-line) !important;
vertical-align: middle !important;
font-size: 0.95rem !important;
}
body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table tbody tr:first-child td{ border-top: 0 !important; }
body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table img{
width: 64px !important; height: 64px !important; max-width: none !important;
object-fit: cover !important; border-radius: 8px !important;
}
body.prd-template-quote .prd-quote-shell .woocommerce .product-quantity input{
width: 60px !important; text-align: center !important;
border: 1px solid var(--prd-c-line) !important; border-radius: 8px !important;
padding: 0.4rem !important; font-size: 0.9rem !important;
}
body.prd-template-quote .prd-quote-shell .woocommerce .remove{
background: var(--prd-c-bg-alt) !important;
color: var(--prd-c-danger) !important;
border-radius: 50% !important;
width: 28px !important; height: 28px !important;
display: inline-flex !important; align-items: center !important; justify-content: center !important;
font-size: 16px !important; line-height: 1 !important; font-weight: 700 !important;
text-decoration: none !important;
}
body.prd-template-quote .prd-quote-shell .woocommerce .remove:hover{ background: var(--prd-c-danger) !important; color: #fff !important; }
body.prd-template-quote .prd-quote-shell .actions{
background: transparent !important; padding: 0.85rem 0 0 !important; border: 0 !important;
}
body.prd-template-quote .prd-quote-shell .actions .wcqlupdatelistbtn,
body.prd-template-quote .prd-quote-shell .actions .button{
background: var(--prd-c-ink) !important; color: #fff !important;
border-radius: 999px !important; border: 0 !important;
padding: 0.65rem 1.4rem !important; font-size: 0.85rem !important;
font-weight: 600 !important; letter-spacing: 0.04em !important;
text-transform: uppercase !important;
cursor: pointer !important;
}
body.prd-template-quote .prd-quote-shell .actions .button:hover{ background: var(--prd-c-accent) !important; }
body.prd-template-quote .prd-quote-shell .return-to-shop{ text-align: left !important; margin: 0.85rem 0 0 !important; background: transparent !important; }
body.prd-template-quote .prd-quote-shell .return-to-shop a,
body.prd-template-quote .prd-quote-shell .return-to-shop a.button,
body.prd-template-quote .prd-quote-shell .return-to-shop a.wc-backward{
display: inline !important;
width: auto !important;
background: transparent !important;
color: var(--prd-c-accent-ink, var(--prd-c-accent)) !important;
border: 0 !important;
border-radius: 0 !important;
padding: 0 !important;
font-size: 0.9rem !important;
font-weight: 600 !important;
letter-spacing: 0 !important;
text-transform: none !important;
text-decoration: underline !important;
box-shadow: none !important;
}
body.prd-template-quote .prd-quote-shell .return-to-shop a:hover{
background: transparent !important; color: var(--prd-c-ink) !important; border: 0 !important;
}

/* ----- Form heading injected before fields ----- */
body.prd-template-quote .prd-quote-shell #gform_wrapper_1::before{
content: "Send us your details";
display: block;
font-family: var(--prd-ff-display);
font-size: 1.5rem;
font-weight: 600;
color: var(--prd-c-ink);
margin: 0.5rem 0 0.25rem;
}
body.prd-template-quote .prd-quote-shell #gform_wrapper_1{ position: relative; }
body.prd-template-quote .prd-quote-shell #gform_wrapper_1::after{ content: ""; }

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

@media (max-width: 640px){
body.prd-template-quote .prd-quote-shell .gform_fields{ grid-template-columns: 1fr !important; }
}

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

/* Hide labels for fields that have meaningful placeholders (Name, Email, etc.) */
body.prd-template-quote .prd-quote-shell .gfield--type-text .gfield_label,
body.prd-template-quote .prd-quote-shell .gfield--type-email .gfield_label,
body.prd-template-quote .prd-quote-shell .gfield--type-phone .gfield_label,
body.prd-template-quote .prd-quote-shell .gfield--type-date .gfield_label{
position: absolute !important;
width: 1px !important; height: 1px !important;
overflow: hidden !important; clip: rect(0,0,0,0) !important;
white-space: nowrap !important;
}
/* But keep labels visible for radios + textarea + the special radios */
body.prd-template-quote .prd-quote-shell .gfield--type-radio .gfield_label,
body.prd-template-quote .prd-quote-shell .gfield--type-textarea .gfield_label,
body.prd-template-quote .prd-quote-shell .gfield--type-captcha .gfield_label{
position: static !important;
width: auto !important; height: auto !important;
overflow: visible !important; clip: auto !important;
white-space: normal !important;
margin-bottom: 0.6rem !important;
}

/* inputs */
body.prd-template-quote .prd-quote-shell .ginput_container input[type="text"],
body.prd-template-quote .prd-quote-shell .ginput_container input[type="email"],
body.prd-template-quote .prd-quote-shell .ginput_container input[type="tel"],
body.prd-template-quote .prd-quote-shell .ginput_container input[type="number"],
body.prd-template-quote .prd-quote-shell .ginput_container input.datepicker,
body.prd-template-quote .prd-quote-shell .ginput_container textarea,
body.prd-template-quote .prd-quote-shell .ginput_container select,
body.prd-template-quote .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: 0.85rem 1rem !important;
font-family: var(--prd-ff-sans) !important;
font-size: 1rem !important;
background: #ffffff !important;
color: var(--prd-c-ink) !important;
min-height: 0 !important; height: auto !important;
line-height: 1.4 !important;
transition: border-color .15s ease, box-shadow .15s ease;
}
body.prd-template-quote .prd-quote-shell .ginput_container input::placeholder,
body.prd-template-quote .prd-quote-shell .ginput_container textarea::placeholder{
color: #9aa1ab !important; opacity: 1 !important;
}
body.prd-template-quote .prd-quote-shell .ginput_container input:focus,
body.prd-template-quote .prd-quote-shell .ginput_container textarea:focus,
body.prd-template-quote .prd-quote-shell .ginput_container select:focus{
outline: 0 !important;
border-color: var(--prd-c-accent) !important;
box-shadow: 0 0 0 3px rgba(25, 55, 101,.18) !important;
}
body.prd-template-quote .prd-quote-shell .ginput_container textarea{ min-height: 110px !important; resize: vertical !important; }

/* radios */
body.prd-template-quote .prd-quote-shell .gfield_radio{
list-style: none !important; padding: 0 !important; margin: 0 !important;
display: flex !important; flex-wrap: wrap !important; gap: 0.65rem 1.5rem !important;
}
body.prd-template-quote .prd-quote-shell .gfield_radio .gchoice{
display: inline-flex !important; align-items: center !important; gap: 0.5rem !important; margin: 0 !important;
white-space: nowrap !important;
}
body.prd-template-quote .prd-quote-shell .gfield_radio input[type="radio"]{
margin: 0 !important; width: 18px !important; height: 18px !important;
accent-color: var(--prd-c-accent) !important; cursor: pointer !important;
flex: 0 0 auto !important;
}
body.prd-template-quote .prd-quote-shell .gfield_radio label{
font-size: 0.95rem !important; color: var(--prd-c-ink) !important;
margin: 0 !important; cursor: pointer !important; font-weight: 400 !important;
letter-spacing: 0 !important; text-transform: none !important;
white-space: nowrap !important;
}

/* captcha */
body.prd-template-quote .prd-quote-shell .gfield_captcha_container{
display: flex !important; align-items: center !important; gap: 1rem !important; flex-wrap: wrap !important;
}
body.prd-template-quote .prd-quote-shell .gfield_captcha{ border-radius: 6px !important; height: 36px !important; }
body.prd-template-quote .prd-quote-shell .gfield_captcha_input_container{ flex: 1 !important; min-width: 200px !important; }

/* hide the empty "Untitled" honeypot field */
body.prd-template-quote .prd-quote-shell #field_1_18{ display: none !important; }

/* submit footer */
body.prd-template-quote .prd-quote-shell .gform_footer{
padding: 1.5rem 0 0 !important;
margin: 1.5rem 0 0 !important;
border-top: 1px solid var(--prd-c-line) !important;
display: flex !important; justify-content: flex-end !important;
}
body.prd-template-quote .prd-quote-shell .gform_button{
background: var(--prd-c-accent) !important;
color: #ffffff !important;
border: 0 !important;
border-radius: 999px !important;
padding: 1rem 2.75rem !important;
font-size: 1rem !important;
font-weight: 700 !important;
font-family: var(--prd-ff-sans) !important;
letter-spacing: 0.04em !important;
text-transform: uppercase !important;
cursor: pointer !important;
min-width: 200px !important;
transition: background .15s ease, transform .1s ease !important;
}
body.prd-template-quote .prd-quote-shell .gform_button:hover{ background: var(--prd-c-ink) !important; }

/* validation */
body.prd-template-quote .prd-quote-shell .gfield_error .gfield_label{ color: var(--prd-c-danger) !important; }
body.prd-template-quote .prd-quote-shell .gfield_error input,
body.prd-template-quote .prd-quote-shell .gfield_error textarea{ border-color: var(--prd-c-danger) !important; }
body.prd-template-quote .prd-quote-shell .validation_message{
color: var(--prd-c-danger) !important; font-size: 0.85rem !important; margin-top: 0.4rem !important;
}
body.prd-template-quote .prd-quote-shell .gform_validation_errors{
background: #fdecea !important; border: 1px solid #f3a39c !important;
color: var(--prd-c-danger) !important; padding: 1rem 1.25rem !important;
border-radius: 10px !important; margin: 0 0 1.25rem !important;
}

/* hero on quote page — ensure left align matches body */
body.prd-template-quote .prd-quote-hero .prd-container{ text-align: left !important; }
body.prd-template-quote .prd-quote-hero .prd-h1,
body.prd-template-quote .prd-quote-hero .prd-lead,
body.prd-template-quote .prd-quote-hero .prd-eyebrow{ text-align: left !important; }

/* ===========================================================================
   Quote form — force Geist on EVERY form element & label (defeat parent theme)
   =========================================================================== */
html body.prd-template-quote .prd-quote-shell,
html body.prd-template-quote .prd-quote-shell *,
html body.prd-template-quote .prd-quote-shell input,
html body.prd-template-quote .prd-quote-shell select,
html body.prd-template-quote .prd-quote-shell textarea,
html body.prd-template-quote .prd-quote-shell button,
html body.prd-template-quote .prd-quote-shell label,
html body.prd-template-quote .prd-quote-shell legend,
html body.prd-template-quote .prd-quote-shell ::placeholder{
font-family: var(--prd-ff-sans) !important;
}
/* Allow the display headline + section titles to keep their fonts */
html body.prd-template-quote .prd-quote-shell .prd-quote-title,
html body.prd-template-quote .prd-quote-shell .prd-quote-eyebrow,
html body.prd-template-quote .prd-quote-shell .prd-quote-form-title,
html body.prd-template-quote .prd-quote-shell h1,
html body.prd-template-quote .prd-quote-shell h2,
html body.prd-template-quote .prd-quote-shell h3{
font-family: var(--prd-ff-display) !important;
}

/* ===========================================================================
   QUOTE PAGE — mobile spacing improvements
   =========================================================================== */
@media (max-width: 640px){
	/* Tighten hero on phones — less wasted vertical space */
	body.prd-template-quote .prd-quote-hero{
		padding-block: clamp(1.5rem, 5vw, 2.25rem);
	}
	body.prd-template-quote .prd-quote-hero .prd-h1{ margin: 0.15rem 0 var(--prd-s-2); }
	body.prd-template-quote .prd-quote-body{ padding-block: clamp(1.25rem, 5vw, 2rem); }

	/* Card shell — reclaim horizontal room so the items table can breathe */
	body.prd-template-quote .prd-quote-shell{
		padding: 1rem !important;
		border-radius: 14px !important;
	}

	/* Items table: reduce padding on every cell so the product-name column gets
	   real width instead of wrapping into a 4-character sliver. */
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table thead td,
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table thead th{
		padding: 0.6rem 0.4rem !important;
		font-size: 0.65rem !important;
		letter-spacing: 0.08em !important;
	}
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table tbody td{
		padding: 0.65rem 0.4rem !important;
		font-size: 0.85rem !important;
	}
	/* Smaller thumbnails so the name column has somewhere to live */
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table img{
		width: 44px !important; height: 44px !important;
	}
	/* Tighter remove button column */
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table td.product-remove,
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table th.product-remove{
		padding-left: 0.35rem !important;
		padding-right: 0.15rem !important;
		width: 26px !important;
	}
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table td.product-thumbnail,
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table th.product-thumbnail{
		padding-left: 0.25rem !important;
		padding-right: 0.4rem !important;
		width: 52px !important;
	}
	/* Quantity input — narrower so it doesn't steal width from the name column */
	body.prd-template-quote .prd-quote-shell .woocommerce .product-quantity input{
		width: 46px !important;
		padding: 0.35rem !important;
		font-size: 0.85rem !important;
	}
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table td.product-quantity,
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table th.product-quantity{
		width: 60px !important;
		text-align: center !important;
	}
	/* Let the product-name column claim every remaining pixel */
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table td.product-name,
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table th.product-name{
		width: auto !important;
		word-break: break-word !important;
		line-height: 1.35 !important;
	}

	/* Update list / Return to shop buttons — full-width so they're easier to tap
	   and stack neatly with breathing room */
	body.prd-template-quote .prd-quote-shell .actions{
		display: flex !important;
		justify-content: stretch !important;
		padding-top: 1rem !important;
	}
	body.prd-template-quote .prd-quote-shell .actions .wcqlupdatelistbtn,
	body.prd-template-quote .prd-quote-shell .actions .button{
		width: 100% !important;
		padding: 0.85rem 1rem !important;
	}
	body.prd-template-quote .prd-quote-shell .return-to-shop{
		margin: 0.85rem 0 0 !important;
		text-align: left !important;
		background: transparent !important;
	}
	body.prd-template-quote .prd-quote-shell .return-to-shop a,
	body.prd-template-quote .prd-quote-shell .return-to-shop a.button,
	body.prd-template-quote .prd-quote-shell .return-to-shop a.wc-backward{
		display: inline !important;
		width: auto !important;
		padding: 0 !important;
		background: transparent !important;
		color: var(--prd-c-accent-ink, var(--prd-c-accent)) !important;
		border: 0 !important;
		border-radius: 0 !important;
		font-size: 0.9rem !important;
		font-weight: 600 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		text-decoration: underline !important;
		box-shadow: none !important;
	}

	/* Form: a touch more vertical rhythm between stacked fields */
	body.prd-template-quote .prd-quote-shell .gform_fields{
		gap: 0.85rem !important;
		margin-top: 1.25rem !important;
	}
	body.prd-template-quote .prd-quote-shell #gform_wrapper_1::before{
		font-size: 1.25rem;
		margin: 0.25rem 0 0.5rem;
	}
	body.prd-template-quote .prd-quote-shell .ginput_container input[type="text"],
	body.prd-template-quote .prd-quote-shell .ginput_container input[type="email"],
	body.prd-template-quote .prd-quote-shell .ginput_container input[type="tel"],
	body.prd-template-quote .prd-quote-shell .ginput_container input[type="number"],
	body.prd-template-quote .prd-quote-shell .ginput_container input.datepicker,
	body.prd-template-quote .prd-quote-shell .ginput_container textarea,
	body.prd-template-quote .prd-quote-shell .ginput_container select,
	body.prd-template-quote .prd-quote-shell .gfield_captcha_input_container input[type="text"]{
		padding: 0.75rem 0.85rem !important;
		font-size: 0.95rem !important;
	}

	/* Radio groups: stack each option on its own line for clearer tap targets */
	body.prd-template-quote .prd-quote-shell .gfield_radio{
		gap: 0.6rem !important;
		flex-direction: column !important;
	}

	/* Captcha: stack image above input so neither is squeezed */
	body.prd-template-quote .prd-quote-shell .gfield_captcha_container{
		gap: 0.6rem !important;
		flex-direction: column !important;
		align-items: flex-start !important;
	}
	body.prd-template-quote .prd-quote-shell .gfield_captcha_input_container{
		width: 100% !important;
	}

	/* Submit footer: full-width button */
	body.prd-template-quote .prd-quote-shell .gform_footer{
		padding-top: 1.25rem !important;
		margin-top: 1.25rem !important;
		justify-content: stretch !important;
	}
	body.prd-template-quote .prd-quote-shell .gform_button{
		width: 100% !important;
		min-width: 0 !important;
		padding: 0.95rem 1rem !important;
	}
}

@media (max-width: 380px){
	/* Very narrow phones — drop the thumbnail entirely so the name column wins */
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table td.product-thumbnail,
	body.prd-template-quote .prd-quote-shell .woocommerce table.shop_table th.product-thumbnail{
		display: none !important;
	}
}

/* Spinner shown while a row is being removed from the quote list. The plugin
   reloads the page after the AJAX call — this gives instant visual feedback so
   it doesn't feel frozen. */
@keyframes prd-quote-spin { to { transform: rotate(360deg); } }
body.prd-template-quote .prd-quote-shell .prd-row-removing{
	opacity: 0.55 !important;
	pointer-events: none !important;
	transition: opacity .15s ease;
}
body.prd-template-quote .prd-quote-shell .removeproductqlist.prd-removing,
body.prd-template-quote .prd-quote-shell a.remove.prd-removing{
	color: transparent !important;
	background: transparent !important;
	position: relative !important;
	pointer-events: none !important;
}
body.prd-template-quote .prd-quote-shell .removeproductqlist.prd-removing::after,
body.prd-template-quote .prd-quote-shell a.remove.prd-removing::after{
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 16px !important;
	height: 16px !important;
	margin: -8px 0 0 -8px !important;
	border: 2px solid rgba(25, 55, 101, 0.18) !important;
	border-top-color: var(--prd-c-accent, #193765) !important;
	border-radius: 50% !important;
	animation: prd-quote-spin .65s linear infinite !important;
	box-sizing: border-box !important;
}
