/* ══════════════════════════════════════════════════════════════
   BLOCS — CSS par bloc
   Ciblage via .bloc-[slug] + #bloc-01, #bloc-02 etc.
   ══════════════════════════════════════════════════════════════ */

/* ── Hero accueil ─────────────────────────────────────────────*/
.bloc-hero-accueil {
    position         : relative;
    min-height       : 100vh;
    display          : flex;
    align-items      : center;
}
.bloc-hero-accueil .hero-titre {
    font-family : 'Kage', serif;
    font-size   : clamp(3rem, 7vw, 6rem);
    color       : #fff;
    line-height : 1;
}
.bloc-hero-accueil .hero-sous-titre {
    font-family : 'Lato', sans-serif;
    font-weight : 300;
    font-size   : clamp(1rem, 2vw, 1.4rem);
    color       : rgba(255,255,255,0.85);
    letter-spacing: 0.05em;
}

/* ── Intro texte ──────────────────────────────────────────────*/
.bloc-intro-texte {
    text-align : center;
}
.bloc-intro-texte .intro-texte-wrap {
    font-style  : italic;
    font-weight : 300;
    line-height : 1.75;
}
.bloc-intro-texte .intro-texte-small,
.bloc-intro-texte .intro-texte-small p  { font-size: 1rem !important; }

.bloc-intro-texte .intro-texte-medium,
.bloc-intro-texte .intro-texte-medium p { font-size: clamp(1.1rem, 2.2vw, 1.4rem) !important; }

.bloc-intro-texte .intro-texte-large,
.bloc-intro-texte .intro-texte-large p  { font-size: clamp(1.3rem, 2.8vw, 1.8rem) !important; }

.bloc-intro-texte .intro-texte-xlarge,
.bloc-intro-texte .intro-texte-xlarge p { font-size: clamp(1.5rem, 3.2vw, 2.2rem) !important; }
.bloc-intro-texte .intro-texte-wrap p { margin-bottom: 0; }

/* ── Zone 2 colonnes ──────────────────────────────────────────*/
.bloc-zone-2-colonnes .last-paragraph-no-margin > *:last-child {
    margin-bottom: 0;
}
.bloc-zone-2-colonnes img {
    width         : 100%;
    height        : auto;
    border-radius : 4px;
}

/* ── Bandeau titre ────────────────────────────────────────────*/
.bloc-bandeau-titre {
    position    : relative;
    min-height  : 300px;
    display     : flex;
    align-items : center;
    text-align  : center;
}
.bloc-bandeau-titre h1,
.bloc-bandeau-titre h2 {
    font-family : 'Kage', serif;
    color       : #fff;
    font-size   : clamp(2rem, 5vw, 4rem);
}

/* ── Texte long ───────────────────────────────────────────────*/
.bloc-texte-long {
    max-width : 800px;
    margin    : 0 auto;
}
.bloc-texte-long p {
    font-size   : 16px;
    line-height : 1.9;
}

/* ── Albums slider ────────────────────────────────────────────*/
.bloc-albums-slider .swiper-slide {
    text-align : center;
}
.bloc-albums-slider .pochette-img {
    width         : 100%;
    aspect-ratio  : 1;
    object-fit    : cover;
    border-radius : 4px;
    transition    : transform 0.3s ease;
}
.bloc-albums-slider .swiper-slide:hover .pochette-img {
    transform : scale(1.03);
}
.bloc-albums-slider .nom-album {
    font-family : 'Kage', serif;
    font-size   : 1.1rem;
    margin-top  : 0.8rem;
}

/* ── Projets / Galerie ────────────────────────────────────────*/
.bloc-projets-galerie .demi-bloc {
    position        : relative;
    overflow        : hidden;
    min-height      : 400px;
    display         : flex;
    align-items     : flex-end;
    padding         : 3rem;
}
.bloc-projets-galerie .demi-bloc img {
    position   : absolute;
    inset      : 0;
    width      : 100%;
    height     : 100%;
    object-fit : cover;
    transition : transform 0.5s ease;
}
.bloc-projets-galerie .demi-bloc:hover img {
    transform : scale(1.05);
}
.bloc-projets-galerie .demi-bloc-content {
    position  : relative;
    z-index   : 2;
    color     : #fff;
}

/* ── Agenda ───────────────────────────────────────────────────*/
.bloc-agenda .concert-row {
    display         : flex;
    align-items     : center;
    padding         : 1.2rem 0;
    border-bottom   : 1px solid rgba(0,0,0,0.08);
    gap             : 1.5rem;
}
.bloc-agenda .concert-date {
    font-family  : 'Kage', serif;
    font-size    : 1.1rem;
    min-width    : 120px;
    color        : var(--sogol-terracotta);
}
.bloc-agenda .concert-lieu {
    flex         : 1;
    font-weight  : 400;
}
.bloc-agenda .concert-desc {
    color        : #888;
    font-size    : 13px;
}

