/* Customer quote page ([just_vege_quote]). Uses the Just Vege theme's tokens when present. */
.jvq-view {
	--jvq-ink: var(--jv-black, #17191b);
	--jvq-lime: var(--jv-green, #84dc31);
	--jvq-lime-ink: var(--jv-green-ink, #3d6a0c);
	--jvq-tint: var(--jv-green-tint, #eef9e3);
	--jvq-line: var(--jv-line, #e2e3e5);
	--jvq-muted: var(--jv-muted, #50565c);
	--jvq-mist: var(--jv-mist, #f2f3f4);
	--jvq-radius: var(--jv-radius, 14px);
	max-width: 1200px;
	margin: 0 auto;
	color: var(--jvq-ink);
}
.jvq-flash { margin: 0 0 16px; padding: 12px 16px; border-radius: 10px; font-weight: 600; }
.jvq-flash--ok { background: var(--jvq-tint); color: #23420a; }
.jvq-flash--err { background: #fef3f2; color: #b42318; }
.jvq-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.jvq-eyebrow { margin: 0; color: var(--jvq-lime-ink); font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.jvq-title { margin: 4px 0 0; font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem); line-height: 1.1; }
.jvq-head__total { display: grid; text-align: right; }
.jvq-head__total span { color: var(--jvq-muted); font-size: .875rem; }
.jvq-head__total b { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); letter-spacing: -.01em; }
.jvq-state { margin: 18px 0 8px; padding: 14px 16px; border-radius: var(--jvq-radius); background: var(--jvq-mist); }
.jvq-state p { margin: 0; }
.jvq-state__title { font-weight: 700; }
.jvq-state--wait { background: #fff8ec; color: #7a4b00; }
.jvq-state--act { background: #e9f2fb; color: #1d4f7c; }
.jvq-state--ok { background: var(--jvq-tint); color: #23420a; }
.jvq-state--muted p + p { margin-top: 6px; }
.jvq-event { margin: 0 0 18px; color: var(--jvq-muted); }
.jvq-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; }
@media (max-width: 960px) { .jvq-grid { grid-template-columns: 1fr; } }
.jvq-main, .jvq-side { display: grid; gap: 16px; min-width: 0; }
.jvq-card { padding: 18px 20px; border: 1.5px solid var(--jvq-line); border-radius: var(--jvq-radius); background: #fff; }
.jvq-card h3 { margin: 0 0 10px; font-size: 1.25rem; }
.jvq-lock { display: inline-block; margin-left: 6px; padding: 2px 10px; border-radius: 999px; background: var(--jvq-ink); color: #fff; font-size: .75rem; vertical-align: middle; }
.jvq-msg { margin: 0 0 12px; padding: 10px 14px; border-left: 4px solid var(--jvq-lime); background: var(--jvq-mist); }
.jvq-table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.jvq-table th { padding: 8px 6px; border-bottom: 1.5px solid var(--jvq-ink); color: var(--jvq-muted); font-size: .8125rem; text-align: left; }
.jvq-table td { padding: 10px 6px; border-bottom: 1px solid var(--jvq-line); vertical-align: top; }
.jvq-table td small { display: block; margin-top: 3px; color: var(--jvq-muted); font-size: .8125rem; }
.jvq-table .jvq-r { text-align: right; white-space: nowrap; }
.jvq-table tfoot td { padding: 6px; border: 0; }
.jvq-table tfoot td:first-child { text-align: right; }
.jvq-table .jvq-total td { padding-top: 12px; border-top: 2px solid var(--jvq-ink); font-size: 1.25rem; font-weight: 800; }
.jvq-note { margin: 10px 0 0; color: var(--jvq-muted); font-size: .9375rem; }
.jvq-hist { margin: 0; padding: 0; list-style: none; }
.jvq-hist > li { padding: 10px 0; border-bottom: 1px solid var(--jvq-line); }
.jvq-hist__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.jvq-hist__row time { margin-left: auto; color: var(--jvq-muted); font-size: .8125rem; }
.jvq-hist ul { margin: 6px 0 0 18px; color: var(--jvq-muted); font-size: .9375rem; }
.jvq-tag { display: inline-block; padding: 1px 9px; border-radius: 999px; background: var(--jvq-mist); font-size: .75rem; font-weight: 700; }
.jvq-act p { margin: 0 0 12px; }
.jvq-check, .jvq-radio { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; cursor: pointer; }
.jvq-check input, .jvq-radio input { width: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--jvq-lime-ink); }
.jvq-radio { padding: 12px; border: 1.5px solid var(--jvq-line); border-radius: 10px; }
.jvq-radio:has(input:checked) { border-color: var(--jvq-lime-ink); box-shadow: inset 0 0 0 1px var(--jvq-lime-ink); }
.jvq-radio b, .jvq-radio small { display: block; }
.jvq-radio small { color: var(--jvq-muted); }
.jvq-act fieldset { margin: 0; padding: 0; border: 0; }
.jvq-act legend { padding: 0; }
.jvq-btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; padding: 10px 20px; border: 1.5px solid transparent; border-radius: 999px; font: inherit; font-weight: 700; text-align: center; text-decoration: none; cursor: pointer; transition: transform 160ms cubic-bezier(.23, 1, .32, 1), background-color 160ms ease; }
.jvq-btn:active { transform: scale(.97); }
.jvq-btn--primary { background: var(--jvq-lime); color: var(--jvq-ink); }
.jvq-btn--primary:hover { background: var(--jv-green-hover, #74c825); }
.jvq-btn--dark { background: var(--jvq-ink); color: #fff; }
.jvq-btn--line { border-color: var(--jvq-ink); background: #fff; color: var(--jvq-ink); }
.jvq-btn:focus-visible, .jvq-view input:focus-visible, .jvq-view textarea:focus-visible, .jvq-change summary:focus-visible { outline: 3px solid var(--jvq-ink); outline-offset: 2px; }
.jvq-change summary { cursor: pointer; list-style: none; }
.jvq-change summary::-webkit-details-marker { display: none; }
.jvq-change > summary h3 { display: inline; }
.jvq-change summary::after { content: "+"; float: right; font-size: 1.5rem; line-height: 1; }
.jvq-change[open] > summary::after,
.jvq-change details[open] > summary::after { content: "–"; }
.jvq-change form { display: grid; gap: 10px; margin-top: 12px; }
.jvq-warn { padding: 10px 12px; border-radius: 10px; background: #fff8ec; color: #7a4b00; }
.jvq-qtys { display: grid; gap: 8px; }
.jvq-qty { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.jvq-qty label { flex: 1; }
.jvq-qty input, .jvq-wish input[type="number"] { width: 90px; }
.jvq-wish { display: flex; gap: 8px; }
.jvq-wish input[type="text"] { flex: 1; min-width: 0; }
.jvq-view input[type="number"], .jvq-view input[type="text"], .jvq-view textarea { min-height: 44px; padding: 8px 12px; border: 1.5px solid var(--jv-line-strong, #c7c9cc); border-radius: 10px; font: inherit; font-size: max(16px, 1rem); }
.jvq-label { margin: 0; font-weight: 700; }
.jvq-contact p { margin: 0; }

/* Since 1.8.0: terms, invoice, change form sections, payment preference. */
.jvq-event--pref { margin-top: -10px; color: var(--jvq-ink); font-weight: 600; }
.jvq-terms { max-height: 180px; overflow-y: auto; margin: 0 0 12px; padding: 12px 14px; border: 1.5px solid var(--jvq-line); border-radius: 10px; background: var(--jvq-mist); font-size: .9375rem; }
.jvq-terms:focus-visible { outline: 3px solid var(--jvq-ink); outline-offset: 2px; }
.jvq-terms p { margin: 0 0 8px; }
.jvq-terms p:last-child { margin-bottom: 0; }
.jvq-small { margin: 0; color: var(--jvq-muted); font-size: .875rem; }
.jvq-act .jvq-small { margin-top: 10px; text-align: center; }
.jvq-small a { color: var(--jvq-ink); font-weight: 600; }
.jvq-btn + .jvq-btn { margin-top: 10px; }
.jvq-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; margin: 0 0 10px; }
.jvq-dl dt { color: var(--jvq-muted); font-size: .875rem; }
.jvq-dl dd { margin: 0; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.jvq-files { margin: 12px 0 0; padding: 0; list-style: none; }
.jvq-files li { padding: 8px 0; border-top: 1px solid var(--jvq-line); }
.jvq-files a { color: var(--jvq-ink); font-weight: 600; }
.jvq-change summary { display: block; }
.jvq-change__lead { display: block; margin-top: 4px; color: var(--jvq-muted); font-size: .9375rem; }
.jvq-change form { gap: 14px; }
.jvq-fs { min-width: 0; margin: 0; padding: 14px 16px; border: 1.5px solid var(--jvq-line); border-radius: 12px; }
.jvq-fs legend { padding: 0 6px; font-weight: 700; }
.jvq-fs > .jvq-small { margin-bottom: 8px; }
details.jvq-sub > summary { cursor: pointer; font-weight: 700; }
details.jvq-sub[open] > summary { margin-bottom: 10px; }
.jvq-field { display: grid; gap: 4px; margin: 0 0 10px; }
.jvq-field label { font-weight: 600; }
.jvq-field select, .jvq-view select { min-height: 44px; padding: 8px 12px; border: 1.5px solid var(--jv-line-strong, #c7c9cc); border-radius: 10px; background: #fff; font: inherit; font-size: max(16px, 1rem); }
.jvq-view select:focus-visible { outline: 3px solid var(--jvq-ink); outline-offset: 2px; }
.jvq-dishes { min-width: 0; margin: 10px 0 0; padding: 0; border: 0; }
.jvq-dishes legend { margin-bottom: 6px; padding: 0; font-weight: 600; }
.jvq-dishes .jvq-check { margin-bottom: 6px; }
.jvq-addr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 0 12px; margin-top: 10px; }
.jvq-addr .jvq-field--wide { grid-column: 1 / -1; }
.jvq-addr input, .jvq-addr textarea { width: 100%; }
.jvq-view--notice { max-width: 640px; }
@media (max-width: 480px) {
	.jvq-addr { grid-template-columns: 1fr; }
	.jvq-dl { grid-template-columns: 1fr; gap: 0; }
	.jvq-dl dd { margin-bottom: 8px; text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .jvq-btn { transition: none; } }
