@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
    html {
        scroll-behavior: smooth;
    }

    body {
        @apply font-sans text-gray-700;
    }

    h1, h2, h3, h4, h5, h6 {
        @apply font-heading font-bold;
    }
}

@layer components {
    .button {
        @apply inline-flex items-center justify-center px-6 py-3 rounded-lg font-medium transition-colors;
    }

    .button-primary {
        @apply bg-primary text-white hover:bg-primary-dark;
    }

    .button-secondary {
        @apply bg-secondary text-white hover:bg-secondary-dark;
    }

    .nav-link {
        @apply text-gray-600 hover:text-primary transition-colors;
    }

    .nav-link.active {
        @apply text-primary;
    }

    .section {
        @apply min-h-screen py-20;
    }

    .card {
        @apply bg-white rounded-xl shadow-lg p-6 transition-all duration-300 hover:shadow-xl;
    }

    .input {
        @apply w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary focus:border-primary;
    }

    .label {
        @apply block text-sm font-medium text-gray-700 mb-2;
    }

    /* Contact Form 7 Styling - More Specific */
    .wpcf7 {
        @apply w-full;
    }

    .wpcf7-form {
        @apply space-y-6 w-full;
    }

    .wpcf7-form p {
        @apply mb-0 w-full;
    }

    .wpcf7-form label {
        @apply block text-sm font-medium text-gray-700 mb-2 w-full;
    }

    .wpcf7-form input[type="text"],
    .wpcf7-form input[type="email"],
    .wpcf7-form input[type="tel"],
    .wpcf7-form input[type="url"],
    .wpcf7-form input[type="number"],
    .wpcf7-form textarea,
    .wpcf7-form select {
        @apply w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary focus:border-transparent transition-colors duration-200 bg-white;
        box-sizing: border-box;
    }

    .wpcf7-form input[type="text"]:focus,
    .wpcf7-form input[type="email"]:focus,
    .wpcf7-form input[type="tel"]:focus,
    .wpcf7-form input[type="url"]:focus,
    .wpcf7-form input[type="number"]:focus,
    .wpcf7-form textarea:focus,
    .wpcf7-form select:focus {
        @apply outline-none;
    }

    .wpcf7-form textarea {
        @apply resize-none;
        min-height: 120px;
    }

    .wpcf7-form input[type="submit"] {
        @apply w-full bg-primary text-white py-3 px-6 rounded-lg hover:bg-primary-dark transition-colors duration-300 font-medium cursor-pointer border-0;
    }

    .wpcf7-form input[type="submit"]:hover {
        @apply transform scale-[1.02];
    }

    /* Grid layout for name and email fields */
    .wpcf7-form .name-email-grid {
        @apply grid grid-cols-1 md:grid-cols-2 gap-4;
    }

    /* Show CF7 response messages */
    .wpcf7-response-output {
        @apply hidden;
    }
    
    .wpcf7-response-output:not(:empty) {
        @apply block p-4 rounded-lg mb-4 text-sm font-medium;
    }
    
    .wpcf7-response-output.wpcf7-mail-sent-ok {
        @apply bg-green-50 text-green-800;
    }
    
    .wpcf7-response-output.wpcf7-validation-errors {
        @apply bg-red-50 text-red-800;
    }
    
    .wpcf7-response-output.wpcf7-spam-blocked {
        @apply bg-yellow-50 text-yellow-800;
    }
    
    .wpcf7-response-output.wpcf7-mail-sent-ng {
        @apply bg-red-50 text-red-800;
    }

    /* Show validation tip messages */
    .wpcf7-not-valid-tip {
        @apply block text-red-500 text-sm mt-1;
    }

    /* Style invalid fields with red borders */
    .wpcf7-form .wpcf7-not-valid {
        @apply border-red-500;
    }

    .wpcf7-form .wpcf7-not-valid:focus {
        @apply border-red-500 ring-red-500;
    }

    /* Loading state */
    .wpcf7-form .wpcf7-spinner {
        @apply inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin ml-2;
    }

    /* Hide default CF7 styling */
    .wpcf7-form .wpcf7-form-control-wrap {
        @apply block w-full;
    }

    /* Override any default CF7 styles */
    .wpcf7-form br {
        @apply hidden;
    }

    .wpcf7-form .wpcf7-form-control {
        @apply w-full;
    }

    /* Responsive adjustments */
    @media (max-width: 768px) {
        .wpcf7-form .name-email-grid {
            @apply grid-cols-1;
        }
    }
}

