/* Quote Requests frontend styles */

/* ----- Variables ----- */
:root {
	--quotewise-accent: #0073aa;
	--quotewise-accent-dark: #005c8a;
	--quotewise-text: #0a2540;
	--quotewise-text-muted: #62758a;
	--quotewise-bg: #f6f9fc;
	--quotewise-card: #ffffff;
	--quotewise-border: #e3e8ee;
	--quotewise-border-soft: #eef2f6;
	--quotewise-input-bg: #fafbfc;
	--quotewise-shadow: 0 0 0 1px rgba(50, 50, 93, 0.05), 0 6px 20px -6px rgba(50, 50, 93, 0.08);
	--quotewise-radius: 12px;
	--quotewise-radius-sm: 8px;
}

/* ----- Screen reader only utility ----- */
.quotewise-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ============================================
   Add to Quote button (product page)
   - Stays as close to the theme's own button style as possible.
   - Only adds: spinner state + a soft margin from the cart button.
   ============================================ */

.quotewise-button-wrap {
	display: inline-block;
	vertical-align: middle;
}

.quotewise-add-to-quote {
	margin-left: 8px;
	cursor: pointer;
	vertical-align: middle;
}

.quotewise-add-to-quote[aria-busy="true"],
.quotewise-add-to-quote.quotewise-loading {
	opacity: 0.7;
	cursor: wait;
	position: relative;
	padding-right: 2.4em;
}

.quotewise-add-to-quote[aria-busy="true"]::after,
.quotewise-add-to-quote.quotewise-loading::after {
	content: "";
	display: block !important;
	position: absolute;
	right: 0.8em;
	top: 50%;
	width: 1em;
	height: 1em;
	margin-top: -0.5em;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: quotewise-spin 0.7s linear infinite;
}

@keyframes quotewise-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	.quotewise-add-to-quote::after { animation: none; }
}

/* Confirmation states ("Added to quote" / "View quote basket") are clickable. No icon. */
.quotewise-add-to-quote.quotewise-added,
.quotewise-add-to-quote.quotewise-view { cursor: pointer; }

/* Hide the legacy inline-feedback span. We now use a floating toast instead. */
.quotewise-feedback { display: none !important; }

@media (max-width: 600px) {
	.quotewise-button-wrap { display: block; width: 100%; margin-top: 8px; }
	.quotewise-add-to-quote { display: block; margin: 0; width: 100%; }
}

/* ============================================
   Inline error message (rare, only when AJAX fails)
   ============================================ */

.quotewise-inline-error {
	display: inline-block;
	margin-left: 10px;
	padding: 4px 10px;
	background: #fdecea;
	color: #b71c1c;
	border-radius: 6px;
	font-size: 0.85em;
	vertical-align: middle;
}

@media (max-width: 600px) {
	.quotewise-inline-error { display: block; margin: 8px 0 0; }
}

/* ============================================
   Card base (used by basket, form, share, account)
   ============================================ */

.quotewise-card {
	background: var(--quotewise-card);
	border-radius: var(--quotewise-radius);
	padding: 32px;
	box-shadow: var(--quotewise-shadow);
	margin-bottom: 24px;
	color: var(--quotewise-text);
}

.quotewise-card-title {
	font-size: 1.25em;
	font-weight: 600;
	margin: 0 0 20px;
	letter-spacing: -0.01em;
	display: flex;
	align-items: center;
	gap: 12px;
}

@media (max-width: 600px) {
	.quotewise-card { padding: 20px; border-radius: var(--quotewise-radius-sm); }
}

/* ============================================
   Quote basket page
   ============================================ */

.quotewise-basket {
	margin: 1em 0;
	background: var(--quotewise-card);
	border-radius: var(--quotewise-radius);
	padding: 28px;
	box-shadow: var(--quotewise-shadow);
}

.quotewise-basket-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 0;
}

.quotewise-basket-table thead {
	display: none;
}

.quotewise-basket-table tr.quotewise-basket-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--quotewise-border-soft);
}

.quotewise-basket-table tr.quotewise-basket-row:last-child {
	border-bottom: 0;
}

.quotewise-basket-table td {
	padding: 0;
	border: 0;
	vertical-align: middle;
}

.quotewise-basket-table .quotewise-col-product {
	flex: 1;
	font-weight: 500;
	color: var(--quotewise-text);
}

.quotewise-basket-table .quotewise-col-product a {
	color: var(--quotewise-text);
	text-decoration: none;
}

.quotewise-basket-table .quotewise-col-product a:hover {
	text-decoration: underline;
}

