@import url('common.css');

body {
    background-image:
        linear-gradient(180deg, var(--overlay-top) 0%, var(--overlay-bottom) 100%),
        url(../img/back.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    color: var(--ink);
    user-select: none;
    overflow-x: hidden;
}

.page-heading {
    margin-top: 140px;
    margin-bottom: 10px;
}

.page-heading .titre {
    font-size: 3.6rem;
}

.page-heading p {
    color: var(--ink-soft);
    font-size: 1rem;
    max-width: 560px;
    margin: 10px auto 0;
}

.container-fluid {
    width: 100%;
    margin-top: 20px;
    margin-bottom: 60px;
}

/* Le row Bootstrap applique des marges négatives de -15px prévues pour être
   compensées par le padding des colonnes ; comme .person redéfinit ce padding,
   on neutralise ces marges pour éviter tout débordement horizontal. */
.row {
    margin-left: 0;
    margin-right: 0;
}

/* Espacement réel entre les cartes (elles étaient collées les unes aux autres) */
.person {
    animation: rtf-fade 0.7s ease both;
    margin-left: 12px;
    margin-right: 12px;
}

@media (min-width: 992px) {
    .col-lg-3.person {
        flex: 0 0 calc(25% - 24px);
        max-width: calc(25% - 24px);
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .col-md-6.person {
        flex: 0 0 calc(50% - 24px);
        max-width: calc(50% - 24px);
    }
}

@media (max-width: 767.98px) {
    .col-12.person {
        flex: 0 0 calc(100% - 24px);
        max-width: calc(100% - 24px);
    }
}

@keyframes rtf-fade {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Responsivité pour les tablettes */
@media (max-width: 768px) {
    .page-heading {
        margin-top: 110px;
    }

    .page-heading .titre {
        font-size: 2.6rem;
    }

    .container {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .row {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
    }
}

/* Responsivité pour les petits écrans */
@media (max-width: 576px) {
    .page-heading {
        margin-top: 100px;
    }

    .page-heading .titre {
        font-size: 2.1rem;
    }

    .person {
        width: 100%;
        margin-bottom: 20px;
    }

    .person img {
        width: 110px;
        height: 110px;
    }
}
