/* Cash For Cars Memphis: banner, shared fields and type-ahead pickers */
:root {
  --m9-violet: #6600ff;
  --m9-violet-deep: #4c00c2;
  --m9-violet-tint: #f1e9ff;
  --m9-ink: #1b1035;
  --m9-muted: #5b546d;
  --m9-orange: #fa8947;
  --m9-orange-tint: #fff3eb;
  --m9-line: #d8d1e5;
  --m9-field: #ffffff;
  --m9-bad: #b4102b;
  --m9-good: #0d7a4c;
  --m9-radius: 12px;
  --m9-font: 'Poppins', 'Segoe UI', Arial, sans-serif;
}

/* header phone: outlined so the quote button is the only solid action up top */
.memphis-heading-mobile .m9-call-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 8px 22px; margin: 4px auto 10px;
  border: 2px solid var(--m9-violet); border-radius: 999px;
  color: var(--m9-violet); background: #fff;
  font: 600 17px/1 var(--m9-font); text-decoration: none;
}
.memphis-heading-mobile { text-align: center; }
.memphis-heading-mobile .m9-call-chip:hover, .memphis-heading-mobile .m9-call-chip:focus { background: var(--m9-violet-tint); text-decoration: none; }

/* ---------- banner ---------- */
.m9-banner { background: var(--m9-orange); color: var(--m9-ink); font-family: var(--m9-font); overflow: hidden; }
.m9-banner__wrap {
  max-width: 1170px; margin: 0 auto; padding: 56px 24px 0;
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 470px); gap: 40px; align-items: end;
}
.m9-banner__copy { align-self: stretch; display: flex; flex-direction: column; }
.m9-banner__copy h1 {
  font-family: arsurt_regular, var(--m9-font); font-size: 46px; line-height: 1.08; color: var(--m9-ink);
  margin: 18px 0 22px; letter-spacing: -.01em;
}
.m9-banner__copy h1 span { font-family: arsurt_bold, var(--m9-font); }
.m9-banner__call {
  align-self: flex-start; display: inline-flex; align-items: center; min-height: 48px;
  padding: 8px 24px; border: 2px solid var(--m9-ink); border-radius: 999px;
  color: var(--m9-ink); font-weight: 600; font-size: 22px; text-decoration: none; background: transparent;
}
.m9-banner__call:hover, .m9-banner__call:focus { background: rgba(255,255,255,.35); color: var(--m9-ink); text-decoration: none; }
.m9-banner__art { display: block; width: 100%; max-width: 520px; height: auto; margin-top: auto; padding-top: 24px; }

