/* KW Quote Cart — styles driven by Design Dashboard CSS variables */
:root {
	--kwq-navy: #0b1530;
	--kwq-yellow: #f5b800;
	--kwq-line: #e5e7eb;
	--kwq-muted: #6b7280;
	--kwq-soft: #f7f7f5;
}

/* ===== Add to Quote button ===== */
.kwq-add-wrap { display: flex; gap: 10px; align-items: stretch; margin: 12px 0; flex-wrap: wrap; }
.kwq-add-wrap.kwq-full { flex-wrap: nowrap; }
.kwq-add-wrap.kwq-full .kwq-add-btn { flex: 1; }
.kwq-loop { justify-content: center; }
.kwq-add-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: var(--kwq-btn-width, auto);
	padding: var(--kwq-btn-py, 12px) var(--kwq-btn-px, 22px);
	background: var(--kwq-btn-bg, #f5b800); color: var(--kwq-btn-color, #0b1530);
	border: var(--kwq-btn-bw, 2px) solid var(--kwq-btn-border, #f5b800);
	border-radius: var(--kwq-btn-radius, 6px);
	font-size: var(--kwq-btn-fs, 15px); font-weight: var(--kwq-btn-weight, 700);
	text-transform: var(--kwq-btn-transform, none); line-height: 1.2; letter-spacing: .01em;
	cursor: pointer; text-decoration: none !important; transition: background .15s, color .15s, border-color .15s, transform .1s;
}
.kwq-add-btn:hover, .kwq-add-btn:focus-visible {
	background: var(--kwq-btn-hbg, #0b1530); color: var(--kwq-btn-hcolor, #fff); border-color: var(--kwq-btn-hbg, #0b1530);
}
.kwq-add-btn:active { transform: scale(.98); }
.kwq-add-btn.is-in { background: var(--kwq-btn-in-bg, #0b1530); color: var(--kwq-btn-in-color, #fff); border-color: var(--kwq-btn-in-bg, #0b1530); }
.kwq-add-btn.is-loading { opacity: .6; cursor: wait; }
.kwq-loop .kwq-add-btn { font-size: calc(var(--kwq-btn-fs, 15px) - 1px); padding: calc(var(--kwq-btn-py, 12px) - 2px) calc(var(--kwq-btn-px, 22px) - 6px); }
.kwq-svg { flex: none; }

/* ===== Amount (quantity) box ===== */
.kwq-qty {
	display: inline-flex; align-items: stretch; height: var(--kwq-qty-h, 46px);
	border: 1px solid var(--kwq-qty-border, #d1d5db); border-radius: var(--kwq-qty-radius, 6px);
	overflow: hidden; background: var(--kwq-qty-bg, #fff);
}
.kwq-qty input {
	width: var(--kwq-qty-w, 56px); border: 0 !important; margin: 0; padding: 0 !important; box-shadow: none !important;
	text-align: center; font-weight: 700; font-size: 16px; background: transparent; color: var(--kwq-qty-color, #0b1530);
	-moz-appearance: textfield; height: auto;
}
.kwq-qty input::-webkit-inner-spin-button, .kwq-qty input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.kwq-qty-input input { -moz-appearance: auto; }
.kwq-qty-input input::-webkit-inner-spin-button, .kwq-qty-input input::-webkit-outer-spin-button { -webkit-appearance: inner-spin-button; }
.kwq-step {
	width: calc(var(--kwq-qty-h, 46px) - 6px); border: 0; margin: 0; padding: 0;
	background: var(--kwq-qty-btn-bg, #f3f4f6); color: var(--kwq-qty-btn-color, #0b1530);
	font-size: 20px; line-height: 1; cursor: pointer; transition: filter .15s;
}
.kwq-step:hover { filter: brightness(.93); }

/* ===== Header quote cart ===== */
.kwq-hdr-pair { display: inline-flex; align-items: center; gap: 10px; }
.kwq-hdr { position: relative; display: inline-flex; }
.kwq-hdr-btn {
	display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; white-space: nowrap;
	color: var(--kwq-hdr-color, #0b1530) !important; font-weight: 600; font-size: 15px; text-decoration: none !important;
	border-radius: var(--kwq-hdr-radius, 6px); transition: filter .15s;
}
.kwq-hdr-outline .kwq-hdr-btn { background: var(--kwq-hdr-bg, #fff); border: 1px solid var(--kwq-hdr-border, #e5e7eb); }
.kwq-hdr-solid .kwq-hdr-btn { background: var(--kwq-hdr-bg, #fff); border: 1px solid var(--kwq-hdr-bg, #fff); }
.kwq-hdr-icon .kwq-hdr-btn { padding: 6px; position: relative; }
.kwq-hdr-icon .kwq-hdr-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.kwq-hdr-icon .kwq-badge { position: absolute; top: -4px; right: -8px; }
.kwq-hdr-btn:hover { filter: brightness(.96); }
.kwq-badge {
	min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; box-sizing: border-box;
	background: var(--kwq-badge-bg, #f5b800); color: var(--kwq-badge-color, #0b1530);
	font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; line-height: 1;
}
.kwq-badge.is-empty { opacity: .55; }
.kwq-badge.is-bump { animation: kwq-bump .4s ease; }
@keyframes kwq-bump { 40% { transform: scale(1.35); } }

/* Mini dropdown */
.kwq-mini {
	position: absolute; right: 0; top: 100%; padding-top: 8px; z-index: 9999;
	visibility: hidden; opacity: 0; transform: translateY(6px); transition: all .18s;
}
.kwq-hdr.has-dropdown:hover .kwq-mini, .kwq-hdr.has-dropdown:focus-within .kwq-mini, .kwq-hdr.is-open .kwq-mini { visibility: visible; opacity: 1; transform: none; }
.kwq-mini-inner { width: 320px; background: #fff; border: 1px solid var(--kwq-line); border-radius: 8px; box-shadow: 0 16px 40px rgba(11,21,48,.18); padding: 14px; color: var(--kwq-navy); text-align: left; }
.kwq-mini-list { list-style: none; margin: 0; padding: 0; }
.kwq-mini-list li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--kwq-line); margin: 0; }
.kwq-mini-thumb img { width: 40px; height: 40px; object-fit: contain; border-radius: 4px; border: 1px solid var(--kwq-line); display: block; }
.kwq-mini-name { flex: 1; font-size: 13px; font-weight: 600; line-height: 1.3; }
.kwq-mini-name small { display: block; color: var(--kwq-muted); font-weight: 400; }
.kwq-mini-qty { font-weight: 700; font-size: 13px; }
.kwq-mini-more { font-size: 12px; color: var(--kwq-muted); padding-top: 8px; }
.kwq-mini-empty { font-size: 14px; color: var(--kwq-muted); text-align: center; padding: 10px 0; }
.kwq-mini-btn { display: block; margin-top: 12px; text-align: center; padding: 11px; border-radius: var(--kwq-btn-radius, 6px); background: var(--kwq-btn-bg, #f5b800); color: var(--kwq-btn-color, #0b1530) !important; font-weight: 700; text-decoration: none !important; }
.kwq-mini-btn:hover { background: var(--kwq-btn-hbg, #0b1530); color: var(--kwq-btn-hcolor, #fff) !important; }
.kwq-menu-item { display: flex; align-items: center; }

/* ===== Toast ===== */
.kwq-toast {
	position: fixed; right: 20px; bottom: 20px; z-index: 99999; display: flex; gap: 16px; align-items: center;
	background: var(--kwq-toast-bg, #0b1530); color: #fff; padding: 14px 18px; border-radius: 8px; font-size: 15px;
	box-shadow: 0 10px 30px rgba(0,0,0,.25); transform: translateY(20px); opacity: 0; transition: all .25s;
}
.kwq-toast.is-on { transform: none; opacity: 1; }
.kwq-toast a { color: var(--kwq-toast-link, #f5b800) !important; font-weight: 700; text-decoration: none; }

/* ===== "Replace Add to Cart" mode ===== */
.kwq-replace-cart .single_add_to_cart_button,
.kwq-replace-cart form.cart .quantity,
.kwq-replace-cart .wc-block-components-product-add-to-cart-button,
.kwq-replace-cart .wc-block-components-product-button > .wp-block-button__link,
.kwq-replace-cart .wc-block-components-product-button > button { display: none !important; }

/* Block alignment */
.kwq-align-center .kwq-add-wrap { justify-content: center; }
.kwq-align-right .kwq-add-wrap { justify-content: flex-end; }

/* ===== Quote page ===== */
.kwq { max-width: 1100px; margin: 0 auto; display: grid; gap: 24px; }
.kwq-card { background: #fff; border: 1px solid var(--kwq-line); border-radius: 8px; padding: 28px; }
.kwq-card h3 { margin: 0 0 18px; color: var(--kwq-navy); font-size: 20px; }
.kwq-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.kwq-head-count { color: var(--kwq-muted); font-weight: 400; }
.kwq-link-sm { color: var(--kwq-navy); font-weight: 600; font-size: 14px; }
.kwq-empty { text-align: center; padding: 30px 0; color: var(--kwq-muted); }

.kwq-row { display: grid; grid-template-columns: 2fr auto 1.4fr 36px; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--kwq-line); }
.kwq-row-head { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--kwq-muted); font-weight: 700; border-top: 0; padding-top: 0; }
.kwq-row.is-removing { opacity: .4; }
.kwq-prod { display: flex; gap: 14px; align-items: center; }
.kwq-thumb img { width: 64px; height: 64px; object-fit: contain; border: 1px solid var(--kwq-line); border-radius: 4px; background: #fff; }
.kwq-name { color: var(--kwq-navy); font-weight: 700; text-decoration: none; }
.kwq-sku { font-size: 13px; color: var(--kwq-muted); margin-top: 2px; }
.kwq-row-notes { width: 100%; border: 1px solid var(--kwq-line); border-radius: 6px; padding: 8px; font-size: 13px; resize: vertical; box-sizing: border-box; }
.kwq-remove { border: 0; background: none; font-size: 24px; color: var(--kwq-muted); cursor: pointer; line-height: 1; }
.kwq-remove:hover { color: #dc2626; }

.kwq-form label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #374151; margin-bottom: 18px; }
.kwq-form input[type=text], .kwq-form input[type=email], .kwq-form input[type=tel], .kwq-form select, .kwq-form textarea {
	display: block; width: 100%; margin-top: 6px; padding: 11px 12px; border: 1px solid var(--kwq-line); border-radius: 6px;
	font-size: 15px; text-transform: none; letter-spacing: 0; font-weight: 400; background: #fff; box-sizing: border-box;
}
.kwq-form input[type=file] { display: block; margin-top: 8px; text-transform: none; font-weight: 400; letter-spacing: 0; }
.kwq-form input:focus, .kwq-form select:focus, .kwq-form textarea:focus { outline: 2px solid var(--kwq-btn-bg, #f5b800); border-color: var(--kwq-btn-bg, #f5b800); }
.kwq-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
.kwq-hp { position: absolute !important; left: -9999px !important; }

.kwq-btn { display: inline-block; background: var(--kwq-btn-bg, #f5b800); color: var(--kwq-btn-color, #0b1530) !important; font-weight: 700; padding: 13px 24px; border: 0; border-radius: var(--kwq-btn-radius, 6px); text-decoration: none; cursor: pointer; font-size: 15px; }
.kwq-btn:hover { background: var(--kwq-btn-hbg, #0b1530); color: var(--kwq-btn-hcolor, #fff) !important; }
.kwq-submit { width: 100%; padding: 16px; font-size: 16px; }

.kwq-notice { padding: 14px 18px; border-radius: 6px; }
.kwq-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }

.kwq-thanks { text-align: center; background: #fff; border: 1px solid var(--kwq-line); border-radius: 8px; padding: 50px 24px; }
.kwq-check { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: var(--kwq-btn-bg, #f5b800); color: var(--kwq-btn-color, #0b1530); font-size: 32px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.kwq-thanks h2 { color: var(--kwq-navy); }
.kwq-ref { font-size: 18px; }

@media (max-width: 760px) {
	.kwq-card { padding: 18px; }
	.kwq-grid { grid-template-columns: 1fr; }
	.kwq-row-head { display: none; }
	.kwq-row { grid-template-columns: 1fr auto; grid-template-areas: "prod remove" "qty qty" "notes notes"; gap: 10px; }
	.kwq-prod { grid-area: prod; }
	.kwq-row .kwq-qty { grid-area: qty; justify-self: start; }
	.kwq-row-notes { grid-area: notes; }
	.kwq-remove { grid-area: remove; align-self: start; }
	.kwq-toast { left: 16px; right: 16px; justify-content: space-between; }
	.kwq-hdr-outline .kwq-hdr-label, .kwq-hdr-solid .kwq-hdr-label { display: none; }
	.kwq-mini { display: none; }
}

/* Inline next to Add to Cart */
.kwq-add-wrap.kwq-inline{display:inline-flex;margin:0;flex:0 0 auto;vertical-align:middle}
*:has(>.kwq-add-wrap.kwq-inline){display:flex!important;flex-wrap:wrap;align-items:center;gap:10px}
*:has(>.kwq-add-wrap.kwq-inline)>.single_add_to_cart_button{flex:0 1 auto!important;margin:0!important}
.kwq-add-wrap.kwq-inline .kwq-add-btn{white-space:nowrap}

/* ── Quote page rows: tidy quantity + notes (v1.2.0) ───────────── */
.kwq-items .kwq-row{grid-template-columns:minmax(0,1fr) 128px minmax(0,1fr) 36px!important;gap:20px!important;align-items:center!important}
.kwq-items .kwq-row-head span:nth-child(2){text-align:center}
.kwq-items .kwq-row .kwq-qty{display:inline-flex!important;align-items:stretch;width:128px!important;height:40px;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;background:#fff;justify-self:center}
.kwq-items .kwq-row .kwq-qty .kwq-step{flex:0 0 36px;width:36px!important;min-width:0!important;height:100%!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:#f3f4f6!important;color:#0b1530!important;font-size:18px!important;line-height:1!important;cursor:pointer;transition:background .15s}
.kwq-items .kwq-row .kwq-qty .kwq-step:hover{background:#e5e7eb!important}
.kwq-items .kwq-row .kwq-qty input.kwq-row-qty{flex:1 1 auto;width:56px!important;min-width:0!important;height:100%!important;margin:0!important;padding:0 4px!important;border:0!important;border-left:1px solid #e5e7eb!important;border-right:1px solid #e5e7eb!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;text-align:center!important;font-weight:600;font-size:15px;color:#0b1530;-moz-appearance:textfield}
.kwq-items .kwq-row .kwq-qty input.kwq-row-qty::-webkit-outer-spin-button,.kwq-items .kwq-row .kwq-qty input.kwq-row-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.kwq-items .kwq-row textarea.kwq-row-notes{width:100%!important;height:40px!important;min-height:40px!important;max-height:140px;padding:9px 12px!important;margin:0!important;border:1px solid #d1d5db!important;border-radius:8px!important;font-size:14px;line-height:1.4;resize:vertical;box-shadow:none!important;background:#fff}
.kwq-items .kwq-row textarea.kwq-row-notes:focus{border-color:#0b1530!important;outline:none;height:72px!important}
.kwq-items .kwq-row .kwq-remove{width:32px;height:32px;border-radius:50%;justify-self:center}
@media(max-width:700px){
.kwq-items .kwq-row-head{display:none!important}
.kwq-items .kwq-row{grid-template-columns:128px minmax(0,1fr) 32px!important;gap:10px 12px!important}
.kwq-items .kwq-row .kwq-prod{grid-column:1/-1}
.kwq-items .kwq-row .kwq-qty{justify-self:start}
}
/* ── Quote page: 2 columns — products left, your information right (v1.2.2) ── */
@media(min-width:901px){
.kwq{grid-template-columns:minmax(0,1.4fr) minmax(340px,1fr)!important;max-width:1240px!important;gap:28px!important;align-items:start!important}
.kwq>.kwq-items-card,.kwq>.kwq-form{margin:0!important}
.kwq>.kwq-form{position:sticky;top:110px}
.kwq>.kwq-form .kwq-grid{grid-template-columns:1fr!important;gap:12px!important}
/* product rows: product | qty | remove, notes underneath */
.kwq-items .kwq-row{grid-template-columns:minmax(0,1fr) 128px 36px!important;gap:12px 16px!important}
.kwq-items .kwq-row-head{grid-template-columns:minmax(0,1fr) 128px 36px!important}
.kwq-items .kwq-row-head span:nth-child(3){display:none}
.kwq-items .kwq-row .kwq-qty{grid-column:2;grid-row:1}
.kwq-items .kwq-row .kwq-remove{grid-column:3;grid-row:1}
.kwq-items .kwq-row textarea.kwq-row-notes{grid-column:1/-1;grid-row:2}
.kwq-items .kwq-row:not(.kwq-row-head){padding-bottom:16px}
}
/* Compact form in the right column (v1.2.3) */
@media(min-width:901px){
.kwq>.kwq-form{container-type:inline-size}
.kwq>.kwq-form .kwq-grid{gap:0 14px!important}
.kwq>.kwq-form label{margin:0 0 12px!important;font-size:12px}
.kwq>.kwq-form label input,.kwq>.kwq-form label select,.kwq>.kwq-form label textarea{margin-top:5px!important}
.kwq>.kwq-form h3{margin-bottom:14px!important}
.kwq>.kwq-form .kwq-submit{width:100%;margin-top:6px}
.kwq>.kwq-form{max-height:calc(100vh - 130px);overflow:auto}
}
@container (min-width:420px){
.kwq>.kwq-form .kwq-grid{grid-template-columns:1fr 1fr!important}
}