/* ==================================================
   Layout
================================================== */

.inshop-grid {
    grid-template-areas:
        "main main main main main main main main main sidebar sidebar sidebar";

    align-items: start;
}

/* ==================================================
   Areas
================================================== */

.inshop-main {
    grid-area: main;
}

.inshop-sidebar {
    grid-area: sidebar;
}

/* ==================================================
   Main
================================================== */

.inshop-main {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* ==================================================
   Sidebar
================================================== */

.inshop-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* ==================================================
   Carte Titre
================================================== */
.inshop-title-texte {
    font-size: var(--font-size-sm);
    margin-top: var(--space-md);
}

/* ==================================================
   InShop Gallery
================================================== */

.inshop-gallery {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}


/* ==================================================
   Mosaic Block
================================================== */

.inshop-mosaic-block {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-md);
}

.inshop-photo-large {
    grid-column: 1 / span 2;
    grid-row: 1 / span 2;
}

.inshop-mosaic-block-reverse .inshop-photo-large {
    grid-column: 3 / span 2;
}


/* ==================================================
   Row Block
================================================== */

.inshop-row-block {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md);
}


/* ==================================================
   Photos
================================================== */

.inshop-photo {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: var(--space-sm);

    transition: transform 0.25s ease;
}

.inshop-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.inshop-photo:hover {
    transform: scale(1.05);
    z-index: 1;
}

/* ==================================================
   Catégorie
================================================== */

.inshop-category {
    position: absolute;
    top: var(--space-xs);
    left: var(--space-xs);

    padding: 4px 8px;

    background-color: var(--color-yellow);
    color: var(--color-black);

    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;

    text-transform: uppercase;

    border-radius: 4px;
}

/* ==================================================
   Mention
================================================== */

.inshop-mention {
    position: absolute;
    left: var(--space-xs);
    bottom: var(--space-xs);
    z-index: 2;

    max-width: calc(100% - (var(--space-xs) * 2));
    padding: var(--space-xs) var(--space-sm);

    background-color: var(--color-white);
    color: var(--color-black);

    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;

    border-radius: var(--space-xs);

    opacity: 0;
    transform: translateY(var(--space-sm));

    transition:
        opacity 0.2s ease,
        transform 0.2s ease;

    pointer-events: none;
}

.inshop-photo:hover .inshop-mention {
    opacity: 1;
    transform: translateY(0);
}

/* ==================================================
   Message
================================================== */

.inshop-scroll-status {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
}

.site-message:empty {
    display: none;
}

/* ==================================================
   Responsive
================================================== */

@media (max-width: 900px) {

    /* grille mobile */

    .inshop-grid {
        grid-template-areas:
            "main main"
            "sidebar sidebar";
    }

    /* Carte Titre */

    .inshop-title-texte {
        font-size: var(--font-size-xs);
    }

    /* Mosaique */

    .inshop-mosaic-block {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-sm);
    }

    .inshop-photo-large,
    .inshop-mosaic-block-reverse .inshop-photo-large {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    /* Ligne */

    .inshop-row-block {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-sm);
    }

    .inshop-row-block .inshop-photo:first-child {
        grid-column: 1 / -1;
    }

    /* Mention */

    .inshop-mention {
        font-size: var(--font-size-2xs);
    }
}