.demo-request { position: fixed; z-index: 1080; inset: 0; display: flex; overflow-x: hidden; overflow-y: auto; padding: 1.5rem; background: rgba(3, 20, 36, .68); color: #173b59; }
.demo-request[hidden] { display: none; }
body.demo-request-open { overflow: hidden; }
.demo-request .modal-dialog { width: 100%; max-width: 860px; margin: auto; }
.demo-request__card { overflow: hidden; border: 0; border-radius: 1.25rem; box-shadow: 0 30px 80px rgba(3, 25, 46, .28); }
.demo-request__body { position: relative; padding: 2.25rem 2.5rem 2rem; background: linear-gradient(145deg, #fff 0%, #f7fafc 100%); }
.demo-request__body::before { content: ''; position: absolute; top: 0; right: 0; width: 260px; height: 180px; background: radial-gradient(circle at top right, rgba(245, 158, 11, .18), transparent 67%); pointer-events: none; }
.demo-request__close { position: absolute; z-index: 2; top: 1rem; right: 1rem; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid #d7e3ec; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #173b59; font-size: 1.6rem; line-height: 1; }
.demo-request__close:hover { color: #082b49; background: #fff; }
.demo-request__close:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.demo-request__intro { position: relative; max-width: 700px; margin-bottom: 1.6rem; padding-right: 2.5rem; }
.demo-request__eyebrow { display: inline-block; margin-bottom: .6rem; color: #9b5b08; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.demo-request__intro h2 { margin: 0 0 .6rem; color: #082b49; font-family: Lora, Georgia, serif; font-size: clamp(2rem, 4vw, 2.8rem); }
.demo-request__intro p { margin: 0; color: #526779; font-size: 1rem; line-height: 1.65; }
.demo-request__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.2rem; }
.demo-request__field { min-width: 0; }
.demo-request__field--full { grid-column: 1 / -1; }
.demo-request__field label { display: block; margin-bottom: .4rem; color: #153b5a; font-size: .88rem; font-weight: 700; }
.demo-request__field label > span:not(.demo-request__optional) { color: #a85c00; }
.demo-request__optional { margin-left: .3rem; color: #71879a; font-size: .75rem; font-weight: 500; }
.demo-request__field input, .demo-request__field select, .demo-request__field textarea { width: 100%; min-height: 48px; padding: .72rem .85rem; border: 1px solid #cbd9e4; border-radius: .65rem; background: #fff; color: #173b59; font: inherit; transition: border-color .18s ease, box-shadow .18s ease; }
.demo-request__field textarea { min-height: 112px; resize: vertical; }
.demo-request__field input:focus, .demo-request__field select:focus, .demo-request__field textarea:focus { border-color: #1b5e91; outline: 0; box-shadow: 0 0 0 3px rgba(27, 94, 145, .14); }
.demo-request__field .is-invalid { border-color: #b42318; }
.demo-request__helper { margin-top: .35rem; color: #71879a; font-size: .78rem; }
.demo-request__error { display: block; min-height: 1.1rem; margin-top: .25rem; color: #a5281b; font-size: .78rem; }
.demo-request__submit { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; width: 100%; min-height: 52px; margin-top: .5rem; padding: .8rem 1.4rem; border: 0; border-radius: .7rem; background: #f59e0b; color: #092943; font-weight: 700; box-shadow: 0 10px 24px rgba(9, 41, 67, .16); transition: background .2s ease, transform .2s ease; }
.demo-request__submit:hover { background: #ffb733; transform: translateY(-1px); }
.demo-request__submit:focus-visible { outline: 3px solid #082b49; outline-offset: 3px; }
.demo-request__submit:disabled { cursor: wait; opacity: .7; transform: none; }
.demo-request__privacy { margin: .8rem 0 0; color: #71879a; font-size: .76rem; text-align: center; }
.demo-request__feedback { padding: 1rem 1.15rem; margin-bottom: 1.2rem; border-radius: .75rem; font-weight: 600; line-height: 1.5; }
.demo-request__feedback--success { border: 1px solid #a9d8bd; background: #edf9f2; color: #14532d; }
.demo-request__feedback--error { border: 1px solid #edb6b0; background: #fff2f0; color: #8d2016; }
.demo-request__success-actions { padding: 1rem 1.15rem; border: 1px solid #d6e3ed; border-radius: .75rem; background: #fff; text-align: center; }
.demo-request__success-actions p { margin: 0 0 .3rem; color: #526779; }
.demo-request__success-actions a { color: #0b568d; font-weight: 700; }
.demo-request__honeypot { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 767.98px) {
    .demo-request .modal-dialog { margin: .65rem; }
    .demo-request__body { padding: 1.7rem 1.15rem 1.35rem; }
    .demo-request__intro { padding-right: 2rem; }
    .demo-request__grid { grid-template-columns: 1fr; gap: .75rem; }
    .demo-request__field--full { grid-column: auto; }
    .demo-request__close { top: .75rem; right: .75rem; width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
    .demo-request__submit { transition: none; }
    .demo-request__submit:hover { transform: none; }
}
