/* Greg's Blackline - reservation form (homepage #request + reserve-preview). Extends css/styles.css; same hard-edged look.
   All rules scoped to .rv-* / #rv-* / the form so they don't touch the homepage calculator. */
.rv-form { margin-top: 32px; gap: 18px 16px; max-width: 880px; }
.rv-group { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 800; color: var(--red-deep);
  margin: 14px 0 -4px; padding-top: 14px; border-top: 2px solid var(--line); }
.rv-group:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.rv-req { color: var(--red); }
.rv-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.rv-err { display: block; min-height: 0; font-size: 13px; font-weight: 700; color: var(--red-deep); margin: 6px 0 0; }
.rv-err:empty { display: none; }
.rv-form .is-invalid, .rv-form .is-invalid.input { border-color: var(--red); background: #fff4f1; }
.rv-form-err { font-weight: 700; color: var(--red-deep); margin: 0 0 12px; }
.rv-form-err:empty { display: none; }
.rv-form .input:focus, .rv-form .select:focus { outline: 2px solid var(--red); outline-offset: 1px; }
.rv-form input[type="date"].input, .rv-form input[type="time"].input { min-height: 49px; }

/* Google Place Autocomplete (Places API New) styled to match .input */
.rv-form gmp-place-autocomplete {
  display: block; width: 100%; color-scheme: light; background-color: var(--paper); color: var(--ink);
  border: 2px solid var(--ink); border-radius: 0; font-family: var(--font); font-size: 15px;
}
.rv-form gmp-place-autocomplete.is-invalid { border-color: var(--red); }
.rv-picked { font-size: 13px; color: var(--muted-2); margin: 6px 0 0; }
.rv-picked:empty { display: none; }
.rv-picked::before { content: "✓ "; color: var(--red); font-weight: 800; }
.rv-manual-link { background: none; border: 0; padding: 0; margin: 6px 0 0; font: inherit; font-size: 13px;
  color: var(--muted-2); text-decoration: underline; cursor: pointer; }
.rv-manual-link:hover { color: var(--red); }

.rv-consent { display: flex; flex-direction: column; gap: 14px; margin-top: 6px; padding-top: 18px; border-top: 2px solid var(--line); }
.rv-check { display: flex !important; gap: 12px; align-items: flex-start; font-size: 13px; line-height: 1.55; color: var(--muted-2); cursor: pointer; }
.rv-check input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--red); cursor: pointer; }
.rv-legal { font-size: 13px; color: var(--muted-2); margin: 0; }
.rv-legal a { text-decoration: underline; }
.rv-legal a:hover { color: var(--red); }
#rv-submit[disabled] { opacity: .6; cursor: progress; }
.rv-thanks { margin-top: 32px; padding: clamp(20px, 3vw, 32px); border: 2px solid var(--ink); border-left: 10px solid var(--red); max-width: 880px; }
.rv-thanks:focus { outline: none; }
.rv-quote-price { color: var(--red); white-space: nowrap; }
/* Vehicle + one way / round trip choices */
.rv-choice { border: 0; margin: 0; padding: 0; min-width: 0; }
.rv-choice legend { padding: 0; }
.rv-options { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 640px) { .rv-options--3 { grid-template-columns: repeat(3, 1fr); } }
.rv-options--2 { grid-template-columns: 1fr 1fr; }
.lead-form label.rv-opt, .rv-opt { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 2px solid var(--ink);
  background: var(--paper); font-weight: 800; font-size: 15px; line-height: 1.3; cursor: pointer; }
.rv-opt small { font-weight: 600; font-size: 13px; color: var(--muted-2); }
.rv-opt input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--red); cursor: pointer; }
.rv-opt.is-checked, .rv-opt:has(input:checked) { border-color: var(--red); background: #fff4f1; }
.rv-opt:focus-within { outline: 2px solid var(--red); outline-offset: 1px; }
.rv-choice.is-invalid .rv-opt { border-color: var(--red); }