.m9-banner__card {
  background: #fff; border-radius: 18px 18px 0 0; padding: 30px 32px 30px;
  box-shadow: 0 -2px 0 rgba(27,16,53,.04), 0 24px 60px rgba(27,16,53,.18);
}
.m9-banner__card h2 {
  font: 700 24px/1.25 var(--m9-font); color: var(--m9-violet); text-align: left; margin: 0 0 18px;
}
.m9-banner__go {
  display: block; width: 100%; min-height: 54px; margin-top: 8px; border: 0; border-radius: var(--m9-radius);
  background: var(--m9-violet); color: #fff; font: 700 18px/1.2 var(--m9-font); cursor: pointer;
  box-shadow: 0 6px 18px rgba(102,0,255,.28); transition: background .15s ease, transform .15s ease;
}
.m9-banner__go:hover { background: var(--m9-violet-deep); }
.m9-banner__go:active { transform: translateY(1px); }
.m9-banner__vin {
  display: inline-block; margin-top: 14px; color: var(--m9-violet-deep); font-weight: 600; font-size: 15px;
  text-decoration: underline; text-underline-offset: 3px;
}
.m9-banner__perks { list-style: none; padding: 14px 0 0; margin: 16px 0 0; border-top: 1px solid #eee8f5; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.m9-banner__perks li { position: relative; padding-left: 22px; font-size: 14px; color: var(--m9-muted); }
.m9-banner__perks li::before {
  content: ''; position: absolute; left: 2px; top: 5px; width: 12px; height: 7px;
  border-left: 2.5px solid var(--m9-good); border-bottom: 2.5px solid var(--m9-good); transform: rotate(-45deg);
}

/* ---------- fields (shared with the offer flow) ---------- */
.m9-field { margin-bottom: 14px; position: relative; }
.m9-field > label, .m9-label { display: block; font: 600 14px/1.3 var(--m9-font); color: var(--m9-ink); margin: 0 0 6px; }
.m9-input, .m9-pick input {
  display: block; width: 100%; min-height: 50px; padding: 12px 14px; border: 2px solid var(--m9-line);
  border-radius: var(--m9-radius); background: var(--m9-field); color: var(--m9-ink);
  font: 400 16px/1.3 var(--m9-font); box-shadow: none; -webkit-appearance: none; appearance: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.m9-input::placeholder, .m9-pick input::placeholder { color: #8a8399; }
.m9-input:focus, .m9-pick input:focus { outline: none; border-color: var(--m9-violet); box-shadow: 0 0 0 4px rgba(102,0,255,.16); }
.m9-pick input:disabled { background: #f4f2f8; color: #8a8399; cursor: not-allowed; }
.m9-field.is-bad .m9-input, .m9-field.is-bad .m9-pick input { border-color: var(--m9-bad); }
.m9-field.is-good .m9-input { border-color: #9fd6bd; }
.m9-field__err { margin: 6px 0 0; color: var(--m9-bad); font: 500 14px/1.35 var(--m9-font); }
.m9-field__err::before { content: '! '; font-weight: 700; }
.m9-field__help { margin: 6px 0 0; color: var(--m9-muted); font-size: 14px; line-height: 1.4; }

.m9-pick { position: relative; }
.m9-pick::after {
  content: ''; position: absolute; right: 16px; top: 22px; width: 8px; height: 8px; pointer-events: none;
  border-right: 2px solid var(--m9-muted); border-bottom: 2px solid var(--m9-muted); transform: rotate(45deg);
}
.m9-pick input { padding-right: 40px; }
.m9-field.is-loading .m9-pick::after {
  border: 2px solid var(--m9-line); border-top-color: var(--m9-violet); border-radius: 50%;
  width: 16px; height: 16px; top: 17px; right: 12px; transform: none; animation: m9spin .7s linear infinite;
}
.m9-pick__list {
  position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 264px; overflow-y: auto;
  margin: 0; padding: 6px; list-style: none; background: #fff; border: 1px solid var(--m9-line); border-radius: var(--m9-radius);
  box-shadow: 0 18px 40px rgba(27,16,53,.16); font: 400 16px/1.3 var(--m9-font); color: var(--m9-ink);
}
.m9-pick__list li[role=option] { padding: 11px 12px; border-radius: 8px; cursor: pointer; min-height: 44px; }
.m9-pick__list li[role=option] small { color: var(--m9-muted); margin-left: 6px; }
.m9-pick__list li[role=option]:hover, .m9-pick__list li.is-on { background: var(--m9-violet-tint); }
.m9-pick__list li[aria-selected=true] { font-weight: 600; color: var(--m9-violet-deep); }
.m9-pick__none { padding: 11px 12px; color: var(--m9-muted); }

@keyframes m9spin { to { transform: rotate(360deg); } }

@media (max-width: 991px) {
  .m9-banner__wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 24px; padding-top: 36px; }
  .m9-banner__copy h1 { font-size: 36px; }
}
@media (max-width: 767px) {
  .m9-banner { background: linear-gradient(var(--m9-orange) 0, var(--m9-orange) 150px, #fff 150px); }
  .m9-banner__wrap { display: block; padding: 14px 16px 26px; }
  .m9-banner__copy h1 { font-size: 26px; margin: 4px 0 16px; text-align: center; }
  .m9-banner__call, .m9-banner__art { display: none; }
  .m9-banner__card { border-radius: 16px; padding: 20px 18px 18px; box-shadow: 0 14px 34px rgba(27,16,53,.16); }
  .m9-banner__card h2 { font-size: 19px; text-align: center; margin-bottom: 14px; }
  .m9-banner__perks { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .m9-banner__go, .m9-input, .m9-pick input { transition: none; }
}
