html { scroll-behavior: smooth; }
.scroll { scroll-margin-top: var(--header-h, 96px); }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.admin-bar .header { top: 32px; }
@media (max-width: 782px) { .admin-bar .header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .header { top: 0; } }

.kr-form .wpcf7, .kr-form .wpcf7-form { display: contents; }
.kr-form .wpcf7-form-control-wrap { position: relative; display: block; width: 100%; }
.kr-form .wpcf7-form-control-wrap input:not([type="checkbox"]), .kr-form .wpcf7-form-control-wrap textarea { display: block; }
.consult-wrap__form .wpcf7-form-control-wrap { flex: 1; min-width: 0; width: auto; }
.consult-wrap__form .wpcf7-form-control-wrap input { width: 100%; }
.kr-form .wpcf7-spinner { display: none; }
body .kr-form .wpcf7 form .wpcf7-response-output { display: none !important; }
.kr-form .wpcf7-form.submitting button[type="submit"] { opacity: .7; pointer-events: none; }

.kr-form .wpcf7-not-valid-tip { position: absolute; top: 50%; right: 16px; max-width: 55%; transform: translateY(-50%); font-size: 13px; line-height: 16px; text-align: right; color: #e5484d; pointer-events: none; }
.kr-form .wpcf7-form-control-wrap:has(textarea) .wpcf7-not-valid-tip { top: 20px; transform: none; }
.kr-form input.wpcf7-not-valid, .kr-form textarea.wpcf7-not-valid { border-color: #e5484d !important; }
.consult-wrap__form input.wpcf7-not-valid { box-shadow: inset 0 0 0 1.5px #e5484d; }

.lead-wrap__form .wpcf7-acceptance, .modal__form .wpcf7-acceptance { display: block; width: 100%; }
.lead-wrap__form .wpcf7-acceptance .wpcf7-list-item, .modal__form .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }
.lead-wrap__form .wpcf7-acceptance label, .modal__form .wpcf7-acceptance label { width: 100%; display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: 14px; line-height: 20px; color: #5a6478; }
.lead-wrap__form .wpcf7-acceptance input, .modal__form .wpcf7-acceptance input { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; flex-shrink: 0; margin: 0; border: 1.5px solid #b8c0cc; border-radius: 5px; background: #fff; cursor: pointer; }
.lead-wrap__form .wpcf7-acceptance input:checked, .modal__form .wpcf7-acceptance input:checked { border-color: #0a44d8; background: #0a44d8 url(img/icons/check-white.svg) center / 14px no-repeat; }
.lead-wrap__form .wpcf7-acceptance.wpcf7-not-valid input, .modal__form .wpcf7-acceptance.wpcf7-not-valid input { border-color: #e5484d; }
.wpcf7-acceptance label a { font-weight: 600; color: #0a44d8; }
.kr-form .wpcf7-form-control-wrap[data-name="consent"] .wpcf7-not-valid-tip { position: static; max-width: none; margin-top: 6px; transform: none; text-align: left; }

.contact-wrap__btn::before { content: ''; width: 20px; height: 20px; flex-shrink: 0; background: url(img/icons/send-white.svg) center / 20px no-repeat; }

.modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: flex-start; padding: 20px 15px; background: rgba(11, 18, 32, .6); overflow-y: auto; opacity: 0; visibility: hidden; transition: .3s; }
.modal-active { opacity: 1; visibility: visible; }
.modal__box { position: relative; width: 100%; max-width: 480px; max-height: 90vh; margin: auto; padding: 52px 40px 40px; overflow-y: auto; border-radius: 24px; background: #fff; text-align: center; box-shadow: 0 24px 60px -12px rgba(0, 13, 51, .25); }
.modal__box--form { max-width: 560px; text-align: left; }
.modal__box--form .modal__title { padding-right: 32px; }
.modal__close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: #eef1f6; cursor: pointer; transition: .3s; }
.modal__close::before, .modal__close::after { content: ''; position: absolute; top: 50%; left: 50%; width: 16px; height: 2px; background: #0b1220; transform: translate(-50%, -50%) rotate(45deg); }
.modal__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.modal__close:hover { background: #e8eefc; }
.modal__title { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 32px; line-height: 40px; letter-spacing: -.03em; color: #0b1220; }
.modal__text { margin-top: 12px; font-size: 17px; line-height: 26px; color: #5a6478; }
.modal__btn { margin: 28px auto 0; }
.modal__form { display: flex; flex-direction: column; gap: 14px; margin-top: 24px; }
.modal__form input:not([type="checkbox"]), .modal__form textarea { width: 100%; height: 60px; padding: 0 22px; border: 1px solid #e0e4ea; border-radius: 12px; background: #f3f6fb; font-family: 'Golos Text', sans-serif; font-size: 17px; color: #0b1220; outline: none; }
.modal__form textarea { height: 112px; padding: 18px 22px; line-height: 22px; resize: none; }
.modal__form input::placeholder, .modal__form textarea::placeholder { color: #5a6478; }
.modal__form button[type="submit"] { width: 100%; height: 60px; margin-top: 4px; }

.page-head + .posts, .page-head + .cases { padding-top: 40px; }
.single-page .entry > :first-child { margin-top: 0; }
body.page-template-default, body.error404 { display: flex; flex-direction: column; min-height: 100vh; }
body.page-template-default .single-page { flex: 1 0 auto; }

.text-page { flex: 1 0 auto; padding: 48px 0 96px; }
.text-page-wrap { max-width: 900px; }
.text-page-wrap__title { margin-bottom: 28px; }
.text-page-wrap__content { font-size: 17px; line-height: 27px; color: #5a6478; }
.text-page-wrap__content > * + * { margin-top: 16px; }
.text-page--error .text-page-wrap { display: flex; flex-direction: column; align-items: center; max-width: 640px; margin: 0 auto; text-align: center; }
.text-page-wrap__code { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 120px; line-height: 1; letter-spacing: -.03em; color: #0a44d8; }
.text-page--error .text-page-wrap__title { margin: 16px 0 12px; }
.text-page-wrap__btn { margin-top: 32px; }

@media (max-width: 767px) {
    .consult-wrap__form .wpcf7-form-control-wrap { flex: 1 1 100%; }
    .page-head + .posts, .page-head + .cases { padding-top: 24px; }
    .text-page { padding: 32px 0 64px; }
    .text-page-wrap__content { font-size: 16px; line-height: 25px; }
    .text-page-wrap__code { font-size: 88px; }
    .modal__box { padding: 48px 20px 28px; }
    .modal__title { font-size: 26px; line-height: 34px; }
}
