:root {
    --primary-color: #778981;
    --secondary-color: #B5825C;
}

body {
    margin: 0;
    font-family: "Roboto Light", sans-serif;
    background-color: var(--primary-color) !important;
}

.text-color {
    color: var(--primary-color);
}

.text-white {
    color: #ffffff;
}

.filter-invert {
    filter: invert(1);
}

.bg-white {
    background-color: #ffffff;
}

.container.top {
    display: flex;
    align-items: center;
    justify-content: center;
}


.logo-img {
    height: 132px;
}

.logo-speciality {
    height: 100px;
}

.img-case {
    border-radius: 6px;
    max-width: 100%;
    max-height: 400px;
    width: auto;
    height: auto;
    object-fit: contain;
}

a.logo {
  margin-left: 0 !important;
}

.last-link {
    margin-right: 0 !important;
}

/* Hero section */
.hero {
    height: 400px;
    background-size: cover;
    background-position: bottom;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    position: relative;
    background-attachment: fixed;
}

.hero-content {
    padding: 20px;
}

.hero h1 {
    font-size: 48px;
    margin: 0;
}

.hero p {
    font-size: 20px;
}

.hero h1, .hero p {
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6);
    color: #5e6f75;
}

.navbar, .nav-links {
    background: var(--primary-color);
}

.button {
    display: inline-block;
    height: 38px;
    padding: 0 30px;
    color: #fff;
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    line-height: 38px;
    letter-spacing: .1rem;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    background-color: transparent;
    border-radius: 4px;
    border: 1px solid #bbb;
    cursor: pointer;
    box-sizing: border-box;
}

.button-primary {
    background-color: var(--primary-color) !important;
    border: none !important;
}

.button-secondary {
    background-color: transparent !important;
    border: solid 1px #ffffff !important;
}

.button {
    transition: transform 0.3s ease, background-color 0.3s ease;
}

.button:hover {
    transform: scale(1.05);
    background-color: var(--secondary-color);
}

.navbar {
    background-color: var(--primary-color);
}

.navbar-nav .nav-link {
    color: #fff;
    margin: 0 15px;
    font-size: 17px;
    text-decoration: none;
    transition: color 0.3s ease;
    display: inline-block;
}

.navbar-nav .nav-link.active {
    border-bottom: 2px solid white;
}

.navbar-nav .nav-link:hover {
    color: var(--secondary-color);
}

.navbar-nav .nav-link.active {
    color: #fff;
    border-bottom: 2px solid white;
}

.navbar-toggler {
    border: none;
}


.leafs-container {
    left: -50%;
    top: 50%;
}

.leafs-container-right {
    left: calc(100% + 90px);
    top: -100%;
}

.leafs-container-bottom {
    top: -60%;
    left: -10%
}

@media (max-width: 768px) {
    .nav-center {
        display: none;
    }

    .navBar.responsive .nav-center {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 60px;
        left: 0;
        right: 0;
        background-color: var(--primary-color);
        padding: 10px 0;
    }
}


/*Set your custom screen width here replacing 700*/
@media (max-width: 700px){
    /*Ignores the first link (which is Home) in the div and       applies 'display = none' to everything else.   Basically hiding everything but Home*/
    .nav-links a:not(:first-child){
        display: none;
    }
    /*Brings the menu icon into view and floats it to the right*/
    .nav-links a.icon{
        display: block; float: right;
    }

    /*The nav-links class will be changed to 'nav-links responsive' using JS. This chunk of CSS makes the menu icon stay where it is by making the position absolute within it's parent 'right top corner'. Without this, the icon will get kicked around when the items are collapsed and expanded*/
    .nav-links.responsive {
        position: relative;
    }
    .nav-links.responsive a.icon {
        position: absolute;
        right: 0;
        top: 0;
    }

    /*Removes the originally set float and brings them to view*/
    .nav-links.responsive a {
        float: none;
        display: block;
        text-align: left;
    }
}

.speciality-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}
.speciality {
    width: 135px;
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    transition: transform 0.3s ease;
}
.speciality:hover {
    transform: scale(1.1); /* Zoom au survol */
}

.speciality label {
    text-align: center;
    color: #fff;
}

