/* =============================================================================
   WC Quote Manager v2.0 — Modern Public Stylesheet
   ============================================================================= */

:root {
	--wcqm-primary-color:        #2271b1;
	--wcqm-primary-text-color:   #ffffff;
	--wcqm-secondary-color:      #f0f0f1;
	--wcqm-secondary-text-color: #333333;
	--wcqm-button-bg-color:      #2271b1;
	--wcqm-button-text-color:    #ffffff;
	--wcqm-badge-bg-color:       #e53e3e;
	--wcqm-badge-text-color:     #ffffff;
	--wcqm-summary-bg-color:     #f8fafc;
	--wcqm-summary-text-color:   #334155;
	--wcqm-radius:               10px;
	--wcqm-radius-lg:            16px;
	--wcqm-shadow-sm:            0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
	--wcqm-shadow:               0 4px 16px rgba(0,0,0,.08);
	--wcqm-shadow-lg:            0 10px 40px rgba(0,0,0,.12);
	--wcqm-transition:           .2s ease;
}

/* ---------------------------------------------------------------------------
   Add to Quote Button
   --------------------------------------------------------------------------- */
.wcqm-add-to-quote {
	display:          inline-flex !important;
	align-items:      center !important;
	gap:              7px !important;
	background:       var(--wcqm-button-bg-color) !important;
	color:            var(--wcqm-button-text-color) !important;
	border:           none !important;
	border-radius:    var(--wcqm-radius) !important;
	padding:          11px 22px !important;
	font-size:        .9rem !important;
	font-weight:      600 !important;
	cursor:           pointer;
	transition:       opacity var(--wcqm-transition), transform var(--wcqm-transition), box-shadow var(--wcqm-transition);
	margin-top:       8px !important;
	box-shadow:       var(--wcqm-shadow-sm);
	text-decoration:  none !important;
}
.wcqm-add-to-quote:hover {
	opacity:    .88;
	transform:  translateY(-1px);
	box-shadow: var(--wcqm-shadow);
	color:      var(--wcqm-button-text-color) !important;
}
.wcqm-add-to-quote.loading { opacity: .55; pointer-events: none; }
.wcqm-add-to-quote.added   { background: #16a34a !important; }

/* ---------------------------------------------------------------------------
   Mini-Cart [wc_quote_count]
   --------------------------------------------------------------------------- */
.wcqm-mini-cart-link {
	position:        relative;
	display:         inline-flex;
	align-items:     center;
	gap:             6px;
	text-decoration: none;
	color:           inherit;
	padding:         4px 8px;
}
.wcqm-mini-cart-count {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	min-width:       20px;
	height:          20px;
	padding:         0 5px;
	border-radius:   99px;
	background:      var(--wcqm-badge-bg-color);
	color:           var(--wcqm-badge-text-color);
	font-size:       11px;
	font-weight:     700;
	transition:      transform .15s ease, background .2s;
}
.wcqm-mini-cart-count[data-count="0"] { opacity: .4; }
.wcqm-mini-cart-count.bump { transform: scale(1.4); }

/* ---------------------------------------------------------------------------
   Quote Page Wrapper
   --------------------------------------------------------------------------- */
.wcqm-quote-page { position: relative; }

/* Layout: side-by-side */
.wcqm-quote-layout {
	display:     flex;
	align-items: flex-start;
	gap:         28px;
	margin-top:  8px;
}

.wcqm-quote-list-wrap {
	flex:      1 1 auto;
	min-width: 0;
}

.wcqm-quote-summary-wrap {
	flex:        0 0 290px;
	position:    sticky;
	top:         24px;
	align-self:  flex-start;
}

@media (max-width: 860px) {
	.wcqm-quote-layout { flex-direction: column-reverse; }
	.wcqm-quote-summary-wrap { position: static; flex: 1 1 auto; width: 100%; }
}

/* ---------------------------------------------------------------------------
   Section Heading
   --------------------------------------------------------------------------- */
.wcqm-section-heading {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	margin-bottom:   16px;
}
.wcqm-section-heading-left {
	display:     flex;
	align-items: center;
	gap:         8px;
	color:       #1e293b;
}
.wcqm-section-heading-left h2 {
	margin:      0 !important;
	font-size:   1.1rem !important;
	font-weight: 700 !important;
	line-height: 1.2;
}
.wcqm-clear-btn {
	display:         inline-flex;
	align-items:     center;
	gap:             5px;
	background:      transparent;
	border:          1px solid #e2e8f0;
	border-radius:   8px;
	padding:         6px 12px;
	font-size:       .8rem;
	color:           #64748b;
	cursor:          pointer;
	transition:      all var(--wcqm-transition);
}
.wcqm-clear-btn:hover { background: #fef2f2; border-color: #fca5a5; color: #dc2626; }

/* ---------------------------------------------------------------------------
   Desktop Table
   --------------------------------------------------------------------------- */
.wcqm-table-desktop { display: block; }
.wcqm-cards-mobile  { display: none; }

@media (max-width: 640px) {
	.wcqm-table-desktop { display: none; }
	.wcqm-cards-mobile  { display: block; }
}

.wcqm-products-table {
	width:           100%;
	border-collapse: separate;
	border-spacing:  0;
	background:      #fff;
	border-radius:   var(--wcqm-radius-lg);
	overflow:        hidden;
	box-shadow:      var(--wcqm-shadow);
	border:          1px solid #e2e8f0;
}

.wcqm-products-table thead th {
	padding:         12px 16px;
	background:      #f8fafc;
	font-size:       .72rem;
	font-weight:     700;
	text-transform:  uppercase;
	letter-spacing:  .07em;
	color:           #64748b;
	border-bottom:   1px solid #e2e8f0;
	text-align:      left;
}
.wcqm-products-table td {
	padding:       14px 16px;
	border-bottom: 1px solid #f1f5f9;
	vertical-align: middle;
	font-size:     .875rem;
	color:         #334155;
}
.wcqm-products-table tbody tr:last-child td { border-bottom: none; }
.wcqm-products-table tbody tr:hover { background: #fafbfc; }

/* Thumbnail cell */
.wcqm-td-thumb { width: 72px; }

.wcqm-product-thumb {
	width:         60px;
	height:        60px;
	object-fit:    cover;
	border-radius: 8px;
	border:        1px solid #e2e8f0;
	display:       block;
}
.wcqm-thumb-placeholder {
	width:           60px;
	height:          60px;
	background:      #f1f5f9;
	border-radius:   8px;
	border:          1px solid #e2e8f0;
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           #cbd5e1;
}

.wcqm-product-name {
	margin:      0 0 4px;
	font-weight: 600;
	color:       #1e293b;
	font-size:   .9rem;
}
.wcqm-product-variation {
	margin:    0 0 3px;
	font-size: .78rem;
}
.wcqm-variation-chip {
	display:       inline-block;
	background:    #f1f5f9;
	color:         #475569;
	padding:       2px 7px;
	border-radius: 99px;
	font-size:     .75rem;
	margin-right:  4px;
}
.wcqm-product-sku {
	margin:    0;
	font-size: .75rem;
	color:     #94a3b8;
}
.wcqm-td-sku .wcqm-sku-code {
	font-family: monospace;
	font-size:   .82rem;
	color:       #94a3b8;
}

/* Quantity stepper */
.wcqm-td-qty { text-align: center; }
.wcqm-qty-wrapper {
	display:     inline-flex;
	align-items: center;
	border:      1px solid #e2e8f0;
	border-radius: 8px;
	overflow:    hidden;
	background:  #fff;
}
.wcqm-qty-btn {
	width:       32px;
	height:      36px;
	border:      none;
	background:  #f8fafc;
	color:       #475569;
	cursor:      pointer;
	font-size:   1.1rem;
	display:     flex;
	align-items: center;
	justify-content: center;
	transition:  background var(--wcqm-transition);
	flex-shrink: 0;
}
.wcqm-qty-btn:hover { background: #e2e8f0; }
.wcqm-qty-input {
	width:       48px;
	height:      36px;
	border:      none;
	border-left: 1px solid #e2e8f0;
	border-right: 1px solid #e2e8f0;
	text-align:  center;
	font-size:   .875rem;
	font-weight: 600;
	color:       #1e293b;
	-moz-appearance: textfield;
	appearance:  textfield;
}
.wcqm-qty-input::-webkit-inner-spin-button,
.wcqm-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.wcqm-qty-input:focus { outline: none; background: #fffbeb; }

/* Remove button */
.wcqm-td-remove { text-align: center; }
.wcqm-remove-item {
	width:       34px;
	height:      34px;
	display:     inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	border:      1px solid #e2e8f0;
	background:  #fff;
	cursor:      pointer;
	color:       #94a3b8;
	transition:  all var(--wcqm-transition);
}
.wcqm-remove-item:hover { color: #dc2626; border-color: #fca5a5; background: #fef2f2; }

/* ---------------------------------------------------------------------------
   Mobile Cards
   --------------------------------------------------------------------------- */
.wcqm-product-card {
	background:    #fff;
	border:        1px solid #e2e8f0;
	border-radius: var(--wcqm-radius-lg);
	padding:       16px;
	margin-bottom: 12px;
	box-shadow:    var(--wcqm-shadow-sm);
}
.wcqm-card-top {
	display:     flex;
	gap:         12px;
	align-items: flex-start;
	margin-bottom: 14px;
}
.wcqm-card-thumb {
	width:         56px;
	height:        56px;
	object-fit:    cover;
	border-radius: 8px;
	border:        1px solid #e2e8f0;
	flex-shrink:   0;
}
.wcqm-card-info { flex: 1; }
.wcqm-card-remove {
	width:       30px;
	height:      30px;
	display:     inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	border:      1px solid #e2e8f0;
	background:  #fff;
	cursor:      pointer;
	color:       #94a3b8;
	flex-shrink: 0;
	transition:  all var(--wcqm-transition);
}
.wcqm-card-remove:hover { color: #dc2626; border-color: #fca5a5; background: #fef2f2; }
.wcqm-card-bottom { display: flex; justify-content: flex-end; }

/* ---------------------------------------------------------------------------
   Continue Shopping
   --------------------------------------------------------------------------- */
.wcqm-continue-shopping {
	margin-top: 16px;
}
.wcqm-continue-shopping a {
	display:         inline-flex;
	align-items:     center;
	gap:             6px;
	color:           var(--wcqm-primary-color);
	font-size:       .85rem;
	font-weight:     500;
	text-decoration: none;
	transition:      gap var(--wcqm-transition);
}
.wcqm-continue-shopping a:hover { gap: 10px; }

/* ---------------------------------------------------------------------------
   Summary Panel
   --------------------------------------------------------------------------- */
.wcqm-summary-panel {
	background:    var(--wcqm-summary-bg-color);
	color:         var(--wcqm-summary-text-color);
	border-radius: var(--wcqm-radius-lg);
	box-shadow:    var(--wcqm-shadow);
	border:        1px solid #e2e8f0;
	padding:       24px;
	overflow:      hidden;
}
.wcqm-summary-header {
	display:       flex;
	align-items:   center;
	gap:           8px;
	margin-bottom: 16px;
}
.wcqm-summary-header h3 {
	margin:      0 !important;
	font-size:   1rem !important;
	font-weight: 700 !important;
	color:       #1e293b;
}
.wcqm-summary-divider {
	height:        1px;
	background:    #e2e8f0;
	margin:        14px 0;
}
.wcqm-summary-row {
	display:         flex;
	justify-content: space-between;
	align-items:     center;
	padding:         5px 0;
	font-size:       .875rem;
}
.wcqm-summary-row span { color: #64748b; }
.wcqm-summary-row strong { color: #1e293b; font-weight: 700; }
.wcqm-summary-note {
	display:     flex;
	align-items: flex-start;
	gap:         8px;
	font-size:   .78rem;
	color:       #64748b;
	line-height: 1.5;
	margin-bottom: 16px;
}
.wcqm-summary-note svg { flex-shrink: 0; margin-top: 1px; }
.wcqm-summary-cta {
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             8px;
	width:           100%;
	padding:         12px;
	background:      var(--wcqm-button-bg-color);
	color:           var(--wcqm-button-text-color) !important;
	border-radius:   var(--wcqm-radius);
	text-decoration: none !important;
	font-weight:     700;
	font-size:       .9rem;
	transition:      opacity var(--wcqm-transition), transform var(--wcqm-transition);
}
.wcqm-summary-cta:hover { opacity: .88; transform: translateY(-1px); }

/* ---------------------------------------------------------------------------
   Form Section
   --------------------------------------------------------------------------- */
.wcqm-form-section {
	margin-top:    40px;
	background:    #fff;
	border-radius: var(--wcqm-radius-lg);
	box-shadow:    var(--wcqm-shadow);
	border:        1px solid #e2e8f0;
	overflow:      hidden;
}
.wcqm-form-inner { padding: 36px 40px; }
@media (max-width: 640px) { .wcqm-form-inner { padding: 24px 20px; } }

.wcqm-form-header {
	display:       flex;
	align-items:   flex-start;
	gap:           16px;
	margin-bottom: 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid #f1f5f9;
}
.wcqm-form-header-icon {
	width:           48px;
	height:          48px;
	background:      #eff6ff;
	border-radius:   12px;
	display:         flex;
	align-items:     center;
	justify-content: center;
	color:           var(--wcqm-primary-color);
	flex-shrink:     0;
}
.wcqm-form-header h2 {
	margin:      0 0 4px !important;
	font-size:   1.2rem !important;
	font-weight: 700 !important;
	color:       #1e293b;
}
.wcqm-form-header p {
	margin:    0;
	color:     #64748b;
	font-size: .875rem;
}

/* CF7 field styling */
.wcqm-form-section .wpcf7-form p { margin-bottom: 16px; }
.wcqm-form-section .wpcf7-form input[type="text"],
.wcqm-form-section .wpcf7-form input[type="email"],
.wcqm-form-section .wpcf7-form input[type="tel"],
.wcqm-form-section .wpcf7-form textarea,
.wcqm-form-section .wpcf7-form select {
	width:         100%;
	padding:       11px 14px;
	border:        1px solid #e2e8f0;
	border-radius: var(--wcqm-radius);
	font-size:     .9rem;
	color:         #334155;
	background:    #fff;
	transition:    border-color var(--wcqm-transition), box-shadow var(--wcqm-transition);
	box-sizing:    border-box;
}
.wcqm-form-section .wpcf7-form input:focus,
.wcqm-form-section .wpcf7-form textarea:focus,
.wcqm-form-section .wpcf7-form select:focus {
	outline:      none;
	border-color: var(--wcqm-primary-color);
	box-shadow:   0 0 0 3px rgba(34,113,177,.12);
}
.wcqm-form-section .wpcf7-form textarea { min-height: 120px; resize: vertical; }

.wcqm-form-section .wpcf7-form input[type="submit"],
.wcqm-form-section .wpcf7-submit {
	background:    var(--wcqm-button-bg-color) !important;
	color:         var(--wcqm-button-text-color) !important;
	border:        none !important;
	border-radius: var(--wcqm-radius) !important;
	padding:       13px 32px !important;
	font-size:     .95rem !important;
	font-weight:   700 !important;
	cursor:        pointer;
	transition:    opacity var(--wcqm-transition), transform var(--wcqm-transition);
	box-shadow:    var(--wcqm-shadow-sm);
}
.wcqm-form-section .wpcf7-form input[type="submit"]:hover,
.wcqm-form-section .wpcf7-submit:hover { opacity: .88; transform: translateY(-1px); }

/* CF7 notice */
.wcqm-cf7-notice {
	display:       flex;
	align-items:   flex-start;
	gap:           12px;
	background:    #fffbeb;
	border:        1px solid #fde68a;
	border-radius: var(--wcqm-radius);
	padding:       16px;
}
.wcqm-cf7-notice p { margin: 0; font-size: .875rem; color: #92400e; }

/* ---------------------------------------------------------------------------
   Empty State
   --------------------------------------------------------------------------- */
.wcqm-empty-state {
	text-align:  center;
	padding:     80px 24px;
}
.wcqm-empty-icon {
	width:           96px;
	height:          96px;
	background:      #f1f5f9;
	border-radius:   50%;
	display:         flex;
	align-items:     center;
	justify-content: center;
	margin:          0 auto 24px;
	color:           #cbd5e1;
}
.wcqm-empty-state h2 {
	margin:      0 0 8px !important;
	font-size:   1.3rem !important;
	font-weight: 700 !important;
	color:       #1e293b;
}
.wcqm-empty-state p {
	margin:    0 0 24px;
	color:     #64748b;
	font-size: .95rem;
}
.wcqm-shop-link {
	display:         inline-flex;
	align-items:     center;
	gap:             7px;
	background:      var(--wcqm-button-bg-color);
	color:           var(--wcqm-button-text-color) !important;
	border-radius:   var(--wcqm-radius);
	padding:         12px 24px;
	text-decoration: none !important;
	font-weight:     700;
	font-size:       .9rem;
	transition:      opacity var(--wcqm-transition), transform var(--wcqm-transition);
	box-shadow:      var(--wcqm-shadow-sm);
}
.wcqm-shop-link:hover { opacity: .88; transform: translateY(-1px); }

/* ---------------------------------------------------------------------------
   Toast
   --------------------------------------------------------------------------- */
.wcqm-toast {
	position:      fixed;
	bottom:        24px;
	right:         24px;
	z-index:       99999;
	background:    #1e293b;
	color:         #fff;
	padding:       14px 22px;
	border-radius: var(--wcqm-radius);
	box-shadow:    var(--wcqm-shadow-lg);
	font-size:     .875rem;
	font-weight:   500;
	opacity:       0;
	transform:     translateY(12px);
	transition:    opacity .3s ease, transform .3s ease;
	pointer-events: none;
	max-width:     320px;
}
.wcqm-toast.show  { opacity: 1; transform: translateY(0); }
.wcqm-toast.success { background: #166534; }
.wcqm-toast.error   { background: #9b1c1c; }

/* =========================================================
   No-price single product wrapper
   ========================================================= */
.wcqm-no-price-add-wrap { margin-top: 1em; }
.wcqm-no-price-add-wrap .wcqm-add-to-quote { width: 100%; }

/* =========================================================
   PDF DOWNLOAD BANNER (shown after CF7 success)
   ========================================================= */
.wcqm-pdf-banner {
	margin-top: 24px;
	animation: wcqm-slide-in .4s ease;
}
@keyframes wcqm-slide-in {
	from { opacity: 0; transform: translateY(-10px); }
	to   { opacity: 1; transform: translateY(0); }
}
.wcqm-pdf-banner-inner {
	display:         flex;
	align-items:     center;
	gap:             16px;
	background:      #f0fdf4;
	border:          1.5px solid #86efac;
	border-radius:   10px;
	padding:         18px 22px;
}
.wcqm-pdf-banner-inner > svg { flex-shrink: 0; color: #16a34a; }
.wcqm-pdf-banner-text { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.wcqm-pdf-banner-text strong { font-size: .95rem; color: #15803d; }
.wcqm-pdf-banner-text span   { font-size: .85rem; color: #166534; }
.wcqm-pdf-download-btn {
	display:         inline-flex;
	align-items:     center;
	gap:             7px;
	background:      #16a34a;
	color:           #fff !important;
	text-decoration: none;
	padding:         9px 18px;
	border-radius:   6px;
	font-size:       .875rem;
	font-weight:     600;
	white-space:     nowrap;
	transition:      background .2s;
}
.wcqm-pdf-download-btn:hover { background: #15803d; }

/* =========================================================
   MY ACCOUNT — My Quotes portal
   ========================================================= */
.wcqm-myaccount-wrap { padding-bottom: 24px; }
.wcqm-myaccount-title {
	font-size:     1.3rem;
	font-weight:   700;
	margin-bottom: 16px;
	color:         var(--wcqm-primary-color, #1e293b);
}
.wcqm-myaccount-empty { text-align: center; padding: 40px 20px; color: #64748b; }
.wcqm-myaccount-empty p { margin-bottom: 16px; }

.wcqm-myaccount-table { width: 100%; border-collapse: collapse; }
.wcqm-myaccount-table thead th {
	text-align:    left;
	padding:       10px 12px;
	background:    #f8fafc;
	border-bottom: 2px solid #e2e8f0;
	font-size:     .8rem;
	font-weight:   700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color:         #64748b;
}
.wcqm-myaccount-table tbody td {
	padding:       11px 12px;
	border-bottom: 1px solid #f1f5f9;
	vertical-align: middle;
	font-size:     .9rem;
	color:         #334155;
}
.wcqm-myaccount-table tbody tr:last-child td { border-bottom: none; }

.wcqm-quote-link { font-weight: 600; color: var(--wcqm-primary-color, #2271b1); text-decoration: none; }
.wcqm-quote-link:hover { text-decoration: underline; }

.wcqm-status-badge {
	display:       inline-block;
	color:         #fff;
	padding:       3px 12px;
	border-radius: 20px;
	font-size:     .78rem;
	font-weight:   600;
}

.wcqm-myaccount-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.wcqm-btn-sm { padding: 5px 12px !important; font-size: .8rem !important; }

/* Detail view */
.wcqm-back-link {
	display:       inline-flex;
	align-items:   center;
	gap:           6px;
	font-size:     .85rem;
	color:         #64748b;
	text-decoration: none;
	margin-bottom: 16px;
}
.wcqm-back-link:hover { color: var(--wcqm-primary-color, #2271b1); }
.wcqm-detail-header {
	display:       flex;
	align-items:   center;
	justify-content: space-between;
	flex-wrap:     wrap;
	gap:           10px;
	margin-bottom: 20px;
}
.wcqm-detail-header-meta { display: flex; align-items: center; gap: 10px; }
.wcqm-detail-date { font-size: .85rem; color: #94a3b8; }

.wcqm-detail-section { margin-bottom: 24px; }
.wcqm-detail-section h3 {
	font-size:     .8rem;
	font-weight:   700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color:         #64748b;
	border-bottom: 1px solid #e2e8f0;
	padding-bottom: 6px;
	margin-bottom: 12px;
}
.wcqm-detail-dl { display: grid; grid-template-columns: 120px 1fr; gap: 6px 12px; font-size: .9rem; }
.wcqm-detail-dl dt { font-weight: 600; color: #475569; }
.wcqm-detail-dl dd { color: #1e293b; }

.wcqm-detail-products { width: 100%; border-collapse: collapse; font-size: .9rem; }
.wcqm-detail-products thead th {
	padding: 8px 10px;
	text-align: left;
	background: #f8fafc;
	border-bottom: 2px solid #e2e8f0;
	font-size: .78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #64748b;
}
.wcqm-detail-products tbody td {
	padding: 9px 10px;
	border-bottom: 1px solid #f1f5f9;
	vertical-align: middle;
}

.wcqm-detail-actions {
	display:   flex;
	gap:       10px;
	flex-wrap: wrap;
	margin-top: 6px;
}
.wcqm-detail-actions .button {
	display:     inline-flex;
	align-items: center;
	gap:         6px;
}

/* =========================================================
   "Already added" button state + View Quote link
   ========================================================= */
.wcqm-add-to-quote.added {
	background:    #16a34a !important;
	border-color:  #16a34a !important;
	color:         #fff !important;
	cursor:        default;
	pointer-events: none;
}
.wcqm-view-quote-link {
	display:        inline-flex;
	align-items:    center;
	gap:            5px;
	margin-top:     6px;
	font-size:      .8rem;
	font-weight:    600;
	color:          var(--wcqm-primary-color, #2271b1);
	text-decoration: none;
}
.wcqm-view-quote-link:hover { text-decoration: underline; }

/* On loop items, show link below the button */
.products .product .wcqm-view-quote-link,
ul.products li.product .wcqm-view-quote-link {
	display:    block;
	text-align: center;
	margin-top: 4px;
}

/* =========================================================
   LOGIN MODAL (guest tries to add to quote)
   ========================================================= */
.wcqm-login-modal {
	position:   fixed;
	inset:      0;
	z-index:    999999;
	display:    flex;
	align-items: center;
	justify-content: center;
	opacity:    0;
	pointer-events: none;
	transition: opacity .25s ease;
}
.wcqm-login-modal.open {
	opacity:        1;
	pointer-events: all;
}
.wcqm-login-modal-overlay {
	position:   absolute;
	inset:      0;
	background: rgba(15,23,42,.55);
	backdrop-filter: blur(3px);
}
.wcqm-login-modal-box {
	position:      relative;
	background:    #fff;
	border-radius: 16px;
	padding:       40px 36px 36px;
	max-width:     420px;
	width:         calc(100% - 32px);
	text-align:    center;
	box-shadow:    0 20px 60px rgba(0,0,0,.18);
	transform:     translateY(16px);
	transition:    transform .25s ease;
}
.wcqm-login-modal.open .wcqm-login-modal-box {
	transform: translateY(0);
}
.wcqm-login-modal-close {
	position:   absolute;
	top:        14px;
	right:      14px;
	background: none;
	border:     none;
	cursor:     pointer;
	color:      #94a3b8;
	padding:    4px;
	line-height: 1;
	border-radius: 6px;
	transition: color .15s, background .15s;
}
.wcqm-login-modal-close:hover { color: #1e293b; background: #f1f5f9; }
.wcqm-login-modal-icon {
	width:         64px;
	height:        64px;
	background:    #eff6ff;
	border-radius: 50%;
	display:       flex;
	align-items:   center;
	justify-content: center;
	margin:        0 auto 20px;
	color:         var(--wcqm-primary-color, #2271b1);
}
.wcqm-login-modal-title {
	font-size:     1.15rem;
	font-weight:   700;
	color:         #1e293b;
	margin:        0 0 10px;
}
.wcqm-login-modal-msg {
	font-size:     .9rem;
	color:         #64748b;
	line-height:   1.5;
	margin:        0 0 28px;
}
.wcqm-login-modal-actions {
	display:    flex;
	gap:        10px;
	justify-content: center;
	flex-wrap:  wrap;
}

/* =========================================================
   LOGIN REQUIRED BLOCK (quote page for guests)
   ========================================================= */
.wcqm-login-required-block {
	text-align:    center;
	padding:       48px 32px;
	background:    #f8fafc;
	border:        1.5px dashed #cbd5e1;
	border-radius: 14px;
}
.wcqm-login-required-icon {
	width:         80px;
	height:        80px;
	background:    #eff6ff;
	border-radius: 50%;
	display:       flex;
	align-items:   center;
	justify-content: center;
	margin:        0 auto 20px;
	color:         var(--wcqm-primary-color, #2271b1);
}
.wcqm-login-required-block h3 {
	font-size:     1.2rem;
	font-weight:   700;
	color:         #1e293b;
	margin:        0 0 10px;
}
.wcqm-login-required-block p {
	font-size:     .9rem;
	color:         #64748b;
	max-width:     380px;
	margin:        0 auto 28px;
	line-height:   1.6;
}
.wcqm-login-required-actions {
	display:    flex;
	gap:        10px;
	justify-content: center;
	flex-wrap:  wrap;
}

/* =========================================================
   SHARED BUTTON STYLES (modal + login block)
   ========================================================= */
.wcqm-login-btn-primary,
.wcqm-login-btn-secondary {
	display:     inline-flex;
	align-items: center;
	gap:         7px;
	padding:     11px 22px;
	border-radius: 8px;
	font-size:   .9rem;
	font-weight: 600;
	text-decoration: none;
	transition:  background .2s, transform .15s;
	white-space: nowrap;
}
.wcqm-login-btn-primary {
	background: var(--wcqm-primary-color, #2271b1);
	color:      #fff !important;
}
.wcqm-login-btn-primary:hover {
	filter:    brightness(1.1);
	transform: translateY(-1px);
}
.wcqm-login-btn-secondary {
	background: #f1f5f9;
	color:      #334155 !important;
	border:     1.5px solid #e2e8f0;
}
.wcqm-login-btn-secondary:hover {
	background: #e2e8f0;
	transform:  translateY(-1px);
}
