/* Font declarations */
@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Light_1.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Regular_1.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Medium_1.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Bold_1.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

/* Base font size adjustments */
:root {
    font-size: 16px; /* Base size */
}

/* Responsive font sizing */
@media (min-width: 1440px) {
    :root {
        font-size: 18px;
    }
}

@media (min-width: 1920px) {
    :root {
        font-size: 20px;
    }
}

@media (min-width: 2560px) {
    :root {
        font-size: 24px;
    }
}

/* General Styles */
body {
    background-color: #E8E6E7; /* Beige background */
    font-family: 'Roboto', sans-serif; /* Changer Montserrat par Roboto */
    color: #555; /* Default text color */
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Prevent horizontal scroll */
    font-size: 1rem;
}

.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding: 0.75rem 0;
    background-color: rgba(232, 230, 231, 0.9);
    width: 100%;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.navbar-logo {
    display: flex;
    align-items: center;
    text-decoration: none;
    margin-right: 3rem;
}

.navbar-logo-img {
    height: 80px;
    width: auto;
    object-fit: contain;
}

.main-nav {
    margin-bottom: 0;
    width: 100%;
    max-width: 1400px;
    padding: 0 2rem;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.main-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 2rem;
    justify-content: center;
    align-items: center;
}

.main-nav a {
    text-decoration: none;
    color: #666;
    font-weight: 400;
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    position: relative;
    transition: color 0.3s ease;
}

.main-nav a:hover {
    color: #000;
}

/* Dropdown Styles */
.navbar .dropdown {
    position: relative;
}

.navbar .dropdown-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-color: rgba(232, 230, 231, 0.95);
    border: none;
    border-radius: 0;
    padding: 0.8rem 0 !important;
    min-width: 180px !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    margin-top: 0.5rem;
}

.navbar .dropdown-item {
    padding: 0.4rem 1.2rem !important;
    color: #666 !important;
    font-size: 0.9rem !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    transition: all 0.3s ease;
    display: block;
    text-decoration: none;
}

.navbar .dropdown-item:hover {
    color: #000 !important;
    background-color: transparent !important;
}

.dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.5rem;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
    transition: transform 0.3s ease;
}

.dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
}

/* Ensure sections take up reasonable height */
.section-1, .section-2 {
    min-height: 50vh; /* Adjust as needed, ensures sections aren't tiny */
    display: flex; /* Helps with alignment if needed */
    align-items: stretch; /* Make columns same height */
}

/* Match image container height if image isn't tall enough */
.image-container {
    height: clamp(500px, 100vh, 1200px);
    position: relative;
    width: 100%;
    min-height: 100vh;
}

/* Container spécifique pour les sections compactes */
.image-container-compact {
    position: relative;
    width: 100%;
    height: clamp(500px, 100vh, 1200px);
    min-height: 100vh;
    background-color: transparent; /* Pas de couleur de fallback */
}

.image-container img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block; /* Remove extra space below image */
}

/* Logo overlay styles */
.logo-overlay {
    position: absolute;
    top: 2rem;
    left: 2rem;
    z-index: 100;
    pointer-events: none; /* Permet au clic de passer à travers */
    width: 200px; 
    height: 262px; 
    background-color: transparent; 
}

.logo-image {
    width: 100%; 
    height: 100%; 
    object-fit: contain; /* Maintenir les proportions */
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
    display: block;
    max-width: 100%;
    opacity: 1;
    padding: 8px; /* Padding réduit pour optimiser l'espace avec le logo rectangulaire */
}

/* Padding for content columns */
.right-col-padding {
    padding: clamp(2rem, 4vw, 4rem);
    padding-top: 8rem; /* Ajout de padding en haut pour compenser la navbar fixe */
}

.left-col-padding {
     padding: clamp(2rem, 4vw, 4rem);
}

/* Section 1 - Right Column Specifics */
.text-block .number {
    font-size: 3.5rem;
    font-weight: 300;
    /* color: #B0AFAF; Greyish number color */
    color: #CFAD91; /* beige number color */
    line-height: 1;
    text-align: center;
}

.text-block h4 {
    font-weight: 700;
    color: #444;
    margin-bottom: 0.5rem;
    font-size: 1.1rem;
    text-transform: uppercase;
}

