/* Smart Auto Move Pro: customer quote form and checkout. Colors and wording come from Quote Manager → Quote Form. */
.samp-qf-wrap, .samp-co {
	--sqf-btn: #6EC1E4; --sqf-btn-text: #000; --sqf-accent: #1f6fb2; --sqf-label: #686969; --sqf-input: #fff;
	--sqf-radius: 6px; --sqf-btn-radius: 50px; --sqf-font: inherit; --sqf-step: #334155;
	--sqf-ink: #0f172a; --sqf-muted: #475569; --sqf-line: #e2e8f0;
	font-family: var(--sqf-font);
	box-sizing: border-box;
}
.samp-qf-wrap *, .samp-co * { box-sizing: border-box; }
.samp-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- Quote form ---------- */
.samp-qf { margin: 0; overflow-anchor: none; }
.samp-qf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.samp-qf-step { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.samp-qf-step[hidden] { display: none; }
.samp-qf-step:focus { outline: none; }
.samp-qf-field { background: var(--sqf-input); border-radius: var(--sqf-radius); padding: 8px 12px 6px; border: 1px solid rgba(15, 23, 42, .08); }
.samp-qf-field:focus-within { box-shadow: 0 0 0 3px color-mix(in srgb, var(--sqf-accent) 35%, transparent); }
.samp-qf-field label { display: block; font-size: 13px; font-weight: 600; color: var(--sqf-label); margin: 0 0 2px; line-height: 1.3; }
.samp-qf-field input { display: block; width: 100%; border: 0 !important; background: transparent !important; padding: 4px 0 !important; margin: 0; font: inherit; font-size: 16px; color: var(--sqf-ink); min-height: 30px; box-shadow: none !important; outline: none; }
.samp-qf-field input::placeholder { color: #9aa3ad; font-style: italic; }
.samp-qf-veh { background: var(--sqf-input); border-radius: var(--sqf-radius); padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; border: 1px solid rgba(15, 23, 42, .08); }
.samp-qf-veh-head { display: flex; justify-content: space-between; align-items: center; font-size: 13px; font-weight: 700; color: var(--sqf-label); }
.samp-qf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.samp-qf-grid > span:empty { display: none; }
@media (max-width: 300px) { .samp-qf-grid { grid-template-columns: minmax(0, 1fr); } }
.samp-qf-veh { padding: 8px; }
.samp-qf-veh select, .samp-qf-veh input, .samp-co select, .samp-co input[type=text], .samp-co input[type=email], .samp-co input[type=tel] {
	width: 100%; min-height: 44px; border: 1px solid #cbd5e1; border-radius: var(--sqf-radius); padding: 0 10px; font: inherit; font-size: 16px; color: var(--sqf-ink); background: #fff; margin: 0;
}
.samp-qf-veh select[hidden], .samp-qf-veh input[hidden] { display: none; }
.samp-qf-veh select:disabled { background: #f1f5f9; color: #94a3b8; }
.samp-qf-x { border: 0; background: none; font-size: 22px; line-height: 1; cursor: pointer; color: #64748b; padding: 0 4px; min-height: 32px; }
.samp-qf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 48px; padding: 10px 20px;
	background: var(--sqf-btn); color: var(--sqf-btn-text); border: 1px solid rgba(255, 255, 255, .7); border-radius: var(--sqf-btn-radius);
	font: inherit; font-size: 17px; font-weight: 700; cursor: pointer; text-decoration: none; text-align: center; line-height: 1.2;
}
.samp-qf-btn:hover { filter: brightness(1.05); }
.samp-qf-btn:focus-visible, .samp-qf-back:focus-visible, .samp-qf-link:focus-visible, .samp-co button:focus-visible, .samp-co a:focus-visible { outline: 3px solid var(--sqf-accent); outline-offset: 2px; }
.samp-qf-btn[disabled] { opacity: .75; cursor: progress; }
.samp-qf-btn.is-busy::before { content: ''; width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: sampspin .8s linear infinite; }
@keyframes sampspin { to { transform: rotate(360deg); } }
.samp-qf-row { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; margin-top: 4px; }
.samp-qf-back { border: 0; background: none; color: var(--sqf-accent); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; padding: 10px 8px; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; }
.samp-qf-link { border: 0; background: none; color: var(--sqf-accent); font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; padding: 6px 0; min-height: 36px; text-align: left; text-decoration: underline; text-underline-offset: 3px; }
.samp-qf-msg { margin: 10px 0 0; background: #fee4e2; color: #912018; border-radius: 8px; padding: 9px 12px; font-size: 14px; font-weight: 600; line-height: 1.4; }
.samp-qf-msg[hidden] { display: none; }
.samp-qf-steps { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; text-align: center; }
.samp-qf-steps li { color: var(--sqf-step); font-size: 13px; font-weight: 600; opacity: .85; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.samp-qf-steps li span { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: #111; border: 1px solid #cbd5e1; font-size: 13px; }
.samp-qf-steps li.is-on { opacity: 1; color: var(--sqf-accent); }
.samp-qf-steps li.is-on span { border: 2px solid var(--sqf-btn); color: var(--sqf-accent); }
.samp-qf-steps li.is-done span { background: var(--sqf-btn); color: var(--sqf-btn-text); border-color: var(--sqf-btn); }

/* ---------- Checkout ---------- */
.samp-co { color: var(--sqf-ink); background: #fff; border-radius: 16px; padding: 22px; max-width: 1180px; margin: 0 auto; font-size: 16px; line-height: 1.5; overflow-anchor: none; }
.samp-co h2, .samp-co h3 { font-family: inherit; color: var(--sqf-ink); letter-spacing: 0; }
.samp-co-loading { color: var(--sqf-muted); text-align: center; padding: 40px 0; }
.samp-co-head { text-align: center; margin-bottom: 14px; }
.samp-co-num { color: var(--sqf-accent); font-weight: 800; font-size: 18px; margin: 0 0 4px; }
.samp-co-head h2 { font-size: clamp(19px, 2.6vw, 26px); margin: 0; font-weight: 800; }
.samp-co-steps { list-style: none; margin: 0 0 20px; padding: 12px 8px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; background: #f6f8fb; border-radius: 12px; }
.samp-co-steps li { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; color: var(--sqf-muted); text-align: center; line-height: 1.2; }
.samp-co-steps li span { width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #cbd5e1; background: #fff; color: var(--sqf-ink); font-size: 13px; }
.samp-co-steps li.is-on { color: var(--sqf-accent); }
.samp-co-steps li.is-on span { border: 2px solid var(--sqf-accent); color: var(--sqf-accent); font-weight: 800; }
.samp-co-steps li.is-done span { background: var(--sqf-accent); border-color: var(--sqf-accent); color: #fff; }
.samp-co-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.samp-co-main { min-width: 0; }
.samp-co-main h3:focus { outline: none; }
.samp-co-title { font-size: 21px; margin: 0 0 4px; font-weight: 800; }
.samp-co-muted { color: var(--sqf-muted); font-size: 14px; margin: 0 0 12px; }
.samp-co-help { display: block; color: var(--sqf-muted); font-size: 13px; margin-top: 4px; }
.samp-co-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.samp-co-card { border: 1px solid var(--sqf-line); border-radius: 14px; padding: 18px 16px; display: flex; flex-direction: column; gap: 8px; position: relative; background: #fff; }
.samp-co-card.is-featured { border: 2px solid var(--sqf-accent); background: #f3f8fd; }
.samp-co-flag { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--sqf-accent); color: #fff; font-size: 12px; font-weight: 800; padding: 3px 12px; border-radius: 999px; margin: 0; white-space: nowrap; }
.samp-co-card h3 { font-size: 22px; margin: 4px 0 0; font-weight: 800; }
.samp-co-tag { color: var(--sqf-muted); font-size: 14px; margin: 0; min-height: 2.6em; }
.samp-co-card ul { list-style: none; margin: 4px 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.samp-co-card li { display: flex; gap: 8px; align-items: baseline; }
.samp-co-card li.ok > span:first-child { color: #15803d; font-weight: 800; }
.samp-co-card li.no { color: #94a3b8; }
.samp-co-card li.no > span:first-child { color: #94a3b8; }
.samp-co-dates { font-size: 13px; color: var(--sqf-muted); margin: 0; }
.samp-co-dates strong { color: var(--sqf-ink); }
.samp-co-price { font-size: 28px; font-weight: 800; margin: auto 0 4px; }
.samp-co-aside { display: flex; flex-direction: column; gap: 12px; }
.samp-co-box { border: 1px solid var(--sqf-line); border-radius: 14px; padding: 16px; background: #fff; }
.samp-co-box h3 { font-size: 17px; margin: 0 0 8px; font-weight: 800; }
.samp-co-box dl { margin: 0; display: grid; grid-template-columns: 1fr; font-size: 14px; }
.samp-co-box dt { color: var(--sqf-muted); font-size: 12px; margin-top: 8px; }
.samp-co-box dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.samp-co-due { background: #f6f8fb; }
.samp-co-big { font-size: 26px; font-weight: 800; margin: 0 0 4px; }
.samp-co-big span { font-size: 15px; font-weight: 600; color: var(--sqf-muted); }
.samp-co-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.samp-co-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.samp-co-field.wide { grid-column: 1 / -1; }
.samp-co-field label { font-size: 14px; font-weight: 700; color: #334155; }
.samp-co-exp { display: grid; grid-template-columns: 1fr 1.3fr; gap: 8px; }
.samp-co-radio { border: 1px solid var(--sqf-line); border-radius: 12px; padding: 12px 14px; margin: 12px 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.samp-co-radio legend { font-weight: 700; font-size: 15px; padding: 0 4px; }
.samp-co-radio label, .samp-co-check { display: flex; align-items: center; gap: 8px; font-size: 15px; min-height: 40px; cursor: pointer; }
.samp-co-pay { flex-direction: column; }
.samp-co-check { margin: 6px 0; }
.samp-co input[type=radio], .samp-co input[type=checkbox] { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--sqf-accent); }
.samp-co-today { font-size: 17px; margin: 8px 0 0; }
.samp-co-secure { margin-top: -4px; }
.samp-co-note { background: #e0f2fe; color: #0c4a6e; border-radius: 10px; padding: 10px 12px; font-size: 14px; font-weight: 600; }
.samp-co-sigwrap { margin: 8px 0; }
.samp-co-sigwrap[hidden] { display: none; }
.samp-co-sig { display: block; width: 100%; max-width: 460px; height: 150px; border: 2px dashed #94a3b8; border-radius: 12px; background: #fff; touch-action: none; cursor: crosshair; }
.samp-co-nav { display: grid; grid-template-columns: auto minmax(0, 320px); justify-content: space-between; gap: 12px; align-items: center; margin-top: 16px; }
.samp-co .samp-qf-back { color: var(--sqf-accent); }
.samp-co .samp-qf-link { color: var(--sqf-accent); }
.samp-co-done { text-align: center; padding: 10px 0 20px; }
.samp-co-check-big { width: 64px; height: 64px; border-radius: 50%; background: #dcfce7; color: #15803d; font-size: 34px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.samp-co-summary { text-align: left; max-width: 520px; margin: 16px auto 0; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 8px 12px; font-size: 15px; }
.samp-co-summary dt { color: var(--sqf-muted); }
.samp-co-summary dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.samp-co-gate, .samp-co-empty { max-width: 520px; text-align: center; }
.samp-co-gate form { display: flex; flex-direction: column; gap: 10px; text-align: left; margin-top: 12px; }
.samp-co-gate label { font-weight: 700; }

@media (max-width: 900px) {
	.samp-co-grid { grid-template-columns: minmax(0, 1fr); }
	.samp-co-cards { grid-template-columns: minmax(0, 1fr); gap: 18px; }
	.samp-co-tag { min-height: 0; }
}
@media (max-width: 600px) {
	.samp-co { padding: 16px 12px; border-radius: 12px; }
	.samp-co-steps { grid-template-columns: repeat(5, 1fr); padding: 10px 4px; }
	.samp-co-steps li { font-size: 11px; }
	.samp-co-fields { grid-template-columns: minmax(0, 1fr); }
	.samp-co-nav { grid-template-columns: auto minmax(0, 1fr); }
	.samp-co-summary { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.samp-co-summary dd { margin-bottom: 8px; }
}
.samp-qf-step > .samp-qf-btn { margin-top: 4px; }
.samp-qf-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.samp-qf-pair .samp-qf-field input[type=date] { font-size: 15px; min-width: 0; }
@media (max-width: 300px) { .samp-qf-pair { grid-template-columns: minmax(0, 1fr); } }

/* Keep theme button styles (all caps, letter spacing, small text) from changing these buttons. */
.samp-qf-wrap button.samp-qf-btn, .samp-co button.samp-qf-btn, .samp-co a.samp-qf-btn {
	text-transform: none; letter-spacing: normal; font-size: 17px; font-weight: 700; line-height: 1.2; box-shadow: none; height: auto; width: 100%;
}
.samp-qf-wrap button.samp-qf-back, .samp-qf-wrap button.samp-qf-link, .samp-qf-wrap button.samp-qf-x, .samp-co button.samp-qf-back, .samp-co button.samp-qf-link {
	text-transform: none; letter-spacing: normal; box-shadow: none; width: auto; height: auto; background: none; border: 0;
}

/* Full-screen form */
html.samp-qf-lock, html.samp-qf-lock body { overflow: hidden !important; }
.samp-qf-wrap.is-full { position: fixed; inset: 0; z-index: 99990; background: #fff; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 0 16px max(16px, env(safe-area-inset-bottom)); overscroll-behavior: contain; }
.samp-qf-wrap.is-full .samp-qf { max-width: 520px; margin: 0 auto; }
.samp-qf-top { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #fff; padding: max(12px, env(safe-area-inset-top)) 0 12px; margin-bottom: 8px; border-bottom: 1px solid var(--sqf-line); }
.samp-qf-top[hidden] { display: none; }
.samp-qf-top strong { font-size: 18px; color: var(--sqf-ink); }
.samp-qf-wrap button.samp-qf-close { width: 44px; height: 44px; border-radius: 50%; border: 0; background: #f1f5f9; color: var(--sqf-ink); font-size: 26px; line-height: 1; cursor: pointer; padding: 0; text-transform: none; }
.samp-qf-wrap.is-full .samp-qf-field { border-color: #cbd5e1; }
.pac-container { z-index: 100010 !important; }
/* More room on phones and in full screen */
.samp-qf-wrap.is-full .samp-qf-step { gap: 14px; }
.samp-qf-wrap.is-full .samp-qf-field { padding: 10px 14px 8px; }
.samp-qf-wrap.is-full .samp-qf-field label { font-size: 14px; margin-bottom: 4px; }
.samp-qf-wrap.is-full .samp-qf-field input { font-size: 17px; min-height: 34px; }
.samp-qf-wrap.is-full .samp-qf-pair, .samp-qf-wrap.is-full .samp-qf-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.samp-qf-wrap.is-full .samp-qf-veh { padding: 12px; gap: 12px; }
.samp-qf-wrap.is-full .samp-qf-veh select, .samp-qf-wrap.is-full .samp-qf-veh input { min-height: 50px; font-size: 17px; }
.samp-qf-wrap.is-full .samp-qf-btn { min-height: 54px; font-size: 18px; }
.samp-qf-wrap.is-full .samp-qf-row { gap: 14px; margin-top: 8px; }
.samp-qf-wrap.is-full .samp-qf-steps { margin-top: 22px; }
.samp-qf-wrap.is-full .samp-qf-msg { font-size: 15px; }
@media (max-width: 420px) {
	.samp-qf-wrap:not(.is-full) .samp-qf-pair { grid-template-columns: minmax(0, 1fr); }
	.samp-qf-wrap:not(.is-full) .samp-qf-step { gap: 12px; }
}

/* Full-screen checkout (after a service is chosen) */
.samp-co.is-full { position: fixed; inset: 0; z-index: 99990; margin: 0; max-width: none; border-radius: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 0 16px max(20px, env(safe-area-inset-bottom)); }
.samp-co.is-full > * { max-width: 640px; margin-left: auto; margin-right: auto; }
.samp-co.is-full .samp-co-head, .samp-co.is-full .samp-co-aside { display: none; }
.samp-co.is-full .samp-co-grid { grid-template-columns: minmax(0, 1fr); }
.samp-co-top { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #fff; padding: max(12px, env(safe-area-inset-top)) 0 12px; margin-bottom: 10px; border-bottom: 1px solid var(--sqf-line); }
.samp-co-top[hidden] { display: none; }
.samp-co-top strong { display: block; font-size: 18px; color: var(--sqf-ink); }
.samp-co-top-sum { display: block; font-size: 14px; color: var(--sqf-muted); margin-top: 2px; }
.samp-co button.samp-qf-close { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 50%; border: 0; background: #f1f5f9; color: var(--sqf-ink); font-size: 26px; line-height: 1; cursor: pointer; padding: 0; text-transform: none; }
.samp-co.is-full .samp-co-steps { margin-bottom: 16px; }
.samp-co.is-full .samp-co-fields { gap: 16px; margin: 16px 0; }
.samp-co.is-full .samp-co-field label { font-size: 15px; }
.samp-co.is-full input[type=text], .samp-co.is-full input[type=email], .samp-co.is-full input[type=tel], .samp-co.is-full select { min-height: 50px; font-size: 17px; }
.samp-co.is-full .samp-co-radio label, .samp-co.is-full .samp-co-check { min-height: 46px; font-size: 16px; }
.samp-co.is-full .samp-co-nav { margin-top: 22px; }
.samp-co.is-full .samp-qf-btn { min-height: 54px; font-size: 18px; }

/* Equal step heights without JavaScript: all three steps share one grid cell, so the box is as tall as the
   tallest step from the first paint and nothing below it moves when the customer changes steps.
   Phones skip this because the form opens full screen there. */
.samp-qf:not([data-full="phones"]) .samp-qf-stack { display: grid; }
@media (min-width: 768px) { .samp-qf[data-full="phones"] .samp-qf-stack { display: grid; } }
.samp-qf-stack > .samp-qf-step { grid-area: 1 / 1; }
.samp-qf-wrap:not(.is-full) .samp-qf-stack > .samp-qf-step[hidden] { display: flex; visibility: hidden; pointer-events: none; }
.samp-qf-wrap.is-full .samp-qf-stack { display: block; }
.samp-qf-stack { margin: 0; }