.office {
    display: flex;
    justify-content: space-between;
}

.office .title-container {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.title {
    color: var(--primary-color);
    font-size: 40px;
    font-weight: 400;
}

.section-title {
    color: var(--primary-color);
    font-size: 32px;
    font-weight: 400;
}

.office .subtitle {
    color: var(--primary-color);
    font-size: 27px;
    font-weight: 400;
}

.grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 45px;
    padding: 20px;
}

.grid-item {
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: 4px;
}

.grid-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease, filter 0.3s ease;
}

.grid-item img:hover {
    transform: scale(1.1);
}

.bg-grey {
    background: lightgray;
}

.team-card {
    padding: 185px 50px 0 12px;
    justify-content: flex-end;
}

.team-card.right {
    padding: 185px 12px 0 50px;
    justify-content: flex-start;
}

.info-box-wrapper {
    position: relative;
}

.info-box {
    position: relative;
    background: #ffffff;
    padding: 35px;
    border-radius: 4px;
    width: 415px;
    z-index: 1;
}

.info-box.right {
    background: var(--primary-color);
    color: #ffffff;
}

.info-box h3 {
    font-size: 24px;
    font-weight: 700;
}

.info-box h4 {
    font-size: 22px;
    font-weight: 400;
}

.info-box.right h3 {
    color: #ffffff;
}

.info-box.right h4 {
    color: #ffffff;
}

.photo-container {
    position: absolute;
    top: -292px;
    left: -90px;
    background: #ECE4D9;
}

.photo-container.right {
    right: -90px;
    left: auto;
}

.photo-container img {
    max-width: 230px;
}

.cases-container img {
    max-width: 100%;
}

.contact-container {
    border-right: solid 3px var(--primary-color);
    text-align: center;
}

.contact-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    margin: 0 auto;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
}

.contact-item a:hover {
    color: var(--secondary-color);
}

.map-container {
    padding: 0 10px;
}

#map {
    height: 400px;
    margin-top: 30px;
}

.round-portrait {
    border-radius: 50%;
    width: 150px;
    height: 150px;
}

.employee-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    background-color: #ffffff;
    color: var(--primary-color);
    border-radius: 4px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
    padding: 1.5rem 1rem;
    transition: transform 0.3s ease;
}

.employee-card:hover {
    transform: translateY(-5px);
}

.employee-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.employee-card-link:hover {
    text-decoration: none;
    color: inherit;
}

.employee-photo {
    width: 120px;
    height: 120px;
    margin: 0 auto 1rem;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid #e0e0e0;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.employee-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.employee-name,
.employee-role {
    margin: 0;
}

.employee-name {
    font-size: 1.1rem;
    font-weight: 600;
}

.employee-role {
    font-size: 0.95rem;
    margin-top: 0.25rem;
}

/* Style alternatif pour un élément sur deux */
.employee-grid .col-6:nth-child(even) .employee-card {
    background-color: var(--primary-color);
    color: #fff;
}

/* Style alternatif pour un élément sur deux */
.employee-grid-modal .employee-card {
    background-color: var(--primary-color);
    color: #fff;
}

a.button:hover {
    color: var(--secondary-color);
}

#loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.spinner {
    width: 50px;
    height: 50px;
    border: 5px solid #ccc;
    border-top: 5px solid var(--primary-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

body.modal-open {
    overflow-y: scroll !important;
    padding-right: 0 !important;
}

html, body {
    overflow-x: hidden;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@media screen and (max-width: 1200px) {
    .team-card {
        padding: 15px;
    }

    .team-card.right {
        padding: 15px;
    }

    .photo-container {
        left: -40px;
    }

    .photo-container.right {
        right: -40px;
    }
}


@media screen and (max-width: 992px) {
    .team-card {
        justify-content: center;
    }

    .team-card.right {
        justify-content: center;
    }
}

@media screen and (max-width: 768px) {
    .contact-container {
        border-right: none;
        padding-bottom: 15px;
        margin-bottom: 15px;
        text-align: left;
    }

    .section-title {
        padding-left: 0;
    }

    .contact-info {
        margin: 0;
    }

    .info-box {
        width: 100%;
    }

    .team-card {
        padding-right: 0 !important;
    }
}