/* ===========================================
   HERO PAGE
   =========================================== */

.hero--page {
    height: 40vh;
    min-height: 300px;
    position: relative;
}

.hero__title--page {
    font-size: 2.5rem;
    animation: fadeInUp 0.8s ease-out;
}

/* Background spécifique pour la page festival */
.hero__background--festival {
    /* Image relative au fichier CSS (src/css/page/) -> ../../../assets/... */
    background-image: url("../../../assets/img/img/illustration/page histoire.png");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    position: absolute;
    inset: 0; /* top:0; right:0; bottom:0; left:0; */
    z-index: 0;
}

/* Contenu et overlay du hero */
.hero__content {
    position: relative;
    z-index: 2;
    padding: 2.5rem 1rem;
    color: #fff;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(7,20,40,0.6) 0%, rgba(7,20,40,0.45) 100%);
    z-index: 1;
}

/* Si pas d'image, gradient de secours */
.hero__background--festival::before {
    z-index: 0;
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: 
        radial-gradient(circle at 30% 40%, rgba(248, 221, 128, 0.15) 0%, transparent 50%),
        radial-gradient(circle at 70% 60%, rgba(142, 197, 255, 0.12) 0%, transparent 50%);
    animation: glowPulse 8s ease-in-out infinite;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes glowPulse {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 0.8; }
}


/* ===========================================
   SECTIONS - FONDS ET ESPACEMENT
   =========================================== */

.section--festival {
    display: block;
    /* Laisser le fond global apparaître (comme sur la maquette) */
    background: transparent;
    padding: calc(var(--spacing-xxl) - 2rem) 0;
    color: white;
    margin-left: 20px;
    margin-right: 20px;
}

.section__title--left{
    margin-left: 20px;
    margin-right: 20px;
}

.section--theme {
    margin-left: 20px;
    margin-right: 20px;
    color: #ffd700;
}

.section--team {
    background-color: rgba(10, 22, 40, 0.5);
    padding: var(--spacing-xxl) 0;
    margin-left: 20px;
    margin-right: 20px;
}

.section--values {
    background-color: var(--dark-blue);
    padding: var(--spacing-xxl) 0;
}

.section--theme {
    background: var(--gradient-blue);
    padding: var(--spacing-xxl) 0;
}

.section--footer-nav {
    background-color: rgba(10, 22, 40, 0.95);
    padding: var(--spacing-xxl) 0 var(--spacing-xl);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.theme-box__text{
    font-size: small;
}


/* ===========================================
   TITRES DE SECTION
   =========================================== */

.section__title--left {
    text-align: left;
    margin-bottom: var(--spacing-lg);
    font-size: 2rem;
    color: var(--color-festicloze-header);
}


/* ===========================================
   CONTENT BLOCK - TEXTES
   =========================================== */

.content-block {
    max-width: 800px;
}

.content-block__intro {
    font-size: 1.125rem;
    line-height: 1.8;
    opacity: 0.9;
    margin-bottom: var(--spacing-xl);
    max-width: 700px;
    color: rgba(255, 255, 255, 0.9);
}

.content-block__text {
    font-family: var(--type-text-family);
    font-size: 1rem;
    line-height: 1.8;
    margin-bottom: var(--spacing-md);
    opacity: 0.9;
    color: white;
}

.content-block__text:last-child {
    margin-bottom: 0;
}


/* ===========================================
   TEAM MEMBERS - ÉQUIPE
   =========================================== */

.team {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    margin-top: var(--spacing-xl);
}

.team-member {
    background: linear-gradient(180deg, var(--gradient-blue-stop-1-color), var(--gradient-blue-stop-2-color));
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: all var(--transition-normal);
}

.team-member:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
    border-color: rgba(248, 221, 128, 0.3);
}

.team-member__content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md);
    gap: var(--spacing-md);
}

.team-member__info {
    flex: 1;
    min-width: 0; /* Permet le text-overflow */
}

.team-member__name {
    font-family: var(--title-button-family);
    font-size: 1.25rem;
    font-weight: 500;
    margin-bottom: var(--spacing-xs);
    color: white;
    letter-spacing: var(--title-button-letter-spacing);
}

