/* Fix Bootstrap form controls inside contact section */

#contact .form-control,
#contact textarea,
#contact input
{
    box-sizing: border-box !important;
    max-width: 45vw;
}

/* ------------ CONTACT SECTION --------- */

section#contact
{
    padding: 0 20px 70px 20px;
    color: white;
    margin-right: 20px;
    margin-top: 20px;
}

#contact-header
{
    margin-left: 3.5rem;
}

#contact-header h2
{
    font-weight: 500;
    margin-bottom: 15px;
}

#contact-subtitle
{
    font-size: 16px;
    margin-bottom: 25px;
    width: 100%;
}

.contact-divider
{
    width: 20vw;
    height: 5px;
    background-color: #8B2E00;
    margin: 0 auto 40px auto;
}

.contact-form
{
    max-width: 600px;
    padding: 30px calc(30px + var(--skew-offset));
    border-radius: 12px;
}

#credentials
{
    display: none;
}

.contact-form .form-control
{
    background-color: transparent;
    border: 1px solid #8d8d8d;
    color: white;
}

.contact-form .form-control:focus
{
    background-color: transparent;
    color: white;
    border-color: #FF5500;
    box-shadow: 0 0 6px #FF5500;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder
{
    color: #8d8d8d;
    opacity: 0.8;
}

.contact-form label
{
    font-weight: 550;
    filter: drop-shadow(0px 0px 7px #FF5500);
}

textarea.form-control
{
    resize: none;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 90, 0, 0.7) transparent;
}

/* Fix Chrome autofill background */

.contact-form input:-webkit-autofill,
.contact-form textarea:-webkit-autofill,
.contact-form input:-webkit-autofill:hover,
.contact-form input:-webkit-autofill:focus,
.contact-form input:-webkit-autofill:active
{
    -webkit-box-shadow: 0 0 0 1000px #2a2a2a inset !important;
    -webkit-text-fill-color: white !important;
    caret-color: white;
    transition: background-color 9999s ease-in-out 0s;
}

/* ---------- FORM ERROR + POPUP SECTION --------- */

/* error text */

.field-error
{
    color: #ff4d4d;
    font-size: 0.9rem;
    margin-top: 6px;
    min-height: 18px;
}

/* bounce animation */

@keyframes bounceField
{
    0%   { transform: translateX(0); }
    25%  { transform: translateX(10px); }
    50%  { transform: translateX(-10px); }
    75%  { transform: translateX(5px); }
    100% { transform: translateX(0); }
}

.bounce
{
    animation: bounceField 0.35s;
}

/* overlay popup */

#popup-verify
{
    position: relative;
    z-index: 3;
    background: #111;
    color: white;
    padding: 40px 50px;
    text-align: center;
    max-width: 460px;
    width: 90%;
}

#verify-title
{
    font-size: 1.4rem;
    margin-bottom: 24px;
    filter: drop-shadow(0px 0px 6px #FF5500);
}

#verify-steps
{
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 0 20px;
    gap: 0;
}

.check-circle
{
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid #333;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #333;
    flex-shrink: 0;
    transition: border-color 0.3s ease, color 0.3s ease;
}

.check-circle.passed
{
    border-color: #FF5500;
    color: #FF5500;
}

.check-circle.failed
{
    border-color: #cc2200;
    color: #cc2200;
}

.step-dots
{
    color: #333;
    font-size: 20px;
    letter-spacing: 3px;
    padding: 0 6px;
    transition: color 0.3s ease;
    user-select: none;
}

.step-dots.passed
{
    color: #FF5500;
}

#verify-message
{
    color: #888;
    font-size: 0.9rem;
    margin: 0;
    min-height: 44px;
    transition: color 0.3s ease;
}