.quotewise-basket-table .quotewise-col-product small em {
	display: block;
	color: var(--quotewise-text-muted);
	font-size: 0.85em;
	font-style: normal;
	margin-top: 2px;
}

.quotewise-basket-table .quotewise-col-price {
	font-weight: 500;
	min-width: 110px;
	text-align: right;
}

.quotewise-basket-table .quotewise-col-price small em {
	display: block;
	color: var(--quotewise-text-muted);
	font-size: 0.75em;
	font-style: normal;
	margin-top: 2px;
}

.quotewise-basket-table .quotewise-col-qty {
	width: 90px;
	text-align: center;
}

.quotewise-basket-table .quotewise-col-target {
	width: 130px;
	text-align: center;
}

.quotewise-suggested-input {
	box-sizing: border-box;
	width: 100px;
	padding: 8px 10px;
	min-height: 38px;
	border: 1px solid var(--quotewise-border);
	border-radius: var(--quotewise-radius-sm);
	background: var(--quotewise-input-bg);
	font-size: 14px;
	text-align: right;
	transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.quotewise-suggested-input:focus,
.quotewise-suggested-input:focus-visible {
	outline: none;
	background: var(--quotewise-card);
	border-color: var(--quotewise-accent);
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.15);
}

.quotewise-basket-table .quotewise-col-remove {
	flex: 0 0 40px;
	width: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.quotewise-qty-input {
	box-sizing: border-box;
	width: 64px;
	padding: 8px 10px;
	min-height: 38px;
	border: 1px solid var(--quotewise-border);
	border-radius: var(--quotewise-radius-sm);
	background: var(--quotewise-input-bg);
	font-size: 14px;
	text-align: center;
	transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.quotewise-qty-input:focus,
.quotewise-qty-input:focus-visible {
	outline: none;
	background: var(--quotewise-card);
	border-color: var(--quotewise-accent);
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.15);
}

.quotewise-basket .quotewise-remove-item,
a.quotewise-remove-item,
.quotewise-remove-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 32px;
	height: 32px;
	font-size: 1.4em;
	line-height: 1;
	color: #e63946;
	text-decoration: none !important;
	border-bottom: 0 !important;
	border-radius: var(--quotewise-radius-sm);
	transition: background 0.15s;
}

