/* Wheels On Demand — "Saved" vehicles modal.
   Additive only, reuses the site's own tokens (--navy-900, --red-600,
   --r-xl, --line, fonts) so this matches the rest of the site exactly. */

.vsaved-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(10, 20, 40, .72);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  transition: opacity .18s ease;
}
.vsaved-overlay.open { opacity: 1; }

.vsaved-modal {
  position: relative;
  background: var(--paper);
  border-radius: var(--r-xl, 22px);
  width: 100%;
  max-width: 900px;
  max-height: 85vh;
  overflow-y: auto;
  padding: 40px 32px 32px;
  transform: translateY(12px) scale(.98);
  transition: transform .18s ease;
}
.vsaved-overlay.open .vsaved-modal { transform: translateY(0) scale(1); }

.vsaved-modal h2 {
  font-size: 22px;
  margin-bottom: 24px;
}

.vsaved-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 5;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: none;
  background: rgba(10, 20, 40, .55);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vsaved-close:hover { background: var(--red-600); }

.vsaved-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
}

.vsaved-card {
  position: relative;
  border: 1px solid var(--line);
  border-radius: var(--r-lg, 16px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.vsaved-thumb { display: block; aspect-ratio: 4/3; background: var(--navy-800); }
.vsaved-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.vsaved-body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.vsaved-body h3 { font-size: 15px; line-height: 1.3; }
.vsaved-body h3 a { color: var(--navy-900); text-decoration: none; }
.vsaved-body h3 a:hover { color: var(--red-600); }

.vsaved-price {
  font-family: 'Bricolage Grotesque';
  font-size: 17px;
  font-weight: 700;
  color: var(--red-600);
}

.vsaved-body .btn { margin-top: auto; justify-content: center; }

.vsaved-remove {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background: rgba(10, 20, 40, .55);
  color: #fff;
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vsaved-remove:hover { background: var(--red-600); }

@media (max-width: 640px) {
  .vsaved-modal { padding: 32px 16px 24px; }
  .vsaved-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}
