 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: 'Open Sans', sans-serif;
     color: #333;
     line-height: 1.6;
 }

 .navbar-brand {
     font-family: 'Montserrat', sans-serif;
     font-weight: 700;
     font-size: 1.5rem;
 }

 #font {
     font-family: 'Montserrat', sans-serif;
 }

 /* Hero Section */
 .hero-recrutement {
     background: linear-gradient(rgba(255, 140, 0, 0.7), rgba(255, 140, 0, 0.7)),
         url('assets/public/header/construction.jpg') center/cover;
     color: white;
     padding: 120px 20px 80px;
     text-align: center;
 }

 .hero-recrutement h1 {
     font-family: 'Montserrat', sans-serif;
     font-size: 2.5rem;
     margin-bottom: 20px;
     font-weight: 700;
 }

 .hero-recrutement p {
     font-size: 1.2rem;
     max-width: 800px;
     margin: 0 auto;
 }

 /* Section Styles */
 .section {
     padding: 60px 20px;
 }

 /*.section-title {
            font-family: 'Montserrat', sans-serif;
            font-size: 2rem;
            text-align: center;
            margin-bottom: 50px;
            color: #FF8C00;
            font-weight: 700;
        }
*/
 .section-title {
     text-align: center;
     margin-bottom: 50px;
     position: relative;
 }

 .section-title:after {
     content: '';
     display: block;
     width: 80px;
     height: 3px;
     background-color: var(--orange);
     margin: 15px auto 0;
 }

 .container {
     max-width: 1200px;
     margin: 0 auto;
 }

 /* Pourquoi nous rejoindre */
 .avantages-grid {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
     gap: 30px;
     margin-top: 40px;
 }

 .avantage-card {
     background: white;
     padding: 30px;
     border-radius: 10px;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
     text-align: center;
     transition: transform 0.3s;
 }

 .avantage-card:hover {
     transform: translateY(-10px);
 }

 .avantage-card i {
     font-size: 3rem;
     color: #FF8C00;
     margin-bottom: 20px;
 }

 .avantage-card h3 {
     font-family: 'Montserrat', sans-serif;
     font-size: 1.3rem;
     margin-bottom: 15px;
     color: #333;
 }

 /* Offres d'emploi */
 .offres-section {
     background: #f9f9f9;
 }

 .offre-card {
     background: white;
     padding: 30px;
     border-radius: 10px;
     margin-bottom: 20px;
     box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
     border-left: 5px solid #FF8C00;
 }

 .offre-header {
     display: flex;
     justify-content: space-between;
     align-items: start;
     margin-bottom: 20px;
     flex-wrap: wrap;
     gap: 15px;
 }

 .offre-header h3 {
     font-family: 'Montserrat', sans-serif;
     color: #FF8C00;
     font-size: 1.5rem;
     margin-bottom: 10px;
 }

 .offre-meta {
     display: flex;
     gap: 20px;
     flex-wrap: wrap;
     color: #666;
     font-size: 0.9rem;
 }

 .offre-meta span {
     display: flex;
     align-items: center;
     gap: 5px;
 }

 .offre-description {
     margin: 20px 0;
 }

 .offre-description h4 {
     font-family: 'Montserrat', sans-serif;
     margin-top: 15px;
     margin-bottom: 10px;
     color: #333;
 }

 .offre-description ul {
     margin-left: 20px;
     margin-bottom: 15px;
 }

 .btn-postuler {
     background: #FF8C00;
     color: white;
     padding: 12px 30px;
     border: none;
     border-radius: 5px;
     font-family: 'Montserrat', sans-serif;
     font-weight: 600;
     cursor: pointer;
     transition: background 0.3s;
     text-decoration: none;
     display: inline-block;
 }

 .btn-postuler:hover {
     background: #E67E00;
 }

 /* Formulaire de candidature */
 .candidature-section {
     background: white;
 }

 .form-candidature {
     max-width: 700px;
     margin: 0 auto;
     background: #f9f9f9;
     padding: 40px;
     border-radius: 10px;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
 }

 .form-group {
     margin-bottom: 25px;
 }

 .form-group label {
     display: block;
     margin-bottom: 8px;
     font-weight: 600;
     color: #333;
 }

 .form-group input,
 .form-group textarea,
 .form-group select {
     width: 100%;
     padding: 12px;
     border: 1px solid #ddd;
     border-radius: 5px;
     font-family: 'Open Sans', sans-serif;
     font-size: 1rem;
 }

 .form-group textarea {
     resize: vertical;
     min-height: 120px;
 }

 .form-group input[type="file"] {
     padding: 8px;
 }

 .btn-submit {
     background: #FF8C00;
     color: white;
     padding: 15px 40px;
     border: none;
     border-radius: 5px;
     font-family: 'Montserrat', sans-serif;
     font-weight: 600;
     font-size: 1.1rem;
     cursor: pointer;
     transition: background 0.3s;
     width: 100%;
 }

 .btn-submit:hover {
     background: #E67E00;
 }

 /* Footer */
 footer {
     background: #1a1a1a;
     color: white;
     padding: 50px 20px 20px;
 }

 .footer-container {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
     gap: 40px;
     margin-bottom: 30px;
 }

 .footer-logo h3 {
     color: #4CAF50;
     font-size: 2rem;
     margin-bottom: 10px;
 }

 
 .footer-links h4,
 .footer-services h4,
 .footer-contact h4 {
     color: var(--orange);
     margin-bottom: 20px;
     position: relative;
 }

 .footer-links h4:after,
 .footer-services h4:after,
 .footer-contact h4:after {
     content: '';
     display: block;
     width: 40px;
     height: 2px;
     background-color: var(--orange);
     margin-top: 8px;
 }

 footer ul {
     list-style: none;
 }

 footer ul li {
     margin-bottom: 10px;
 }

 footer a {
     color: #ccc;
     text-decoration: none;
     transition: color 0.3s;
 }

 footer a:hover {
     color: #FF8C00;
 }

 .footer-bottom {
     border-top: 1px solid #333;
     padding-top: 20px;
     text-align: center;
     color: #999;
 }

 #icones {
     width: 20px;
     margin-right: 8px;
 }

 @media (max-width: 768px) {
     .hero-recrutement h1 {
         font-size: 2rem;
     }

     .offre-header {
         flex-direction: column;
     }

     .form-candidature {
         padding: 20px;
     }
 }
 
 
 /* Styles spécifiques au formulaire de recrutement */

/* Validation */
.is-invalid {
    border-color: #dc3545 !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") !important;
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.is-valid {
    border-color: #198754 !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") !important;
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.error-message {
    font-size: 0.85rem;
    margin-top: 0.25rem;
}

/* Bouton d'envoi */
.btn-loading {
    display: none;
}

/* Aperçu fichiers */
.file-preview-card {
    border-radius: 8px;
    transition: all 0.3s ease;
}

.file-preview-card:hover {
    background-color: #f8f9fa;
}

/* Animation pour le message */
.alert {
    animation: slideInDown 0.5s ease;
}

@keyframes slideInDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Responsive */
@media (max-width: 768px) {
    .file-preview-card h6 {
        max-width: 150px !important;
    }
}