/**
 * HUEWINE — "Book a Free Demo" modal styles.
 * Scoped under .demo-modal so it cannot collide with site CSS.
 */
.demo-modal .modal-dialog { max-width: 520px; }
.demo-modal .modal-content { border: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 24px 60px rgba(10,30,63,.25); font-family: 'Open Sans', system-ui, -apple-system, sans-serif; }
.demo-modal .modal-header { background: linear-gradient(135deg, #0a1e3f, #0a53be); color: #fff; padding: 22px 26px; border: 0; align-items: flex-start; }
.demo-modal .modal-title { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 1.25rem; }
.demo-modal .modal-header .modal-sub { font-size: .85rem; opacity: .85; margin-top: 4px; font-weight: 400; }
.demo-modal .btn-close { filter: invert(1) brightness(2); opacity: .85; }
.demo-modal .modal-body { padding: 26px; }
.demo-modal label { font-size: .82rem; font-weight: 700; color: #1a2238; margin-bottom: 6px; display: block; letter-spacing: .02em; }
.demo-modal label .req { color: #d90769; }
.demo-modal label .opt { color: #6c757d; font-weight: 600; font-size: .78rem; }
.demo-modal .form-control {
  width: 100%; border: 1px solid #e2e8f0; border-radius: 10px;
  padding: 11px 14px; font-size: .94rem; color: #1a2238; background: #f9fbff;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
  font-family: inherit;
}
.demo-modal .form-control:focus { outline: none; border-color: #0a53be; box-shadow: 0 0 0 3px rgba(10,83,190,.12); background: #fff; }
.demo-modal textarea.form-control { resize: vertical; min-height: 90px; }
.demo-modal .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.demo-modal .field { margin-bottom: 14px; }
.demo-modal .err { color: #d90769; font-size: .78rem; margin-top: 4px; display: none; font-weight: 600; }
.demo-modal .err.is-on { display: block; }
.demo-modal .modal-footer { border: 0; padding: 0 26px 26px; flex-direction: column; align-items: stretch; gap: 10px; }
.demo-modal .btn-submit {
  background: linear-gradient(135deg, #ff8a1f, #f57813); color: #fff; border: 0;
  padding: 13px 22px; border-radius: 10px; font-weight: 700; font-size: 1rem;
  box-shadow: 0 10px 24px rgba(245,120,19,.32);
  transition: transform .15s ease, box-shadow .15s ease;
  width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.demo-modal .btn-submit:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(245,120,19,.42); color: #fff; }
.demo-modal .btn-submit:disabled { opacity: .65; cursor: not-allowed; transform: none; }
.demo-modal .privacy-note { font-size: .76rem; color: #6c757d; text-align: center; margin: 0; }
.demo-modal .privacy-note a { color: #0a53be; text-decoration: none; }
.demo-modal .result {
  display: none; padding: 14px 16px; border-radius: 10px;
  font-size: .92rem; margin-top: 12px; line-height: 1.5;
}
.demo-modal .result.is-on { display: block; }
.demo-modal .result.ok { background: #e8f8ee; color: #0b6e35; border: 1px solid #c2eccf; }
.demo-modal .result.err { background: #fdecf2; color: #8a0a3c; border: 1px solid #fac6d6; }
.demo-modal .result a { color: inherit; font-weight: 700; }
.demo-modal .spinner {
  width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.4);
  border-top-color: #fff; border-radius: 50%; animation: demoSpin .7s linear infinite;
}
@keyframes demoSpin { to { transform: rotate(360deg); } }
.demo-modal .hp { position: absolute; left: -9999px; width: 0; height: 0; opacity: 0; pointer-events: none; }
@media (max-width: 540px) { .demo-modal .field-row { grid-template-columns: 1fr; } }