.text-block p {
    font-size: 1rem;
    color: #777;
    line-height: 1.6;
}

.text-block hr {
    border: 0;
    height: 2px;
    background-color: #CFAD91; /* Light grey line */
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* Section 2 - Left Column Specifics */
.orange-background {
    background-color: #E8E6E7; /* Orange background */
    min-height: 300px; /* Ensure some height even without much content */
    gap: 25px; /* Space between avatars */
}

.avatar-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    margin: 0 1.5rem;
    position: relative;
}

.avatar-placeholder {
    width: 10rem;
    height: 16rem;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.avatar-placeholder img {
    width: auto;
    height: 100%;
    object-fit: contain;
    position: relative;
    z-index: 0;
}



/* Section 2 - Right Column Specifics */
.our-story h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #444;
    margin-bottom: 1.5rem;
}

.our-story p {
    font-size: 1rem;
    color: #777;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

/* --- Section 3: Project Gallery --- */

.project-gallery {
    /* Add padding top/bottom if needed, defaults to body bg */
    padding-top: 50px; /* Example: Add some top space */
    padding-bottom: 50px; /* Example: Add some bottom space */
}

.category-title {
    font-weight: 700;
    color: #444; /* Match section 1 h4 */
    margin-bottom: 0.5rem; /* Space before hr */
    font-size: 1.1em; /* Match section 1 h4 */
    text-transform: uppercase; /* Match section 1 h4 */
    letter-spacing: 0.05em;
}

.category-hr {
    border: 0;
    height: 1px;
    background-color: #D0CECF; /* Match section 1 hr */
    margin-top: 0.5rem; /* Space after title */
    margin-bottom: 2rem; /* Space before images */
    opacity: 1; /* Ensure it's fully visible */
}

.project-thumb {
    width: clamp(250px, 25vw, 400px);
    height: clamp(180px, 18vw, 280px);
    object-fit: cover;
    transition: opacity 0.3s ease; /* Smooth hover effect */
}

.project-images a:hover .project-thumb {
    opacity: 0.8;
    cursor: pointer;
}

/* Ajustement des indicateurs de catégorie */
.category-indicator {
    padding-right: 2rem;
}

.category-number {
    font-size: 3.5rem;
    font-weight: 300;
    color: #CFAD91 /* #B0AFAF; */ ;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.category-name {
    font-size: 1.2rem;
    font-weight: 500;
    text-transform: uppercase;
    color: #CFAD91 /* #444; */ ;
}

/* Adjust responsive behavior for section 3 if needed */
/* Media query général pour écrans moyens (ne s'applique pas à section-2 qui a ses propres règles) */
@media (max-width: 1400px) {
    /* Styles généraux si nécessaire, section-2 a ses propres media queries spécifiques */
}

@media (max-width: 1200px) {
    .project-thumb {
        width: clamp(220px, 22vw, 320px);
        height: clamp(160px, 16vw, 230px);
    }
}

@media (max-width: 991.98px) {
    :root {
        font-size: 14px;
    }
    
    .project-thumb {
        width: clamp(200px, 20vw, 280px);
        height: clamp(140px, 14vw, 200px);
    }
}

@media (max-width: 767.98px) {
    :root {
        font-size: 14px;
    }
    
    /*
    .right-col-padding,
    .left-col-padding {
        padding: 1.5rem;
    }
    */
    
    .right-col-padding,
    .left-col-padding{
        padding: 30px;
        padding-top: 7rem;            /* correctif JS 02/01/2026 - ajuste (6rem à 8rem) selon la hauteur réelle */
    }
    
    .project-thumb {
        width: 100%;
        height: clamp(150px, 30vh, 200px);
        object-fit: cover;
        border-radius: 4px;
    }
    
    .project-thumb-container {
        width: 100%;
        margin-bottom: 0.75rem;
    }
    
    .project-images {
        gap: 0.75rem !important;
    }
    
    .project-images .col-12,
    .project-images .col-md-4,
    .project-images .col-sm-6 {
        margin-bottom: 0.75rem;
        padding: 0;
    }
    
    .project-category-row {
        margin-bottom: 2rem !important;
        padding-bottom: 1.5rem !important;
    }
    
    .category-indicator {
        margin-bottom: 1rem;
        padding-right: 0;
        text-align: center;
    }
    
    .category-number {
        font-size: 2.5rem;
        line-height: 1;
    }
    
    .category-name {
        font-size: 0.85rem;
        margin-top: 0.5rem;
    }
    
    /* Améliorer la disposition sur mobile */
    .project-category-row .col-lg-10,
    .project-category-row .col-md-9 {
        padding-left: 0;
    }
}

/* Responsive Adjustments */
@media (max-width: 767.98px) {
    .section-1, .section-2 {
        min-height: unset; /* Allow height to be determined by content on mobile */
    }

      .right-col-padding,
      .left-col-padding{
        padding: 30px;
        padding-top: 7rem;             /* correctif JS 02/01/2026 - ajuste (6rem à 8rem) selon la hauteur réelle */
      }

    .image-container {
        height: 40vh;
        min-height: 40vh;
        max-height: 40vh;
    }
    
    .image-container img {
        position: relative;
        object-fit: cover;
    }
    
    .logo-overlay {
        top: 1rem;
        left: 1rem;
        width: 140px; /* Largeur adaptée sur mobile pour le logo rectangulaire */
        height: 180px; /* Hauteur proportionnelle sur mobile */
    }
    
    .logo-image {
        width: 100%; /* Prendre 100% de la largeur du conteneur */
        height: auto;
    }

    .text-block .number {
        font-size: 3em; /* Slightly smaller number */
    }

    .section-2 .orange-background {
        gap: 8px;
        padding: 1rem 0.5rem;
        min-height: 200px; /* Adjust height for stacked view */
    }
    
    .orange-background {
        min-height: 200px; /* Adjust height for stacked view */
    }

     .avatar-placeholder {
        width: 60px;
        height: 60px;
    }

    .navbar {
        padding: 0.5rem 0;
    }

      .navbar-logo{
        margin-right: 0;              /* correctif JS 02/01/2025 - garde le logo centré */
      }
      
    .navbar-logo-img {
        height: 50px;
    }

      .main-nav{
        flex-wrap: wrap;              /* correctif JS 02/01/2025 - au lieu de nowrap */
        justify-content: center;      /* correctif JS 02/01/2025 - au lieu de space-between */
        row-gap: 0.35rem;
      }

      .main-nav ul{
        flex: 1 1 100%;               /* correctif JS 02/01/2025 - menu passe en “ligne” sous le logo si besoin */
        justify-content: center;
      }
      
     .our-story, .text-block {
        text-align: center; /* Center text when stacked */
     }
     .text-block .row {
        align-items: start; /* Align number top */
     }
     .text-block .col-10 {
         text-align: left; /* Keep text left aligned */
     }

     .main-nav a {
        font-size: 0.7rem;
        white-space: nowrap;
        padding: 0.25rem 0.5rem;
    }
}

/* Section spacing */
/*
.section-1,
.section-2,
.section-3,
.section-4 {
    margin-bottom: clamp(2rem, 4vw, 6rem);
}
*/

/* Avatar container and name styles */
.name-block {
    display: flex;
    align-items: stretch;
    height: 3.5rem;
    color: #444;
}

.initials {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 3.5rem;
    margin-right: 1rem;
    letter-spacing: 0.05em;
}

.separator {
    width: 2px;
    background-color: #444;
    margin: 0 1rem;
}

.full-name {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0.2rem 0;
}

.firstname,
.lastname {
    font-size: 1rem;
    letter-spacing: 0.05em;
    line-height: 1.4;
    text-transform: uppercase;
}

/* Responsive adjustments */
@media (max-width: 991.98px) {
    .logo-overlay {
        width: 170px; /* Taille intermédiaire pour les tablettes */
        height: 220px; /* Hauteur proportionnelle pour les tablettes */
    }
    
    .name-block {
        height: 3rem;
    }
    
    .initials {
        font-size: 2rem;
        line-height: 3rem;
    }
    
    .firstname,
    .lastname {
        font-size: 0.9rem;
    }
}

/* Échelonnage progressif pour écrans moyens (992px - 1500px) */
/* Basé sur les valeurs par défaut (1980px+) qui sont parfaites */

/* Écrans 1400px - 1500px : légèrement réduit */
@media (min-width: 1400px) and (max-width: 1500px) {
    .section-2 .orange-background {
        gap: 20px;
    }
    
    .section-2 .avatar-container {
        margin: 0 1.2rem;
        gap: 1.3rem;
    }
    
    .section-2 .avatar-placeholder {
        width: 8.5rem;
        height: 13.5rem;
    }
    
    .section-2 .name-block {
        height: 3.2rem;
    }
    
    .section-2 .initials {
        font-size: 2.1rem;
        line-height: 3.2rem;
        margin-right: 0.8rem;
    }
    
    .section-2 .separator {
        margin: 0 0.8rem;
        width: 1.5px;
    }
    
    .section-2 .full-name {
        padding: 0.15rem 0;
    }
    
    .section-2 .firstname,
    .section-2 .lastname {
        font-size: 0.9rem;
        line-height: 1.35;
    }
    
    .section-2 .our-story h3 {
        font-size: 1.15rem;
        margin-bottom: 1.3rem;
    }
    
    .section-2 .our-story p {
        font-size: 0.95rem;
        line-height: 1.65;
        margin-bottom: 1.3rem;
    }
}

/* Écrans 1200px - 1400px : moyennement réduit */
@media (min-width: 1200px) and (max-width: 1399px) {
    .section-2 .orange-background {
        gap: 15px;
        padding: 1.5rem 0.75rem;
    }
    
    .section-2 .avatar-container {
        margin: 0 1rem;
        gap: 1.1rem;
    }
    
    .section-2 .avatar-placeholder {
        width: 7.5rem;
        height: 12rem;
    }
    
    .section-2 .name-block {
        height: 3rem;
    }
    
    .section-2 .initials {
        font-size: 1.9rem;
        line-height: 3rem;
        margin-right: 0.7rem;
    }
    
    .section-2 .separator {
        margin: 0 0.7rem;
        width: 1.2px;
    }
    
    .section-2 .full-name {
        padding: 0.12rem 0;
    }
    
    .section-2 .firstname,
    .section-2 .lastname {
        font-size: 0.85rem;
        line-height: 1.3;
    }
    
    .section-2 .right-col-padding, .section-2 .left-col-padding {
        padding: 2rem 1.75rem;
    }
    
    .section-2 .our-story h3 {
        font-size: 1.1rem;
        margin-bottom: 1.2rem;
    }
    
    .section-2 .our-story p {
        font-size: 0.92rem;
        line-height: 1.65;
        margin-bottom: 1.2rem;
    }
}

/* Écrans 768px - 991px : transition entre mobile et tablette */
@media (min-width: 768px) and (max-width: 991px) {
    .section-2 .orange-background {
        gap: 8px;
        padding: 1.5rem 0.5rem;
    }
    
    .section-2 .avatar-container {
        margin: 0 0.6rem;
        gap: 0.85rem;
    }
    
    .section-2 .avatar-placeholder {
        width: 6rem;
        height: 9.5rem;
    }
    
    .section-2 .name-block {
        height: 2.65rem;
        flex-wrap: wrap;
    }
    
    .section-2 .initials {
        font-size: 1.7rem;
        line-height: 2.65rem;
        margin-right: 0.45rem;
    }
    
    .section-2 .separator {
        margin: 0 0.45rem;
        width: 0.9px;
    }
    
    .section-2 .full-name {
        padding: 0.09rem 0;
    }
    
    .section-2 .firstname,
    .section-2 .lastname {
        font-size: 0.78rem;
        line-height: 1.24;
    }
    
    .section-2 .right-col-padding, .section-2 .left-col-padding {
        padding: 1.75rem 1.25rem;
    }
    
    .section-2 .our-story h3 {
        font-size: 1.02rem;
        margin-bottom: 1.05rem;
    }
    
    .section-2 .our-story p {
        font-size: 0.86rem;
        line-height: 1.58;
        margin-bottom: 1.05rem;
    }
}

/* Écrans 992px - 1200px : plus réduit (13 pouces) */
@media (min-width: 992px) and (max-width: 1199px) {
    .section-2 .orange-background {
        gap: 10px;
        padding: 1.5rem 0.5rem;
    }
    
    .section-2 .avatar-container {
        margin: 0 0.7rem;
        gap: 0.9rem;
    }
    
    .section-2 .avatar-placeholder {
        width: 6.5rem;
        height: 10.5rem;
    }
    
    .section-2 .name-block {
        height: 2.8rem;
        flex-wrap: wrap;
    }
    
    .section-2 .initials {
        font-size: 1.6rem;
        line-height: 2.8rem;
        margin-right: 0.5rem;
    }
    
    .section-2 .separator {
        margin: 0 0.5rem;
        width: 1px;
    }
    
    .section-2 .full-name {
        padding: 0.1rem 0;
    }
    
    .section-2 .firstname,
    .section-2 .lastname {
        font-size: 0.75rem;
        line-height: 1.25;
    }
    
    .section-2 .right-col-padding, .section-2 .left-col-padding {
        padding: 2rem 1.5rem;
    }
    
    .section-2 .our-story h3 {
        font-size: 1.05rem;
        margin-bottom: 1.1rem;
    }
    
    .section-2 .our-story p {
        font-size: 0.88rem;
        line-height: 1.6;
        margin-bottom: 1.1rem;
    }
}

@media (max-width: 767.98px) {
    .section-2 .orange-background {
        gap: 8px;
        padding: 1rem 0.5rem;
    }
    
    .section-2 .avatar-container {
        gap: 0.6rem;
        margin: 0 0.5rem;
    }
    
    .section-2 .avatar-placeholder {
        width: 5rem;
        height: 8rem;
    }
    
    .section-2 .name-block {
        height: 2.3rem;
    }
    
    .section-2 .initials {
        font-size: 1.5rem;
        line-height: 2.3rem;
        margin-right: 0.4rem;
    }
    
    .section-2 .separator {
        margin: 0 0.4rem;
        width: 0.8px;
    }
    
    .section-2 .full-name {
        padding: 0.05rem 0;
    }
    
    .section-2 .firstname,
    .section-2 .lastname {
        font-size: 0.7rem;
        line-height: 1.2;
    }
    
    /* Styles généraux pour compatibilité */
    .avatar-container {
        gap: 0.6rem;
        margin: 0 0.5rem;
    }
    
    .name-block {
        height: 2.3rem;
    }
    
    .initials {
        font-size: 1.5rem;
        line-height: 2.3rem;
        margin-right: 0.4rem;
    }
    
    .separator {
        margin: 0 0.4rem;
    }
    
    .firstname,
    .lastname {
        font-size: 0.7rem;
    }
}

/* Styles pour les pages de projets */
.section-title {
    min-height: 100vh;
    display: flex;
    align-items: stretch;
}

.category-title h1 {
    font-size: 3.5rem;
    font-weight: 300;
    color: #444;
    margin-bottom: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.category-title p {
    font-size: 1.1rem;
    color: #777;
    line-height: 1.7;
    max-width: 80%;
}

.section-projects {
    min-height: 100vh;
    display: flex;
    align-items: stretch;
    margin-bottom: 2rem;
}

.project-description {
    padding: 2rem 0;
}

.project-description h2 {
    font-size: 2rem;
    font-weight: 500;
    color: #444;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.project-description p {
    font-size: 1rem;
    color: #777;
    line-height: 1.7;
    max-width: 90%;
}

/* Responsive adjustments */
@media (max-width: 991.98px) {
    .category-title h1 {
        font-size: 2.5rem;
    }
    
    .category-title p {
        font-size: 1rem;
        max-width: 100%;
    }
    
    .project-description h2 {
        font-size: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .category-title h1 {
        font-size: 2rem;
    }
    
    .project-description {
        padding: 1.5rem 0;
    }
    
    .project-description p {
        max-width: 100%;
    }
}

/* Footer Styles */
.footer {
    background-color: #E8E6E7;
    padding: 2rem 0;
    margin-top: 0;
    border-top: 1px solid #D0CECF;
}

.footer h4 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 2rem;
    color: #444;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: center;
}

.footer-section {
    margin-bottom: 0;
    padding: 0 4rem;
    /*text-align: center;*/
}

.footer-section h5 {
    font-size: 1.1rem;
    font-weight: 500;
    margin-bottom: 1rem;
    color: #444;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.footer-section p {
    font-size: 0.9rem;
    line-height: 1.5;
    color: #666;
    margin-bottom: 0;
}

/* Styles pour les détails du footer */
.footer-details {
    font-size: 0.9rem;
    line-height: 1.3;
    color: #666;
}

.detail-row {
    margin-bottom: 0.3rem;
    align-items: baseline;
}

.detail-row:last-child {
    margin-bottom: 0;
}

.detail-row strong {
    color: #444;
    font-weight: 500;
    min-width: 80px;
    margin-right: 0.5rem;
}

.footer .image-container {
    height: 100%;
    min-height: 400px;
}

@media (max-width: 768px) {
    .footer {
        padding: 1.5rem 0;
    }
    
    .footer-section {
        padding: 0 0.5rem;
        margin-bottom: 1rem;
    }
    
    .footer-section:last-child {
        margin-bottom: 0;
    }
    
    .footer h4 {
        margin-bottom: 1.5rem;
    }
}

/* Styles pour la section about */
.about-text {
    padding: 2rem 0;
}

.about-text h2 {
    font-size: 2.5rem;
    font-weight: 300;
    color: #CFAD91;
    margin-bottom: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.about-content {
    max-width: 90%;
}

.about-content p {
    font-size: 1.1rem;
    color: #666;
    line-height: 1.8;
    margin-bottom: 1.5rem;
}

.about-content p.lead {
    font-size: 1.3rem;
    font-weight: 300;
    color: #444;
    margin-bottom: 2rem;
}

.about-content p.highlight {
    font-weight: 500;
    color: #444;
    font-style: italic;
}

@media (max-width: 767.98px) {
    .about-text h2 {
        font-size: 2rem;
    }
    
    .about-content {
        max-width: 100%;
    }
    
    .about-content p {
        font-size: 1rem;
    }
    
    .about-content p.lead {
        font-size: 1.2rem;
    }
}

/* Styles pour les sections de projet */
.project-section {
    margin-bottom: 4rem;
}

.project-section .row {
    align-items: stretch;
    min-height: 100vh;
}

.project-section .col-md-6 {
    display: flex;
    flex-direction: column;
}

.project-section .content-column {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.project-description {
    padding: 2rem 0;
}

.project-description h3 {
    font-size: 2rem;
    font-weight: 500;
    color: #444;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.project-description p {
    font-size: 1.1rem;
    color: #666;
    line-height: 1.7;
    max-width: 90%;
}

.full-width-image {
    padding: 3rem;
    margin: 0 auto;
    max-width: 1400px;
}

.full-width-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
    margin: 0 auto;
}

/* Styles pour le carousel */
.image-container-compact .carousel {
    background-color: #E8E6E7;
    height: 100%;
}

.image-container-compact .carousel-inner {
    height: 100%;
}

.image-container-compact .carousel-item {
    height: 100%;
}

.image-container-compact .carousel-item img {
    object-fit: contain;
    height: 100%;
    width: 100%;
}

.carousel-control-prev,
.carousel-control-next {
    width: 5%;
    opacity: 1;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-color: rgba(0, 0, 0, 0.5);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-size: 50%;
}

@media (max-width: 767.98px) {
    .full-width-image {
        padding: 1.5rem;
    }
    
    .image-container-compact {
        min-height: 50vh;
        height: 50vh;
    }
    
    .image-container-compact .carousel-item {
        height: 100%;
    }
    
    .carousel-control-prev,
    .carousel-control-next {
        padding-right: 1.5rem;
        padding-left: 1.5rem;
    }
    
    .carousel-control-prev-icon,
    .carousel-control-next-icon {
        width: 30px;
        height: 30px;
        min-width: 30px;
        min-height: 30px;
    }
}

/* Styles pour le sommaire des projets */
.project-summary {
    margin-bottom: 4rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #D0CECF;
}

.project-number {
    padding-right: 2rem;
    text-align: center;
}

.project-number .category-number {
    font-size: 3.5rem;
    font-weight: 300;
    color: #CFAD91;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.project-number .category-name {
    font-size: 1.2rem;
    font-weight: 500;
    text-transform: uppercase;
    color: #444;
}

.project-images-row {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding: 0.5rem 0;
    margin-bottom: 0.5rem;
}

.project-image {
    flex: 0 0 200px;
    height: 150px;
}

.project-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.project-description {
    max-width: 800px;
}

.project-description p {
    font-size: 1rem;
    color: #666;
    line-height: 1.6;
    margin-top: 0;
}

@media (max-width: 767.98px) {
    .project-number {
        padding-right: 1rem;
    }
    
    .project-number .category-number {
        font-size: 2.5rem;
    }
    
    .project-number .category-name {
        font-size: 1rem;
    }
    
    .project-image {
        flex: 0 0 150px;
        height: 100px;
    }
    
    .project-description p {
        font-size: 0.9rem;
    }
}

.project-category-row hr {
    border: 0;
    height: 1px;
    background: linear-gradient(to right, transparent, #CFAD91, transparent);
    margin: 4rem auto;
    opacity: 0.5;
    width: 80%;
    max-width: 800px;
}

@media (max-width: 767.98px) {
    .project-category-row hr {
        margin: 3rem auto;
        width: 90%;
    }
}

/* Style pour le séparateur entre les sections */
section + hr {
    border: 0;
    height: 3px;
    background: linear-gradient(to right, transparent, #CFAD91, transparent);
    margin: 4rem auto;
    opacity: 0.5;
    width: 100%;
    max-width: 1400px;
}

@media (max-width: 767.98px) {
    section + hr {
        margin: 3rem auto;
        width: 90%;
    }
}

.project-link {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: all 0.3s ease;
}

.project-link:hover {
    transform: translateX(10px);
}

.project-link:hover .category-number,
.project-link:hover .category-name {
    color: #CFAD91;
}

/* Styles pour la page de contact */
.contact-info {
    padding: 2rem 0;
}

.contact-info h2 {
    font-size: 2.5rem;
    font-weight: 300;
    color: #CFAD91;
    margin-bottom: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.contact-content {
    max-width: 90%;
}

.contact-details h3,
.contact-form h3 {
    font-size: 1.5rem;
    font-weight: 500;
    color: #444;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.contact-details p {
    font-size: 1.1rem;
    color: #666;
    line-height: 1.8;
}

.contact-form .form-control {
    background-color: #f8f8f8;
    border: 1px solid #ddd;
    padding: 0.8rem;
    font-size: 1rem;
    color: #444;
}

.contact-form .form-control:focus {
    border-color: #CFAD91;
    box-shadow: 0 0 0 0.2rem rgba(207, 173, 145, 0.25);
}

.contact-form .btn-dark {
    background-color: #444;
    border: none;
    padding: 0.8rem 2rem;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all 0.3s ease;
}

.contact-form .btn-dark:hover {
    background-color: #CFAD91;
}

@media (max-width: 767.98px) {
    .contact-info h2 {
        font-size: 2rem;
    }
    
    .contact-content {
        max-width: 100%;
    }
    
    .contact-details h3,
    .contact-form h3 {
        font-size: 1.3rem;
    }
    
    .contact-details p {
        font-size: 1rem;
    }
}

/* Styles pour le sommaire des projets - Effet de survol */
.project-thumb-container {
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease;
    display: inline-block; /* Permet au conteneur de s'adapter à la taille de l'image */
}

.project-thumb-container:hover {
    transform: scale(1.02);
}

.project-thumb {
    transition: filter 0.3s ease;
    display: block; /* Assure que l'image se comporte comme un bloc */
}

.project-thumb-container:hover .project-thumb {
    filter: brightness(0.7);
}

.project-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none; 
}

.project-thumb-container:hover .project-overlay {
    opacity: 1;
}

.project-overlay-text {
    color: white;
    font-size: 1.1rem;
    font-weight: 500;
    text-align: center;
    padding: 1rem;
    line-height: 1.3;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
    pointer-events: none; 
}

/* Responsive pour les petits écrans */
@media (max-width: 767.98px) {
    .project-thumb-container {
        width: 100%;
        display: block;
    }
    
    .project-thumb-container:hover {
        transform: none; /* Désactiver le zoom sur mobile */
    }
    
    .project-overlay-text {
        font-size: 0.9rem;
        padding: 0.5rem;
    }
}