.quotewise-basket .quotewise-remove-item:hover,
.quotewise-remove-item:hover { background: #fff0f0; text-decoration: none !important; }

.quotewise-basket .quotewise-remove-item:focus,
.quotewise-remove-item:focus,
.quotewise-remove-item:focus-visible {
	outline: none;
	background: #fff0f0;
	box-shadow: 0 0 0 2px rgba(230, 57, 70, 0.3);
}

.quotewise-basket-actions {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 2px solid var(--quotewise-border-soft);
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.quotewise-basket-empty {
	background: var(--quotewise-card);
	border-radius: var(--quotewise-radius);
	padding: 60px 30px;
	text-align: center;
	box-shadow: var(--quotewise-shadow);
}

.quotewise-basket-empty p {
	color: var(--quotewise-text-muted);
	font-size: 1.05em;
	margin-bottom: 20px;
}

.quotewise-basket-count {
	display: inline-block;
	min-width: 1.4em;
	padding: 2px 0.5em;
	background: var(--quotewise-accent);
	color: var(--quotewise-accent-text, #fff);
	border-radius: 999px;
	font-size: 0.85em;
	line-height: 1.6;
	text-align: center;
	font-weight: 600;
}

@media (max-width: 600px) {
	.quotewise-basket { padding: 20px; }
	.quotewise-basket-table tr.quotewise-basket-row {
		flex-wrap: wrap;
		gap: 8px;
	}
	.quotewise-basket-table .quotewise-col-product { flex-basis: 100%; }
	.quotewise-basket-table .quotewise-col-price { text-align: left; }
}

/* ============================================
   File upload field
   ============================================ */

.quotewise-field input[type="file"] {
	display: block;
	margin-top: 6px;
	padding: 12px;
	background: var(--quotewise-input-bg);
	border: 1px dashed var(--quotewise-border);
	border-radius: var(--quotewise-radius-sm);
	width: 100%;
	box-sizing: border-box;
	font-family: inherit;
	font-size: 14px;
	cursor: pointer;
}

.quotewise-field-hint {
	display: block;
	margin-top: 4px;
	color: var(--quotewise-text-muted);
	font-size: 0.85em;
}

.quotewise-attachments-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.quotewise-attachments-list li {
	margin-bottom: 6px;
}

/* ============================================
   Stock badge
   ============================================ */

.quotewise-stock-badge {
	display: inline-block;
	margin-left: 8px;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
	vertical-align: middle;
}

.quotewise-stock-badge.quotewise-stock-out {
	background: #fdecea;
	color: #b71c1c;
}

/* ============================================
   Honeypot
   ============================================ */

.quotewise-hp-wrap {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* ============================================
   Quote submission form
   ============================================ */

.quotewise-form-wrap {
	margin-top: 24px;
	padding: 32px;
	background: var(--quotewise-card);
	border-radius: var(--quotewise-radius);
	box-shadow: var(--quotewise-shadow);
	color: var(--quotewise-text);
}

.quotewise-form-heading {
	margin-top: 0;
	margin-bottom: 20px;
	font-size: 1.25em;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.quotewise-form-errors {
	margin-bottom: 20px;
	padding: 12px 16px;
	background: #fdecea;
	border: 1px solid #f5c6cb;
	color: #b71c1c;
	border-radius: var(--quotewise-radius-sm);
}

.quotewise-form-errors ul {
	margin: 0;
	padding-left: 1.2em;
	list-style: disc;
}

.quotewise-field {
	margin-bottom: 16px;
}

.quotewise-field label {
	display: block;
	margin-bottom: 6px;
	font-weight: 500;
	font-size: 13px;
	color: #425466;
}

.quotewise-required {
	color: #e63946;
	margin-left: 2px;
}

.quotewise-field input[type="text"],
.quotewise-field input[type="email"],
.quotewise-field input[type="tel"],
.quotewise-field input[type="number"],
.quotewise-field input[type="date"],
.quotewise-field select,
.quotewise-field textarea {
	width: 100%;
	padding: 11px 14px;
	min-height: 42px;
	border: 1px solid var(--quotewise-border);
	border-radius: var(--quotewise-radius-sm);
	background: var(--quotewise-input-bg);
	box-sizing: border-box;
	font-size: 15px;
	font-family: inherit;
	color: var(--quotewise-text);
	transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.quotewise-field.quotewise-cf-checkbox label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 500;
}

.quotewise-field.quotewise-cf-checkbox input[type="checkbox"] {
	margin: 0;
	width: 18px;
	height: 18px;
}

.quotewise-expiry-banner {
	margin: 0 0 16px;
	padding: 10px 14px;
	background: #fff8e1;
	border-left: 3px solid #f4b400;
	border-radius: var(--quotewise-radius-sm);
	color: var(--quotewise-text);
}

.quotewise-expiry-banner.quotewise-expiry-banner-expired {
	background: #fbe9e7;
	border-left-color: #c62828;
}

.quotewise-field input:focus,
.quotewise-field input:focus-visible,
.quotewise-field textarea:focus,
.quotewise-field textarea:focus-visible {
	outline: none;
	background: var(--quotewise-card);
	border-color: var(--quotewise-accent);
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.15);
}

.quotewise-field textarea {
	resize: vertical;
	min-height: 110px;
}

.quotewise-form-actions {
	margin-top: 24px;
	margin-bottom: 0;
}

.quotewise-submit-quote {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 180px;
	padding: 12px 26px;
	box-sizing: border-box;
	background: var(--quotewise-accent) !important;
	color: var(--quotewise-accent-text, #fff) !important;
	border: 0 !important;
	border-radius: var(--quotewise-radius-sm);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
}

.quotewise-submit-quote:hover {
	background: var(--quotewise-accent-dark) !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px -6px rgba(0, 0, 0, 0.25);
}

.quotewise-submit-quote:focus,
.quotewise-submit-quote:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.25), 0 6px 16px -6px rgba(0, 0, 0, 0.25);
}

.quotewise-submit-quote[aria-busy="true"],
.quotewise-submit-quote[disabled] {
	opacity: 0.7;
	cursor: wait;
	transform: none;
}

@media (max-width: 600px) {
	.quotewise-form-wrap { padding: 20px; border-radius: var(--quotewise-radius-sm); }
	.quotewise-submit-quote { width: 100%; }
}

/* ============================================
   Submitted (thank-you)
   ============================================ */

.quotewise-submitted {
	background: linear-gradient(180deg, #e0f9ed 0%, #ffffff 100%);
	border: 1px solid #b8ead0;
	border-radius: var(--quotewise-radius);
	padding: 50px 30px;
	text-align: center;
	box-shadow: var(--quotewise-shadow);
}

.quotewise-submitted-heading {
	margin-top: 0;
	color: #117a48;
	font-size: 1.5em;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.quotewise-submitted-ref {
	display: inline-block;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, "Courier New", monospace;
	color: #425466;
	background: #fff;
	padding: 6px 12px;
	border-radius: var(--quotewise-radius-sm);
	border: 1px solid var(--quotewise-border-soft);
}

/* ============================================
   My Account → Quotes (list + single)
   ============================================ */

.quotewise-account-quotes-table .quotewise-status-pill {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
}

.quotewise-account-quotes-table .quotewise-status-pending  { background: #fff3cd; color: #9a6e00; }
.quotewise-account-quotes-table .quotewise-status-accepted { background: #e0f9ed; color: #117a48; }
.quotewise-account-quotes-table .quotewise-status-declined { background: #fdecea; color: #b71c1c; }
.quotewise-account-quotes-table .quotewise-status-converted{ background: #e8f0fe; color: #1d4ed8; }

.quotewise-account-view {
	color: var(--quotewise-text);
}

.quotewise-account-view h2 {
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.quotewise-account-view h3 {
	font-size: 1.05em;
	margin-top: 32px;
	font-weight: 600;
	color: var(--quotewise-text);
}

.quotewise-account-view .quotewise-status-pill {
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 0.6em;
	font-weight: 600;
	vertical-align: middle;
}

.quotewise-account-view .quotewise-status-pending  { background: #fff3cd; color: #9a6e00; }
.quotewise-account-view .quotewise-status-accepted { background: #e0f9ed; color: #117a48; }
.quotewise-account-view .quotewise-status-declined { background: #fdecea; color: #b71c1c; }
.quotewise-account-view .quotewise-status-converted{ background: #e8f0fe; color: #1d4ed8; }

.quotewise-account-view .quotewise-message-box {
	padding: 14px 18px;
	background: var(--quotewise-input-bg);
	border: 1px solid var(--quotewise-border);
	border-radius: var(--quotewise-radius-sm);
	font-style: normal;
	color: var(--quotewise-text);
	margin: 0 0 1em;
}
.quotewise-account-view .quotewise-message-box p { margin: 0 0 0.75em; }
.quotewise-account-view .quotewise-message-box p:last-child { margin-bottom: 0; }

.quotewise-account-empty {
	padding: 1em 0;
	color: var(--quotewise-text-muted);
}

/* === Customer <-> admin message thread (frontend) ============================ */
.quotewise-thread { font-size: 14px; margin-top: 12px; }
.quotewise-thread-flash {
	padding: 10px 14px;
	border-radius: 6px;
	margin-bottom: 14px;
	font-size: 13px;
}
.quotewise-thread-flash-ok {
	background: #ecfdf5;
	border: 1px solid #34d399;
	color: #065f46;
}
.quotewise-thread-flash-err {
	background: #fef2f2;
	border: 1px solid #f87171;
	color: #991b1b;
}
.quotewise-thread-messages {
	max-height: 460px;
	overflow-y: auto;
	padding: 14px;
	background: var(--quotewise-bg, #f6f9fc);
	border: 1px solid var(--quotewise-border, #e3eaf2);
	border-radius: 10px;
	margin-bottom: 14px;
}
.quotewise-thread-empty {
	color: var(--quotewise-text-muted, #62758a);
	font-style: italic;
	margin: 0;
	text-align: center;
}
.quotewise-msg {
	max-width: 82%;
	margin-bottom: 14px;
	padding: 12px 14px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--quotewise-border, #e3eaf2);
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}
.quotewise-msg-customer { background: #fff; }
.quotewise-msg-admin {
	margin-left: auto;
	background: var(--quotewise-accent, #0066ff);
	color: var(--quotewise-accent-text, #fff);
	border-color: var(--quotewise-accent, #0066ff);
}
.quotewise-msg-admin .quotewise-msg-author,
.quotewise-msg-admin .quotewise-msg-time { color: rgba(255,255,255,0.85); }
.quotewise-msg-admin .quotewise-msg-body a { color: #fff; text-decoration: underline; }
.quotewise-msg-meta {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 11px;
	color: var(--quotewise-text-muted, #62758a);
	margin-bottom: 6px;
}
.quotewise-msg-author { color: #1f2937; font-weight: 600; }
.quotewise-msg-body { line-height: 1.5; word-wrap: break-word; }
.quotewise-msg-body p:first-child { margin-top: 0; }
.quotewise-msg-body p:last-child { margin-bottom: 0; }
.quotewise-msg-attachment {
	margin-top: 8px;
	padding-top: 8px;
	border-top: 1px dashed rgba(0,0,0,0.1);
	font-size: 13px;
}
.quotewise-msg-admin .quotewise-msg-attachment {
	border-top-color: rgba(255,255,255,0.25);
}
.quotewise-thread-form textarea {
	width: 100%;
	min-height: 96px;
	padding: 10px 12px;
	font-family: inherit;
	font-size: 14px;
	border: 1px solid var(--quotewise-border, #e3eaf2);
	border-radius: 8px;
	resize: vertical;
}
.quotewise-thread-form textarea:focus {
	outline: none;
	border-color: var(--quotewise-accent, #0066ff);
	box-shadow: 0 0 0 3px rgba(0,102,255,0.12);
}
.quotewise-thread-form-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 10px;
	gap: 12px;
	flex-wrap: wrap;
}
.quotewise-thread-file {
	font-size: 12px;
	color: var(--quotewise-text-muted, #62758a);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.quotewise-thread-file input[type="file"] { font-size: 12px; }
.quotewise-thread-send {
	padding: 10px 22px !important;
	background: var(--quotewise-accent) !important;
	color: var(--quotewise-accent-text, #fff) !important;
	border: 0 !important;
	border-radius: 8px !important;
	cursor: pointer;
}

/* === Mini quote basket widget (sidebar / header / Elementor / Bricks / shortcode) === */
.quotewise-mini-basket {
	position: relative;
	display: inline-block;
	font-size: 14px;
	line-height: 1.4;
}
.quotewise-mini-basket-title {
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--quotewise-text-muted, #62758a);
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.quotewise-mini-basket-trigger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--quotewise-border, #e3eaf2);
	border-radius: 10px;
	padding: 8px 12px;
	cursor: pointer;
	color: inherit;
	transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.quotewise-mini-basket-trigger:hover {
	border-color: var(--quotewise-accent, #0066ff);
	background: rgba(0, 102, 255, 0.04);
}
.quotewise-mini-basket-trigger:focus-visible {
	outline: 2px solid var(--quotewise-accent, #0066ff);
	outline-offset: 2px;
}
.quotewise-mini-basket-icon {
	flex-shrink: 0;
}
.quotewise-mini-basket-count {
	position: absolute;
	top: -6px;
	right: -6px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: var(--quotewise-accent, #0066ff);
	color: var(--quotewise-accent-text, #fff);
	border-radius: 9px;
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	box-shadow: none;
	pointer-events: none;
}
.quotewise-mini-basket-count.is-zero {
	background: var(--quotewise-text-muted, #94a3b8);
}

/* Dropdown panel */
.quotewise-mini-basket-dropdown {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	width: 320px;
	max-width: calc(100vw - 24px);
	background: #fff;
	border: 1px solid var(--quotewise-border, #e3eaf2);
	border-radius: 12px;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
	z-index: 9999;
	overflow: hidden;
}
.quotewise-mini-basket-dropdown[hidden] { display: none; }

/* Items list */
.quotewise-mini-basket-items {
	max-height: 320px;
	overflow-y: auto;
	padding: 4px 0;
}
.quotewise-mini-basket-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	border-bottom: 1px solid var(--quotewise-border-soft, #eef2f6);
}
.quotewise-mini-basket-item:last-child { border-bottom: none; }
.quotewise-mini-basket-thumb {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 6px;
	overflow: hidden;
	background: var(--quotewise-bg, #f6f9fc);
	display: block;
}
.quotewise-mini-basket-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.quotewise-mini-basket-info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.quotewise-mini-basket-name {
	color: var(--quotewise-text, #1f2937);
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.quotewise-mini-basket-name:hover { color: var(--quotewise-accent, #0066ff); }
.quotewise-mini-basket-variation {
	font-size: 11px;
	color: var(--quotewise-text-muted, #62758a);
}
.quotewise-mini-basket-qty {
	font-size: 12px;
	color: var(--quotewise-text-muted, #62758a);
}
.quotewise-mini-basket-remove {
	flex-shrink: 0;
	box-sizing: border-box;
	width: 26px !important;
	height: 26px !important;
	min-width: 0 !important;
	padding: 0 !important;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 50% !important;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	color: var(--quotewise-text-muted, #94a3b8);
	transition: background .15s ease, color .15s ease;
}
.quotewise-mini-basket-remove:hover,
.quotewise-mini-basket-remove:focus {
	background: #fef2f2 !important;
	color: #dc2626 !important;
}
.quotewise-mini-basket-remove:disabled { opacity: 0.4; cursor: wait; }

/* Empty state */
.quotewise-mini-basket-empty {
	padding: 28px 16px;
	text-align: center;
	color: var(--quotewise-text-muted, #62758a);
}
.quotewise-mini-basket-empty-icon {
	color: var(--quotewise-text-muted, #cbd5e1);
	margin-bottom: 8px;
}
.quotewise-mini-basket-empty p {
	margin: 0;
	font-size: 13px;
}

/* Footer */
.quotewise-mini-basket-footer {
	padding: 12px 14px;
	background: var(--quotewise-bg, #f6f9fc);
	border-top: 1px solid var(--quotewise-border, #e3eaf2);
}
.quotewise-mini-basket-view-all,
.quotewise-mini-basket-view-all:link,
.quotewise-mini-basket-view-all:visited {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 11px 16px !important;
	background: var(--quotewise-accent, #0073aa) !important;
	color: var(--quotewise-accent-text, #fff) !important;
	text-decoration: none !important;
	font-weight: 600;
	font-size: 13px;
	line-height: 1.3;
	border-radius: 8px !important;
	border: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background .15s ease;
}
.quotewise-mini-basket-view-all:hover,
.quotewise-mini-basket-view-all:focus {
	background: var(--quotewise-accent-dark, #005c8a) !important;
	color: var(--quotewise-accent-text, #fff) !important;
}

/* When the widget is inside a left-edge sidebar, flip the dropdown right-side */
.widget_quotewise_mini_basket .quotewise-mini-basket-dropdown {
	left: 0;
	right: auto;
}

/* === Cart-to-quote conversion button (WC cart + checkout pages) ================= */
.quotewise-cart-to-quote-wrap {
	margin: 14px 0 0;
	text-align: center;
}
.quotewise-cart-to-quote-wrap .quotewise-cart-to-quote {
	display: inline-block;
	padding: 12px 22px !important;
	background: transparent !important;
	color: var(--quotewise-accent, #0066ff) !important;
	border: 2px solid var(--quotewise-accent, #0066ff) !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	text-decoration: none !important;
	transition: background .15s ease, color .15s ease, transform .12s ease;
	box-shadow: none !important;
	line-height: 1.2 !important;
	white-space: normal;
}
.quotewise-cart-to-quote-wrap .quotewise-cart-to-quote:hover,
.quotewise-cart-to-quote-wrap .quotewise-cart-to-quote:focus {
	background: var(--quotewise-accent, #0066ff) !important;
	color: var(--quotewise-accent-text, #fff) !important;
	transform: translateY(-1px);
}
.quotewise-cart-to-quote-wrap .quotewise-cart-to-quote:focus-visible {
	outline: 2px solid var(--quotewise-accent-dark, #0052cc);
	outline-offset: 2px;
}

/* Checkout page: WC's submit button wrapper is narrower, so match its width */
.woocommerce-checkout .quotewise-cart-to-quote-wrap {
	text-align: left;
}

/* The form is printed once inside this holder and moved into place by
   devtonic-qr-cart-to-quote-placement.js. On the blocks it stays hidden until it
   has been moved, so it can never show up stranded in the footer. Some resets
   drop the browser default for [hidden], hence the explicit rule. */
.quotewise-cart-to-quote-portal[hidden] {
	display: none !important;
}

/* Cart block and Checkout block: the submit button is full width inside a flex
   container, so match it rather than sitting half-width beside it. */
.wc-block-cart__submit-container .quotewise-cart-to-quote-wrap,
.wc-block-components-checkout-place-order-button + .quotewise-cart-to-quote-wrap {
	width: 100%;
	margin-top: 12px;
	text-align: center;
}

.wc-block-cart__submit-container .quotewise-cart-to-quote-wrap .quotewise-cart-to-quote,
.wc-block-components-checkout-place-order-button + .quotewise-cart-to-quote-wrap .quotewise-cart-to-quote {
	width: 100%;
}

/* Classic checkout: the anchor is an empty div until the script fills it, so it
   must not add spacing of its own when nothing has landed in it. */
.quotewise-cart-to-quote-anchor:empty {
	display: none;
}

/* "Replace Add to Cart": the body class is added by Devtonic_QR_Button so no inline
   <style> tag is printed into the page. */
body.quotewise-replace-add-to-cart .single_add_to_cart_button {
	display: none !important;
}
