/* Feuille de styles CSS des grilles et des cartes */

/* Grilles */

#grille-domaines-application, #grille-realisations {
    margin-bottom: 0;
    display: grid;
    gap: 25px;
}
#grille-domaines-application {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
#grille-realisations {
    grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
}
#grille-domaines-application:has(p.grille-vide-message), #grille-realisations:has(p.grille-vide-message) {
    display: block;
}
#grille-domaines-application p.grille-vide-message, #grille-realisations p.grille-vide-message {
    margin: 0;
}
@media screen and (max-width: 689.98px) {
    #grille-realisations {
        grid-template-columns: auto;
    }
}

/* Cartes */

.grille-carte {
    padding: 25px;
    position: relative;
    display: flex;
    align-items: flex-end;
    height: 500px;
    border-radius: 10px;
    overflow: hidden;
}
.grille-carte-supplementaire {
    align-items: center;
    background: var(--theme-palette-color-5);
}
#grille-realisations .grille-carte {
    height: 350px;
}
.grille-carte a.grille-carte-lien {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
.grille-carte .grille-carte-contenu {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    width: 100%;
}
.grille-carte-supplementaire .grille-carte-contenu {
    justify-content: center;
    align-items: center;
}
.grille-carte .grille-carte-contenu .grille-carte-texte {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.grille-carte .grille-carte-contenu .grille-carte-texte a, .grille-carte .grille-carte-contenu .grille-carte-texte h3 {
    color: var(--theme-palette-color-4);
}
.grille-carte .grille-carte-contenu .grille-carte-texte a {
    font-size: 12px;
    z-index: 1;
}
.grille-carte .grille-carte-contenu .grille-carte-texte a:hover {
    color: var(--theme-palette-color-2);
}
.grille-carte .grille-carte-contenu .grille-carte-texte h3 {
    margin: 0;
    font-size: 18px;
    line-height: 1.35;
}
.grille-carte-supplementaire .grille-carte-contenu .grille-carte-texte h3 {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 25px;
    color: var(--theme-palette-color-1);
}
.grille-carte-supplementaire .grille-carte-contenu .grille-carte-texte h3::before {
    content: "\ea95";
    font-family: "tabler-icons";
    font-size: 22px;
    font-weight: 400;
    line-height: 0;
}
.grille-carte .grille-carte-photo {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}
.grille-carte .grille-carte-photo::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, var(--theme-palette-color-6), transparent 70%);
    z-index: 1;
}
.grille-carte .grille-carte-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    overflow-clip-margin: unset;
    transition: transform 0.6s ease;
    will-change: transform;
}
.grille-carte:hover .grille-carte-photo img {
    transform: scale(103%);
}