.contact-form [hidden] { display: none !important; }
.contact-form button:disabled { cursor: wait; opacity: .7; transform: none; }
.contact-form__status { border-left: 3px solid var(--lime); padding: 12px 16px; background: #f6f8ed; color: var(--navy); }
.contact-form__status.is-error { border-color: #a53b35; background: #fff4f2; color: #87332e; }
html.contact-modal-open { overflow: hidden; }
.contact-success {
    width: 460px;
    max-width: calc(100% - 40px);
    max-height: calc(100svh - 40px);
    margin: auto;
    border: 1px solid #e1e6dc;
    border-radius: 12px;
    padding: 0;
    background: #fff;
    color: var(--body);
    box-shadow: 0 24px 80px rgb(27 38 55 / 20%);
}
.contact-success::backdrop { background: rgb(27 38 55 / 42%); }
.contact-success[open] { animation: contact-dialog-in 240ms cubic-bezier(.2,.8,.2,1) both; }
.contact-success[open]::backdrop { animation: contact-backdrop-in 240ms ease both; }
.contact-success.is-closing { animation: contact-dialog-out 140ms ease both; }
.contact-success.is-closing::backdrop { animation: contact-dialog-out 140ms ease both; }
.contact-success__body { position: relative; padding: 36px; text-align: center; }
.contact-success__close {
    position: absolute; top: 8px; right: 8px; display: grid; place-items: center;
    width: 44px; height: 44px; border: 0; border-radius: 50%;
    background: transparent; color: var(--navy);
}
.contact-success__close:hover { background: #f2f5ec; }
.contact-success__icon {
    position: relative; display: grid; place-items: center; width: 64px; height: 64px;
    margin: 4px auto 24px; border-radius: 50%; background: #eef4d9; color: var(--navy);
}
.contact-success[open] .contact-success__icon { animation: contact-check-in 320ms cubic-bezier(.2,.8,.2,1) 80ms both; }
.contact-success__icon::after { position: absolute; inset: 0; border: 1px solid var(--lime); border-radius: 50%; content: ""; opacity: 0; }
.contact-success[open] .contact-success__icon::after { animation: contact-check-ring 500ms ease 160ms both; }
.contact-success h2 { margin: 0 0 14px; font-size: 28px; line-height: 1.2; }
.contact-success p { margin: 0 0 26px; font-size: 16px; line-height: 1.6; }
.contact-success .button { min-width: 144px; min-height: 48px; color: var(--navy); }
@keyframes contact-dialog-in { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes contact-dialog-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes contact-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes contact-check-in { from { opacity: 0; transform: scale(.85); } to { opacity: 1; transform: scale(1); } }
@keyframes contact-check-ring { from { opacity: .7; transform: scale(1); } to { opacity: 0; transform: scale(1.45); } }
@media (max-width: 480px) { .contact-success__body { padding: 32px 22px 26px; } .contact-success h2 { font-size: 25px; } }
@media (prefers-reduced-motion: reduce) { .contact-success, .contact-success::backdrop, .contact-success__icon { animation: none !important; } .contact-success__icon::after { display: none; } }
