/* ============================================
   PROJET.CSS — Pages projets & galeries
   ============================================ */

/* ── Hero projet ── */
.projet-hero {
    position: relative;
    width: 100%;
    height: calc(70vh + 78px);
    min-height: 478px;
    max-height: 828px;
    overflow: hidden;
    margin-top: 0;
}

.projet-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.projet-hero-text {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 40px 32px;
    background: linear-gradient(to top, var(--overlay-strong) 0%, transparent 100%);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
}

.projet-hero-text h1 {
    color: var(--hero-text-color, var(--color-white));
    font-size: clamp(1.5rem, 3.5vw, 2.6rem);
    font-weight: 300;
    letter-spacing: 0.08em;
    text-transform: none;
    max-width: 900px;
    margin: 0;
    text-shadow: var(--hero-text-shadow, 0 2px 8px rgba(0, 0, 0, 0.5));
}

/* Crédit photographique, au centre du bandeau : même disposition que les
   vignettes de « Tous nos projets » — nom à gauche, crédit au centre,
   localisation à droite, le tout calé sur les bords de la photo. */
.projet-hero-credit {
    flex: 1 1 auto;
    text-align: center;
    font-family: 'Josefin Sans', sans-serif;
    font-size: 0.72rem;
    font-style: italic;
    letter-spacing: 0.06em;
    color: var(--hero-text-color, rgba(255, 255, 255, 0.82));
    text-shadow: var(--hero-text-shadow, 0 1px 6px rgba(0, 0, 0, 0.5));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 700px) {
    .projet-hero-text { flex-wrap: wrap; gap: 0.3rem 1rem; }
    .projet-hero-credit { flex-basis: 100%; text-align: left; order: 3; }
}

.projet-hero-location {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--hero-text-color, var(--color-white));
    font-family: var(--font);
    font-size: clamp(0.85rem, 1.4vw, 1.1rem);
    font-weight: 300;
    letter-spacing: 0.08em;
    white-space: nowrap;
    padding-bottom: 4px;
    text-shadow: var(--hero-text-shadow, 0 2px 8px rgba(0, 0, 0, 0.5));
}

.projet-hero-location svg {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}

/* ── Galerie ── */
.projet-galerie {
    padding: 48px 24px 80px;
    max-width: 1300px;
    margin: 0 auto;
}

.projet-galerie-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.projet-img-large,
.projet-img-small,
.projet-img-full {
    overflow: hidden;
    cursor: pointer;
}

.projet-img-large img,
.projet-img-small img,
.projet-img-full img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.6s ease;
}

.projet-img-large:hover img,
.projet-img-small:hover img,
.projet-img-full:hover img {
    transform: scale(1.03);
}

.projet-img-large { grid-column: span 2; }
.projet-img-small { }
.projet-img-full  { grid-column: 1 / -1; }

/* ── Filtres (tous-projets) ── */
.projets-filtres {
    padding: 100px 24px 24px;
    max-width: var(--max-w);
    margin: 0 auto;
}

.filtres-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.filtre-btn {
    font-family: var(--font);
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: transparent;
    color: var(--color-text);
    border: 1px solid var(--color-border);
    padding: 10px 22px;
    cursor: pointer;
    transition: all var(--transition);
}

.filtre-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.filtre-btn.active {
    background: none;
    color: var(--color-primary);
    border-color: transparent;
}

/* ── Grille projets (tous-projets) ── */
.projets-grille {
    padding: 32px 24px 80px;
    max-width: var(--max-w);
    margin: 0 auto;
}

.projets-grille-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.projet-card {
    display: block;
    overflow: hidden;
    transition: transform var(--transition);
}

.projet-card:hover { transform: translateY(-4px); }

.projet-card-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.projet-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.projet-card:hover .projet-card-img img { transform: scale(1.05); }

.projet-card-info { padding: 16px 4px; }

.projet-card-info h3 {
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--color-primary);
    margin-bottom: 4px;
    line-height: 1.4;
}

.projet-card-info p {
    font-size: 0.78rem;
    font-weight: 300;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-light);
}

/* ── Dossiers / categories ── */
.projets-dossiers { padding: 48px 0 80px; }

.dossiers-title {
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    font-weight: 300;
    text-align: center;
    text-transform: none;
    letter-spacing: 0.12em;
    color: var(--color-primary);
    margin-bottom: 48px;
}

.dossiers-title::after {
    content: '';
    display: block;
    width: 50px;
    height: 1px;
    background: var(--color-primary);
    margin: 14px auto 0;
}

.dossiers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 28px;
}

.dossier-card {
    display: block;
    overflow: hidden;
    transition: transform var(--transition);
}

.dossier-card:hover { transform: translateY(-4px); }

.dossier-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.dossier-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.dossier-card:hover .dossier-img img { transform: scale(1.05); }

.dossier-info { padding: 16px 4px; }

.dossier-info h3 {
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--color-primary);
    margin-bottom: 4px;
    line-height: 1.4;
}

.dossier-info p {
    font-size: 0.78rem;
    font-weight: 300;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-light);
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .projet-hero { height: calc(50vh + 78px); min-height: 398px; }
    .projet-galerie-grid { grid-template-columns: repeat(2, 1fr); }
    .projet-img-large { grid-column: span 2; }
    .projet-img-full { grid-column: 1 / -1; }
    .projets-grille-container { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .dossiers-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}

@media (max-width: 600px) {
    .projet-hero { height: calc(45vh + 66px); min-height: 346px; margin-top: 0; }
    .projet-hero-text { padding: 24px 16px; }
    .projet-hero-text h1 { font-size: 1.3rem; }
    .projet-galerie { padding: 24px 12px 48px; }
    .projet-galerie-grid { grid-template-columns: 1fr; gap: 8px; }

    .projet-img-large,
    .projet-img-small,
    .projet-img-full { grid-column: span 1; }

    .projets-filtres { padding: 84px 16px 16px; }
    .filtres-bar { gap: 6px; }
    .filtre-btn { font-size: 0.72rem; padding: 8px 14px; }
    .projets-grille { padding: 20px 16px 48px; }
    .projets-grille-container { grid-template-columns: 1fr; gap: 24px; }
    .projets-dossiers { padding: 32px 0 48px; }
    .dossiers-grid { grid-template-columns: 1fr; gap: 20px; }
    .dossiers-title { margin-bottom: 32px; }
}
