.site-feedback {
    position: fixed;
    z-index: 2000;
    top: 50%;
    left: 50%;
    width: min(640px, calc(100% - 32px));
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 20px;
    padding: 36px 32px;
    color: #202027;
    background: #fff;
    border: 1px solid #e8e4e2;
    border-top: 6px solid;
    border-radius: 24px;
    box-shadow: 0 0 0 100vmax rgba(20, 20, 27, .58), 0 28px 80px rgba(20, 20, 27, .34);
    opacity: 0;
    transform: translate(-50%, -50%) scale(.94);
    transition: opacity .25s ease, transform .25s ease;
}

.site-feedback.is-visible {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.site-feedback.is-hiding {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.96);
}

.site-feedback.is-success { border-top-color: #147a48; }
.site-feedback.is-error { border-top-color: #bd1025; }
.site-feedback > i { font-size: 54px; }
.site-feedback.is-success > i { color: #147a48; }
.site-feedback.is-error > i { color: #bd1025; }
.site-feedback > div { display: grid; gap: 8px; }
.site-feedback strong { font-size: 24px; }
.site-feedback span { color: #64646d; font-size: 16px; line-height: 1.8; }
.site-feedback button {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 11px;
    color: #4e4e55;
    background: #f1eff0;
    cursor: pointer;
}

.cv-form-card input.is-invalid,
.cv-form-card select.is-invalid,
.cv-form-card .dropzone:has(input.is-invalid) {
    border-color: #bd1025;
    box-shadow: 0 0 0 3px rgba(189, 16, 37, .1);
}

.cv-form-card button:disabled {
    cursor: wait;
    opacity: .78;
}

.cv-form-card button.is-loading i {
    display: inline-block;
    animation: website-submit-spin .8s linear infinite;
}

@keyframes website-submit-spin {
    to { transform: rotate(-360deg); }
}

@media (max-width: 620px) {
    .site-feedback {
        grid-template-columns: 1fr auto;
        padding: 28px 22px;
        text-align: right;
    }
    .site-feedback > i { grid-column: 1 / -1; font-size: 46px; }
    .site-feedback strong { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
    .site-feedback { transition: none; }
    .cv-form-card button.is-loading i { animation: none; }
}
