/* A shared, accessible form surface for public registration and request dialogs. */
body.seolab-public .modal-backdrop { background: #13243c; }
body.seolab-public .modal-backdrop.show { opacity: .64; }
body.seolab-public .modal:has(form) { backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); padding-inline: 12px !important; }
body.seolab-public .modal:has(form) .modal-dialog { display: flex; align-items: center; min-height: calc(100% - 64px) !important; margin: 32px auto !important; width: auto; max-width: min(560px, 100%); }
body.seolab-public .modal:has(form) .modal-dialog.modal-lg { max-width: min(780px, 100%); }
body.seolab-public .modal:has(form) .modal-dialog-centered { min-height: calc(100% - 64px); }
body.seolab-public .modal:has(form) .modal-dialog-scrollable { height: calc(100% - 64px); }
body.seolab-public .modal:has(form) .modal-content { padding: 0 !important; border: 1px solid #ffffffb3; border-radius: 24px; background: #fff; color: #263f63; box-shadow: 0 32px 100px #091a3a40; overflow: hidden; max-height: calc(100dvh - 64px); }
body.seolab-public .modal:has(form) .modal-header { position: relative; display: flex; align-items: flex-start; gap: 16px; height: auto !important; min-height: 76px; margin: 0 !important; padding: 26px 28px !important; flex-shrink: 0; border: 0; border-bottom: 1px solid #e2e8f0 !important; background: radial-gradient(ellipse at top right, #dce7f5, transparent 70%), #f5f8fc !important; }
body.seolab-public .modal:has(form) .modal-header::before { content: ''; position: absolute; top: 0; right: 28px; width: 42px; height: 4px; border-radius: 0 0 6px 6px; background: #f9bc00; }
body.seolab-public .modal:has(form) .modal-title { margin: 0; color: #263f63; font-size: clamp(18px, 2vw, 23px) !important; font-weight: 800; line-height: 1.7; }
body.seolab-public .modal:has(form) .btn-close { flex: 0 0 auto; margin: 0 auto 0 0 !important; padding: 10px; border-radius: 11px; background-color: #fff; box-shadow: 0 3px 12px #263f630d; opacity: .75; }
body.seolab-public .modal:has(form) .btn-close:hover { opacity: 1; background-color: #e4ebf5; }
body.seolab-public .modal:has(form) .modal-body { overflow-y: auto; padding: 26px 28px !important; min-width: 0; scrollbar-width: thin; scrollbar-color: #a8bad1 #f5f7fb; }
body.seolab-public .modal:has(form) .modal-body :is(.container, .c-box-form, .c-form-contactus, #c-form) { width: 100%; padding: 0 !important; margin: 0 !important; background: transparent; box-shadow: none; }
body.seolab-public .modal:has(form) .form-label { color: #344963; font-size: 13px; font-weight: 600; margin-bottom: 8px; }
body.seolab-public .modal:has(form) :is(.form-control, .form-select) { min-height: 48px; padding: 10px 14px; border: 1px solid #dce4ef; border-radius: 11px; background-color: #f8fafc; color: #182b46; box-shadow: none; transition: border-color .2s, box-shadow .2s, background-color .2s; }
body.seolab-public .modal:has(form) :is(.form-control, .form-select):focus { background-color: #fff; border-color: #6d8eb9; box-shadow: 0 0 0 4px #34568612; }
body.seolab-public .modal:has(form) :is(.form-control, .form-select).is-invalid { border-color: #dc3545; }
body.seolab-public .modal:has(form) textarea.form-control { min-height: 100px; }
body.seolab-public .modal:has(form) :is(.btn-primary, .btn-blue, button[type="submit"]) { color: #fff; border-color: #345686; background: #345686; border-radius: 11px; padding: 12px 24px; font-weight: 700; box-shadow: 0 6px 16px #34568620; }
body.seolab-public .modal:has(form) :is(.btn-primary, .btn-blue, button[type="submit"]):hover { background: #263f63; border-color: #263f63; }
body.seolab-public .modal:has(form) :is(button, a, input, select, textarea):focus-visible { outline: 2px solid #345686; outline-offset: 3px; }
body.seolab-public .seolab-modal-eyebrow { display: block; color: #637b9a; font-size: 11px; margin-bottom: 6px; }
body.seolab-public .seolab-modal-description { margin: 8px 0 0; color: #64748b; font-size: 13px; line-height: 1.9; }
@media(max-width: 575px) {
    body.seolab-public .modal:has(form) .modal-dialog { margin-block: 12px !important; min-height: calc(100% - 24px) !important; }
    body.seolab-public .modal:has(form) .modal-dialog-centered { min-height: calc(100% - 24px); }
    body.seolab-public .modal:has(form) .modal-dialog-scrollable { height: calc(100% - 24px); }
    body.seolab-public .modal:has(form) .modal-content { border-radius: 19px; max-height: calc(100dvh - 24px); }
    body.seolab-public .modal:has(form) :is(.modal-header, .modal-body) { padding: 20px !important; }
}
@media(prefers-reduced-motion: reduce) {
    body.seolab-public .modal.fade .modal-dialog, body.seolab-public .modal:has(form) :is(.form-control, .form-select) { transition: none; }
}

body.seolab-public .modal:has(form) #c-form .col-md-8 { flex: 0 0 100%; max-width: 100%; }

/* Bootstrap owns focus and dismissal; the shared script animates the surface. */
body.seolab-public .modal.fade .modal-dialog { transform: none !important; transition: none !important; }
body.seolab-public .modal.is-spring-pending .modal-content { visibility: hidden; }
body.seolab-public .modal.is-spring-closing .modal-content { pointer-events: none; }
@media(prefers-reduced-motion: reduce) {
    body.seolab-public .modal.fade, body.seolab-public .modal-backdrop.fade { transition: none !important; }
}
