/* ============================================================
   CVS demo-request modal — matches the Tiffany Glass design system.
   ============================================================ */
.cvsd-overlay {
  position: fixed; inset: 0; z-index: 2000;
  display: grid; place-items: center; padding: 20px;
  background: rgba(5, 6, 8, 0.72);
  backdrop-filter: blur(6px);
  animation: cvsd-fade 0.18s ease;
}
.cvsd-overlay[hidden] { display: none; }
@keyframes cvsd-fade { from { opacity: 0; } to { opacity: 1; } }

.cvsd-modal {
  position: relative;
  width: 100%; max-width: 460px;
  max-height: 92vh; overflow-y: auto;
  background: var(--bg-panel, #0d0f13);
  border: 1px solid rgba(10, 186, 181, 0.35);
  border-radius: 16px;
  padding: 28px 26px 22px;
  box-shadow: 0 30px 80px -24px rgba(0, 0, 0, 0.8), 0 0 60px -30px rgba(10, 186, 181, 0.5);
  animation: cvsd-pop 0.2s ease;
}
@keyframes cvsd-pop { from { transform: translateY(10px) scale(0.98); opacity: 0; } to { transform: none; opacity: 1; } }

.cvsd-close {
  position: absolute; top: 12px; right: 14px;
  width: 34px; height: 34px; line-height: 1;
  font-size: 26px; color: rgba(255, 255, 255, 0.5);
  background: transparent; border: 0; border-radius: 8px; cursor: pointer;
  transition: color 0.15s, background 0.15s;
}
.cvsd-close:hover { color: #fff; background: rgba(255, 255, 255, 0.08); }

.cvsd-modal h3 {
  margin: 0 0 6px; font-size: 22px; font-weight: 700; color: #fff;
  letter-spacing: -0.01em;
}
.cvsd-sub { margin: 0 0 18px; font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, 0.6); }

.cvsd-form { display: grid; gap: 13px; }
.cvsd-field { display: grid; gap: 5px; }
.cvsd-field > span { font-size: 13px; color: rgba(255, 255, 255, 0.72); }
.cvsd-req { color: var(--tiffany, #0abab5); font-style: normal; }

.cvsd-field input,
.cvsd-field textarea {
  width: 100%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  padding: 11px 13px;
  color: #fff; font-size: 15px; font-family: inherit;
  transition: border-color 0.15s, background 0.15s;
}
.cvsd-field textarea { resize: vertical; min-height: 70px; }
.cvsd-field input::placeholder,
.cvsd-field textarea::placeholder { color: rgba(255, 255, 255, 0.32); }
.cvsd-field input:focus,
.cvsd-field textarea:focus {
  outline: none;
  border-color: var(--tiffany, #0abab5);
  background: rgba(10, 186, 181, 0.06);
}

.cvsd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.cvsd-err {
  margin: 0; font-size: 13px; color: #ff6b6b;
  background: rgba(255, 107, 107, 0.1);
  border: 1px solid rgba(255, 107, 107, 0.3);
  border-radius: 8px; padding: 8px 11px;
}

.cvsd-submit { width: 100%; justify-content: center; margin-top: 2px; }
.cvsd-submit[disabled] { opacity: 0.6; cursor: progress; }

.cvsd-privacy { margin: 4px 0 0; font-size: 11.5px; line-height: 1.45; color: rgba(255, 255, 255, 0.4); text-align: center; }

.cvsd-done { text-align: center; padding: 14px 6px 6px; }
.cvsd-done h3 { margin: 14px 0 6px; }
.cvsd-done p { margin: 0 0 20px; color: rgba(255, 255, 255, 0.65); font-size: 14px; }
.cvsd-check {
  width: 58px; height: 58px; margin: 0 auto; border-radius: 50%;
  display: grid; place-items: center; font-size: 30px; color: #09090b; font-weight: 700;
  background: var(--tiffany, #0abab5);
  box-shadow: 0 0 40px -8px rgba(10, 186, 181, 0.7);
}
.cvsd-done .btn { justify-content: center; }
.cvsd-done .cvsd-register { display: inline-flex; margin-bottom: 10px; }

@media (max-width: 480px) {
  .cvsd-modal { padding: 24px 18px 18px; border-radius: 14px; }
  .cvsd-modal h3 { font-size: 20px; }
}
