/* formrequests — виджет заявок (фронт сайта): honeypot, фолбэк модалки, сообщения.
 * Классы сайта (form-input, modal__dialog…) подключаются как есть; здесь —
 * лишь то, чего могло не быть на нестандартной вёрстке. */

/* honeypot: всегда прячет */
[data-frq-form] .frq-hp,
.hp-field.frq-hp { display: none !important; position: absolute; left: -9999px; }

/* поле с ошибкой */
[data-frq-form] .form-field.is-invalid .form-input,
[data-frq-form] .form-field.is-invalid .form-textarea { border-color: #d9534f; }
[data-frq-form] .form-field .form-error { display: none; color: #d9534f; font-size: 12px; }
[data-frq-form] .form-field.is-invalid .form-error { display: block; }
[data-frq-form] .form-check.is-invalid label { color: #d9534f; }

/* сообщение об успехе */
.frq-success { border: 1px solid #c9e7d8; background: #effaf3; color: #178a6b; border-radius: 10px; padding: 14px 16px; font-size: 15px; }

/* ошибка загрузки формы */
.frq-err { color: #a94442; font-size: 13px; }

/* фолбэк модалки — работает и там, где нет CSS сайта */
.frq-modal-wrap { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 18px; }
.frq-modal-wrap .modal, .frq-modal { position: relative; z-index: 1; width: 100%; max-width: 520px; max-height: 90vh; display: flex; flex-direction: column; }
.frq-modal-wrap .modal__backdrop, .frq-backdrop { position: fixed; inset: 0; background: rgba(15, 25, 35, .55); }
.frq-modal-wrap .modal__dialog, .frq-dialog { position: relative; background: #fff; border-radius: 14px; box-shadow: 0 18px 60px rgba(10, 20, 30, .35); max-height: 90vh; overflow: auto; padding: 20px 22px; font-family: 'Segoe UI', system-ui, sans-serif; width: 100%; }
.frq-modal-wrap .modal__head, .frq-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.frq-modal-wrap .modal__title, .frq-title { margin: 0; font-size: 18px; color: #1d2b3a; }
.frq-close { border: 0; background: transparent; cursor: pointer; width: 34px; height: 34px; border-radius: 8px; position: relative; flex: 0 0 auto; }
.frq-close::before, .frq-close::after { content: ''; position: absolute; left: 9px; top: 16px; width: 16px; height: 2px; background: #51617a; }
.frq-close::before { transform: rotate(45deg); }
.frq-close::after { transform: rotate(-45deg); }
.frq-modal-wrap .modal__body, .frq-body { padding-top: 12px; }
.frq-form .form-field { margin-bottom: 12px; }
.frq-form .form-label { display: block; font-size: 13px; color: #51617a; margin-bottom: 5px; }
.frq-form .form-label__req { color: #d9534f; }
.frq-form .form-input, .frq-form .form-textarea { width: 100%; padding: 10px 12px; border: 1px solid #ced4da; border-radius: 9px; font: inherit; color: #1d2b3a; background: #fff; }
.frq-form .form-textarea { resize: vertical; min-height: 90px; }
.frq-form .form-input:focus, .frq-form .form-textarea:focus { outline: 0; border-color: #1769aa; box-shadow: 0 0 0 3px rgba(23, 105, 170, .15); }
.frq-form .form-check { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #51617a; margin: 12px 0; }
.frq-form .form-check input { margin-top: 2px; }
.frq-form .frq-submit { width: 100%; border: 0; background: #1769aa; color: #fff; font: inherit; font-weight: 600; padding: 12px 16px; border-radius: 10px; cursor: pointer; }
.frq-form .frq-submit:hover { background: #125a94; }
.frq-form .frq-submit:disabled { opacity: .6; cursor: default; }

/* тост-фолбэк (если у сайта своего window.toast нет) */
.frq-toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 10001; background: #1d2b3a; color: #fff; padding: 11px 18px; border-radius: 10px; font-size: 14px; box-shadow: 0 8px 30px rgba(0,0,0,.35); transition: opacity .3s; }
.frq-toast.is-out { opacity: 0; }