.team-member__role {
    font-family: var(--type-text-family);
    font-size: 0.875rem;
    color: var(--color-blue-contact);
    opacity: 0.9;
    font-weight: 400;
}

.team-member__image {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    border-radius: var(--radius-full);
    overflow: hidden;
    border: 3px solid var(--color-festicloze-header);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.team-member__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}


/* ===========================================
   INFO BOX
   =========================================== */

.info-box {
    background: rgba(248, 221, 128, 0.08);
    border-left: 4px solid var(--color-festicloze-header);
    border-radius: var(--radius-sm);
    padding: var(--spacing-md) var(--spacing-lg);
    margin-top: var(--spacing-xl);
}

.info-box__list {
    list-style: none;
}

.info-box__item {
    font-size: 0.875rem;
    line-height: 1.7;
    opacity: 0.95;
    position: relative;
    padding-left: var(--spacing-md);
    color: white;
}

.info-box__item::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--color-festicloze-header);
    font-weight: bold;
    font-size: 1.2rem;
}


/* ===========================================
   VALUES GRID - NOS VALEURS
   =========================================== */

.values-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
    margin-top: var(--spacing-xl);
    margin-left: 20px;
    margin-right: 20px;
}

.value-card {
    background: linear-gradient(180deg, rgba(13,37,66,0.32), rgba(6,20,36,0.28));
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: all var(--transition-normal);
    margin-left: 20px;
    margin-right: 20px;
}

.value-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
    border-color: rgba(248, 221, 128, 0.2);
}

.value-card__title {
    font-family: var(--title-button-family);
    font-size: 1.25rem;
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
    color: var(--color-festicloze-header);
    letter-spacing: var(--title-button-letter-spacing);
    margin-left: 20px;
    margin-right: 20px;
}

.value-card__text {
    font-family: var(--type-text-family);
    font-size: 0.875rem;
    line-height: 1.7;
    opacity: 0.9;
    color: white;
}


/* ===========================================
   THEME BOX - THÉMATIQUE 2025
   =========================================== */

.theme-box {
    background: rgba(10, 22, 40, 0.9);
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    text-align: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    max-width: 800px;
    margin: 0 auto;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.theme-box__subtitle {
    font-family: var(--title-button-family);
    font-size: 2rem;
    margin-bottom: var(--spacing-lg);
    color: var(--color-festicloze-header);
    font-style: italic;
    font-weight: 600;
    letter-spacing: 0.05rem;
}

.theme-box__text {
    font-family: var(--type-text-family);
    font-size: 1rem;
    line-height: 1.8;
    opacity: 0.95;
    color: white;
}


/* ===========================================
   FOOTER PAGE NAVIGATION
   =========================================== */


/* ===========================================
   MENU LINK ACTIVE
   =========================================== */

.menu__link--active {
    color: var(--color-festicloze-header);
    border-left: 3px solid var(--color-festicloze-header);
    padding-left: calc(var(--spacing-md) + 3px);
    background: rgba(248, 221, 128, 0.05);
}


/* ===========================================
   RESPONSIVE - TABLETTES (768px et +)
   =========================================== */

@media (min-width: 768px) {
    .hero--page {
        height: 50vh;
    }

    .hero__title--page {
        font-size: 3.5rem;
    }

    .section__title--left {
        font-size: 2.5rem;
    }

    .content-block__intro {
        font-size: 1.25rem;
    }

    /* Équipe en grille 2 colonnes */
    .team {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-lg);
    }

    .team-member__content {
        padding: var(--spacing-lg);
    }

    .team-member__image {
        width: 100px;
        height: 100px;
    }

    /* Valeurs en grille 2 colonnes */
    .values-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-lg);
    }

    .value-card {
        padding: var(--spacing-xl);
    }

    /* Footer navigation en grille */
    .footer-page-nav {
         grid-column: 1;
    }

    /* Textes plus larges */
    .content-block {
        max-width: 900px;
    }
}