/* Modern Contact Form Styles */
.form-group {
    position: relative;
    margin-bottom: 1.5rem;
}

.modern-input {
    width: 100%;
    padding: 1rem 1rem 1rem 1rem;
    border: 2px solid rgba(226, 232, 240, 0.4);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    color: #1e293b;
    font-size: 1rem;
    transition: all 0.3s ease;
    outline: none;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

.dark .modern-input {
    background: rgba(55, 65, 81, 0.9);
    color: #ffffff;
    border: 2px solid rgba(75, 85, 99, 0.4);
}

.modern-input:focus {
    border-color: rgba(249, 115, 22, 0.6);
    box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.1), 0 10px 15px -3px rgba(0, 0, 0, 0.08);
    transform: scale(1.01);
}

.dark .modern-input:focus {
    border-color: rgba(249, 115, 22, 0.8);
    box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.2), 0 10px 15px -3px rgba(0, 0, 0, 0.3);
}

.modern-input:valid,
.modern-input:not(:placeholder-shown) {
    padding-top: 1.5rem;
    padding-bottom: 0.5rem;
}

.modern-label {
    position: absolute;
    top: 1rem;
    left: 1rem;
    color: #64748b;
    font-size: 1rem;
    transition: all 0.3s ease;
    pointer-events: none;
    background: transparent;
    padding: 0 0.25rem;
}

.dark .modern-label {
    color: #9ca3af;
}

.modern-input:focus + .modern-label,
.modern-input:valid + .modern-label,
.modern-input:not(:placeholder-shown) + .modern-label {
    top: -0.5rem;
    left: 0.75rem;
    font-size: 0.8rem;
    color: #f97316;
    background: rgba(255, 255, 255, 0.9);
    padding: 0 0.25rem;
    border-radius: 4px;
    backdrop-filter: blur(10px);
}

.dark .modern-input:focus + .modern-label,
.dark .modern-input:valid + .modern-label,
.dark .modern-input:not(:placeholder-shown) + .modern-label {
    color: #fb923c;
    background: rgba(55, 65, 81, 0.9);
}

/* Floating Animation Keyframes */
@keyframes float {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(180deg); }
}

@keyframes bounce-in {
    0% { transform: scale(0) rotate(-180deg); opacity: 0; }
    50% { transform: scale(1.2) rotate(-90deg); opacity: 0.8; }
    100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

@keyframes slide-in-left {
    0% { transform: translateX(-100px); opacity: 0; }
    100% { transform: translateX(0); opacity: 1; }
}

@keyframes slide-in-right {
    0% { transform: translateX(100px); opacity: 0; }
    100% { transform: translateX(0); opacity: 1; }
}

@keyframes fade-in-up {
    0% { transform: translateY(50px); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}

/* Animation Classes */
.animate-float {
    animation: float 6s ease-in-out infinite;
}

.animate-bounce-in {
    animation: bounce-in 1s ease-out forwards;
}

.animate-slide-in-left {
    animation: slide-in-left 0.8s ease-out forwards;
}

.animate-slide-in-right {
    animation: slide-in-right 0.8s ease-out forwards;
}

.animate-fade-in-up {
    animation: fade-in-up 0.8s ease-out forwards;
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease-out;
}

.animate-on-scroll.animate {
    opacity: 1;
    transform: translateY(0);
}

/* Animation Delays */
.animation-delay-300 { animation-delay: 0.3s; }
.animation-delay-600 { animation-delay: 0.6s; }
.animation-delay-1000 { animation-delay: 1s; }
.animation-delay-2000 { animation-delay: 2s; }

/* Contact Form Specific Animations */
.contact-item {
    transition: all 0.3s ease;
}

.contact-item:hover {
    transform: translateY(-4px) scale(1.02);
}

/* Select styling for modern form */
select.modern-input {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.75rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
    appearance: none;
}

.dark select.modern-input {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
}

/* Scroll animations */
@keyframes slideInFromBottom {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-on-scroll.animate {
    animation: slideInFromBottom 0.6s ease-out forwards;
}
