/* Единственное окно заказа звонка/заявки. Калькуляторы остаются отдельными. */
.request-modal.modal {width:min(680px,calc(100% - 28px));max-width:calc(100% - 28px);max-height:calc(100dvh - 24px);border:0;border-radius:28px;overflow-y:auto;box-shadow:0 25px 80px #11192335;}
.request-modal::backdrop {background:#202932c4;}
.request-modal .request-modal__inner {padding:clamp(24px,4.6vw,50px) clamp(18px,5vw,56px) 35px;text-align:center;}
.request-modal .request-modal__close {top:18px;right:20px;width:38px;height:38px;border:0;background:transparent;border-radius:50%;color:#4c5257;font-size:32px;line-height:1;cursor:pointer;}
.request-modal .request-modal__close:hover {background:#f2f2f2;}
.request-modal #request-title {margin:0 32px 12px;font-size:clamp(26px,4.2vw,38px);line-height:1.15;letter-spacing:-.04em;font-weight:750;color:#191d20;}
.request-modal .request-modal__lead {margin:0 auto 25px;max-width:490px;font-size:clamp(13px,1.6vw,16px);line-height:1.55;color:#555e65;}
.request-modal__form {text-align:left;}
.request-modal__fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;}
.request-modal__field {display:flex;flex-direction:column;min-width:0;gap:8px;color:#30373c;font-weight:600;font-size:13px;}
.request-modal__field input {width:100%;min-width:0;min-height:50px;padding:12px 14px;border:1px solid #cdd2d5;border-radius:11px;background:#fff;color:#1d252a;font:500 14px Montserrat,Arial,sans-serif;}
.request-modal__field input::placeholder {color:#697177;opacity:1;}
.request-modal__field input[aria-invalid=true] {border-color:#b43d36;}
.request-modal__field input:focus-visible {outline:2px solid #436e89;outline-offset:2px;}
.request-modal__submit {display:block;width:100%;min-height:52px;margin-top:18px;border:0;border-radius:12px;background:#343d42;color:#fff;font:700 15px Montserrat,Arial,sans-serif;cursor:pointer;}
.request-modal__submit:hover {background:#202c32;}
/* Disabled until all fields and explicit privacy consent are valid. */
.request-modal__submit:disabled {background:#a4acb0;color:#fff;cursor:not-allowed;opacity:1;}
.request-modal__submit:disabled:hover {background:#a4acb0;}
.request-modal .request-modal__error {margin:10px 0 0;font-size:13px;color:#a52e27;line-height:1.4;}
.request-modal__error:empty {display:none;}
.request-modal .request-modal__privacy {display:flex;align-items:flex-start;gap:10px;margin:15px 0 0;color:#454e54;font-size:12px;line-height:1.5;cursor:pointer;}
.request-modal__privacy input {flex:none;width:18px;height:18px;margin:0;accent-color:#343d42;cursor:pointer;}
.request-modal__privacy a {color:#34434d;text-underline-offset:2px;}
.request-modal__privacy a:focus-visible,.request-modal__privacy input:focus-visible {outline:2px solid #436e89;outline-offset:2px;}
.request-modal .request-modal__success {margin:20px 0 25px;padding:17px 18px;text-align:left;border:1px solid #c7e1d2;border-radius:11px;background:#eff8f2;color:#326448;font-size:14px;line-height:1.55;font-weight:600;}
.request-modal__messenger-block {margin-top:28px;border-top:1px solid #e7e8e9;padding-top:23px;}
.request-modal .request-modal__messenger-title {margin:0 0 16px;color:#535a60;font-size:16px;line-height:1.4;}
.request-modal__messengers {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;}
.request-modal__messengers a {display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;min-width:0;padding:9px;border:1px solid #dfe2e4;border-radius:12px;background:#fff;color:#2b3035;text-decoration:none;font-size:13px;font-weight:700;box-shadow:0 2px 9px #11111109;}
.request-modal__messengers a:hover {background:#f7f9fa;border-color:#b6c0c7;}
.request-modal__messengers img {width:24px;height:24px;object-fit:contain;}
.request-modal button:focus-visible,.request-modal a:focus-visible {outline:3px solid #477e99;outline-offset:3px;}
.request-form__trap {position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.request-modal [hidden] {display:none;}
@media(max-width:570px) {
 .request-modal.modal {border-radius:20px;}
 .request-modal .request-modal__inner {padding:37px 18px 23px;}
 .request-modal .request-modal__close {top:6px;right:8px;}
 .request-modal #request-title {margin-inline:20px;}
 .request-modal__fields {grid-template-columns:1fr;gap:12px;}
 .request-modal__messengers {gap:6px;}
 .request-modal__messengers a {gap:5px;min-height:48px;font-size:11px;padding-inline:4px;}
 .request-modal__messengers img {width:20px;height:20px;}
 .request-modal .request-modal__messenger-title {font-size:14px;}
}
@media(prefers-reduced-motion:reduce){.request-modal * {scroll-behavior:auto;}}