/* ── Équipe cards ─────────────────────────────────────────────*/
.bloc-equipe-cards .membre-card {
    text-align : center;
    padding    : 2rem 1rem;
}
.bloc-equipe-cards .membre-photo {
    width         : 160px;
    height        : 160px;
    border-radius : 50%;
    object-fit    : cover;
    margin        : 0 auto 1.2rem;
    border        : 3px solid var(--sogol-beige);
}
.bloc-equipe-cards .membre-nom {
    font-family : 'Kage', serif;
    font-size   : 1.3rem;
    margin-bottom: 0.5rem;
}

/* ── Album hero ───────────────────────────────────────────────*/
.bloc-album-hero .album-badge {
    display         : inline-block;
    font-size       : 11px;
    letter-spacing  : 0.12em;
    text-transform  : uppercase;
    color           : var(--sogol-terracotta);
    border          : 1px solid var(--sogol-terracotta);
    padding         : 4px 12px;
    border-radius   : 2px;
    margin-bottom   : 1rem;
}
.bloc-album-hero .album-pochette {
    width         : 100%;
    max-width     : 420px;
    aspect-ratio  : 1;
    object-fit    : cover;
    border-radius : 4px;
    box-shadow    : 0 20px 60px rgba(0,0,0,0.15);
}

/* ── Galerie photos ───────────────────────────────────────────*/
.bloc-galerie-photos .photo-item {
    overflow      : hidden;
    border-radius : 3px;
    cursor        : pointer;
}
.bloc-galerie-photos .photo-item img {
    width      : 100%;
    height     : 280px;
    object-fit : cover;
    transition : transform 0.4s ease;
    display    : block;
}
.bloc-galerie-photos .photo-item:hover img {
    transform : scale(1.05);
}

/* ── Galerie vidéos ───────────────────────────────────────────*/
.bloc-galerie-videos .video-wrap {
    position      : relative;
    padding-top   : 56.25%;
    border-radius : 4px;
    overflow      : hidden;
    margin-bottom : 1.5rem;
}
.bloc-galerie-videos .video-wrap iframe {
    position : absolute;
    inset    : 0;
    width    : 100%;
    height   : 100%;
    border   : none;
}
.bloc-galerie-videos .video-legende {
    font-size  : 13px;
    color      : #888;
    text-align : center;
    margin-top : 0.5rem;
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    .bloc-projets-galerie .demi-bloc { min-height: 280px; padding: 2rem; }
    .bloc-agenda .concert-row { flex-wrap: wrap; gap: 0.5rem; }
    .bloc-agenda .concert-date { min-width: auto; }
    .bloc-album-hero .album-pochette { max-width: 280px; margin: 2rem auto 0; }
}

/* ══════════════════════════════════════════════════════════════
   ALBUMS SLIDER
   ══════════════════════════════════════════════════════════════ */
.album-card {
    text-decoration : none;
    box-shadow      : 0 8px 30px rgba(0,0,0,0.18);
    transition      : box-shadow 0.3s ease, transform 0.3s ease;
    display         : block;
}
.album-card:hover {
    box-shadow : 0 14px 40px rgba(0,0,0,0.28);
    transform  : translateY(-3px);
}
.album-pochette {
    display      : block;
    width        : 100%;
    aspect-ratio : 1 / 1;
    object-fit   : cover;
}
.album-card {
    position : relative !important;
}
.album-overlay {
    position        : absolute !important;
    inset           : 0 !important;
    background      : #f9efdde6 !important;
    opacity         : 0 !important;
    transition      : opacity 0.3s ease !important;
    display         : flex !important;
    flex-direction  : column !important;
    justify-content : center !important;
    align-items     : center !important;
    text-align      : center !important;
    padding         : 20px !important;
}
.album-card:hover .album-overlay {
    opacity : 1 !important;
}
.album-overlay h3 {
    font-family : 'Lato', sans-serif !important;
    font-size   : 1.1rem !important;
    font-weight : 700 !important;
    color       : var(--sogol-bronze) !important;
    margin      : 0 0 6px !important;
}
.album-overlay span {
    font-family : 'Lato', sans-serif !important;
    font-size   : 13px !important;
    color       : #5a4a3a !important;
}

/* Pagination */
.bloc-albums-slider .swiper {
    padding-bottom: 40px !important;
}
.bloc-albums-slider .swiper-pagination {
    bottom: 0 !important;
}
.albums-pagination .swiper-pagination-bullet {
    background : var(--sogol-bronze);
    opacity    : 0.4;
    width      : 8px;
    height     : 8px;
    margin     : 0 4px;
}
.albums-pagination .swiper-pagination-bullet-active {
    opacity    : 1;
    background : var(--sogol-terracotta);
}
@media (min-width: 1200px) {
    .bloc-bandeau-titre h1,
    .bloc-bandeau-titre h2,
    .bandeau-titre h1 {
        font-size : clamp(3rem, 6vw, 4.5rem) !important;
    }
}