@layer utilities {
    .container {
        @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
    }

    .text-gradient {
        @apply bg-clip-text text-transparent bg-gradient-to-r from-primary to-secondary;
    }
}

/* Additional Contact Form 7 overrides to ensure styles are applied */
.wpcf7-form input,
.wpcf7-form textarea,
.wpcf7-form select {
    width: 100% !important;
    padding: 0.75rem 1rem !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0.5rem !important;
    background-color: white !important;
    box-sizing: border-box !important;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
    outline: none !important;
    border-color: #2563eb !important;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2) !important;
}

.wpcf7-form input[type="submit"] {
    width: 100% !important;
    background-color: #2563eb !important;
    color: white !important;
    padding: 0.75rem 1.5rem !important;
    border-radius: 0.5rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    border: none !important;
    transition: all 0.3s ease !important;
}

.wpcf7-form input[type="submit"]:hover {
    background-color: #1d4ed8 !important;
    transform: scale(1.02) !important;
}

.wpcf7-form label {
    display: block !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: #374151 !important;
    margin-bottom: 0.5rem !important;
}

.wpcf7-form p {
    margin-bottom: 0 !important;
    width: 100% !important;
}

.wpcf7-form .wpcf7-form-control-wrap {
    display: block !important;
    width: 100% !important;
}

.wpcf7-form br {
    display: none !important;
}

/* Show CF7 response messages */
.wpcf7-response-output {
    display: none !important;
}

.wpcf7-response-output:not(:empty) {
    display: block !important;
    padding: 1rem !important;
    border-radius: 0.5rem !important;
    margin-bottom: 1rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
}

.wpcf7-response-output.wpcf7-mail-sent-ok {
    background-color: #f0fdf4 !important;
    color: #166534 !important;
}

.wpcf7-response-output.wpcf7-validation-errors {
    background-color: #fef2f2 !important;
    color: #991b1b !important;
}

.wpcf7-response-output.wpcf7-spam-blocked {
    background-color: #fffbeb !important;
    color: #92400e !important;
}

.wpcf7-response-output.wpcf7-mail-sent-ng {
    background-color: #fef2f2 !important;
    color: #991b1b !important;
}

/* Show validation tip messages */
.wpcf7-not-valid-tip {
    display: block !important;
    color: #ef4444 !important;
    font-size: 0.875rem !important;
    margin-top: 0.25rem !important;
}

/* Style invalid fields with red borders */
.wpcf7-form .wpcf7-not-valid {
    border-color: #ef4444 !important;
}

.wpcf7-form .wpcf7-not-valid:focus {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2) !important;
}

/* Desktop text visibility */
.desktop-text {
    display: none;
}

@media (min-width: 768px) {
    .desktop-text {
        display: block;
    }
}

/* EU Projects List Styling */
#eu-projects ul {
    list-style-type: disc !important;
    list-style-position: inside !important;
    margin: 0.5rem 0 !important;
    padding-left: 0 !important;
}

#eu-projects ol {
    list-style-type: decimal !important;
    list-style-position: inside !important;
    margin: 0.5rem 0 !important;
    padding-left: 0 !important;
}

#eu-projects li {
    font-size: 0.875rem !important;
    color: #1e40af !important;
    margin-bottom: 0.25rem !important;
    line-height: 1.4 !important;
}

#eu-projects ul li::marker {
    color: #2563eb !important;
}

#eu-projects ol li::marker {
    color: #2563eb !important;
    font-weight: 600 !important;
}