:root {
    --fena-ink: #1d1a16;
    --fena-muted: #6f675d;
    --fena-cream: #fffaf0;
    --fena-paper: #fffdf8;
    --fena-sand: #f3e5c8;
    --fena-clay: #b94f2d;
    --fena-terracotta: #d97745;
    --fena-gold: #dcae3f;
    --fena-green: #255f46;
    --fena-indigo: #25385f;
    --fena-border: rgba(60, 48, 35, 0.14);
    --fena-shadow: 0 18px 42px rgba(48, 39, 26, 0.12);
    --fena-shadow-soft: 0 10px 28px rgba(48, 39, 26, 0.08);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

html {
    overflow-x: hidden;
}

/* Skip-to-content */
.skip-to-content {
    position: absolute;
    top: -100%;
    left: 1rem;
    z-index: 10000;
    padding: 0.65rem 1.25rem;
    background: var(--fena-clay);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    border-radius: 0 0 8px 8px;
    text-decoration: none;
    transition: top 0.2s;
}
.skip-to-content:focus {
    top: 0;
}

body {
    margin: 0;
    overflow-x: hidden;
    font-family: "Poppins", sans-serif;
    color: var(--fena-ink);
    background:
        linear-gradient(90deg, rgba(185, 79, 45, 0.045) 1px, transparent 1px),
        linear-gradient(0deg, rgba(37, 95, 70, 0.035) 1px, transparent 1px),
        linear-gradient(180deg, #fffaf0 0%, #fffdf8 36%, #f7edd8 100%);
    background-size: 38px 38px, 38px 38px, auto;
}

a {
    text-decoration: none;
    color: inherit;
}

/* Focus visible global — clavier & accessibilité */
:focus-visible {
    outline: 3px solid var(--fena-clay);
    outline-offset: 3px;
    border-radius: 4px;
}

/* Supprimer l'outline souris (non-clavier) */
:focus:not(:focus-visible) {
    outline: none;
}

.bg-white {
    background: var(--fena-paper) !important;
}

.section-space {
    padding: 88px 0;
}

.section-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
    padding: 0.36rem 0.78rem;
    border: 1px solid rgba(185, 79, 45, 0.22);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--fena-clay);
    background: rgba(255, 253, 248, 0.86);
}

.section-label::before {
    content: "";
    width: 0.52rem;
    height: 0.52rem;
    border-radius: 50%;
    background: var(--fena-gold);
    box-shadow: 0 0 0 4px rgba(220, 174, 63, 0.16);
}

.section-title {
    margin: 0 0 0.9rem;
    max-width: 780px;
    font-size: clamp(1.8rem, 3vw, 2.75rem);
    font-weight: 800;
    line-height: 1.12;
    color: var(--fena-ink);
}

.section-intro {
    max-width: 680px;
    margin: 0;
    color: var(--fena-muted);
    line-height: 1.75;
}

.fena-navbar {
    position: sticky;
    top: 0;
    z-index: 1100;
    background: rgba(255, 253, 248, 0.9);
    border-bottom: 1px solid rgba(60, 48, 35, 0.09);
    backdrop-filter: blur(18px);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.fena-navbar.scrolled {
    background: rgba(255, 253, 248, 0.97);
    border-color: rgba(60, 48, 35, 0.14);
    box-shadow: 0 10px 30px rgba(48, 39, 26, 0.08);
}

.navbar-brand {
    color: var(--fena-ink);
    font-weight: 800;
    letter-spacing: 0.02em;
}

.navbar-brand:hover {
    color: var(--fena-clay);
}

.navbar-brand span {
    color: var(--fena-clay);
}

.fena-logo img {
    height: 58px;
    width: auto;
    border-radius: 8px;
    border: 1px solid rgba(60, 48, 35, 0.16);
    box-shadow: 0 8px 20px rgba(48, 39, 26, 0.1);
}

.nav-link {
    color: rgba(29, 26, 22, 0.82);
    font-weight: 600;
    font-size: 0.92rem;
    padding: 0.55rem 0.72rem;
    border-radius: 8px;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.nav-link:hover,
.nav-link.active,
.nav-item.show > .nav-link {
    color: var(--fena-clay);
    background: rgba(185, 79, 45, 0.09);
}

.dropdown-menu {
    border: 1px solid var(--fena-border);
    border-radius: 12px;
    background: var(--fena-paper);
    box-shadow: 0 16px 48px rgba(29, 26, 22, 0.14), 0 4px 12px rgba(29, 26, 22, 0.06);
    padding: 0.5rem;
    min-width: 200px;
}

.dropdown-item {
    color: var(--fena-ink);
    font-weight: 500;
    font-size: 0.9rem;
    border-radius: 8px;
    padding: 0.6rem 0.9rem;
    transition: color 0.18s ease, background 0.18s ease, padding-left 0.18s ease;
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item:active {
    color: var(--fena-clay);
    background: rgba(185, 79, 45, 0.09);
    padding-left: 1.2rem;
}

/* Animation ouverture dropdown */
@keyframes dropdownOpen {
    from {
        opacity: 0;
        transform: translateY(-10px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Survol desktop (navbar-expand-xl) */
@media (min-width: 1200px) {
    .navbar-nav .nav-item.dropdown:hover > .dropdown-menu {
        display: block;
        animation: dropdownOpen 0.26s cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    /* Maintenir ouvert quand la souris glisse vers le menu */
    .navbar-nav .nav-item.dropdown > .dropdown-menu:hover {
        display: block;
    }
}

/* Liens désactivés — pages en construction */
.navbar-nav a[href="#"]:not(.btn):not(.dropdown-toggle),
.navbar-nav .dropdown-item[href="#"] {
    cursor: not-allowed;
    pointer-events: none;
}

.navbar-toggler {
    border-color: rgba(60, 48, 35, 0.2);
}

.navbar-toggler:focus {
    box-shadow: 0 0 0 0.15rem rgba(185, 79, 45, 0.22);
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2829,26,22,0.88%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.btn-fena,
.btn-fena-outline {
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.01em;
    padding: 0.72rem 1.28rem;
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.btn-fena {
    border: 1px solid var(--fena-clay);
    background: var(--fena-clay);
    color: #fffdf8;
    box-shadow: 0 10px 24px rgba(185, 79, 45, 0.22);
}

.btn-fena:hover {
    transform: translateY(-2px);
    background: var(--fena-green);
    border-color: var(--fena-green);
    color: #fffdf8;
    box-shadow: 0 14px 28px rgba(37, 95, 70, 0.22);
}

.btn-fena-outline {
border: 1px solid rgba(255, 253, 248, 0.82);
color: #ffffff;
background: rgba(28, 26, 22, 1);
backdrop-filter: blur(8px);
}

.btn-fena-outline:hover {
    background: #fffdf8;
    border-color: #fffdf8;
    color: var(--fena-ink);
}

.hero-slider {
    position: relative;
    background: var(--fena-ink);
}

.hero-slider .carousel-item {
    position: relative;
}

.hero-image {
    width: 100%;
    height: clamp(560px, 82vh, 780px);
    object-fit: cover;
    object-position: center;
    filter: saturate(1.02) contrast(1.02);
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(18, 16, 12, 0.82) 0%, rgba(18, 16, 12, 0.54) 48%, rgba(18, 16, 12, 0.22) 100%),
        linear-gradient(0deg, rgba(185, 79, 45, 0.24), rgba(37, 95, 70, 0.2));
}

.hero-overlay::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 132px;
    background:
        repeating-linear-gradient(135deg, rgba(255, 253, 248, 0.22) 0 8px, transparent 8px 16px),
        linear-gradient(90deg, rgba(185, 79, 45, 0.8), rgba(220, 174, 63, 0.78), rgba(37, 95, 70, 0.78), rgba(37, 56, 95, 0.72));
    opacity: 0.72;
    clip-path: polygon(0 46%, 100% 10%, 100% 100%, 0 100%);
}

.hero-caption {
    left: 0;
    right: 0;
    top: 50%;
    bottom: auto;
    transform: translateY(-44%);
    z-index: 2;
    color: #fffdf8;
}

.hero-caption-inner {
    max-width: 780px;
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.hero-caption-inner.is-active {
    opacity: 1;
    transform: none;
}

.hero-kicker {
    display: inline-block;
    margin-bottom: 1rem;
    padding: 0.42rem 0.84rem;
    border: 1px solid rgba(255, 253, 248, 0.28);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fff4c9;
    background: rgba(37, 95, 70, 0.52);
    backdrop-filter: blur(10px);
}

.hero-caption h1,
.hero-caption h2 {
    margin: 0 0 1rem;
    max-width: 850px;
    font-size: clamp(2.2rem, 4.8vw, 4.7rem);
    line-height: 1.02;
    font-weight: 800;
    color: #fffdf8;
    text-wrap: balance;
}

.hero-caption p {
    margin: 0 0 1.3rem;
    max-width: 660px;
    font-size: clamp(0.98rem, 1.5vw, 1.12rem);
    color: rgba(255, 253, 248, 0.86);
    line-height: 1.75;
}

.hero-control {
    width: 62px;
    opacity: 1;
}

.hero-control-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    border: 1px solid rgba(255, 253, 248, 0.62);
    background: rgba(29, 26, 22, 0.36);
    color: #fffdf8;
    font-size: 1.35rem;
    line-height: 1;
    backdrop-filter: blur(10px);
}

.hero-indicators {
    margin-bottom: 1.4rem;
}

.hero-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 253, 248, 0.56);
}

.hero-indicators .active {
    width: 28px;
    background: var(--fena-gold);
}

.stat-grid {
    margin-top: 2rem;
}

.stat-item {
    text-align: left;
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid var(--fena-border);
    background: rgba(255, 253, 248, 0.78);
    box-shadow: var(--fena-shadow-soft);
}

.stat-item strong {
    display: block;
    font-size: 1.7rem;
    color: var(--fena-green);
}

.stat-item span {
    color: var(--fena-muted);
    font-size: 0.9rem;
}

.info-card,
.program-card,
.culture-item {
    border: 1px solid var(--fena-border);
    border-radius: 8px;
    background: rgba(255, 253, 248, 0.84);
    box-shadow: var(--fena-shadow-soft);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.info-card,
.program-card {
    padding: 1.25rem;
    height: 100%;
}

.info-card:hover,
.program-card:hover,
.culture-item:hover {
    transform: translateY(-5px);
    border-color: rgba(185, 79, 45, 0.28);
    box-shadow: var(--fena-shadow);
}

.info-card h3,
.program-card h3,
.culture-item h3,
.footer-title {
    margin: 0 0 0.48rem;
    font-size: 1.12rem;
    font-weight: 800;
    color: var(--fena-ink);
}

.info-card p,
.program-card p,
.culture-item p {
    margin: 0;
    color: var(--fena-muted);
    line-height: 1.65;
}

.founder-card {
    background:
        repeating-linear-gradient(135deg, rgba(255, 253, 248, 0.13) 0 9px, transparent 9px 18px),
        linear-gradient(135deg, var(--fena-green), var(--fena-indigo));
}

.founder-card h3,
.founder-card p {
    color: #fffdf8;
}

/* =====================================================
   SECTION CULTURES & PEUPLES 2.0
   ===================================================== */

.fena-cultures {
    position: relative;
}

/* Header */
.fena-cultures__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

/* Stage : flèches + viewport */
.fena-cultures__stage {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* Flèches */
.cultures-arrow {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid var(--fena-border);
    background: rgba(255, 253, 248, 0.95);
    color: var(--fena-clay);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--fena-shadow-soft);
    cursor: pointer;
    transition: background 0.22s, color 0.22s, transform 0.22s, border-color 0.22s, box-shadow 0.22s, opacity 0.22s;
    z-index: 2;
}

.cultures-arrow svg {
    width: 20px;
    height: 20px;
    pointer-events: none;
}

.cultures-arrow:hover {
    background: var(--fena-clay);
    border-color: var(--fena-clay);
    color: #fffdf8;
    transform: scale(1.06);
    box-shadow: 0 8px 24px rgba(185, 79, 45, 0.28);
}

.cultures-arrow:focus-visible {
    outline: 3px solid var(--fena-clay);
    outline-offset: 3px;
}

.cultures-arrow:disabled {
    opacity: 0.22;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Viewport */
.cultures-viewport {
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: 0.5rem 0 0.75rem;
    cursor: grab;
}

.cultures-viewport:active {
    cursor: grabbing;
}

.cultures-viewport::-webkit-scrollbar { display: none; }

/* Track */
.cultures-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 270px;
    gap: 1.25rem;
}

/* Carte culture */
.culture-card {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    aspect-ratio: 3 / 4;
    scroll-snap-align: start;
    cursor: pointer;
    box-shadow: 0 8px 28px rgba(48, 39, 26, 0.14);
    transition: box-shadow 0.32s ease, transform 0.32s ease;
    outline-offset: 4px;
}

.culture-card:focus-visible {
    outline: 3px solid var(--fena-clay);
}

.culture-card:hover {
    box-shadow: 0 20px 44px rgba(48, 39, 26, 0.22);
    transform: translateY(-4px);
}

.culture-card__media {
    position: absolute;
    inset: 0;
}

.culture-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s ease;
    will-change: transform;
}

.culture-card:hover .culture-card__media img {
    transform: scale(1.07);
}

/* Overlay permanent + renforcé au survol */
.culture-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(10, 8, 6, 0.90) 0%,
        rgba(10, 8, 6, 0.40) 52%,
        rgba(10, 8, 6, 0.06) 100%
    );
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.1rem;
    transition: background 0.35s ease;
}

.culture-card:hover .culture-card__overlay {
    background: linear-gradient(
        to top,
        rgba(10, 8, 6, 0.96) 0%,
        rgba(10, 8, 6, 0.58) 55%,
        rgba(10, 8, 6, 0.1) 100%
    );
}

/* Badge numéroté */
.culture-card__num {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.26rem 0.64rem;
    border-radius: 999px;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: var(--fena-gold);
    background: rgba(10, 8, 6, 0.38);
    border: 1px solid rgba(220, 174, 63, 0.32);
    backdrop-filter: blur(8px);
}

/* Corps : nom + description + bouton toujours visibles */
.culture-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.culture-card__body h3 {
    margin: 0;
    font-size: clamp(1.08rem, 1.8vw, 1.28rem);
    font-weight: 800;
    color: #fffdf8;
    line-height: 1.15;
}

.culture-card__body p {
    margin: 0;
    font-size: 0.83rem;
    color: rgba(255, 253, 248, 0.78);
    line-height: 1.55;
}

/* Bouton toujours visible, transition au survol */
.culture-card__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.5rem;
    padding: 0.48rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 253, 248, 0.32);
    background: rgba(255, 253, 248, 0.1);
    backdrop-filter: blur(8px);
    color: #fffdf8;
    font-size: 0.81rem;
    font-weight: 700;
    font-family: "Poppins", sans-serif;
    cursor: pointer;
    align-self: flex-start;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
}

.culture-card__btn:hover,
.culture-card__btn:focus-visible {
    background: var(--fena-clay);
    border-color: var(--fena-clay);
    transform: translateX(3px);
    outline: none;
}

/* Indicateurs de pagination (points) */
.cultures-dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.25rem;
}

.cultures-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: rgba(185, 79, 45, 0.18);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: width 0.28s ease, background 0.28s ease;
    flex-shrink: 0;
}

.cultures-dot.is-active {
    width: 24px;
    background: var(--fena-clay);
}

.cultures-dot:focus-visible {
    outline: 2px solid var(--fena-clay);
    outline-offset: 3px;
}

/* Barre de progression (desktop) */
.fena-cultures__progress {
    height: 3px;
    background: rgba(185, 79, 45, 0.1);
    border-radius: 999px;
    margin-top: 1.25rem;
    overflow: hidden;
}

.fena-cultures__progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--fena-clay), var(--fena-gold));
    border-radius: 999px;
    transition: width 0.12s linear;
}

/* Hint swipe mobile */
.cultures-swipe-hint {
    display: none;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    color: var(--fena-muted);
    justify-content: center;
    margin-top: 0.6rem;
}

/* Compatibilité classes historiques (utilisées dans le modal JS) */
.culture-item {
    overflow: hidden;
    scroll-snap-align: start;
}

.culture-item img {
    width: 100%;
    height: 230px;
    object-fit: cover;
}

.culture-item .content {
    padding: 1rem;
}

.culture-more {
    margin-top: 0.95rem;
    border: 1px solid rgba(185, 79, 45, 0.28);
    border-radius: 999px;
    background: rgba(185, 79, 45, 0.08);
    color: var(--fena-clay);
    font-weight: 700;
    font-size: 0.84rem;
    padding: 0.45rem 0.86rem;
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.culture-more:hover {
    transform: translateY(-2px);
    background: var(--fena-clay);
    color: #fffdf8;
}

.modern-card {
    position: relative;
    overflow: hidden;
    border-left: 0;
    background: var(--fena-paper);
}

.modern-card::before {
    content: "";
    display: block;
    height: 7px;
    margin: -1.25rem -1.25rem 1.1rem;
    background: linear-gradient(90deg, var(--fena-clay), var(--fena-gold), var(--fena-green), var(--fena-indigo));
}

.program-icon {
    width: 48px;
    height: 48px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.85rem;
    background: rgba(220, 174, 63, 0.18);
}

.program-icon svg {
    width: 22px;
    height: 22px;
    fill: var(--fena-clay);
}

.program-badge {
    display: inline-block;
    margin-bottom: 0.78rem;
    padding: 0.34rem 0.75rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--fena-green);
    background: rgba(37, 95, 70, 0.1);
}

.gallery-open {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: zoom-in;
    position: relative;
}

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

/* =====================================================
   SECTION GALERIE VIDÉO
   ===================================================== */

.fena-videos {
    background: linear-gradient(160deg, #0f1a12 0%, #101520 55%, #0a1010 100%);
    position: relative;
    overflow: hidden;
}

.fena-videos__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.fena-videos__title {
    font-size: clamp(1.9rem, 4.5vw, 3.2rem);
    font-weight: 800;
    color: #fffdf8;
    line-height: 1.08;
    margin: 0.5rem 0 0;
}

.fena-videos__title-accent {
    color: var(--fena-gold);
}

.fena-videos__intro {
    color: rgba(255, 253, 248, 0.52);
    font-size: 0.95rem;
    margin: 0.55rem 0 0;
    max-width: 36ch;
}

/* Grille vidéos */
.videos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

/* Carte vidéo */
.video-card {
    background: rgba(255, 253, 248, 0.05);
    border: 1px solid rgba(255, 253, 248, 0.1);
    border-radius: 16px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.video-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.4);
    border-color: rgba(220, 174, 63, 0.3);
}

/* Thumbnail */
.video-card__thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #000;
}

.video-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease, opacity 0.3s ease;
    opacity: 0.85;
}

.video-card:hover .video-card__thumb img {
    transform: scale(1.05);
    opacity: 0.7;
}

/* Overlay play */
.video-card__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    transition: background 0.3s ease;
}

.video-card:hover .video-card__overlay {
    background: rgba(10, 8, 6, 0.15);
}

/* Bouton play */
.video-card__play {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: none;
    background: var(--fena-clay);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 6px 24px rgba(185, 79, 45, 0.5);
    transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

.video-card:hover .video-card__play {
    transform: scale(1.14);
    background: var(--fena-gold);
    box-shadow: 0 8px 30px rgba(220, 174, 63, 0.55);
}

/* Badge durée */
.video-card__duration {
    position: absolute;
    bottom: 0.6rem;
    right: 0.6rem;
    background: rgba(10, 8, 6, 0.75);
    color: #fffdf8;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    backdrop-filter: blur(4px);
    letter-spacing: 0.04em;
}

/* Infos */
.video-card__info {
    padding: 1.1rem 1.25rem 1.3rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.video-card__badge {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fena-gold);
    background: rgba(220, 174, 63, 0.14);
    border: 1px solid rgba(220, 174, 63, 0.25);
}

.video-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: rgba(255, 253, 248, 0.92);
    margin: 0;
    line-height: 1.4;
}

.video-card__desc {
    font-size: 0.82rem;
    color: rgba(255, 253, 248, 0.48);
    margin: 0;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---- Lightbox vidéo ---- */
.video-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.28s ease;
}

.video-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}

.video-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 4, 2, 0.94);
    backdrop-filter: blur(8px);
    cursor: pointer;
}

/* Conteneur interne */
.video-lightbox__inner {
    position: relative;
    z-index: 2;
    width: min(920px, 94vw);
    display: flex;
    flex-direction: column;
    gap: 0;
    transform: translateY(20px) scale(0.96);
    transition: transform 0.3s ease;
}

.video-lightbox.is-open .video-lightbox__inner {
    transform: translateY(0) scale(1);
}

/* Header : titre + bouton fermer */
.video-lightbox__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: rgba(255, 253, 248, 0.06);
    border-radius: 14px 14px 0 0;
    border-bottom: 1px solid rgba(255, 253, 248, 0.08);
    gap: 1rem;
}

.video-lightbox__title {
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(255, 253, 248, 0.85);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.video-lightbox__close {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(255, 253, 248, 0.2);
    background: rgba(255, 253, 248, 0.06);
    color: #fffdf8;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
}

.video-lightbox__close:hover {
    background: var(--fena-clay);
    border-color: var(--fena-clay);
}

.video-lightbox__close:focus-visible {
    outline: 2px solid var(--fena-clay);
    outline-offset: 3px;
}

/* Zone vidéo */
.video-lightbox__wrapper {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: 0 0 14px 14px;
    overflow: hidden;
    background: #0c0a08;
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.7);
}

.video-lightbox__wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

/* Placeholder vidéo indisponible */
.video-lightbox__placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    color: rgba(255, 253, 248, 0.45);
    background: #0c0a08;
}

.video-lightbox__placeholder p {
    font-size: 0.95rem;
    font-weight: 500;
    margin: 0;
}

/* Carte vidéo cliquable */
.video-card {
    cursor: pointer;
}

/* Responsive */
@media (max-width: 991.98px) {
    .fena-videos__header {
        flex-direction: column;
        align-items: flex-start;
    }
    .videos-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575.98px) {
    .videos-grid {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
   SECTION CTA PARTICIPATION 2.0
   ===================================================== */

.fena-cta {
    position: relative;
    overflow: hidden;
}

.fena-cta__bg {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            105deg,
            rgba(29, 26, 22, 0.88) 0%,
            rgba(37, 95, 70, 0.72) 52%,
            rgba(37, 56, 95, 0.70) 100%
        ),
        url("../slide/slide-fena-5-4.jpg") center / cover no-repeat;
    z-index: 0;
}

/* Trame géométrique kente */
.fena-cta__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(
            45deg,
            transparent 0px, transparent 22px,
            rgba(220, 174, 63, 0.04) 22px, rgba(220, 174, 63, 0.04) 23px
        ),
        repeating-linear-gradient(
            -45deg,
            transparent 0px, transparent 22px,
            rgba(185, 79, 45, 0.03) 22px, rgba(185, 79, 45, 0.03) 23px
        );
}

.fena-cta > .container {
    position: relative;
    z-index: 1;
}

.fena-cta__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: clamp(2.5rem, 8vw, 6rem);
    align-items: center;
}

/* Contenu */
.fena-cta__content { max-width: 56ch; }

.fena-cta__title {
    font-size: clamp(2rem, 4.5vw, 3.4rem);
    font-weight: 800;
    color: #fffdf8;
    line-height: 1.1;
    margin: 0.6rem 0 1.3rem;
}

.fena-cta__title-gold {
    display: block;
    color: var(--fena-gold);
}

/* Tags profils */
.fena-cta__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.3rem;
}

.cta-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.3rem 0.85rem;
    border-radius: 999px;
    background: rgba(255, 253, 248, 0.1);
    border: 1px solid rgba(255, 253, 248, 0.2);
    color: rgba(255, 253, 248, 0.88);
    font-size: 0.82rem;
    font-weight: 500;
    backdrop-filter: blur(6px);
    transition: background 0.2s, border-color 0.2s;
}

.cta-tag:hover {
    background: rgba(255, 253, 248, 0.18);
    border-color: rgba(220, 174, 63, 0.5);
}

.fena-cta__desc {
    color: rgba(255, 253, 248, 0.7);
    font-size: clamp(0.95rem, 1.6vw, 1.05rem);
    line-height: 1.7;
    margin-bottom: 2rem;
    max-width: 52ch;
}

.fena-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    align-items: center;
}

/* Carte de stats */
.cta-stat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.2rem;
    background: rgba(255, 253, 248, 0.07);
    border: 1px solid rgba(255, 253, 248, 0.14);
    border-radius: 20px;
    padding: clamp(1.8rem, 3.5vw, 2.8rem) clamp(2rem, 4vw, 3.2rem);
    backdrop-filter: blur(12px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.cta-stat-num {
    font-size: clamp(2.4rem, 3.8vw, 3.2rem);
    font-weight: 900;
    color: var(--fena-gold);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.cta-stat-num sup {
    font-size: 0.55em;
    vertical-align: super;
    font-weight: 700;
}

.cta-stat-label {
    font-size: 0.72rem;
    color: rgba(255, 253, 248, 0.55);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: 600;
    max-width: 14ch;
}

.cta-stat-sep {
    width: 32px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(220, 174, 63, 0.45), transparent);
    margin: 0.8rem 0;
}

/* Responsive */
@media (max-width: 991.98px) {
    .fena-cta__inner {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }
    .fena-cta__stat { width: 100%; }
    .cta-stat-card {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        gap: 1rem 2rem;
        padding: 1.5rem;
    }
    .cta-stat-sep {
        width: 1px;
        height: 36px;
        margin: 0 0.5rem;
        background: linear-gradient(180deg, transparent, rgba(220, 174, 63, 0.45), transparent);
    }
}

@media (max-width: 575.98px) {
    .fena-cta__actions .btn { width: 100%; text-align: center; }
    .cta-stat-card { flex-direction: column; }
    .cta-stat-sep { width: 32px; height: 1px; margin: 0.6rem 0; }
}

/* =====================================================
   SECTION PARTENAIRES 2.0 — Marquee défilant
   ===================================================== */

.fena-partners {
    background: linear-gradient(180deg, var(--fena-paper) 0%, #f5ead6 100%);
    position: relative;
    overflow: hidden;
}

.fena-partners::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        60deg,
        transparent 0, transparent 52px,
        rgba(185, 79, 45, 0.022) 52px, rgba(185, 79, 45, 0.022) 53px
    );
    pointer-events: none;
}

.fena-partners > .container { position: relative; z-index: 1; }

.fena-partners__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.fena-partners__title {
    font-size: clamp(1.7rem, 3.8vw, 2.8rem);
    font-weight: 800;
    color: var(--fena-ink);
    line-height: 1.12;
    margin: 0.5rem 0 0;
}

.fena-partners__title .partners-clay { color: var(--fena-clay); }

.fena-partners__sub {
    color: var(--fena-muted);
    font-size: clamp(0.88rem, 1.4vw, 0.97rem);
    line-height: 1.65;
    margin: 0;
    max-width: 36ch;
    text-align: right;
    padding-top: 0.5rem;
}

/* ── Carousel partenaires ─────────────────────── */
.partners-carousel {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* Flèches */
.partners-arrow {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--fena-border);
    background: rgba(255, 253, 248, 0.95);
    color: var(--fena-clay);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, transform 0.2s, border-color 0.2s, box-shadow 0.2s;
    box-shadow: var(--fena-shadow-soft);
}
.partners-arrow:hover {
    background: var(--fena-clay);
    border-color: var(--fena-clay);
    color: #fff;
    transform: scale(1.06);
    box-shadow: 0 8px 20px rgba(185,79,45,0.25);
}
.partners-arrow:focus-visible { outline: 3px solid var(--fena-clay); outline-offset: 3px; }
.partners-arrow:disabled { opacity: 0.22; cursor: not-allowed; transform: none; box-shadow: none; }

/* Viewport */
.partners-viewport {
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    cursor: grab;
    padding: 0.75rem 0 1rem;
}
.partners-viewport:active { cursor: grabbing; }
.partners-viewport::-webkit-scrollbar { display: none; }

/* Track */
.partners-track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 190px;
    gap: 1rem;
}

/* Carte */
.partner-card {
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 1rem 1.25rem;
    border: 1px solid var(--fena-border);
    border-radius: 16px;
    background: rgba(255, 253, 248, 0.92);
    text-align: center;
    transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
    box-shadow: 0 4px 16px rgba(48,39,26,0.07);
}
.partner-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--fena-shadow);
    border-color: rgba(185,79,45,0.2);
}

/* Zone logo */
.partner-card__logo {
    width: 90px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    padding: 8px;
}
.partner-card__logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

/* Monogramme (quand pas de logo) */
.partner-card__logo--mono {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.25;
    color: #fff;
    padding: 0;
}
.partner-card__logo--mono span {
    display: block;
    text-align: center;
}
.partner-card__logo--ua     { background: linear-gradient(135deg, #1a6b3c, #2d9e5f); }
.partner-card__logo--cedeao { background: linear-gradient(135deg, var(--fena-clay), var(--fena-terracotta)); }
.partner-card__logo--intl   { background: linear-gradient(135deg, var(--fena-green), #2d7a56); }
.partner-card__logo--media  { background: linear-gradient(135deg, var(--fena-indigo), #2e4a7a); }
.partner-card__logo--priv   { background: linear-gradient(135deg, #7a6020, var(--fena-gold)); }

.partner-card__name {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--fena-ink);
    line-height: 1.3;
}

/* Badge catégorie */
.partner-card__cat {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
}
.partner-card__cat--institutionnel { background: rgba(185,79,45,0.1);  color: var(--fena-clay); }
.partner-card__cat--international  { background: rgba(37,95,70,0.1);   color: var(--fena-green); }
.partner-card__cat--media          { background: rgba(37,56,95,0.1);   color: var(--fena-indigo); }
.partner-card__cat--partenaire     { background: rgba(220,174,63,0.15); color: #8a6020; }

/* Dots */
.partners-dots {
    display: flex;
    justify-content: center;
    gap: 0.45rem;
    margin-top: 1.25rem;
}
.partners-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: rgba(185,79,45,0.18);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: width 0.25s, background 0.25s;
    flex-shrink: 0;
}
.partners-dot.is-active { width: 22px; background: var(--fena-clay); }
.partners-dot:focus-visible { outline: 2px solid var(--fena-clay); outline-offset: 3px; }

/* CTA */
.partners-cta {
    display: flex;
    justify-content: center;
    margin-top: clamp(1.75rem, 3vw, 2.25rem);
}
.partners-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 1.5px solid var(--fena-clay);
    color: var(--fena-clay);
    background: transparent;
    padding: 0.6rem 1.5rem;
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 700;
    font-family: "Poppins", sans-serif;
    transition: background 0.2s, color 0.2s;
}
.partners-cta__btn:hover { background: var(--fena-clay); color: #fff; }

/* Responsive */
@media (max-width: 991.98px) {
    .partners-arrow { display: none; }
    .partners-track { grid-auto-columns: 165px; }
}
@media (max-width: 767.98px) {
    .partners-track { grid-auto-columns: 155px; }
    .fena-partners__header { flex-direction: column; gap: 1rem; }
    .fena-partners__sub { text-align: left; max-width: 100%; }
}
@media (max-width: 575.98px) {
    .partners-track { grid-auto-columns: 145px; }
}

/* =====================================================
   FOOTER 2.0
   ===================================================== */

.fena-footer {
    position: relative;
    overflow: hidden;
    color: rgba(255, 253, 248, 0.78);
    background: #14100a;
}

/* Image de fond avec effet élégant */
.fena-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../../assets/slide/slide-fena-5-7.jpg');
    background-size: cover;
    background-position: center 30%;
    opacity: 0.12;
    z-index: 0;
}

/* Voile dégradé sur l'image */
.fena-footer::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(20, 16, 10, 0.55) 0%, rgba(20, 16, 10, 0.82) 60%, #14100a 100%),
        linear-gradient(135deg, rgba(37, 95, 70, 0.45) 0%, rgba(37, 56, 95, 0.45) 100%);
    z-index: 1;
}

.fena-footer__accent {
    position: relative;
    z-index: 2;
    height: 4px;
    background: linear-gradient(90deg, var(--fena-clay) 0%, var(--fena-gold) 50%, var(--fena-green) 100%);
}

.fena-footer__body {
    position: relative;
    z-index: 2;
    padding: clamp(3rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3.5rem);
}

.fena-footer__brand-link { display: inline-block; margin-bottom: 1.2rem; }

.fena-footer__logo {
    height: 56px;
    width: auto;
    object-fit: contain;
    border-radius: 10px;
    background: #fff;
    padding: 4px 8px;
}

.fena-footer__desc {
    font-size: 0.9rem;
    line-height: 1.72;
    color: rgba(255, 253, 248, 0.6);
    margin-bottom: 1.4rem;
    max-width: 34ch;
}

.fena-footer__social {
    display: flex;
    gap: 0.6rem;
}

.footer-social {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 253, 248, 0.08);
    border: 1px solid rgba(255, 253, 248, 0.13);
    color: rgba(255, 253, 248, 0.68);
    text-decoration: none;
    flex-shrink: 0;
    transition: background 0.22s, color 0.22s, transform 0.22s, border-color 0.22s;
}

.footer-social:hover {
    background: var(--fena-clay);
    border-color: var(--fena-clay);
    color: #fffdf8;
    transform: translateY(-3px);
}

.fena-footer__col-title {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--fena-gold);
    margin: 0 0 1.1rem;
}

.fena-footer__nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.fena-footer__nav a {
    color: rgba(255, 253, 248, 0.65);
    text-decoration: none;
    font-size: 0.9rem;
    display: inline-block;
    transition: color 0.2s, padding-left 0.22s;
}

.fena-footer__nav a:hover {
    color: var(--fena-gold);
    padding-left: 6px;
}

.fena-footer__address {
    font-style: normal;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.fena-footer__contact-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: rgba(255, 253, 248, 0.65);
    font-size: 0.9rem;
    text-decoration: none;
    transition: color 0.2s;
}

a.fena-footer__contact-item:hover { color: var(--fena-gold); }

.fena-footer__contact-item svg {
    flex-shrink: 0;
    color: var(--fena-gold);
    opacity: 0.85;
}

.fena-footer__bottom {
    position: relative;
    z-index: 2;
    border-top: 1px solid rgba(255, 253, 248, 0.1);
    padding: 1.1rem 0;
}

.fena-footer__bottom-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.78rem;
    color: rgba(255, 253, 248, 0.4);
}

@media (max-width: 575.98px) {
    .fena-footer__bottom-inner { flex-direction: column; align-items: center; text-align: center; }
    .fena-footer__desc { max-width: 100%; }
}

/* =====================================================
   BOUTONS FLOTTANTS — WhatsApp + Scroll-top
   ===================================================== */

/* WhatsApp */
.float-wa {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 990;
    display: inline-flex;
    align-items: center;
    gap: 0;
    background: #25D366;
    color: #fff;
    border-radius: 999px;
    padding: 0.8rem;
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 700;
    overflow: hidden;
    transition: padding 0.35s cubic-bezier(.22,.68,0,1.2), box-shadow 0.25s, transform 0.25s;
}

.float-wa:hover {
    padding: 0.8rem 1.1rem 0.8rem 0.9rem;
    box-shadow: 0 12px 32px rgba(37, 211, 102, 0.45);
    transform: translateY(-3px);
    color: #fff;
}

.float-wa__icon { width: 24px; height: 24px; flex-shrink: 0; }

.float-wa__label {
    max-width: 0;
    overflow: hidden;
    white-space: nowrap;
    margin-left: 0;
    transition: max-width 0.35s cubic-bezier(.22,.68,0,1.2), margin-left 0.3s;
}

.float-wa:hover .float-wa__label {
    max-width: 120px;
    margin-left: 0.45rem;
}

.float-wa::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 999px;
    border: 2px solid #25D366;
    animation: waPulse 2.5s ease-out infinite;
    pointer-events: none;
}

@keyframes waPulse {
    0%   { transform: scale(1);   opacity: 0.75; }
    70%  { transform: scale(1.55); opacity: 0; }
    100% { transform: scale(1.55); opacity: 0; }
}

/* Scroll-top */
.scroll-top {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 990;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 0;
    background: var(--fena-clay);
    color: #fffdf8;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 20px rgba(185, 79, 45, 0.32);
    cursor: pointer;
    opacity: 0;
    transform: translateY(14px) scale(0.88);
    transition: opacity 0.3s ease, transform 0.3s cubic-bezier(.22,.68,0,1.2), background 0.2s;
    pointer-events: none;
}

.scroll-top.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.scroll-top:hover {
    background: var(--fena-green);
    transform: translateY(-4px) scale(1);
    box-shadow: 0 10px 28px rgba(37, 95, 70, 0.3);
}

.culture-modal .modal-content {
    border: 1px solid var(--fena-border);
    border-radius: 8px;
    background: var(--fena-paper);
    color: var(--fena-ink);
}

.culture-modal .modal-header {
    border-bottom-color: var(--fena-border);
}

.culture-modal .modal-title {
    color: var(--fena-ink);
    font-weight: 800;
}

.culture-story {
    color: var(--fena-muted);
    line-height: 1.75;
}

.culture-modal .modal-body h3 {
    color: var(--fena-ink);
    font-weight: 800;
}

.culture-edition-image {
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--fena-border);
    border-radius: 8px;
    box-shadow: var(--fena-shadow-soft);
}

.culture-edition-image img {
    width: 100%;
    height: 190px;
    object-fit: cover;
}

.fena-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 2rem);
    background: rgba(18, 16, 12, 0.92);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.fena-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.lightbox-media {
    max-width: min(1120px, 100%);
    width: 100%;
    margin: 0 auto;
    text-align: center;
}

.lightbox-media img {
    max-width: 100%;
    max-height: 80vh;
    border-radius: 8px;
    border: 2px solid rgba(255, 253, 248, 0.38);
    box-shadow: 0 20px 38px rgba(0, 0, 0, 0.35);
    transform: scale(0.94);
    transition: transform 0.32s ease;
}

.fena-lightbox.is-open .lightbox-media img {
    transform: scale(1);
}

.lightbox-caption {
    margin: 0.8rem 0 0;
    color: rgba(255, 253, 248, 0.9);
    font-size: 0.94rem;
}

.lightbox-close,
.lightbox-nav {
    border: 0;
    border-radius: 999px;
    background: rgba(255, 253, 248, 0.14);
    color: #fffdf8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease;
}

.lightbox-close:hover,
.lightbox-nav:hover {
    background: var(--fena-clay);
}

.lightbox-close {
    position: absolute;
    top: 1.2rem;
    right: 1.2rem;
    width: 44px;
    height: 44px;
    font-size: 2rem;
    line-height: 1;
}

.lightbox-nav {
    width: 50px;
    height: 50px;
    font-size: 1.4rem;
}

.page-hero {
    padding: 110px 0 72px;
    color: #fffdf8;
    background:
        linear-gradient(90deg, rgba(18, 16, 12, 0.8), rgba(37, 95, 70, 0.66)),
        url("../../../assets/img/472955335_616406257568755_458701306619847487_n.jpg") center/cover;
}

.page-hero h1 {
    font-weight: 800;
}

.simple-list {
    margin: 0;
    padding-left: 1.1rem;
    color: var(--fena-muted);
}

.simple-list li {
    margin-bottom: 0.45rem;
}

.form-control,
.form-select,
.form-control:focus,
.form-select:focus {
    background: rgba(255, 253, 248, 0.9);
    border-color: rgba(60, 48, 35, 0.22);
    box-shadow: none;
    color: var(--fena-ink);
}

.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: none;
}

body.lightbox-open {
    overflow: hidden;
}

/* =====================================================
   SECTION ACTUALITÉS
   ===================================================== */

.fena-news {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse 60% 50% at 96% 8%,  rgba(185, 79, 45, 0.07) 0%, transparent 70%),
        radial-gradient(ellipse 50% 40% at 4%  92%, rgba(37,  95, 70, 0.06) 0%, transparent 70%),
        var(--fena-cream);
}

.fena-news::before {
    content: none;
}

.fena-news .container { position: relative; z-index: 1; }

/* ---- Header ---- */
.fena-news__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 3.5rem;
    flex-wrap: wrap;
}

.fena-news__title {
    margin: 0 0 0.5rem;
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 800;
    line-height: 1.1;
    color: var(--fena-ink);
}

.fena-news__intro {
    margin: 0;
    font-size: 0.95rem;
    color: var(--fena-muted);
    line-height: 1.7;
}

/* ---- Tags ---- */
.news-tag {
    display: inline-block;
    padding: 0.24rem 0.65rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.news-tag--festival { background: rgba(185, 79, 45, 0.13);  color: var(--fena-clay); }
.news-tag--culture  { background: rgba(37,  95, 70, 0.12);  color: var(--fena-green); }
.news-tag--artistes { background: rgba(220, 174, 63, 0.16); color: #8a6618; }

/* ---- Grille éditoriale ---- */
.fena-news__grid {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 1.5rem;
    align-items: stretch;
}

/* =====================================================
   CARTE HÉROS
   ===================================================== */

.news-hero {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    min-height: 580px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    cursor: pointer;
}

.news-hero__img-link {
    position: absolute;
    inset: 0;
    display: block;
}

.news-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.9s cubic-bezier(.22,.68,0,1.2);
}

.news-hero:hover .news-hero__img { transform: scale(1.06); }

.news-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(12, 9, 6, 0.95) 0%,
        rgba(12, 9, 6, 0.6)  38%,
        rgba(12, 9, 6, 0.15) 65%,
        transparent          100%
    );
    pointer-events: none;
}

.news-hero__num {
    position: absolute;
    top: 1.6rem;
    right: 2rem;
    font-size: 6.5rem;
    font-weight: 900;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(220, 174, 63, 0.25);
    user-select: none;
    pointer-events: none;
    z-index: 1;
    letter-spacing: -0.04em;
}

.news-hero__body {
    position: relative;
    z-index: 2;
    padding: 2.2rem 2.4rem 2.6rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.news-hero__meta {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.news-hero__date {
    font-size: 0.78rem;
    color: rgba(255, 253, 248, 0.5);
    font-weight: 500;
}

.news-hero__read {
    font-size: 0.78rem;
    color: rgba(255, 253, 248, 0.4);
}

.news-hero__read::before {
    content: "·";
    margin-right: 0.3rem;
}

.news-hero__title {
    margin: 0;
    font-size: clamp(1.25rem, 2.2vw, 1.8rem);
    font-weight: 800;
    line-height: 1.18;
    color: #fffdf8;
}

.news-hero__title a {
    color: inherit;
    transition: color 0.2s ease;
}

.news-hero__title a:hover { color: var(--fena-gold); }

.news-hero__excerpt {
    margin: 0;
    font-size: 0.92rem;
    color: rgba(255, 253, 248, 0.65);
    line-height: 1.65;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--fena-gold);
    transition: gap 0.22s ease, color 0.22s ease;
    width: fit-content;
    margin-top: 0.3rem;
}

.news-hero__cta:hover { gap: 0.7rem; color: #f5d878; }

/* =====================================================
   PILE DROITE
   ===================================================== */

.news-stack {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* ---- Carte item ---- */
.news-item {
    flex: 1;
    display: flex;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--fena-border);
    background: var(--fena-paper);
    transition:
        border-color  0.3s ease,
        transform     0.35s cubic-bezier(.22,.68,0,1.2),
        box-shadow    0.35s ease;
    will-change: transform;
}

.news-item:hover {
    border-color: rgba(185, 79, 45, 0.28);
    transform: translateY(-5px);
    box-shadow: 0 20px 48px rgba(48, 39, 26, 0.12);
}

.news-item__img-link {
    display: block;
    flex-shrink: 0;
    width: 190px;
}

.news-item__img {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.news-item__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(.22,.68,0,1.2);
}

.news-item:hover .news-item__img img { transform: scale(1.08); }

.news-item__body {
    flex: 1;
    padding: 1.6rem 1.8rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    justify-content: center;
}

.news-item__meta {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.news-item__date {
    font-size: 0.74rem;
    color: var(--fena-muted);
    font-weight: 500;
}

.news-item__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--fena-ink);
}

.news-item__title a {
    color: inherit;
    transition: color 0.2s ease;
}

.news-item__title a:hover { color: var(--fena-clay); }

.news-item__excerpt {
    margin: 0;
    font-size: 0.85rem;
    color: var(--fena-muted);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-item__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--fena-clay);
    transition: gap 0.22s ease, color 0.22s ease;
    margin-top: auto;
}

.news-item__cta:hover { gap: 0.58rem; color: var(--fena-green); }

/* =====================================================
   RESPONSIVE
   ===================================================== */

/* ---- CTA bas ---- */
.fena-news__cta {
    display: flex;
    justify-content: center;
    margin-top: 2.8rem;
}

.news-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.82rem 2rem;
    border-radius: 999px;
    border: 1.5px solid var(--fena-clay);
    font-family: "Poppins", sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--fena-clay);
    background: transparent;
    transition: background 0.25s ease, color 0.25s ease, gap 0.25s ease, box-shadow 0.25s ease;
}

.news-cta-btn:hover {
    background: var(--fena-clay);
    color: #fffdf8;
    gap: 0.95rem;
    box-shadow: 0 8px 28px rgba(185, 79, 45, 0.28);
}

.news-cta-btn svg {
    flex-shrink: 0;
    transition: transform 0.25s ease;
}

.news-cta-btn:hover svg { transform: translateX(3px); }

@media (max-width: 1199.98px) {
    .fena-news__grid { grid-template-columns: 1fr 1fr; }
    .news-hero { min-height: 500px; }
}

@media (max-width: 991.98px) {
    .fena-news__grid { grid-template-columns: 1fr; }
    .news-hero { min-height: 440px; }
    .news-stack { flex-direction: row; }
    .news-item__img-link { width: 160px; }
}

@media (max-width: 767.98px) {
    .fena-news__header { flex-direction: column; align-items: flex-start; }
    .news-hero { min-height: 380px; }
    .news-hero__num { font-size: 4.5rem; }
    .news-hero__body { padding: 1.6rem 1.8rem 2rem; }
    .news-stack { flex-direction: column; }
    .news-item__img-link { width: 140px; }
}

@media (max-width: 575.98px) {
    .news-hero { min-height: 340px; }
    .news-item { flex-direction: column; }
    .news-item__img-link { width: 100%; height: 180px; }
}

@media (max-width: 1199.98px) {
    .navbar-collapse {
        margin-top: 0.8rem;
        padding: 0.75rem;
        border-radius: 8px;
        border: 1px solid var(--fena-border);
        background: rgba(255, 253, 248, 0.98);
    }

    .hero-caption {
        transform: translateY(-42%);
    }

    /* cultures-track géré dans le bloc responsive cultures en bas */
}

@media (max-width: 991.98px) {
    .section-space {
        padding: 66px 0;
    }

    .fena-logo img {
        height: 50px;
    }

    .hero-image {
        height: 560px;
    }

    .hero-caption {
        transform: translateY(-40%);
    }

    .hero-caption h1,
    .hero-caption h2 {
        font-size: clamp(1.8rem, 6vw, 2.8rem);
    }

    .cultures-carousel {
        grid-template-columns: 1fr;
    }

    /* cultures-arrow géré dans le bloc responsive cultures ci-dessous */

    .lightbox-nav {
        width: 44px;
        height: 44px;
    }
}

@media (max-width: 767.98px) {
    .hero-caption {
        top: 54%;
    }

    .hero-caption p {
        font-size: 0.95rem;
    }

    .hero-control {
        width: 50px;
    }

    .hero-control-icon {
        width: 40px;
        height: 40px;
        font-size: 1.15rem;
    }

    /* cultures-track géré dans le bloc responsive cultures en bas */

    .fena-lightbox {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .lightbox-nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: rgba(29, 26, 22, 0.62);
    }

    .lightbox-prev {
        left: 0.8rem;
    }

    .lightbox-next {
        right: 0.8rem;
    }
}

@media (max-width: 575.98px) {
    .hero-image {
        height: 540px;
    }

    .hero-caption {
        top: 56%;
    }

    .btn-fena,
    .btn-fena-outline {
        width: 100%;
        text-align: center;
    }

    .culture-item img {
        height: 180px;
    }

    .culture-edition-image img {
        height: 150px;
    }
}

/* =====================================================
   SECTION LE FESTIVAL — About 2.0
   ===================================================== */

.fena-about {
    position: relative;
    overflow: hidden;
}

/* Watermark décoratif */
.fena-about::before {
    content: "FENA";
    position: absolute;
    top: -0.1em;
    right: -0.04em;
    font-size: clamp(8rem, 18vw, 20rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(185, 79, 45, 0.06);
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

.fena-about .container {
    position: relative;
    z-index: 1;
}

/* Header : 2 colonnes titre / intro */
.fena-about__header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: end;
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.fena-about__intro {
    margin: 0;
    padding-bottom: 0.4rem;
}

/* Stats bar */
.fena-about__stats {
    display: flex;
    align-items: center;
    margin-top: clamp(2rem, 3.5vw, 3.5rem);
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
    padding: clamp(1.5rem, 2.5vw, 2.2rem) clamp(1.5rem, 3vw, 3rem);
    border: 1px solid var(--fena-border);
    border-radius: 16px;
    background: rgba(255, 253, 248, 0.78);
    backdrop-filter: blur(10px);
    box-shadow: var(--fena-shadow-soft);
}

.fena-about__stat {
    flex: 1;
    text-align: center;
}

.fena-about__stat strong {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 2px;
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 800;
    line-height: 1;
    color: var(--fena-clay);
    margin-bottom: 0.32rem;
}

.fena-about__stat sup {
    font-size: 0.46em;
    font-weight: 700;
    color: var(--fena-gold);
}

.fena-about__stat > span {
    display: block;
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--fena-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.fena-about__stat-sep {
    width: 1px;
    height: 52px;
    flex-shrink: 0;
    background: var(--fena-border);
    margin: 0 0.5rem;
}

/* Bento grid */
.fena-about__grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 1.25rem;
    align-items: stretch;
}

.fena-about__grid-right {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.fena-about__grid-right .fena-about__stats {
    margin-top: 0;
    margin-bottom: 0;
}

/* Feature cards */
.fena-feature-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--fena-border);
    border-radius: 16px;
    padding: clamp(1.5rem, 2.5vw, 2.2rem);
    background: rgba(255, 253, 248, 0.86);
    box-shadow: var(--fena-shadow-soft);
    display: flex;
    flex-direction: column;
    transition: transform 0.32s ease, box-shadow 0.32s ease, border-color 0.32s ease;
}

.fena-feature-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--fena-shadow);
    border-color: rgba(185, 79, 45, 0.2);
}

.fena-feature-card--wide {
    grid-column: span 2;
}

.fena-feature-card__icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.2rem;
    flex-shrink: 0;
    background: rgba(220, 174, 63, 0.13);
}

.fena-feature-card__icon svg {
    width: 24px;
    height: 24px;
    stroke: var(--fena-clay);
    fill: none;
}

.fena-feature-card h3 {
    margin: 0 0 0.6rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--fena-ink);
}

.fena-feature-card p {
    margin: 0;
    color: var(--fena-muted);
    line-height: 1.72;
    font-size: 0.93rem;
    flex: 1;
}

/* Barre rainbow au survol */
.fena-feature-card__accent {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--fena-clay), var(--fena-gold));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s ease;
}

.fena-feature-card:hover .fena-feature-card__accent {
    transform: scaleX(1);
}

/* Carte fondatrice */
.fena-feature-card--founder {
    background: #fff;
    border-color: transparent;
    padding: clamp(1.25rem, 2vw, 1.75rem);
    overflow: hidden;
    gap: 1.25rem;
    box-shadow: 0 8px 40px rgba(29, 26, 22, 0.12), 0 2px 8px rgba(29, 26, 22, 0.06);
}

.fena-feature-card--founder:hover {
    border-color: transparent;
    box-shadow: 0 16px 56px rgba(29, 26, 22, 0.16), 0 4px 12px rgba(29, 26, 22, 0.08);
}

/* Bloc image ajusté */
.fena-founder__portrait {
    width: 100%;
    height: 280px;
    border-radius: 12px;
    overflow: hidden;
    flex-shrink: 0;
    position: relative;
}

.fena-founder__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
    display: block;
    transition: transform 0.5s ease;
}

.fena-feature-card--founder:hover .fena-founder__portrait img {
    transform: scale(1.04);
}

/* Texte hors du bloc image */
.fena-founder__body {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    flex: 1;
}

.fena-feature-card__quote-mark {
    display: block;
    font-size: 3.5rem;
    line-height: 0.65;
    color: var(--fena-gold);
    font-weight: 800;
    font-family: Georgia, "Times New Roman", serif;
    opacity: 0.75;
}

.fena-feature-card--founder h3 {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--fena-clay);
}

.fena-feature-card--founder p {
    margin: 0;
    color: var(--fena-muted);
    line-height: 1.72;
    font-size: 0.95rem;
    font-style: italic;
    flex: 1;
}

.fena-founder__sig {
    margin-top: auto;
    padding-top: 1rem;
    display: flex;
    align-items: center;
    gap: 0.9rem;
    border-top: 1px solid var(--fena-border);
}

.fena-founder__sig-bar {
    width: 32px;
    height: 2px;
    background: var(--fena-gold);
    border-radius: 2px;
    flex-shrink: 0;
}

.fena-founder__sig-info {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.fena-founder__name {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--fena-ink);
    letter-spacing: 0.04em;
}

.fena-founder__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 1.1rem;
    padding: 0.55rem 1.3rem;
    border-radius: 999px;
    border: 1.5px solid var(--fena-clay);
    color: var(--fena-clay);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: background 0.25s ease, color 0.25s ease;
    align-self: center;
}

.fena-founder__btn:hover {
    background: var(--fena-clay);
    color: #fff;
}

.fena-founder__title {
    font-size: 0.74rem;
    color: var(--fena-muted);
    letter-spacing: 0.02em;
}

/* Pills objectifs */
.fena-about__obj-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1.1rem;
}

.fena-about__obj-pills span {
    display: inline-flex;
    padding: 0.28rem 0.78rem;
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--fena-clay);
    background: rgba(185, 79, 45, 0.09);
    border: 1px solid rgba(185, 79, 45, 0.17);
}

/* Responsive */
@media (max-width: 991.98px) {
    .fena-about__header {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        align-items: start;
    }

    .fena-about__stats {
        flex-wrap: wrap;
        gap: 1.25rem 0;
        padding: 1.5rem;
    }

    .fena-about__stat {
        flex: 0 0 50%;
    }

    .fena-about__stat-sep {
        display: none;
    }

    .fena-about__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .fena-about__stat {
        flex: 0 0 50%;
    }

    .fena-feature-card--wide {
        grid-column: span 1;
    }
}

/* Bloc de présentation FENA */
.fena-presentation-block {
    flex: 1;
    position: relative;
    border-radius: 16px;
    border: 1px solid var(--fena-border);
    background: linear-gradient(135deg, rgba(243, 229, 200, 0.45) 0%, rgba(255, 253, 248, 0.9) 55%);
    box-shadow: var(--fena-shadow-soft);
    overflow: hidden;
    padding: clamp(1.75rem, 3vw, 2.5rem);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.fena-presentation-block::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--fena-clay) 0%, var(--fena-gold) 100%);
}

.fena-presentation-block::after {
    content: '\201C';
    position: absolute;
    bottom: -0.5rem;
    right: 1.5rem;
    font-size: 11rem;
    line-height: 1;
    font-weight: 900;
    color: var(--fena-clay);
    opacity: 0.06;
    pointer-events: none;
    user-select: none;
}

.fena-presentation-block__content {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.fena-presentation-block__lead {
    font-size: 1.08rem;
    font-weight: 600;
    color: var(--fena-ink);
    line-height: 1.72;
    margin: 0;
}

.fena-presentation-block__content p {
    font-size: 0.95rem;
    color: var(--fena-muted);
    line-height: 1.8;
    margin: 0;
}

.fena-presentation-block__cta {
    padding-top: 1.25rem;
    border-top: 1px solid var(--fena-border);
    display: flex;
    justify-content: center;
}

/* =====================================================
   HERO IMMERSIF 2.0
   ===================================================== */

.hero-slider {
    overflow: hidden;
}

.hero-image {
    height: calc(100svh - 72px);
    min-height: 560px;
    max-height: unset;
}

/* Ken Burns */
@keyframes kenBurns {
    from { transform: scale(1) translateZ(0); }
    to   { transform: scale(1.09) translate(-1%, -0.6%) translateZ(0); }
}

.hero-image.kb-play {
    animation: kenBurns 6.5s ease-out forwards;
}

/* Overlay cinématique */
.hero-overlay {
    background:
        linear-gradient(to right, rgba(10, 8, 6, 0.88) 0%, rgba(10, 8, 6, 0.52) 48%, rgba(10, 8, 6, 0.12) 100%),
        linear-gradient(to top, rgba(10, 8, 6, 0.65) 0%, transparent 44%);
}

.hero-overlay::after {
    height: 4px;
    clip-path: none;
    background: linear-gradient(90deg, var(--fena-clay), var(--fena-gold), var(--fena-green), var(--fena-indigo));
    opacity: 1;
}

/* Caption positionnée depuis le bas */
.hero-caption {
    top: auto;
    bottom: 130px;
    transform: none;
}

/* Animations séquencées — remplace l'approche transition */
.hero-caption-inner {
    opacity: 1;
    transform: none;
    transition: none;
}

.hero-caption-inner .hero-kicker,
.hero-caption-inner h1,
.hero-caption-inner h2,
.hero-caption-inner p,
.hero-caption-inner .hero-cta {
    opacity: 0;
    transform: translateY(24px);
}

@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: none; }
}

.hero-caption-inner.is-active .hero-kicker {
    animation: heroFadeUp 0.55s 0.08s ease both;
}

.hero-caption-inner.is-active h1,
.hero-caption-inner.is-active h2 {
    animation: heroFadeUp 0.65s 0.24s ease both;
}

.hero-caption-inner.is-active p {
    animation: heroFadeUp 0.55s 0.44s ease both;
}

.hero-caption-inner.is-active .hero-cta {
    animation: heroFadeUp 0.55s 0.62s ease both;
}

/* Indicateurs — progress bars */
.hero-indicators {
    bottom: 88px;
    margin-bottom: 0;
    gap: 0;
}

.hero-indicators [data-bs-target] {
    width: 54px !important;
    height: 3px;
    border-radius: 2px;
    background: rgba(255, 253, 248, 0.18) !important;
    overflow: hidden;
    opacity: 1 !important;
    transition: none !important;
    padding: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    margin: 0 5px !important;
}

.hero-indicators .active {
    width: 54px !important;
    background: rgba(255, 253, 248, 0.18) !important;
}

.hero-bar {
    display: block;
    height: 100%;
    width: 100%;
    background: var(--fena-gold);
    transform: scaleX(0);
    transform-origin: left;
    will-change: transform;
}

/* Compteur de slide */
.hero-slide-meta {
    position: absolute;
    right: clamp(20px, 4vw, 48px);
    bottom: 88px;
    z-index: 3;
    display: flex;
    align-items: baseline;
    gap: 4px;
    pointer-events: none;
}

.hero-counter-current {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    color: var(--fena-gold);
    font-family: "Poppins", sans-serif;
}

.hero-counter-total {
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(255, 253, 248, 0.42);
    font-family: "Poppins", sans-serif;
    letter-spacing: 0.04em;
}

/* Scroll hint */
.hero-scroll-hint {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    pointer-events: none;
}

.hero-scroll-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 253, 248, 0.46);
    font-family: "Poppins", sans-serif;
}

.hero-scroll-line {
    width: 1px;
    height: 44px;
    background: linear-gradient(to bottom, var(--fena-gold), transparent);
    transform-origin: top;
    animation: scrollPulse 1.7s ease-in-out infinite;
}

@keyframes scrollPulse {
    0%, 100% { opacity: 0.28; transform: scaleY(0.4); }
    55%       { opacity: 1;    transform: scaleY(1); }
}

/* Responsive overrides */
@media (max-width: 991.98px) {
    .hero-image {
        height: calc(100svh - 64px);
        min-height: 520px;
    }

    .hero-caption {
        top: auto;
        bottom: 120px;
        transform: none;
    }

    .hero-slide-meta {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .hero-caption {
        top: auto;
        bottom: 108px;
        transform: none;
    }

    .hero-indicators {
        bottom: 76px;
        justify-content: center;
    }

    .hero-scroll-hint {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .hero-image {
        height: calc(100svh - 58px);
        min-height: 480px;
    }

    .hero-caption {
        bottom: 96px;
    }

    .hero-indicators {
        bottom: 68px;
    }
}

/* =====================================================
   SECTION LES ROIS
   ===================================================== */

.fena-kings {
    position: relative;
    overflow: hidden;
    background:
        repeating-linear-gradient(60deg, rgba(255, 253, 248, 0.016) 0 1px, transparent 1px 42px),
        repeating-linear-gradient(-60deg, rgba(255, 253, 248, 0.016) 0 1px, transparent 1px 42px),
        linear-gradient(160deg, #1b1510 0%, #1e2d24 55%, #1b2038 100%);
    color: #fffdf8;
}

/* Couronne watermark décorative */
.fena-kings::after {
    content: "♛";
    position: absolute;
    bottom: -0.15em;
    right: -0.05em;
    font-size: clamp(10rem, 22vw, 22rem);
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1px rgba(220, 174, 63, 0.07);
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

.fena-kings .container {
    position: relative;
    z-index: 1;
}

/* Section label — variante fond sombre */
.section-label--light {
    color: var(--fena-gold);
    border-color: rgba(220, 174, 63, 0.28);
    background: rgba(220, 174, 63, 0.1);
}

.section-label--light::before {
    background: var(--fena-gold);
    box-shadow: 0 0 0 4px rgba(220, 174, 63, 0.18);
}

/* Header */
.fena-kings__header {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: end;
    margin-bottom: clamp(3rem, 5vw, 4.5rem);
}

.fena-kings__title {
    color: #fffdf8;
}

.fena-kings__intro {
    margin: 0;
    padding-bottom: 0.4rem;
    color: rgba(255, 253, 248, 0.65);
    line-height: 1.75;
    max-width: 540px;
}

/* Grille des rois */
.fena-kings__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

/* Carte roi */
.king-card {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    background: rgba(255, 253, 248, 0.04);
    border: 1px solid rgba(255, 253, 248, 0.08);
    transition: transform 0.32s ease, border-color 0.32s ease, box-shadow 0.32s ease;
}

.king-card:hover {
    transform: translateY(-8px);
    border-color: rgba(220, 174, 63, 0.38);
    box-shadow: 0 24px 52px rgba(0, 0, 0, 0.38);
}

/* Photo */
.king-card__photo {
    position: relative;
    /* aspect-ratio: 3 / 4; */
    overflow: hidden;
}

.king-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.65s ease, filter 0.4s ease;
    filter: saturate(0.8) contrast(1.06);
}

.king-card:hover .king-card__photo img {
    transform: scale(1.06);
    filter: saturate(1) contrast(1.02);
}

/* Vignette basse sur la photo */
.king-card__photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10, 8, 6, 0.7) 0%, transparent 52%);
    pointer-events: none;
}

/* Bandeau info */
.king-card__info {
    padding: 1.4rem 1.4rem 1.6rem;
    border-top: 2px solid var(--fena-gold);
    background-color: #fff;
}

/* Couronne */
.king-card__crown {
    display: inline-block;
    font-size: 1.1rem;
    color: var(--fena-gold);
    margin-bottom: 0.5rem;
    filter: drop-shadow(0 0 6px rgba(220, 174, 63, 0.38));
}

.king-card__name {
    margin: 0 0 0.38rem;
    font-size: 1rem;
    font-weight: 800;
    color: #1a1510;
    line-height: 1.25;
}

.king-card__role {
    margin: 0;
    font-size: 0.79rem;
    color: #5a5550;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: 0.01em;
}

/* Responsive */
@media (max-width: 991.98px) {
    .fena-kings__header {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        align-items: start;
    }

    .fena-kings__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }
}

@media (max-width: 575.98px) {
    .fena-kings__grid {
        grid-template-columns: 1fr;
        gap: 0.85rem;
    }

    .king-card__info {
        padding: 1rem 1rem 1.25rem;
    }

    .king-card__name {
        font-size: 0.88rem;
    }
}

/* Cultures — responsive */
@media (max-width: 1199.98px) {
    .cultures-track { grid-auto-columns: 255px; }
}

@media (max-width: 991.98px) {
    .cultures-arrow { display: none; }
    .cultures-swipe-hint { display: flex; }
    .fena-cultures__progress { display: none; }
    .cultures-track { grid-auto-columns: 52vw; }
}

@media (max-width: 767.98px) {
    .cultures-track { grid-auto-columns: 72vw; }
    .fena-cultures__header { flex-direction: column; align-items: flex-start; }
    .fena-cultures__header .btn-fena { align-self: flex-start; }
}

@media (max-width: 575.98px) {
    .cultures-track { grid-auto-columns: 82vw; }
}

/* =====================================================
   SECTION PROGRAMME 2.0 — 6e Édition
   ===================================================== */

/* =====================================================
   SECTION ÉDITIONS
   ===================================================== */

.fena-editions {
    background: linear-gradient(160deg, var(--fena-cream) 0%, #fff8ee 100%);
}

/* En-tête */
.fena-editions__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.fena-editions__title {
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.12;
    color: var(--fena-ink);
    margin: 0.6rem 0 0;
}

.fena-editions__title-accent {
    color: var(--fena-clay);
}

.editions-count-badge {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: clamp(90px, 12vw, 130px);
    height: clamp(90px, 12vw, 130px);
    border-radius: 50%;
    background: linear-gradient(135deg, var(--fena-clay) 0%, var(--fena-gold) 100%);
    box-shadow: 0 8px 28px rgba(185, 79, 45, 0.3);
    color: #fffdf8;
    animation: badgeFloat 3.5s ease-in-out infinite;
}

@keyframes badgeFloat {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-8px); }
}

.editions-count-badge__num {
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.02em;
    position: relative;
}

.editions-count-badge__sup {
    font-size: 0.38em;
    font-weight: 700;
    vertical-align: super;
    letter-spacing: 0;
}

.editions-count-badge__text {
    font-size: clamp(0.55rem, 1.1vw, 0.7rem);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.88;
    margin-top: 2px;
}

/* Tabs */
.fena-editions__tabs {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: clamp(1.8rem, 3.5vw, 2.8rem);
    overflow-x: auto;
    padding-bottom: 0.25rem;
    scrollbar-width: none;
}

.fena-editions__tabs::-webkit-scrollbar { display: none; }

.edition-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.25rem;
    border-radius: 999px;
    border: 1.5px solid var(--fena-border);
    background: #fff;
    color: var(--fena-muted);
    font-size: 0.82rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: border-color 0.22s, color 0.22s, background 0.22s, box-shadow 0.22s;
}

.edition-tab:hover:not(:disabled) {
    border-color: var(--fena-clay);
    color: var(--fena-clay);
}

.edition-tab--on,
.edition-tab[aria-selected="true"] {
    background: var(--fena-clay);
    border-color: var(--fena-clay);
    color: #fff;
    box-shadow: 0 4px 14px rgba(185, 79, 45, 0.32);
}

.edition-tab__roman {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    opacity: 0.8;
}

.edition-tab--on .edition-tab__roman,
.edition-tab[aria-selected="true"] .edition-tab__roman {
    opacity: 1;
}

.edition-tab--upcoming {
    opacity: 0.45;
    cursor: not-allowed;
    border-style: dashed;
}

/* Panels */
.fena-editions__panels {
    position: relative;
}

.edition-panel {
    display: none;
}

.edition-panel--active {
    display: block;
    animation: panelFadeIn 0.35s ease both;
}

@keyframes panelFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}

/* Meta bar */
.edition-panel__meta {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    padding: 1.25rem 1.5rem;
    background: #fff;
    border-radius: 14px;
    border: 1px solid var(--fena-border);
    box-shadow: 0 2px 8px rgba(29, 26, 22, 0.06);
}

.edition-panel__badge {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--fena-clay) 0%, var(--fena-gold) 100%);
    color: #fffdf8;
    line-height: 1;
    box-shadow: 0 6px 18px rgba(185, 79, 45, 0.28);
}

.edition-roman {
    font-size: clamp(1rem, 2.5vw, 1.4rem);
    font-weight: 900;
    letter-spacing: 0.04em;
}

.edition-label {
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-top: 2px;
    opacity: 0.9;
}

.edition-panel__info {
    flex: 1;
}

.edition-panel__name {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--fena-ink);
    margin: 0 0 0.3rem;
}

.edition-panel__desc {
    font-size: 0.9rem;
    color: var(--fena-muted);
    margin: 0;
    line-height: 1.6;
}

/* Grille des cartes */
.editions-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: clamp(240px, 28vw, 340px);
    gap: 1.25rem;
}

/* Locked panel */
.edition-panel--locked .edition-panel__lock {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: clamp(3rem, 8vw, 5rem) 2rem;
    border-radius: 18px;
    border: 2px dashed var(--fena-border);
    text-align: center;
    background: rgba(255, 253, 248, 0.6);
}

.edition-panel__lock-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(111, 103, 93, 0.08);
    color: var(--fena-muted);
}

.edition-panel__lock-title {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--fena-ink);
    margin: 0;
}

.edition-panel__lock-desc {
    font-size: 0.92rem;
    color: var(--fena-muted);
    max-width: 40ch;
    margin: 0;
    line-height: 1.65;
}

/* Event card */
.event-card {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    min-height: 200px;
    cursor: default;
    box-shadow: 0 10px 30px rgba(48, 39, 26, 0.14);
    transition: transform 0.32s cubic-bezier(.22,.68,0,1.2), box-shadow 0.28s;
}

.event-card:hover {
    transform: translateY(-5px) scale(1.013);
    box-shadow: 0 18px 42px rgba(48, 39, 26, 0.2);
}

.event-card__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 6s ease;
    will-change: transform;
}

.event-card:hover .event-card__bg {
    transform: scale(1.07);
}

.event-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(20, 16, 10, 0.88) 0%,
        rgba(20, 16, 10, 0.38) 48%,
        rgba(20, 16, 10, 0.06) 100%
    );
    transition: background 0.3s;
}

.event-card:hover .event-card__overlay {
    background: linear-gradient(
        to top,
        rgba(20, 16, 10, 0.92) 0%,
        rgba(20, 16, 10, 0.5) 55%,
        rgba(20, 16, 10, 0.1) 100%
    );
}

.event-card__content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(1rem, 2.2vw, 1.6rem);
}

.event-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: rgba(220, 174, 63, 0.18);
    border: 1px solid rgba(220, 174, 63, 0.38);
    color: var(--fena-gold);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    width: fit-content;
    margin-bottom: 0.55rem;
    backdrop-filter: blur(4px);
}

.event-card__icon {
    font-size: 0.9rem;
}

.event-card__title {
    font-size: clamp(0.95rem, 1.6vw, 1.15rem);
    font-weight: 700;
    color: #fffdf8;
    margin: 0 0 0;
    line-height: 1.2;
    transition: color 0.22s;
}

.event-card__desc {
    font-size: clamp(0.78rem, 1.2vw, 0.88rem);
    color: rgba(255, 253, 248, 0.72);
    margin: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.38s ease, opacity 0.28s ease, margin-top 0.28s;
    line-height: 1.5;
}

.event-card:hover .event-card__desc {
    max-height: 100px;
    opacity: 1;
    margin-top: 0.45rem;
}

/* CTA éditions */
.fena-editions__cta {
    text-align: center;
    margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

/* Responsive éditions */
@media (max-width: 991.98px) {
    .fena-editions__header {
        flex-direction: column;
        align-items: flex-start;
    }
    .editions-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575.98px) {
    .editions-grid {
        grid-template-columns: 1fr;
    }
    .edition-panel__meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
}

/* =====================================================
   SECTION GALERIE 2.0 — Mur de mémoires
   ===================================================== */

.fena-gallery {
    position: relative;
    overflow: hidden;
    background: linear-gradient(160deg, #fffaf0 0%, #fff8e8 60%, #fdf5e8 100%);
}

.fena-gallery::before,
.fena-gallery::after {
    display: none;
}

.fena-gallery > .container {
    position: relative;
    z-index: 3;
}

/* En-tête */
.fena-gallery__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
}

.fena-gallery__title {
    font-size: clamp(1.9rem, 4.5vw, 3.2rem);
    font-weight: 800;
    color: var(--fena-ink);
    line-height: 1.08;
    margin: 0.5rem 0 0;
}

.fena-gallery__intro {
    color: var(--fena-muted);
    font-size: 0.95rem;
    margin: 0.55rem 0 0;
    max-width: 36ch;
}

/* Tabs galerie */
.gallery-tabs {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
    overflow-x: auto;
    padding-bottom: 0.25rem;
    scrollbar-width: none;
}

.gallery-tabs::-webkit-scrollbar { display: none; }

.gallery-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.1rem;
    border-radius: 999px;
    border: 1.5px solid var(--fena-border);
    background: #fff;
    color: var(--fena-muted);
    font-size: 0.8rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: border-color 0.22s, color 0.22s, background 0.22s, box-shadow 0.22s;
}

.gallery-tab:hover {
    border-color: var(--fena-clay);
    color: var(--fena-clay);
}

.gallery-tab--on,
.gallery-tab[aria-selected="true"] {
    background: var(--fena-clay);
    border-color: var(--fena-clay);
    color: #fff;
    box-shadow: 0 4px 14px rgba(185, 79, 45, 0.4);
}

.gallery-tab__roman {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    opacity: 0.75;
}

.gallery-tab--on .gallery-tab__roman,
.gallery-tab[aria-selected="true"] .gallery-tab__roman {
    opacity: 1;
}

/* Panels galerie */
.fena-gallery__panels {
    position: relative;
}

.gallery-panel {
    display: none;
}

.gallery-panel--active {
    display: block;
    animation: panelFadeIn 0.35s ease both;
}

/* Grille uniforme pour les panels édition */
.gallery-edition-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: clamp(220px, 26vw, 320px);
    gap: 0.875rem;
}

/* Grille bento — 3 cols, 3 rangées */
.fena-gallery__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows:
        clamp(210px, 25vw, 310px)
        clamp(210px, 25vw, 310px)
        clamp(175px, 19vw, 230px);
    gap: 0.875rem;
}

/* Placement explicite — bento asymétrique */
.fena-gallery__grid .gallery-item:nth-child(1) { grid-column: 1;     grid-row: 1 / 3; } /* tall gauche */
.fena-gallery__grid .gallery-item:nth-child(2) { grid-column: 2;     grid-row: 1; }
.fena-gallery__grid .gallery-item:nth-child(3) { grid-column: 3;     grid-row: 1; }
.fena-gallery__grid .gallery-item:nth-child(4) { grid-column: 2;     grid-row: 2; }
.fena-gallery__grid .gallery-item:nth-child(5) { grid-column: 3;     grid-row: 2; }
.fena-gallery__grid .gallery-item:nth-child(6) { grid-column: 1 / 3; grid-row: 3; } /* wide bas gauche */
.fena-gallery__grid .gallery-item:nth-child(7) { grid-column: 3;     grid-row: 3; }

/* Gallery item */
.gallery-item {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    background: #2a1e10;
}

.gallery-item__btn {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: zoom-in;
    position: relative;
}

.gallery-item__btn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(0.88) brightness(0.92);
    transition: transform 0.5s cubic-bezier(.22,.68,0,1.2), filter 0.4s ease;
}

.gallery-item:hover .gallery-item__btn img {
    transform: scale(1.07);
    filter: saturate(1.08) brightness(1.06);
}

/* Overlay caption */
.gallery-item__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    padding: 1rem 1.1rem;
    background: linear-gradient(to top, rgba(18, 12, 5, 0.82) 0%, transparent 52%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.gallery-item:hover .gallery-item__overlay {
    opacity: 1;
}

.gallery-item__caption {
    font-size: 0.78rem;
    font-weight: 700;
    color: #fffdf8;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    background: rgba(185, 79, 45, 0.78);
    padding: 0.22rem 0.6rem;
    border-radius: 4px;
    backdrop-filter: blur(4px);
    transform: translateY(6px);
    transition: transform 0.3s ease;
}

.gallery-item:hover .gallery-item__caption {
    transform: translateY(0);
}

/* Bordure gold au hover */
.gallery-item::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 10px;
    border: 2px solid transparent;
    transition: border-color 0.3s ease;
    pointer-events: none;
    z-index: 2;
}

.gallery-item:hover::after {
    border-color: var(--fena-gold);
}

/* Responsive galerie */
@media (max-width: 991.98px) {
    .fena-gallery__grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: unset;
        grid-auto-rows: clamp(190px, 36vw, 270px);
    }
    .fena-gallery__grid .gallery-item:nth-child(n) {
        grid-column: unset;
        grid-row: unset;
    }
    .fena-gallery__grid .gallery-item:nth-child(1) { grid-column: 1 / 3; }
    .fena-gallery__grid .gallery-item:nth-child(6) { grid-column: 1 / 3; }

    .gallery-edition-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575.98px) {
    .fena-gallery__header { flex-direction: column; align-items: flex-start; }
    .fena-gallery__grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 60vw;
    }
    .fena-gallery__grid .gallery-item:nth-child(n) {
        grid-column: 1;
        grid-row: unset;
    }
    .gallery-edition-grid {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
   LANGUAGE SWITCHER
   ===================================================== */
.lang-switch {
    display: inline-flex;
    align-items: center;
    gap: 0;
    background: rgba(60, 48, 35, 0.08);
    border: 1px solid var(--fena-border);
    border-radius: 999px;
    padding: 3px 4px;
    height: 34px;
}

.lang-btn {
    background: transparent;
    border: none;
    border-radius: 999px;
    color: var(--fena-ink);
    cursor: pointer;
    font-family: inherit;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    line-height: 1;
    padding: 5px 11px;
    transition: background 0.18s ease, color 0.18s ease;
}

.lang-btn:hover:not(.lang-btn--on) {
    background: rgba(60, 48, 35, 0.1);
}

.lang-btn--on {
    background: var(--fena-clay);
    color: #fff;
    box-shadow: 0 1px 4px rgba(185, 79, 45, 0.35);
}

.lang-sep {
    display: inline-block;
    width: 1px;
    height: 14px;
    background: var(--fena-border);
    margin: 0 1px;
    flex-shrink: 0;
}


@media (max-width: 1199.98px) {
    .lang-switch {
        margin-top: 0.5rem;
    }
}

/* =====================================================
   PAGES.CSS — Fusionné dans fena.css
   ===================================================== */

/* ─── Page Hero ─── */
.page-hero {
    position: relative;
    min-height: 420px;
    display: flex;
    align-items: flex-end;
    padding: 0;
    overflow: hidden;
    background: var(--fena-ink);
}

@keyframes heroZoom {
    from { transform: scale(1); }
    to   { transform: scale(1.08); }
}

.page-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 30%;
    opacity: 0.45;
    transform-origin: center center;
    animation: heroZoom 9s ease forwards;
}

.page-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(20, 16, 10, 0.35) 0%,
        rgba(20, 16, 10, 0.72) 60%,
        rgba(20, 16, 10, 0.92) 100%
    );
}

.page-hero__content {
    position: relative;
    z-index: 2;
    padding: 5rem 0 3.5rem;
    width: 100%;
}

.page-hero__breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(255, 253, 248, 0.6);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.page-hero__breadcrumb a {
    color: rgba(255, 253, 248, 0.6);
    text-decoration: none;
    transition: color 0.2s;
}

.page-hero__breadcrumb a:hover { color: var(--fena-gold); }

.page-hero__breadcrumb li + li::before {
    content: '/';
    margin-right: 0.45rem;
    opacity: 0.45;
}

.page-hero__breadcrumb .current { color: var(--fena-gold); }

.page-hero__kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
    padding: 0.32rem 0.8rem;
    border: 1px solid rgba(220, 174, 63, 0.38);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--fena-gold);
    background: rgba(220, 174, 63, 0.1);
}

.page-hero__kicker::before {
    content: '';
    width: 0.44rem;
    height: 0.44rem;
    border-radius: 50%;
    background: var(--fena-gold);
}

.page-hero__title {
    font-size: clamp(2rem, 4.5vw, 3.25rem);
    font-weight: 800;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 1rem;
    max-width: 720px;
}

.page-hero__desc {
    font-size: clamp(0.95rem, 1.4vw, 1.1rem);
    line-height: 1.8;
    color: rgba(255, 253, 248, 0.78);
    max-width: 620px;
    margin: 0;
}

/* ─── Stats Bar ─── */
.fena-stats {
    background: var(--fena-clay);
    padding: 2.75rem 0;
}

.fena-stats__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    text-align: center;
}

.fena-stat__num {
    display: block;
    font-size: clamp(1.9rem, 3.2vw, 2.75rem);
    font-weight: 800;
    color: #fff;
    line-height: 1;
    margin-bottom: 0.3rem;
}

.fena-stat__label {
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(255, 253, 248, 0.72);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ─── Présentation section ─── */
.fena-presentation {
    background: var(--fena-cream);
}

.presentation-text__lead {
    font-size: clamp(1.05rem, 1.5vw, 1.2rem);
    font-weight: 600;
    line-height: 1.7;
    color: var(--fena-ink);
    margin-bottom: 1.25rem;
}

.presentation-text__body {
    font-size: 0.97rem;
    line-height: 1.85;
    color: var(--fena-muted);
}

.presentation-images {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 0.875rem;
    height: 520px;
}

.presentation-img {
    border-radius: 14px;
    overflow: hidden;
}

.presentation-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.presentation-img:hover img { transform: scale(1.04); }

/* ─── Mission & Vision ─── */
.fena-mission {
    background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%);
}

.mission-card {
    border-radius: 18px;
    padding: clamp(1.75rem, 3vw, 2.5rem);
    height: 100%;
}

.mission-card--dark {
    background: var(--fena-ink);
    color: rgba(255, 253, 248, 0.85);
}

.mission-card--light {
    background: #fff;
    border: 1px solid var(--fena-border);
    box-shadow: var(--fena-shadow-soft);
    color: var(--fena-ink);
}

.mission-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    font-size: 1.5rem;
}

.mission-card--dark .mission-card__icon {
    background: rgba(220, 174, 63, 0.15);
    color: var(--fena-gold);
}

.mission-card--light .mission-card__icon {
    background: rgba(185, 79, 45, 0.1);
    color: var(--fena-clay);
}

.mission-card__title {
    font-size: 1.3rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.mission-card--dark .mission-card__title { color: #fff; }
.mission-card--light .mission-card__title { color: var(--fena-ink); }

.mission-card__body {
    font-size: 0.95rem;
    line-height: 1.8;
}

/* ─── Objectifs ─── */
.fena-objectives {
    background: var(--fena-ink);
}

.objective-card {
    background: rgba(255, 253, 248, 0.05);
    border: 1px solid rgba(255, 253, 248, 0.09);
    border-radius: 18px;
    padding: clamp(1.5rem, 2.5vw, 2.25rem);
    height: 100%;
    transition: background 0.25s, border-color 0.25s, transform 0.25s;
}

.objective-card:hover {
    background: rgba(255, 253, 248, 0.08);
    border-color: rgba(220, 174, 63, 0.22);
    transform: translateY(-4px);
}

.objective-card__num {
    font-size: 3rem;
    font-weight: 800;
    color: rgba(220, 174, 63, 0.2);
    line-height: 1;
    margin-bottom: 0.75rem;
}

.objective-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 0.65rem;
}

.objective-card__body {
    font-size: 0.88rem;
    line-height: 1.75;
    color: rgba(255, 253, 248, 0.6);
}

/* ─── Valeurs ─── */
.fena-values {
    background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%);
}

.value-item {
    display: flex;
    gap: 1.25rem;
    padding: 1.75rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--fena-border);
    box-shadow: var(--fena-shadow-soft);
    transition: transform 0.25s, box-shadow 0.25s;
    height: 100%;
}

.value-item:hover {
    transform: translateY(-4px);
    box-shadow: var(--fena-shadow);
}

.value-item__icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

.value-item__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--fena-ink);
    margin-bottom: 0.45rem;
}

.value-item__body {
    font-size: 0.87rem;
    line-height: 1.7;
    color: var(--fena-muted);
    margin: 0;
}

/* ─── Fondatrice (page about) ─── */
.fena-about-founder {
    background: var(--fena-ink);
}

.about-founder__portrait {
    border-radius: 18px;
    overflow: hidden;
    height: 480px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.35);
}

.about-founder__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 15%;
    display: block;
}

.about-founder__kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 1rem;
    padding: 0.32rem 0.8rem;
    border: 1px solid rgba(220, 174, 63, 0.38);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--fena-gold);
}

.about-founder__quote-mark {
    font-family: Georgia, serif;
    font-size: 5rem;
    line-height: 0.8;
    color: rgba(220, 174, 63, 0.3);
    display: block;
    margin-bottom: -1rem;
}

.about-founder__quote {
    font-size: clamp(1.05rem, 1.6vw, 1.22rem);
    font-style: italic;
    line-height: 1.8;
    color: rgba(255, 253, 248, 0.85);
    margin-bottom: 1.5rem;
}

.about-founder__name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--fena-gold);
    margin-bottom: 0.25rem;
}

.about-founder__role {
    font-size: 0.82rem;
    color: rgba(255, 253, 248, 0.5);
}

/* ─── Page CTA ─── */
.page-cta {
    position: relative;
    overflow: hidden;
    background: var(--fena-clay);
    text-align: center;
    padding: 5.5rem 0;
}

.page-cta__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.18;
}

.page-cta__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(185,79,45,0.82) 0%, rgba(37,56,95,0.75) 100%);
}

.page-cta__content {
    position: relative;
    z-index: 2;
}

.page-cta__title {
    font-size: clamp(1.8rem, 3.2vw, 2.75rem);
    font-weight: 800;
    color: #fff;
    margin-bottom: 1rem;
}

.page-cta__desc {
    font-size: clamp(0.95rem, 1.3vw, 1.05rem);
    color: rgba(255, 253, 248, 0.8);
    max-width: 560px;
    margin: 0 auto 2rem;
    line-height: 1.75;
}

.btn-fena-white {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.8rem 1.9rem;
    border-radius: 999px;
    background: #fff;
    color: var(--fena-clay);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
    box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}

.btn-fena-white:hover {
    background: var(--fena-cream);
    color: var(--fena-clay);
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.22);
}

.btn-fena-outline-white {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.8rem 1.9rem;
    border-radius: 999px;
    border: 2px solid rgba(255,253,248,0.45);
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    transition: border-color 0.2s, background 0.2s, transform 0.2s;
}

.btn-fena-outline-white:hover {
    border-color: rgba(255,253,248,0.85);
    background: rgba(255,253,248,0.1);
    color: #fff;
    transform: translateY(-2px);
}

/* ─── Pages.css Responsive ─── */
@media (max-width: 991.98px) {
    .fena-stats__grid { grid-template-columns: repeat(3, 1fr); }
    .presentation-images { height: 360px; }
    .about-founder__portrait { height: 360px; }
}

@media (max-width: 575.98px) {
    .fena-stats__grid { grid-template-columns: repeat(2, 1fr); }
    .page-hero { min-height: 340px; }
    .fena-stats__grid .fena-stat:last-child { grid-column: 1 / -1; }
}

/* =====================================================
   UTILITAIRES PARTAGÉS
   ===================================================== */

/* Scroll reveal — utilisé sur toutes les pages internes */
.sr {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}
.sr.sr--visible { opacity: 1; transform: translateY(0); }
.sr--visible { opacity: 1; transform: none; }
.sr--left { transform: translateX(-30px); }
.sr--right { transform: translateX(30px); }
.sr--left.sr--visible,
.sr--right.sr--visible { transform: none; }

/* Badges de région — cultures.html et rois.html */
.region--ouest  { background: rgba(185,79,45,0.88);  color: #fff; }
.region--centre { background: rgba(37,56,95,0.88);   color: #fff; }
.region--est    { background: rgba(41,111,80,0.88);  color: #fff; }
.region--sud    { background: rgba(126,54,130,0.88); color: #fff; }
.region--nord   { background: rgba(165,120,45,0.88); color: #fff; }

/* Champs formulaire — contact.html et rejoindre.html */
.form-label-custom {
    font-size: 0.74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--fena-ink);
    margin-bottom: 0.4rem;
    display: block;
}
.form-control-custom {
    width: 100%;
    padding: 0.72rem 1rem;
    border: 1.5px solid var(--fena-border);
    border-radius: 10px;
    background: var(--fena-cream);
    font-family: Poppins, sans-serif;
    font-size: 0.85rem;
    color: var(--fena-ink);
    transition: border-color 0.2s, box-shadow 0.2s;
    outline: none;
    -webkit-appearance: none;
}
.form-control-custom:focus {
    border-color: var(--fena-gold);
    box-shadow: 0 0 0 3.5px rgba(220,174,63,0.15);
    background: #fff;
}
.form-control-custom.is-error { border-color: var(--fena-clay); }
.form-error-msg {
    font-size: 0.71rem;
    color: var(--fena-clay);
    margin-top: 0.3rem;
    display: none;
}
.form-group.has-error .form-error-msg { display: block; }
select.form-control-custom { cursor: pointer; }
textarea.form-control-custom { resize: vertical; min-height: 120px; }

/* Catégories actualités — actualites.html et detail-actualite.html */
.news-cat {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.72rem;
    border-radius: 999px;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: 1px solid;
    margin-bottom: 0.55rem;
    align-self: flex-start;
}
.ncat--annonce    { background: rgba(185,79,45,0.09);  color: var(--fena-clay);   border-color: rgba(185,79,45,0.22); }
.ncat--evenement  { background: rgba(220,174,63,0.11); color: #9a7415;            border-color: rgba(220,174,63,0.28); }
.ncat--portrait   { background: rgba(37,95,70,0.09);   color: var(--fena-green);  border-color: rgba(37,95,70,0.22); }
.ncat--presse     { background: rgba(37,56,95,0.09);   color: var(--fena-indigo); border-color: rgba(37,56,95,0.22); }
.ncat--communique { background: rgba(111,103,93,0.09); color: var(--fena-muted);  border-color: rgba(111,103,93,0.22); }

/* Utilitaire */
.is-hidden { display: none !important; }

/* Scroll-top au-dessus du bouton WhatsApp flottant */
.has-float-wa .scroll-top {
    bottom: 5.75rem;
}

/* Animations supplémentaires */
@keyframes panelIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes scrollBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(5px); }
}
@keyframes pin-pulse {
    0%, 100% { box-shadow: 0 8px 32px rgba(220,174,63,0.4); }
    50% { box-shadow: 0 8px 48px rgba(220,174,63,0.7); transform: scale(1.06); }
}

/* =====================================================
   PAGE: CONTACT
   ===================================================== */
.page-contact .page-hero__content { padding-top: 4.5rem; padding-bottom: 3.5rem; }

.contact-section { background: var(--fena-cream); padding: 5.5rem 0 6rem; }
.contact-info { display: flex; flex-direction: column; gap: 1.1rem; }
.contact-card {
    display: flex; align-items: flex-start; gap: 1.1rem;
    background: #fff; border: 1px solid var(--fena-border);
    border-radius: 16px; padding: 1.35rem 1.4rem;
    box-shadow: var(--fena-shadow-soft);
    transition: transform 0.25s, box-shadow 0.25s;
}
.contact-card:hover { transform: translateY(-3px); box-shadow: var(--fena-shadow); }
.contact-card__icon {
    width: 48px; height: 48px; border-radius: 12px;
    background: rgba(220,174,63,0.1);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; color: var(--fena-gold);
}
.contact-card__body { flex: 1; min-width: 0; }
.contact-card__label {
    font-size: 0.68rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--fena-muted); margin-bottom: 0.2rem;
}
.contact-card__value { font-size: 0.92rem; font-weight: 600; color: var(--fena-ink); line-height: 1.4; }
.contact-card__value a { color: inherit; text-decoration: none; transition: color 0.2s; }
.contact-card__value a:hover { color: var(--fena-clay); }
.contact-socials { display: flex; gap: 0.65rem; margin-top: 1.8rem; }
.contact-social {
    width: 42px; height: 42px; border-radius: 50%;
    background: #fff; border: 1.5px solid var(--fena-border);
    display: flex; align-items: center; justify-content: center;
    color: var(--fena-muted); transition: all 0.22s;
    box-shadow: var(--fena-shadow-soft);
}
.contact-social:hover { background: var(--fena-ink); border-color: var(--fena-ink); color: #fff; transform: translateY(-2px); }
.contact-form-wrap {
    background: #fff; border-radius: 24px;
    padding: 2.5rem 2.2rem 2.8rem;
    box-shadow: 0 12px 48px rgba(29,26,22,0.08);
    border: 1px solid var(--fena-border);
}
.contact-form-title { font-size: clamp(1.3rem, 2.2vw, 1.65rem); font-weight: 800; color: var(--fena-ink); margin-bottom: 0.4rem; line-height: 1.2; }
.contact-form-sub { font-size: 0.82rem; color: var(--fena-muted); margin-bottom: 1.8rem; }
.btn-contact-submit {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 0.55rem; width: 100%; padding: 0.85rem 2rem;
    border-radius: 999px; background: var(--fena-ink); color: #fff;
    font-family: Poppins, sans-serif; font-size: 0.9rem; font-weight: 700;
    border: none; cursor: pointer;
    transition: background 0.25s, transform 0.2s; letter-spacing: 0.02em;
}
.btn-contact-submit:hover { background: var(--fena-clay); transform: translateY(-2px); }
.btn-contact-submit:active { transform: translateY(0); }
.btn-contact-submit svg { flex-shrink: 0; }
.contact-success { display: none; text-align: center; padding: 3rem 1.5rem; }
.contact-success__icon {
    width: 72px; height: 72px; border-radius: 50%;
    background: rgba(37,95,70,0.08);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1.4rem; color: var(--fena-green);
}
.contact-success__title { font-size: 1.35rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.5rem; }
.contact-success__sub { font-size: 0.85rem; color: var(--fena-muted); max-width: 320px; margin: 0 auto 1.6rem; }
.contact-map { background: var(--fena-ink); padding: 5rem 0 0; overflow: hidden; }
.contact-map__header { padding-bottom: 2.5rem; }
.contact-map__embed {
    position: relative; height: 380px; overflow: hidden;
    border-radius: 20px 20px 0 0; margin-top: 1.5rem;
}
.contact-map__embed-placeholder {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    width: 100%; height: 100%;
    background: linear-gradient(135deg, rgba(29,26,22,0.88) 0%, rgba(37,56,95,0.6) 100%);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 1rem;
}
.contact-map__pin {
    width: 60px; height: 60px; border-radius: 50%;
    background: var(--fena-gold);
    display: flex; align-items: center; justify-content: center;
    color: var(--fena-ink); box-shadow: 0 8px 32px rgba(220,174,63,0.4);
    animation: pin-pulse 2.2s ease-in-out infinite;
}
.contact-map__location { color: rgba(255,253,248,0.9); font-size: 1rem; font-weight: 600; text-align: center; }
.contact-map__location span { display: block; font-size: 0.75rem; font-weight: 400; color: rgba(255,253,248,0.5); margin-top: 0.2rem; }
.contact-faq { background: var(--fena-cream); padding: 5.5rem 0; }
.faq-item { border-bottom: 1px solid var(--fena-border); }
.faq-item:first-child { border-top: 1px solid var(--fena-border); }
.faq-btn {
    width: 100%; background: transparent; border: none;
    padding: 1.3rem 0;
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; cursor: pointer; text-align: left;
    font-family: Poppins, sans-serif; font-size: 0.95rem; font-weight: 700;
    color: var(--fena-ink); transition: color 0.2s;
}
.faq-btn:hover { color: var(--fena-clay); }
.faq-btn.is-open { color: var(--fena-clay); }
.faq-icon {
    width: 28px; height: 28px; border-radius: 50%;
    border: 1.5px solid currentColor;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; transition: transform 0.3s, background 0.2s;
}
.faq-btn.is-open .faq-icon {
    background: var(--fena-clay); border-color: var(--fena-clay);
    color: #fff; transform: rotate(45deg);
}
.faq-body { overflow: hidden; max-height: 0; transition: max-height 0.38s ease; }
.faq-body.is-open { max-height: 400px; }
.faq-body-inner { padding: 0 0 1.4rem; font-size: 0.87rem; color: var(--fena-muted); line-height: 1.75; max-width: 680px; }
.contact-cta { position: relative; overflow: hidden; padding: 5.5rem 0; }
.contact-cta__bg {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background-image: url('../slide/slide-fena-5-3.jpg');
    background-size: cover; background-position: center; filter: brightness(0.3);
}
.contact-cta__overlay {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(135deg, rgba(29,26,22,0.7) 0%, rgba(37,56,95,0.5) 100%);
}
.contact-cta__content { position: relative; z-index: 1; text-align: center; }
@media (max-width: 991.98px) {
    .contact-form-wrap { padding: 2rem 1.4rem 2.2rem; margin-top: 2.5rem; }
    .contact-map__embed { height: 280px; }
}
@media (max-width: 575.98px) {
    .contact-section { padding: 4rem 0; }
    .contact-map { padding: 4rem 0 0; }
    .contact-faq { padding: 4rem 0; }
}

/* =====================================================
   PAGE: CULTURES
   ===================================================== */
.page-cultures .page-hero { min-height: 380px; }
.page-cultures .page-hero__content { padding-top: 5rem; padding-bottom: 3.5rem; }

.cult-stats { background: var(--fena-clay); padding: 2.5rem 0; }
.cult-stats__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; }
.cult-stat { text-align: center; padding: 0.75rem 1rem; border-right: 1px solid rgba(255,253,248,0.18); }
.cult-stat:last-child { border-right: none; }
.cult-stat__num { display: block; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; color: #fff; line-height: 1; margin-bottom: 0.3rem; }
.cult-stat__label { font-size: 0.75rem; font-weight: 600; color: rgba(255,253,248,0.72); text-transform: uppercase; letter-spacing: 0.06em; }
.cult-intro { background: var(--fena-ink); }
.cult-intro__lead { font-size: clamp(1.05rem, 1.7vw, 1.25rem); font-weight: 600; line-height: 1.7; color: #fff; margin-bottom: 1.25rem; }
.cult-intro__body { font-size: 0.97rem; line-height: 1.9; color: rgba(255,253,248,0.68); margin-bottom: 0; }
.cult-intro__images { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 240px 200px; gap: 0.75rem; }
.cult-intro__img { border-radius: 14px; overflow: hidden; }
.cult-intro__img:first-child { grid-row: 1 / 3; }
.cult-intro__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.cult-intro__img:hover img { transform: scale(1.04); }
.cult-domains { background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%); }
.domain-card { position: relative; border-radius: 20px; overflow: hidden; height: 300px; }
.domain-card__bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 0.6s ease; }
.domain-card:hover .domain-card__bg { transform: scale(1.07); }
.domain-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,16,10,0.9) 0%, rgba(20,16,10,0.45) 55%, rgba(20,16,10,0.18) 100%); }
.domain-card__content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.75rem 1.5rem; }
.domain-card__icon { width: 48px; height: 48px; border-radius: 12px; background: rgba(220,174,63,0.18); border: 1px solid rgba(220,174,63,0.3); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 0.9rem; }
.domain-card__tag { display: inline-flex; align-items: center; padding: 0.22rem 0.6rem; border-radius: 999px; background: rgba(220,174,63,0.15); border: 1px solid rgba(220,174,63,0.3); color: var(--fena-gold); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 0.6rem; width: fit-content; }
.domain-card__title { font-size: 1.12rem; font-weight: 800; color: #fff; margin-bottom: 0.4rem; line-height: 1.2; }
.domain-card__desc { font-size: 0.82rem; color: rgba(255,253,248,0); line-height: 1.6; margin: 0; max-height: 0; overflow: hidden; transition: max-height 0.4s ease, color 0.3s; }
.domain-card:hover .domain-card__desc { max-height: 80px; color: rgba(255,253,248,0.72); }
.cult-gallery { background: var(--fena-cream); }
.filter-bar { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.filter-btn { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.48rem 1.1rem; border-radius: 999px; border: 1.5px solid var(--fena-border); background: transparent; color: var(--fena-ink); font-family: inherit; font-size: 0.85rem; font-weight: 600; white-space: nowrap; cursor: pointer; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; }
.filter-btn:hover { border-color: var(--fena-clay); color: var(--fena-clay); }
.filter-btn.is-active { background: var(--fena-clay); border-color: var(--fena-clay); color: #fff; box-shadow: 0 4px 14px rgba(185,79,45,0.28); }
.cult-grid { columns: 3; column-gap: 1rem; }
.cult-photo { break-inside: avoid; margin-bottom: 1rem; border-radius: 12px; overflow: hidden; position: relative; display: block; cursor: pointer; }
.cult-photo.is-hidden { display: none; }
.cult-photo img { width: 100%; display: block; transition: transform 0.5s ease; }
.cult-photo:hover img { transform: scale(1.04); }
.cult-photo__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,16,10,0.75) 0%, transparent 55%); opacity: 0; transition: opacity 0.3s; display: flex; align-items: flex-end; padding: 1rem; }
.cult-photo:hover .cult-photo__overlay { opacity: 1; }
.cult-photo__label { font-size: 0.78rem; font-weight: 700; color: #fff; letter-spacing: 0.04em; text-transform: uppercase; }
.cult-peoples { background: #fff; }
.people-card { border-radius: 18px; border: 1px solid var(--fena-border); overflow: hidden; background: #fff; box-shadow: var(--fena-shadow-soft); transition: transform 0.28s, box-shadow 0.28s; height: 100%; }
.people-card:hover { transform: translateY(-6px); box-shadow: var(--fena-shadow); }
.people-card__img { height: 220px; overflow: hidden; position: relative; }
.people-card__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; transition: transform 0.5s ease; }
.people-card:hover .people-card__img img { transform: scale(1.06); }
.people-card__region { position: absolute; top: 0.75rem; left: 0.75rem; display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.22rem 0.65rem; border-radius: 999px; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; backdrop-filter: blur(8px); }
.people-card__body { padding: 1.25rem 1.4rem 1.5rem; }
.people-card__name { font-size: 1.15rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.2rem; }
.people-card__country { font-size: 0.78rem; color: var(--fena-muted); font-weight: 600; margin-bottom: 0.85rem; }
.people-card__tag { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.22rem 0.7rem; border-radius: 999px; background: rgba(185,79,45,0.08); border: 1px solid rgba(185,79,45,0.18); color: var(--fena-clay); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; margin-bottom: 0.65rem; }
.people-card__desc { font-size: 0.85rem; line-height: 1.7; color: var(--fena-muted); margin: 0; }
.cult-quote { background: var(--fena-ink); padding: 5.5rem 0; text-align: center; position: relative; overflow: hidden; }
.cult-quote__deco { position: absolute; top: -60px; left: 50%; transform: translateX(-50%); font-family: Georgia, serif; font-size: 20rem; line-height: 1; color: rgba(220,174,63,0.05); pointer-events: none; user-select: none; white-space: nowrap; }
.cult-quote__text { font-size: clamp(1.15rem, 2vw, 1.6rem); font-style: italic; font-weight: 600; line-height: 1.75; color: rgba(255,253,248,0.88); max-width: 800px; margin: 0 auto 2rem; }
.cult-quote__author { font-size: 0.88rem; font-weight: 700; color: var(--fena-gold); letter-spacing: 0.05em; text-transform: uppercase; }
.cult-quote__role { display: block; font-size: 0.78rem; color: rgba(255,253,248,0.4); font-weight: 400; text-transform: none; letter-spacing: 0; margin-top: 0.2rem; }
.cult-lightbox { display: none; position: fixed; inset: 0; z-index: 9999; align-items: center; justify-content: center; padding: 1.5rem 4rem; }
.cult-lightbox.is-open { display: flex; }
@keyframes clbFadeIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
.cult-lightbox__backdrop { position: absolute; inset: 0; background: rgba(12,9,5,0.96); cursor: pointer; }
.cult-lightbox__content { position: relative; z-index: 1; width: 100%; max-width: min(86vw, 960px); animation: clbFadeIn 0.25s ease both; display: flex; flex-direction: column; gap: 1rem; }
.cult-lightbox__img-wrap { width: 100%; max-height: 74vh; border-radius: 12px; overflow: hidden; background: #111; display: flex; align-items: center; justify-content: center; }
.cult-lightbox__img { width: 100%; max-height: 74vh; object-fit: contain; display: block; transition: opacity 0.18s ease; }
.cult-lightbox__img.clb-switching { opacity: 0; }
.cult-lightbox__caption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cult-lightbox__label { font-size: 0.85rem; font-weight: 700; color: var(--fena-gold); letter-spacing: 0.05em; text-transform: uppercase; }
.cult-lightbox__counter { font-size: 0.78rem; font-weight: 600; color: rgba(255,253,248,0.4); letter-spacing: 0.06em; white-space: nowrap; }
.cult-lightbox__close { position: fixed; top: 1.25rem; right: 1.5rem; z-index: 2; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,253,248,0.18); background: rgba(255,253,248,0.1); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, border-color 0.2s; backdrop-filter: blur(8px); }
.cult-lightbox__close:hover { background: rgba(255,253,248,0.2); border-color: rgba(255,253,248,0.38); }
.cult-lightbox__nav { position: fixed; top: 50%; transform: translateY(-50%); z-index: 2; width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(255,253,248,0.18); background: rgba(255,253,248,0.1); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, border-color 0.2s; backdrop-filter: blur(8px); }
.cult-lightbox__nav:hover { background: rgba(255,253,248,0.22); border-color: rgba(255,253,248,0.38); }
.cult-lightbox__prev { left: 1rem; }
.cult-lightbox__next { right: 1rem; }
@media (max-width: 991.98px) {
    .cult-intro__images { grid-template-rows: 200px 160px; }
    .cult-stats__grid { grid-template-columns: repeat(3, 1fr); }
    .cult-grid { columns: 2; }
    .domain-card { height: 240px; }
}
@media (max-width: 767.98px) {
    .cult-intro__images { grid-template-columns: 1fr 1fr; grid-template-rows: 180px 150px; }
    .cult-intro__img:first-child { grid-row: auto; }
}
@media (max-width: 575.98px) {
    .cult-stats__grid { grid-template-columns: repeat(2, 1fr); }
    .cult-stats__grid .cult-stat:nth-child(5) { grid-column: 1 / -1; border-right: none; }
    .cult-grid { columns: 1; }
    .domain-card { height: 220px; }
    .people-card__img { height: 180px; }
    .cult-lightbox { padding: 1rem 3rem; }
    .cult-lightbox__nav { width: 38px; height: 38px; }
    .cult-lightbox__prev { left: 0.4rem; }
    .cult-lightbox__next { right: 0.4rem; }
}

/* =====================================================
   PAGE: ACTUALITÉS
   ===================================================== */
.page-actualites .page-hero { min-height: 380px; }
.page-actualites .page-hero__content { padding-top: 4.5rem; padding-bottom: 3rem; }

.news-featured-section { background: var(--fena-cream); }
.news-featured-card { background: #fff; border-radius: 22px; border: 1px solid var(--fena-border); box-shadow: var(--fena-shadow); overflow: hidden; display: grid; grid-template-columns: 52% 1fr; transition: box-shadow 0.3s; }
.news-featured-card:hover { box-shadow: 0 28px 64px rgba(48,39,26,0.16); }
.news-featured-card__img { position: relative; min-height: 460px; overflow: hidden; }
.news-featured-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: transform 0.65s ease; }
.news-featured-card:hover .news-featured-card__img img { transform: scale(1.04); }
.news-featured-card__badge { position: absolute; top: 1.25rem; left: 1.25rem; z-index: 2; }
.news-featured-card__body { padding: 2.75rem 2.5rem; display: flex; flex-direction: column; justify-content: center; gap: 0; }
.news-featured-card__kicker { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--fena-muted); margin-bottom: 0.35rem; }
.news-featured-card__title { font-size: clamp(1.2rem, 1.9vw, 1.6rem); font-weight: 800; color: var(--fena-ink); line-height: 1.28; margin-bottom: 1rem; }
.news-featured-card__excerpt { font-size: 0.95rem; line-height: 1.82; color: var(--fena-muted); margin-bottom: 1.75rem; }
.news-featured-card__meta { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: 0.75rem; color: var(--fena-muted); margin-bottom: 1.75rem; }
.news-featured-card__meta svg { vertical-align: -2px; }
.news-grid-section { background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%); }
.news-filters { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 2.5rem; }
.news-filter { padding: 0.52rem 1.15rem; border-radius: 999px; border: 1.5px solid var(--fena-border); background: #fff; font-size: 0.78rem; font-weight: 600; color: var(--fena-muted); cursor: pointer; transition: all 0.2s; font-family: Poppins, sans-serif; box-shadow: var(--fena-shadow-soft); }
.news-filter:hover { border-color: var(--fena-clay); color: var(--fena-clay); }
.news-filter.is-active { background: var(--fena-ink); border-color: var(--fena-ink); color: #fff; box-shadow: 0 6px 18px rgba(29,26,22,0.22); }
.news-card { border-radius: 18px; overflow: hidden; background: #fff; border: 1px solid var(--fena-border); box-shadow: var(--fena-shadow-soft); transition: transform 0.28s, box-shadow 0.28s; height: 100%; display: flex; flex-direction: column; }
.news-card:hover { transform: translateY(-5px); box-shadow: var(--fena-shadow); }
.news-card__img { position: relative; height: 215px; overflow: hidden; flex-shrink: 0; }
.news-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: transform 0.5s ease; }
.news-card:hover .news-card__img img { transform: scale(1.06); }
.news-card__body { padding: 1.35rem 1.5rem 1.65rem; display: flex; flex-direction: column; flex: 1; }
.news-date { font-size: 0.73rem; color: var(--fena-muted); font-weight: 500; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.35rem; }
.news-title { font-size: 1rem; font-weight: 800; color: var(--fena-ink); line-height: 1.38; margin-bottom: 0.6rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-excerpt { font-size: 0.84rem; line-height: 1.72; color: var(--fena-muted); margin-bottom: 1.2rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; flex: 1; }
.news-read { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.8rem; font-weight: 700; color: var(--fena-clay); text-decoration: none; margin-top: auto; transition: gap 0.2s; }
.news-read:hover { gap: 0.72rem; color: var(--fena-clay); }
.news-empty { display: none; text-align: center; padding: 3rem; color: var(--fena-muted); font-size: 0.95rem; grid-column: 1 / -1; }
.news-newsletter { background: var(--fena-ink); padding: 5.5rem 0; text-align: center; position: relative; overflow: hidden; }
.news-newsletter__deco { position: absolute; top: -80px; right: -60px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(220,174,63,0.08) 0%, transparent 70%); pointer-events: none; }
.news-newsletter__deco--left { left: -80px; right: auto; top: auto; bottom: -80px; background: radial-gradient(circle, rgba(185,79,45,0.07) 0%, transparent 70%); }
.newsletter-title { font-size: clamp(1.65rem, 3vw, 2.5rem); font-weight: 800; color: #fff; margin-bottom: 0.75rem; }
.newsletter-title span { color: var(--fena-gold); }
.newsletter-desc { font-size: clamp(0.88rem, 1.2vw, 1rem); color: rgba(255,253,248,0.62); max-width: 480px; margin: 0 auto 2.25rem; line-height: 1.78; }
.newsletter-form { display: flex; gap: 0.7rem; max-width: 500px; margin: 0 auto; flex-wrap: wrap; justify-content: center; }
.newsletter-input { flex: 1; min-width: 220px; padding: 0.85rem 1.4rem; border-radius: 999px; border: 1.5px solid rgba(255,253,248,0.15); background: rgba(255,253,248,0.07); color: #fff; font-size: 0.9rem; font-family: Poppins, sans-serif; outline: none; transition: border-color 0.22s, background 0.22s; }
.newsletter-input:focus { border-color: var(--fena-gold); background: rgba(255,253,248,0.11); }
.newsletter-input::placeholder { color: rgba(255,253,248,0.32); }
.newsletter-btn { padding: 0.85rem 1.9rem; border-radius: 999px; border: none; background: var(--fena-clay); color: #fff; font-size: 0.88rem; font-weight: 700; cursor: pointer; font-family: Poppins, sans-serif; transition: background 0.22s, transform 0.22s; white-space: nowrap; }
.newsletter-btn:hover { background: var(--fena-green); transform: translateY(-2px); }
.newsletter-note { font-size: 0.7rem; color: rgba(255,253,248,0.28); margin-top: 1.1rem; }
.news-pagination { display: flex; justify-content: center; align-items: center; gap: 0.45rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--fena-border); flex-wrap: wrap; }
.page-btn { min-width: 42px; height: 42px; padding: 0 0.65rem; border-radius: 50%; border: 1.5px solid var(--fena-border); background: #fff; font-size: 0.85rem; font-weight: 700; color: var(--fena-muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: all 0.22s; font-family: Poppins, sans-serif; box-shadow: var(--fena-shadow-soft); line-height: 1; }
.page-btn:hover:not(:disabled) { border-color: var(--fena-clay); color: var(--fena-clay); transform: translateY(-2px); }
.page-btn.is-active { background: var(--fena-ink); border-color: var(--fena-ink); color: #fff; box-shadow: 0 6px 18px rgba(29,26,22,0.22); }
.page-btn--nav { border-radius: 999px; padding: 0 1.1rem; gap: 0.35rem; min-width: auto; }
.page-btn--nav:disabled { opacity: 0.28; cursor: not-allowed; transform: none !important; }
.news-pagination-info { text-align: center; margin-top: 0.85rem; font-size: 0.75rem; color: var(--fena-muted); font-weight: 500; letter-spacing: 0.02em; }
@media (max-width: 991.98px) {
    .news-featured-card { grid-template-columns: 1fr; }
    .news-featured-card__img { min-height: 300px; }
}
@media (max-width: 767.98px) {
    .news-featured-card__body { padding: 1.75rem 1.5rem 2rem; }
}
@media (max-width: 575.98px) {
    .news-featured-card__body { padding: 1.5rem 1.25rem 1.75rem; }
    .news-featured-card__excerpt { display: none; }
}

/* =====================================================
   PAGE: AGENDA
   ===================================================== */
.page-agenda .page-hero { min-height: 440px; }

.agenda-stats { background: var(--fena-ink); padding: 2rem 0; }
.agenda-stats__grid { display: flex; align-items: stretch; justify-content: center; gap: 0; flex-wrap: wrap; }
.agenda-stat { text-align: center; padding: 0.6rem 2rem; border-right: 1px solid rgba(255,253,248,0.1); flex: 1; min-width: 120px; }
.agenda-stat:last-child { border-right: none; }
.agenda-stat__num { display: block; font-size: clamp(1.6rem, 2.5vw, 2.2rem); font-weight: 800; color: var(--fena-gold); line-height: 1; margin-bottom: 0.25rem; }
.agenda-stat__label { font-size: 0.7rem; font-weight: 600; color: rgba(255,253,248,0.48); text-transform: uppercase; letter-spacing: 0.07em; }
.agenda-info { background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%); }

/* info-card overridden for agenda — scoped to avoid conflict with fena.css base */
.page-agenda .info-card { background: #fff; border-radius: 20px; border: 1px solid var(--fena-border); box-shadow: var(--fena-shadow-soft); padding: 2rem 1.75rem; height: 100%; transition: transform 0.25s, box-shadow 0.25s; }
.page-agenda .info-card:hover { transform: translateY(-4px); box-shadow: var(--fena-shadow); }
.info-card__icon { width: 54px; height: 54px; border-radius: 16px; background: rgba(185,79,45,0.08); border: 1px solid rgba(185,79,45,0.14); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 1.25rem; }
.info-card__title { font-size: 1.05rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.65rem; }
.info-card__body { font-size: 0.9rem; line-height: 1.8; color: var(--fena-muted); margin: 0; }
.info-card__body strong { color: var(--fena-ink); font-weight: 700; }
.agenda-programme { background: var(--fena-cream); }
.agenda-tabs { display: flex; gap: 0.85rem; margin-bottom: 2.75rem; flex-wrap: wrap; }
.agenda-tab { padding: 1rem 1.75rem; border-radius: 16px; border: 1px solid var(--fena-border); background: #fff; cursor: pointer; text-align: center; min-width: 160px; box-shadow: var(--fena-shadow-soft); transition: background 0.22s, border-color 0.22s, box-shadow 0.22s; }
.agenda-tab:hover { border-color: rgba(220,174,63,0.4); box-shadow: var(--fena-shadow); }
.agenda-tab.is-active { background: var(--fena-ink); border-color: var(--fena-ink); box-shadow: 0 8px 28px rgba(29,26,22,0.28); }
.agenda-tab__weekday { display: block; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; color: var(--fena-muted); margin-bottom: 0.25rem; }
.agenda-tab.is-active .agenda-tab__weekday { color: rgba(255,253,248,0.45); }
.agenda-tab__date { display: block; font-size: 1.1rem; font-weight: 800; color: var(--fena-ink); line-height: 1.1; }
.agenda-tab.is-active .agenda-tab__date { color: #fff; }
.agenda-tab__theme { display: block; font-size: 0.7rem; color: var(--fena-muted); margin-top: 0.3rem; }
.agenda-tab.is-active .agenda-tab__theme { color: var(--fena-gold); }
.agenda-panel { display: none; }
.agenda-panel.is-active { display: block; animation: panelIn 0.35s ease both; }
.schedule-list { display: flex; flex-direction: column; gap: 0; position: relative; padding-left: 5.5rem; }
.schedule-list::before { content: ''; position: absolute; left: 4.15rem; top: 1.75rem; bottom: 1rem; width: 2px; background: linear-gradient(to bottom, var(--fena-gold) 0%, rgba(220,174,63,0.12) 100%); }
.event-row { position: relative; padding-bottom: 1.25rem; }
.event-row::before { content: ''; position: absolute; left: -1.46rem; top: 1.2rem; width: 10px; height: 10px; border-radius: 50%; background: var(--fena-gold); border: 2px solid var(--fena-cream); box-shadow: 0 0 0 3px rgba(220,174,63,0.2); z-index: 1; }
.event-row__time { position: absolute; left: -5.5rem; top: 0.85rem; width: 3.8rem; text-align: right; font-size: 0.82rem; font-weight: 800; color: var(--fena-gold); letter-spacing: -0.01em; }

/* event-card overridden for agenda — scoped to avoid conflict with fena.css base */
.page-agenda .event-card { background: #fff; border-radius: 14px; border: 1px solid var(--fena-border); border-left-width: 4px; padding: 1.1rem 1.35rem 1.15rem; box-shadow: var(--fena-shadow-soft); transition: transform 0.22s, box-shadow 0.22s; }
.page-agenda .event-card:hover { transform: translateY(-3px); box-shadow: var(--fena-shadow); }
.event-card--ceremonie  { border-left-color: var(--fena-gold) !important; }
.event-card--concert    { border-left-color: var(--fena-clay) !important; }
.event-card--atelier    { border-left-color: var(--fena-green) !important; }
.event-card--conference { border-left-color: var(--fena-indigo) !important; }
.event-card--spectacle  { border-left-color: #7e3682 !important; }
.event-card--defile     { border-left-color: var(--fena-terracotta) !important; }
.event-card--gastro     { border-left-color: #c06030 !important; }
.event-card--concours   { border-left-color: var(--fena-green) !important; }
.event-card__top { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.55rem; }
.event-badge { display: inline-flex; align-items: center; padding: 0.18rem 0.6rem; border-radius: 999px; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; border: 1px solid; }
.ebadge--ceremonie  { background: rgba(220,174,63,0.1);  color: #9a7415; border-color: rgba(220,174,63,0.3); }
.ebadge--concert    { background: rgba(185,79,45,0.1);   color: var(--fena-clay); border-color: rgba(185,79,45,0.25); }
.ebadge--atelier    { background: rgba(37,95,70,0.1);    color: var(--fena-green); border-color: rgba(37,95,70,0.25); }
.ebadge--conference { background: rgba(37,56,95,0.1);    color: var(--fena-indigo); border-color: rgba(37,56,95,0.25); }
.ebadge--spectacle  { background: rgba(126,54,130,0.1);  color: #7e3682; border-color: rgba(126,54,130,0.25); }
.ebadge--defile     { background: rgba(217,119,69,0.1);  color: #a85020; border-color: rgba(217,119,69,0.3); }
.ebadge--gastro     { background: rgba(192,96,48,0.1);   color: #a05020; border-color: rgba(192,96,48,0.25); }
.ebadge--concours   { background: rgba(37,95,70,0.1);    color: var(--fena-green); border-color: rgba(37,95,70,0.25); }
.event-duration { font-size: 0.66rem; font-weight: 600; color: var(--fena-muted); margin-left: auto; }
.event-title { font-size: 0.97rem; font-weight: 800; color: var(--fena-ink); margin: 0 0 0.4rem; line-height: 1.35; }
.event-meta { display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; font-size: 0.77rem; color: var(--fena-muted); margin-bottom: 0.5rem; }
.event-meta svg { vertical-align: -2px; margin-right: 0.22rem; flex-shrink: 0; }
.event-desc { font-size: 0.83rem; line-height: 1.65; color: var(--fena-muted); margin: 0; }
.page-agenda .event-card--highlight { background: rgba(220,174,63,0.04); border-color: rgba(220,174,63,0.45); border-left-color: var(--fena-gold) !important; }
.day-legend { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.75rem; padding: 0.75rem 1.25rem; background: var(--fena-ink); border-radius: 12px; flex-wrap: wrap; }
.day-legend__title { font-size: 0.9rem; font-weight: 800; color: #fff; margin-right: 0.5rem; }
.day-legend__theme { font-size: 0.8rem; color: var(--fena-gold); font-weight: 600; }
.day-legend__sep { color: rgba(255,253,248,0.25); font-size: 0.8rem; }
.day-legend__count { font-size: 0.75rem; color: rgba(255,253,248,0.45); margin-left: auto; }
.agenda-featured { background: var(--fena-ink); }
.feat-event { position: relative; border-radius: 20px; overflow: hidden; height: 320px; }
.feat-event__bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 0.6s ease; }
.feat-event:hover .feat-event__bg { transform: scale(1.05); }
.feat-event__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,16,10,0.94) 0%, rgba(20,16,10,0.35) 55%, transparent 100%); }
.feat-event__content { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.5rem; z-index: 2; }
.feat-event__badge { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.22rem 0.7rem; border-radius: 999px; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; background: var(--fena-clay); color: #fff; margin-bottom: 0.65rem; }
.feat-event__time { display: block; font-size: 0.75rem; font-weight: 700; color: var(--fena-gold); margin-bottom: 0.3rem; }
.feat-event__title { font-size: clamp(1rem, 1.5vw, 1.2rem); font-weight: 800; color: #fff; margin-bottom: 0.35rem; line-height: 1.3; }
.feat-event__venue { font-size: 0.8rem; color: rgba(255,253,248,0.6); }
.agenda-pratique { background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%); }
.pratique-block { background: #fff; border-radius: 20px; border: 1px solid var(--fena-border); box-shadow: var(--fena-shadow-soft); padding: 2.25rem; height: 100%; }
.pratique-block__title { font-size: 1.15rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 2px solid var(--fena-gold); display: flex; align-items: center; gap: 0.65rem; }
.pratique-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.85rem; }
.pratique-list li { display: flex; gap: 0.85rem; font-size: 0.9rem; line-height: 1.65; color: var(--fena-muted); align-items: flex-start; }
.pratique-list li::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--fena-gold); flex-shrink: 0; margin-top: 0.5rem; }
.pratique-list strong { color: var(--fena-ink); }
@media (max-width: 991.98px) {
    .schedule-list { padding-left: 4.5rem; }
    .schedule-list::before { left: 3.15rem; }
    .event-row__time { left: -4.5rem; width: 3rem; }
    .event-row::before { left: -1.42rem; }
}
@media (max-width: 767.98px) {
    .agenda-tabs { gap: 0.5rem; }
    .agenda-tab { min-width: 120px; padding: 0.8rem 1.1rem; }
    .feat-event { height: 260px; }
}
@media (max-width: 575.98px) {
    .schedule-list { padding-left: 0; }
    .schedule-list::before { display: none; }
    .event-row::before { display: none; }
    .event-row__time { position: static; width: auto; text-align: left; display: inline-block; margin-bottom: 0.4rem; font-size: 0.78rem; }
    .agenda-stat { min-width: 80px; padding: 0.5rem 0.75rem; }
}

/* =====================================================
   PAGE: ÉDITIONS
   ===================================================== */
.page-editions .page-hero { min-height: 320px; align-items: flex-end; }
.page-editions .page-hero__content { padding-top: 4rem; padding-bottom: 3rem; }

.editions-tabs-inline { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; padding: 1.5rem 0; border-bottom: 1px solid var(--fena-border); }
.editions-nav__btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 1.1rem; border-radius: 999px; border: 1.5px solid var(--fena-border); background: transparent; color: var(--fena-ink); font-family: inherit; font-size: 0.87rem; font-weight: 600; white-space: nowrap; cursor: pointer; transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s; }
.editions-nav__btn:hover { border-color: var(--fena-clay); color: var(--fena-clay); }
.editions-nav__btn.is-active { background: var(--fena-clay); border-color: var(--fena-clay); color: #fff; box-shadow: 0 4px 14px rgba(185,79,45,0.3); }
.editions-nav__btn--locked { opacity: 0.5; cursor: not-allowed; }
.editions-nav__roman { font-size: 0.78rem; font-weight: 800; letter-spacing: 0.04em; }
.editions-page__panel { display: none; }
.editions-page__panel.is-active { display: block; animation: panelFadeIn 0.4s ease both; }
.edition-stats { display: flex; flex-wrap: wrap; gap: 0; background: var(--fena-clay); border-radius: 14px; overflow: hidden; margin-top: 1.5rem; }
.edition-stat { flex: 1 1 0; min-width: 120px; padding: 1.5rem 1.25rem; text-align: center; border-right: 1px solid rgba(255,253,248,0.18); }
.edition-stat:last-child { border-right: none; }
.edition-stat__num { display: block; font-size: clamp(1.6rem, 2.5vw, 2.2rem); font-weight: 800; color: #fff; line-height: 1; margin-bottom: 0.3rem; }
.edition-stat__label { font-size: 0.75rem; font-weight: 600; color: rgba(255,253,248,0.72); text-transform: uppercase; letter-spacing: 0.05em; }
.edition-moments { background: var(--fena-cream); }
.moments-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: clamp(260px, 28vw, 340px); gap: 1rem; }
.moment-card { position: relative; border-radius: 14px; overflow: hidden; cursor: pointer; }
.moment-card__bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 0.5s ease; }
.moment-card:hover .moment-card__bg { transform: scale(1.06); }
.moment-card__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,16,10,0.88) 0%, rgba(20,16,10,0.3) 50%, transparent 100%); }
.moment-card__content { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.25rem; }
.moment-card__badge { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.26rem 0.65rem; border-radius: 999px; background: rgba(220,174,63,0.18); border: 1px solid rgba(220,174,63,0.3); color: var(--fena-gold); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; margin-bottom: 0.5rem; width: fit-content; }
.moment-card__title { font-size: clamp(0.95rem, 1.3vw, 1.1rem); font-weight: 700; color: #fff; line-height: 1.3; margin-bottom: 0.35rem; }
.moment-card__desc { font-size: 0.8rem; color: rgba(255,253,248,0.68); line-height: 1.55; margin: 0; }

/* fena-lightbox scoped for editions — overrides opacity/visibility base with display:none/flex */
.page-editions .fena-lightbox { display: none; opacity: 1; visibility: visible; pointer-events: auto; position: fixed; inset: 0; z-index: 9999; align-items: center; justify-content: center; padding: 1.5rem; grid-template-columns: none; background: transparent; transition: none; }
.page-editions .fena-lightbox.is-open { display: flex; }
@keyframes lbFadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }
.fena-lightbox__backdrop { position: absolute; inset: 0; background: rgba(12,9,5,0.95); cursor: pointer; }
.fena-lightbox__content { position: relative; z-index: 1; width: 100%; max-width: min(88vw, 920px); animation: lbFadeIn 0.25s ease both; display: flex; flex-direction: column; gap: 1rem; }
.fena-lightbox__img-wrap { width: 100%; max-height: 72vh; border-radius: 12px; overflow: hidden; background: #111; display: flex; align-items: center; justify-content: center; }
.fena-lightbox__img { width: 100%; max-height: 72vh; object-fit: contain; display: block; transition: opacity 0.18s ease; }
.fena-lightbox__img.lb-switching { opacity: 0; }
.fena-lightbox__caption { display: flex; flex-direction: column; gap: 0.3rem; }
.fena-lightbox__badge { font-size: 0.78rem; font-weight: 700; color: var(--fena-gold); letter-spacing: 0.04em; }
.fena-lightbox__title { font-size: clamp(1rem, 2.2vw, 1.3rem); font-weight: 700; color: #fff; margin: 0; }
.fena-lightbox__desc { font-size: 0.87rem; color: rgba(255,253,248,0.6); margin: 0; line-height: 1.6; }
.fena-lightbox__close { position: fixed; top: 1.25rem; right: 1.5rem; z-index: 2; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,253,248,0.18); background: rgba(255,253,248,0.1); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, border-color 0.2s; backdrop-filter: blur(8px); }
.fena-lightbox__close:hover { background: rgba(255,253,248,0.2); border-color: rgba(255,253,248,0.35); }
.fena-lightbox__counter { position: fixed; top: 1.5rem; left: 50%; transform: translateX(-50%); font-size: 0.78rem; font-weight: 600; color: rgba(255,253,248,0.45); letter-spacing: 0.06em; white-space: nowrap; z-index: 2; }
.fena-lightbox__nav { position: fixed; top: 50%; transform: translateY(-50%); z-index: 2; width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(255,253,248,0.18); background: rgba(255,253,248,0.1); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, border-color 0.2s; backdrop-filter: blur(8px); }
.fena-lightbox__nav:hover { background: rgba(255,253,248,0.2); border-color: rgba(255,253,248,0.35); }
.fena-lightbox__prev { left: 1rem; }
.fena-lightbox__next { right: 1rem; }
.edition-upcoming { background: var(--fena-ink); text-align: center; }
.upcoming-year { font-size: clamp(4rem, 10vw, 9rem); font-weight: 800; color: rgba(255,253,248,0.05); line-height: 1; margin-bottom: -0.5rem; }
.upcoming-lock-icon { width: 72px; height: 72px; border-radius: 50%; background: rgba(255,253,248,0.06); border: 2px solid rgba(255,253,248,0.1); display: flex; align-items: center; justify-content: center; margin: 0 auto 1.75rem; color: rgba(255,253,248,0.4); }
.upcoming-title { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 800; color: #fff; margin-bottom: 1rem; }
.upcoming-desc { font-size: clamp(0.95rem, 1.3vw, 1.05rem); color: rgba(255,253,248,0.6); max-width: 520px; margin: 0 auto 2rem; line-height: 1.8; }
.upcoming-count { display: inline-flex; align-items: center; gap: 2rem; padding: 1.25rem 2rem; border-radius: 16px; background: rgba(255,253,248,0.04); border: 1px solid rgba(255,253,248,0.08); margin-bottom: 2.5rem; }
.upcoming-count__num { display: block; font-size: 1.6rem; font-weight: 800; color: var(--fena-gold); }
.upcoming-count__label { font-size: 0.72rem; font-weight: 600; color: rgba(255,253,248,0.45); text-transform: uppercase; letter-spacing: 0.06em; }
@media (max-width: 991.98px) {
    .moments-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .moments-grid { grid-template-columns: 1fr; grid-auto-rows: 240px; }
    .edition-stat { min-width: 90px; padding: 1rem 0.5rem; }
    .upcoming-count { gap: 1.25rem; padding: 1rem 1.25rem; }
    .fena-lightbox__nav { width: 40px; height: 40px; }
    .fena-lightbox__prev { left: 0.5rem; }
    .fena-lightbox__next { right: 0.5rem; }
}

/* =====================================================
   PAGE: FONDATRICE
   ===================================================== */
.founder-hero { position: relative; min-height: 100vh; display: flex; align-items: flex-end; overflow: hidden; background: var(--fena-ink); }
.founder-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 15%; }
.founder-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(20,16,10,0.15) 0%, rgba(20,16,10,0.45) 45%, rgba(20,16,10,0.92) 80%, #1d1a16 100%); }
.founder-hero__content { position: relative; z-index: 2; padding: 3rem 0 5rem; width: 100%; }
.founder-hero__breadcrumb { display: flex; align-items: center; gap: 0.45rem; list-style: none; margin: 0 0 1.5rem; padding: 0; font-size: 0.78rem; font-weight: 600; color: rgba(255,253,248,0.55); text-transform: uppercase; letter-spacing: 0.06em; }
.founder-hero__breadcrumb a { color: rgba(255,253,248,0.55); text-decoration: none; transition: color 0.2s; }
.founder-hero__breadcrumb a:hover { color: var(--fena-gold); }
.founder-hero__breadcrumb li + li::before { content: '/'; margin-right: 0.45rem; opacity: 0.4; }
.founder-hero__breadcrumb .current { color: var(--fena-gold); }
.founder-hero__eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; padding: 0.34rem 0.9rem; border: 1px solid rgba(220,174,63,0.35); border-radius: 999px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fena-gold); background: rgba(220,174,63,0.08); }
.founder-hero__eyebrow::before { content: ''; width: 0.42rem; height: 0.42rem; border-radius: 50%; background: var(--fena-gold); }
.founder-hero__name { font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 800; color: #fff; line-height: 1.08; margin: 0 0 0.5rem; }
.founder-hero__title { font-size: clamp(0.95rem, 1.4vw, 1.1rem); color: rgba(255,253,248,0.65); margin: 0 0 2.5rem; font-weight: 500; }
.founder-hero__scroll { display: inline-flex; align-items: center; gap: 0.6rem; color: rgba(255,253,248,0.5); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; transition: color 0.2s; }
.founder-hero__scroll:hover { color: var(--fena-gold); }
.founder-hero__scroll-icon { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,253,248,0.2); display: flex; align-items: center; justify-content: center; animation: scrollBounce 2s ease-in-out infinite; }
.founder-bio { background: var(--fena-ink); }
.founder-bio__portrait { position: sticky; top: 100px; }
.founder-bio__portrait-wrap { border-radius: 20px; overflow: hidden; aspect-ratio: 4/5; box-shadow: 0 32px 80px rgba(0,0,0,0.5); }
.founder-bio__portrait-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center 10%; display: block; }
.founder-bio__kicker { display: inline-flex; align-items: center; gap: 0.45rem; margin-bottom: 1.25rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fena-gold); }
.founder-bio__kicker::before { content: ''; width: 24px; height: 2px; background: var(--fena-gold); }
.founder-bio__heading { font-size: clamp(1.6rem, 2.8vw, 2.4rem); font-weight: 800; color: #fff; line-height: 1.15; margin-bottom: 1.5rem; }
.founder-bio__text { font-size: 0.97rem; line-height: 1.9; color: rgba(255,253,248,0.65); margin-bottom: 1.25rem; }
.founder-bio__text:last-of-type { margin-bottom: 2rem; }
.founder-credentials { display: flex; flex-direction: column; gap: 0.75rem; }
.founder-credential { display: flex; align-items: center; gap: 0.875rem; padding: 0.875rem 1.1rem; border-radius: 12px; background: rgba(255,253,248,0.05); border: 1px solid rgba(255,253,248,0.08); }
.founder-credential__icon { width: 36px; height: 36px; border-radius: 10px; background: rgba(220,174,63,0.12); color: var(--fena-gold); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.founder-credential__text { font-size: 0.87rem; font-weight: 600; color: rgba(255,253,248,0.78); }
.founder-message { background: linear-gradient(160deg, var(--fena-clay) 0%, #8b2e12 100%); position: relative; overflow: hidden; }
.founder-message::before { content: '"'; position: absolute; top: -0.4em; left: -0.05em; font-family: Georgia, serif; font-size: clamp(12rem, 22vw, 22rem); font-weight: 700; color: rgba(255,255,255,0.06); line-height: 1; pointer-events: none; user-select: none; }
.founder-message__quote { position: relative; z-index: 1; font-size: clamp(1.2rem, 2.2vw, 1.75rem); font-style: italic; font-weight: 500; line-height: 1.7; color: rgba(255,253,248,0.95); text-align: center; max-width: 820px; margin: 0 auto 2.5rem; }
.founder-message__sig { display: flex; align-items: center; justify-content: center; gap: 1rem; }
.founder-message__sig-line { width: 40px; height: 2px; background: rgba(255,253,248,0.35); }
.founder-message__sig-name { font-size: 0.88rem; font-weight: 700; color: rgba(255,253,248,0.75); letter-spacing: 0.04em; text-transform: uppercase; }
.founder-letter { background: var(--fena-cream); }
.letter-card { background: #fff; border-radius: 20px; padding: clamp(2rem, 4vw, 3.5rem); box-shadow: 0 20px 60px rgba(29,26,22,0.09); border: 1px solid var(--fena-border); position: relative; }
.letter-card::before { content: ''; position: absolute; top: 0; left: 2.5rem; right: 2.5rem; height: 3px; background: linear-gradient(90deg, var(--fena-clay), var(--fena-gold), var(--fena-green)); border-radius: 0 0 4px 4px; }
.letter-card__date { font-size: 0.82rem; font-weight: 600; color: var(--fena-muted); letter-spacing: 0.04em; margin-bottom: 1.5rem; }
.letter-card__salutation { font-size: 1.1rem; font-weight: 700; color: var(--fena-ink); margin-bottom: 1.25rem; }
.letter-card__body { font-size: 0.97rem; line-height: 1.95; color: #4a4540; }
.letter-card__body p { margin-bottom: 1.25rem; }
.letter-card__body p:last-child { margin-bottom: 0; }
.letter-card__sig { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--fena-border); display: flex; align-items: center; gap: 1.25rem; }
.letter-card__sig-portrait { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 2px solid var(--fena-gold); }
.letter-card__sig-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 10%; }
.letter-card__sig-name { font-size: 0.97rem; font-weight: 700; color: var(--fena-ink); margin-bottom: 0.2rem; }
.letter-card__sig-role { font-size: 0.82rem; color: var(--fena-muted); }
.founder-timeline { background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%); }
.timeline { position: relative; padding-left: 2rem; }
.timeline::before { content: ''; position: absolute; left: 0; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(to bottom, var(--fena-clay), var(--fena-gold)); border-radius: 2px; }
.timeline-item { position: relative; padding-bottom: 2.5rem; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item__dot { position: absolute; left: -2.56rem; top: 4px; width: 16px; height: 16px; border-radius: 50%; background: var(--fena-clay); border: 3px solid var(--fena-cream); box-shadow: 0 0 0 2px var(--fena-clay); transition: transform 0.2s; }
.timeline-item:hover .timeline-item__dot { transform: scale(1.3); }
.timeline-item__year { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fena-clay); background: rgba(185,79,45,0.08); border: 1px solid rgba(185,79,45,0.18); border-radius: 999px; padding: 0.22rem 0.7rem; margin-bottom: 0.55rem; }
.timeline-item__title { font-size: 1.05rem; font-weight: 700; color: var(--fena-ink); margin-bottom: 0.4rem; }
.timeline-item__body { font-size: 0.88rem; line-height: 1.75; color: var(--fena-muted); }
@media (max-width: 991.98px) {
    .founder-hero { min-height: 70vh; }
    .founder-bio__portrait { position: static; }
    .founder-bio__portrait-wrap { aspect-ratio: 3/2; margin-bottom: 2.5rem; }
}
@media (max-width: 575.98px) {
    .founder-hero { min-height: 60vh; }
    .letter-card { padding: 1.5rem; }
    .timeline { padding-left: 1.5rem; }
}

/* =====================================================
   PAGE: ROIS & CHEFS TRADITIONNELS
   ===================================================== */
.page-rois .page-hero { min-height: 440px; }
.page-rois .page-hero__bg { background-position: center 25%; }

.rois-stats { background: var(--fena-ink); padding: 2.5rem 0; border-bottom: 1px solid rgba(220,174,63,0.15); }
.rois-stats__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; }
.rois-stat { text-align: center; padding: 0.75rem 1rem; border-right: 1px solid rgba(220,174,63,0.15); }
.rois-stat:last-child { border-right: none; }
.rois-stat__num { display: block; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; color: var(--fena-gold); line-height: 1; margin-bottom: 0.3rem; }
.rois-stat__label { font-size: 0.73rem; font-weight: 600; color: rgba(255,253,248,0.5); text-transform: uppercase; letter-spacing: 0.06em; }
.rois-intro { background: var(--fena-ink); padding: 6rem 0; }
.rois-intro__kicker { display: inline-flex; align-items: center; gap: 0.45rem; margin-bottom: 1rem; padding: 0.32rem 0.8rem; border: 1px solid rgba(220,174,63,0.38); border-radius: 999px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fena-gold); }
.rois-intro__lead { font-size: clamp(1.05rem, 1.7vw, 1.22rem); font-weight: 600; line-height: 1.7; color: #fff; margin-bottom: 1.25rem; }
.rois-intro__body { font-size: 0.97rem; line-height: 1.9; color: rgba(255,253,248,0.65); margin-bottom: 0; }
.rois-intro__visual { position: relative; }
.rois-intro__frame { border-radius: 20px; overflow: hidden; height: 480px; position: relative; }
.rois-intro__frame img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.rois-intro__frame::after { content: ''; position: absolute; inset: 0; border-radius: 20px; border: 1px solid rgba(220,174,63,0.25); pointer-events: none; }
.rois-intro__badge { position: absolute; bottom: -1.5rem; left: -1.5rem; background: var(--fena-clay); border-radius: 18px; padding: 1.25rem 1.5rem; box-shadow: 0 16px 48px rgba(0,0,0,0.35); min-width: 180px; }
.rois-intro__badge-num { display: block; font-size: 2.25rem; font-weight: 800; color: #fff; line-height: 1; margin-bottom: 0.2rem; }
.rois-intro__badge-label { font-size: 0.72rem; font-weight: 700; color: rgba(255,253,248,0.75); text-transform: uppercase; letter-spacing: 0.06em; }
.rois-role { background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%); }

/* role-card — version claire (rois.html) scoped */
.page-rois .role-card { border-radius: 20px; padding: clamp(1.75rem, 3vw, 2.5rem); height: 100%; background: #fff; border: 1px solid var(--fena-border); box-shadow: var(--fena-shadow-soft); transition: transform 0.28s, box-shadow 0.28s, border-color 0.28s; position: relative; overflow: hidden; }
.page-rois .role-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--fena-clay), var(--fena-gold)); opacity: 0; transition: opacity 0.3s; }
.page-rois .role-card:hover { transform: translateY(-6px); box-shadow: var(--fena-shadow); border-color: rgba(220,174,63,0.25); }
.page-rois .role-card:hover::before { opacity: 1; }
.role-card__icon { width: 60px; height: 60px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; margin-bottom: 1.5rem; background: rgba(185,79,45,0.08); border: 1px solid rgba(185,79,45,0.15); }
.role-card__num { position: absolute; top: 1.5rem; right: 1.75rem; font-size: 3.5rem; font-weight: 800; color: rgba(220,174,63,0.1); line-height: 1; pointer-events: none; }
.role-card__title { font-size: 1.2rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.75rem; }
.role-card__body { font-size: 0.92rem; line-height: 1.8; color: var(--fena-muted); margin: 0; }

/* king-card — page rois : style portrait, fond blanc, texte sombre */
.page-rois .king-card {
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    border: none;
    box-shadow: 0 4px 24px rgba(0,0,0,.18);
    transition: transform .3s ease, box-shadow .3s ease;
}
.page-rois .king-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px rgba(0,0,0,.28);
}
.page-rois .king-card__photo {
    position: relative;
    height: 460px;
    overflow: hidden;
}
.page-rois .king-card__photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    transition: transform .55s ease;
}
.page-rois .king-card:hover .king-card__photo img { transform: scale(1.05); }
.page-rois .king-card__crown {
    position: absolute;
    top: .85rem;
    right: .85rem;
    z-index: 2;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(220,174,63,.18);
    border: 1px solid rgba(220,174,63,.55);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--fena-gold);
}
.page-rois .king-card__info {
    background: #fff;
    border-top: 3px solid var(--fena-gold);
    padding: 1.1rem 1.3rem 1.4rem;
}
.page-rois .king-card__name {
    color: #1a1510;
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin: 0 0 .3rem;
    line-height: 1.25;
}
.page-rois .king-card__role {
    color: #5a5550;
    font-size: .82rem;
    font-weight: 500;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* Responsive — page rois king cards */
@media (max-width: 1199.98px) {
    .page-rois .fena-kings__grid { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
    .page-rois .king-card__photo { height: 480px; }
}
@media (max-width: 991.98px) {
    .page-rois .fena-kings__grid { grid-template-columns: repeat(2, 1fr); gap: 1.1rem; }
    .page-rois .king-card__photo { height: 460px; }
}
@media (max-width: 575.98px) {
    .page-rois .fena-kings__grid { grid-template-columns: 1fr; gap: .9rem; }
    .page-rois .king-card__photo { height: 460px; }
    .page-rois .king-card__info { padding: .9rem 1.1rem 1.1rem; }
    .page-rois .king-card__name { font-size: .95rem; }
}

/* ── King Lightbox ───────────────────────────────────── */
.king-card[data-king-img] { cursor: pointer; }

.king-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity .28s ease;
}
.king-lightbox.is-open { opacity: 1; pointer-events: auto; }
.king-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10,8,6,.9);
    backdrop-filter: blur(10px);
}
.king-lightbox__close {
    position: absolute;
    top: 1.25rem; right: 1.25rem;
    z-index: 10;
    width: 44px; height: 44px;
    border-radius: 50%;
    background: rgba(255,253,248,.08);
    border: 1px solid rgba(255,253,248,.18);
    color: #fffdf8;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s;
    padding: 0;
}
.king-lightbox__close:hover { background: rgba(255,253,248,.22); }
.king-lightbox__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 400px;
    text-align: center;
    transform: scale(.94);
    transition: transform .28s ease;
}
.king-lightbox.is-open .king-lightbox__inner { transform: scale(1); }
.king-lightbox__photo {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 28px 72px rgba(0,0,0,.65);
}
.king-lightbox__photo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 68vh;
    object-fit: cover;
    object-position: center top;
}
.king-lightbox__photo-crown {
    position: absolute;
    top: .85rem; right: .85rem;
    width: 42px; height: 42px;
    border-radius: 50%;
    background: rgba(220,174,63,.2);
    border: 1px solid rgba(220,174,63,.6);
    backdrop-filter: blur(8px);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem;
    color: var(--fena-gold);
}
.king-lightbox__caption { margin-top: 1.4rem; }
.king-lightbox__name {
    color: #fffdf8;
    font-size: 1.15rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin: 0 0 .4rem;
}
.king-lightbox__role {
    color: rgba(255,253,248,.55);
    font-size: .82rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin: 0;
}

.king-region { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.2rem 0.6rem; border-radius: 999px; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; backdrop-filter: blur(8px); }
.royal-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: 240px 200px; gap: 0.75rem; }
.royal-grid__item { border-radius: 14px; overflow: hidden; position: relative; cursor: pointer; }
.royal-grid__item:first-child { grid-row: 1 / 3; grid-column: 1 / 2; }
.royal-grid__item:nth-child(4) { grid-column: 4 / 5; grid-row: 1 / 3; }
.royal-grid__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.royal-grid__item:hover img { transform: scale(1.06); }
.royal-grid__item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,16,10,0.55) 0%, transparent 60%); pointer-events: none; }
.rois-quote { background: var(--fena-ink); padding: 5.5rem 0; text-align: center; position: relative; overflow: hidden; }
.rois-quote__deco { position: absolute; top: -60px; left: 50%; transform: translateX(-50%); font-family: Georgia, serif; font-size: 20rem; line-height: 1; color: rgba(220,174,63,0.05); pointer-events: none; user-select: none; white-space: nowrap; }
.rois-quote__text { font-size: clamp(1.1rem, 2vw, 1.55rem); font-style: italic; font-weight: 600; line-height: 1.8; color: rgba(255,253,248,0.88); max-width: 820px; margin: 0 auto 2rem; }
.rois-quote__author { font-size: 0.88rem; font-weight: 700; color: var(--fena-gold); letter-spacing: 0.05em; text-transform: uppercase; }
.rois-quote__role { display: block; font-size: 0.78rem; color: rgba(255,253,248,0.4); font-weight: 400; text-transform: none; letter-spacing: 0; margin-top: 0.2rem; }
.royal-lightbox { display: none; position: fixed; inset: 0; z-index: 9999; align-items: center; justify-content: center; padding: 1.5rem 4.5rem; }
.royal-lightbox.is-open { display: flex; }
@keyframes rlbFadeIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
.royal-lightbox__backdrop { position: absolute; inset: 0; background: rgba(12,9,5,0.97); cursor: pointer; }
.royal-lightbox__content { position: relative; z-index: 1; width: 100%; max-width: min(88vw, 980px); animation: rlbFadeIn 0.25s ease both; display: flex; flex-direction: column; gap: 1rem; }
.royal-lightbox__img-wrap { width: 100%; max-height: 74vh; border-radius: 12px; overflow: hidden; background: #111; display: flex; align-items: center; justify-content: center; }
.royal-lightbox__img { width: 100%; max-height: 74vh; object-fit: contain; display: block; transition: opacity 0.18s ease; }
.royal-lightbox__img.rlb-switching { opacity: 0; }
.royal-lightbox__caption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.royal-lightbox__label { font-size: 0.85rem; font-weight: 700; color: var(--fena-gold); letter-spacing: 0.05em; }
.royal-lightbox__counter { font-size: 0.78rem; font-weight: 600; color: rgba(255,253,248,0.38); white-space: nowrap; }
.royal-lightbox__close { position: fixed; top: 1.25rem; right: 1.5rem; z-index: 2; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,253,248,0.18); background: rgba(255,253,248,0.1); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, border-color 0.2s; backdrop-filter: blur(8px); }
.royal-lightbox__close:hover { background: rgba(255,253,248,0.2); border-color: rgba(255,253,248,0.38); }
.royal-lightbox__nav { position: fixed; top: 50%; transform: translateY(-50%); z-index: 2; width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(255,253,248,0.18); background: rgba(255,253,248,0.1); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, border-color 0.2s; backdrop-filter: blur(8px); }
.royal-lightbox__nav:hover { background: rgba(255,253,248,0.22); border-color: rgba(255,253,248,0.38); }
.royal-lightbox__prev { left: 1rem; }
.royal-lightbox__next { right: 1rem; }
@media (max-width: 991.98px) {
    .rois-stats__grid { grid-template-columns: repeat(3, 1fr); }
    .royal-grid { grid-template-columns: repeat(3, 1fr); grid-template-rows: 200px 200px; }
    .royal-grid__item:first-child { grid-row: auto; grid-column: auto; }
    .royal-grid__item:nth-child(4) { grid-column: auto; grid-row: auto; }
    .rois-intro__badge { left: 0; }
}
@media (max-width: 767.98px) {
    .rois-intro__frame { height: 360px; margin-bottom: 2rem; }
    .royal-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 200px); }
}
@media (max-width: 575.98px) {
    .rois-stats__grid { grid-template-columns: repeat(2, 1fr); }
    .rois-stats__grid .rois-stat:nth-child(5) { grid-column: 1 / -1; border-right: none; }
    .royal-grid { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 180px); }
    .royal-lightbox { padding: 1rem 3rem; }
    .royal-lightbox__nav { width: 38px; height: 38px; }
    .royal-lightbox__prev { left: 0.4rem; }
    .royal-lightbox__next { right: 0.4rem; }
}

/* =====================================================
   PAGE: REJOINDRE
   ===================================================== */
.page-rejoindre .page-hero { min-height: 500px; }
.page-rejoindre .page-hero__content { padding-top: 5rem; padding-bottom: 4rem; }

.join-why { background: var(--fena-cream); padding: 5.5rem 0; }
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; margin-top: 3rem; }
.why-card { background: #fff; border: 1px solid var(--fena-border); border-radius: 20px; padding: 2rem 1.5rem; text-align: center; box-shadow: var(--fena-shadow-soft); transition: transform 0.25s, box-shadow 0.25s; }
.why-card:hover { transform: translateY(-5px); box-shadow: var(--fena-shadow); }
.why-card__icon { width: 60px; height: 60px; border-radius: 16px; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.2rem; font-size: 1.6rem; }
.why-card__title { font-size: 1rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.55rem; }
.why-card__desc { font-size: 0.82rem; color: var(--fena-muted); line-height: 1.65; margin: 0; }
.join-roles { background: var(--fena-ink); padding: 5.5rem 0; }
.roles-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; margin-top: 3rem; }

/* role-card — version sombre (rejoindre.html) scoped */
.page-rejoindre .role-card { border-radius: 20px; border: 2px solid rgba(255,253,248,0.08); background: rgba(255,253,248,0.04); padding: 2rem 1.4rem 1.8rem; text-align: center; cursor: pointer; transition: all 0.28s; position: relative; overflow: hidden; }
.page-rejoindre .role-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--fena-gold); transform: scaleX(0); transition: transform 0.3s; }
.page-rejoindre .role-card:hover,
.page-rejoindre .role-card.is-selected { border-color: var(--fena-gold); background: rgba(220,174,63,0.07); transform: translateY(-4px); }
.page-rejoindre .role-card:hover::before,
.page-rejoindre .role-card.is-selected::before { transform: scaleX(1); }
.page-rejoindre .role-card.is-selected { box-shadow: 0 0 0 1px var(--fena-gold); }
.page-rejoindre .role-card__icon { width: 64px; height: 64px; border-radius: 18px; background: rgba(220,174,63,0.12); display: flex; align-items: center; justify-content: center; margin: 0 auto 1.2rem; color: var(--fena-gold); transition: background 0.28s; }
.page-rejoindre .role-card:hover .role-card__icon,
.page-rejoindre .role-card.is-selected .role-card__icon { background: rgba(220,174,63,0.22); }
.page-rejoindre .role-card__title { font-size: 1rem; font-weight: 800; color: var(--fena-cream); margin-bottom: 0.5rem; }
.page-rejoindre .role-card__desc { font-size: 0.78rem; color: rgba(255,253,248,0.5); line-height: 1.6; margin: 0; }
.role-card__badge { display: inline-block; margin-top: 1rem; font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.28rem 0.75rem; border-radius: 999px; border: 1px solid rgba(220,174,63,0.35); color: var(--fena-gold); }
.join-form-section { background: var(--fena-cream); padding: 5.5rem 0 6rem; }
.join-form-wrap { background: #fff; border-radius: 28px; padding: 2.8rem 2.5rem 3rem; box-shadow: 0 16px 56px rgba(29,26,22,0.09); border: 1px solid var(--fena-border); max-width: 820px; margin: 0 auto; }
.join-form-header { text-align: center; margin-bottom: 2.4rem; padding-bottom: 2rem; border-bottom: 1px solid var(--fena-border); }
.join-form-header h2 { font-size: clamp(1.4rem, 2.5vw, 1.85rem); font-weight: 800; color: var(--fena-ink); margin-bottom: 0.4rem; }
.join-form-header p { font-size: 0.85rem; color: var(--fena-muted); margin: 0; }
.role-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin-bottom: 2.4rem; }
.role-tab { padding: 0.5rem 1.2rem; border-radius: 999px; border: 1.5px solid var(--fena-border); background: var(--fena-cream); font-family: Poppins, sans-serif; font-size: 0.78rem; font-weight: 700; color: var(--fena-muted); cursor: pointer; transition: all 0.2s; }
.role-tab:hover { border-color: var(--fena-gold); color: var(--fena-ink); }
.role-tab.is-active { background: var(--fena-ink); border-color: var(--fena-ink); color: #fff; }
.form-fields { display: none; }
.form-fields.is-active { display: block; }
.check-group { display: flex; align-items: flex-start; gap: 0.75rem; cursor: pointer; }
.check-group input[type="checkbox"] { width: 18px; height: 18px; margin-top: 1px; flex-shrink: 0; accent-color: var(--fena-ink); cursor: pointer; }
.check-group span { font-size: 0.8rem; color: var(--fena-muted); line-height: 1.55; }
.check-group a { color: var(--fena-clay); text-decoration: none; }
.btn-join-submit { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; width: 100%; padding: 0.95rem 2rem; border-radius: 999px; background: var(--fena-clay); color: #fff; font-family: Poppins, sans-serif; font-size: 0.95rem; font-weight: 700; border: none; cursor: pointer; transition: background 0.25s, transform 0.2s; letter-spacing: 0.02em; }
.btn-join-submit:hover { background: var(--fena-ink); transform: translateY(-2px); }
.btn-join-submit:active { transform: translateY(0); }
.join-success { display: none; text-align: center; padding: 3rem 1.5rem; }
.join-success__icon { width: 80px; height: 80px; border-radius: 50%; background: rgba(37,95,70,0.08); display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; color: var(--fena-green); }
.join-success__title { font-size: 1.5rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.5rem; }
.join-success__sub { font-size: 0.87rem; color: var(--fena-muted); max-width: 360px; margin: 0 auto 2rem; line-height: 1.7; }
.join-testimonials { background: var(--fena-ink); padding: 5.5rem 0; }
.testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin-top: 3rem; }
.testi-card { background: rgba(255,253,248,0.05); border: 1px solid rgba(255,253,248,0.08); border-radius: 20px; padding: 1.8rem; }
.testi-quote { font-size: 2.5rem; line-height: 1; color: var(--fena-gold); margin-bottom: 0.8rem; font-family: Georgia, serif; }
.testi-text { font-size: 0.87rem; color: rgba(255,253,248,0.7); line-height: 1.75; margin-bottom: 1.5rem; font-style: italic; }
.testi-author { display: flex; align-items: center; gap: 0.9rem; }
.testi-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--fena-gold); display: flex; align-items: center; justify-content: center; font-size: 1rem; font-weight: 800; color: var(--fena-ink); flex-shrink: 0; }
.testi-name { font-size: 0.85rem; font-weight: 700; color: var(--fena-cream); }
.testi-role { font-size: 0.73rem; color: rgba(255,253,248,0.45); }
.join-cta { position: relative; overflow: hidden; padding: 5.5rem 0; }
.join-cta__bg { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: url('../slide/slide-fena-5-6.jpg'); background-size: cover; background-position: center; filter: brightness(0.28); }
.join-cta__overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(185,79,45,0.45) 0%, rgba(29,26,22,0.65) 100%); }
.join-cta__content { position: relative; z-index: 1; text-align: center; }
@media (max-width: 1199.98px) {
    .why-grid { grid-template-columns: repeat(2, 1fr); }
    .roles-grid { grid-template-columns: repeat(2, 1fr); }
    .testimonials-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767.98px) {
    .join-form-wrap { padding: 2rem 1.2rem 2.2rem; }
}
@media (max-width: 575.98px) {
    .why-grid, .roles-grid, .testimonials-grid { grid-template-columns: 1fr; }
    .join-why, .join-roles, .join-form-section, .join-testimonials { padding: 4rem 0; }
}

/* =====================================================
   PAGE: MÉDIAS
   ===================================================== */
.page-medias .page-hero { min-height: 440px; }
.page-medias .page-hero__content { padding-top: 4.5rem; padding-bottom: 3.5rem; }

.media-stats { background: var(--fena-ink); padding: 3rem 0; }
.media-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.media-stat { text-align: center; padding: 1.25rem 1rem; border-right: 1px solid rgba(255,253,248,0.08); }
.media-stat:last-child { border-right: none; }
.media-stat__num { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; color: var(--fena-gold); line-height: 1; margin-bottom: 0.3rem; display: block; }
.media-stat__label { font-size: 0.78rem; font-weight: 600; color: rgba(255,253,248,0.5); text-transform: uppercase; letter-spacing: 0.07em; }
.media-filters { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-bottom: 2rem; }
.media-filter { padding: 0.48rem 1.1rem; border-radius: 999px; border: 1.5px solid var(--fena-border); background: #fff; font-size: 0.76rem; font-weight: 600; color: var(--fena-muted); cursor: pointer; transition: all 0.2s; font-family: Poppins, sans-serif; box-shadow: var(--fena-shadow-soft); }
.media-filter:hover { border-color: var(--fena-clay); color: var(--fena-clay); }
.media-filter.is-active { background: var(--fena-ink); border-color: var(--fena-ink); color: #fff; box-shadow: 0 6px 18px rgba(29,26,22,0.22); }
.media-filter--dark { background: rgba(255,253,248,0.05); border-color: rgba(255,253,248,0.12); color: rgba(255,253,248,0.55); box-shadow: none; }
.media-filter--dark:hover { border-color: var(--fena-gold); color: var(--fena-gold); }
.media-filter--dark.is-active { background: var(--fena-gold); border-color: var(--fena-gold); color: var(--fena-ink); box-shadow: 0 6px 18px rgba(220,174,63,0.3); }
.media-photo-section { background: linear-gradient(160deg, #fffaf0 0%, #fff8ee 100%); padding: 4.5rem 0 5rem; }
.photo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.55rem; }
.photo-item { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 10px; cursor: pointer; background: rgba(29,26,22,0.06); }
.photo-item.is-hidden { display: none; }
.photo-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; transition: transform 0.58s ease; }
.photo-item:hover img { transform: scale(1.09); }
.photo-item__overlay { position: absolute; inset: 0; background: rgba(18,14,10,0); transition: background 0.3s; display: flex; align-items: flex-end; padding: 0.8rem; }
.photo-item:hover .photo-item__overlay { background: rgba(18,14,10,0.44); }
.photo-item__meta { display: flex; align-items: center; justify-content: space-between; width: 100%; opacity: 0; transform: translateY(7px); transition: opacity 0.28s, transform 0.28s; }
.photo-item:hover .photo-item__meta { opacity: 1; transform: translateY(0); }
.photo-item__badge { font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: #fff; background: rgba(29,26,22,0.58); padding: 0.2rem 0.6rem; border-radius: 999px; backdrop-filter: blur(6px); }
.photo-item__zoom { width: 30px; height: 30px; border-radius: 50%; background: rgba(255,253,248,0.15); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; color: #fff; }
.media-lightbox { position: fixed; inset: 0; z-index: 9900; display: none; align-items: center; justify-content: center; }
.media-lightbox.is-open { display: flex; }
.media-lightbox__backdrop { position: absolute; inset: 0; background: rgba(12,9,6,0.95); backdrop-filter: blur(10px); }
.media-lightbox__close,
.media-lightbox__prev,
.media-lightbox__next { position: absolute; background: rgba(255,253,248,0.1); border: 1px solid rgba(255,253,248,0.16); color: #fff; border-radius: 50%; width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; transition: background 0.2s, transform 0.2s; }
.media-lightbox__close { top: 1.5rem; right: 1.5rem; }
.media-lightbox__prev { left: 1.25rem; top: 50%; transform: translateY(-50%); }
.media-lightbox__next { right: 1.25rem; top: 50%; transform: translateY(-50%); }
.media-lightbox__close:hover,
.media-lightbox__prev:hover,
.media-lightbox__next:hover { background: rgba(255,253,248,0.2); }
.media-lightbox__prev:hover { transform: translateY(-50%) translateX(-3px); }
.media-lightbox__next:hover { transform: translateY(-50%) translateX(3px); }
.media-lightbox__content { position: relative; z-index: 1; max-width: min(92vw, 1100px); display: flex; flex-direction: column; align-items: center; gap: 0.85rem; }
.media-lightbox__img { max-width: 100%; max-height: 82vh; border-radius: 10px; object-fit: contain; display: block; box-shadow: 0 28px 70px rgba(0,0,0,0.55); }
.media-lightbox__caption { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 0 0.5rem; }
.media-lightbox__label { font-size: 0.78rem; font-weight: 600; color: rgba(255,253,248,0.55); }
.media-lightbox__counter { font-size: 0.72rem; font-weight: 700; color: rgba(255,253,248,0.38); }
.media-video-section { background: var(--fena-ink); padding: 4.5rem 0 5rem; }
.media-video-section .section-label { color: rgba(255,253,248,0.4); }
.media-video-section .section-title { color: #fff; }
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.video-card { border-radius: 18px; overflow: hidden; background: rgba(255,253,248,0.04); border: 1px solid rgba(255,253,248,0.07); cursor: pointer; transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; display: flex; flex-direction: column; }
.video-card:hover { transform: translateY(-6px); box-shadow: 0 22px 55px rgba(0,0,0,0.35); border-color: rgba(255,253,248,0.16); }
.video-card.is-hidden { display: none; }
.video-card__thumb { position: relative; aspect-ratio: 16 / 9; overflow: hidden; flex-shrink: 0; }
.video-card__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.55s ease; }
.video-card:hover .video-card__thumb img { transform: scale(1.07); }
.video-card__play { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: transparent; transition: background 0.3s; }
.video-card:hover .video-card__play { background: rgba(12,9,6,0.12); }
.video-card__play-btn { width: 56px; height: 56px; border-radius: 50%; background: rgba(255,253,248,0.9); display: flex; align-items: center; justify-content: center; transition: transform 0.28s, background 0.28s; box-shadow: 0 8px 24px rgba(0,0,0,0.3); }
.video-card__play-btn svg { color: var(--fena-ink); margin-left: 3px; }
.video-card:hover .video-card__play-btn { transform: scale(1.12); background: #fff; }
.video-card__duration { position: absolute; bottom: 0.6rem; right: 0.6rem; font-size: 0.68rem; font-weight: 700; color: #fff; background: rgba(12,9,6,0.75); padding: 0.16rem 0.52rem; border-radius: 5px; letter-spacing: 0.03em; }
.video-card__body { padding: 1.1rem 1.3rem 1.4rem; flex: 1; }
.video-cat { display: inline-block; font-size: 0.6rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.09em; margin-bottom: 0.5rem; }
.vcat--reportage { color: var(--fena-gold); }
.vcat--interview { color: var(--fena-clay); }
.vcat--moments   { color: #6ecf96; }
.vcat--teaser    { color: #a78bfa; }
.video-card__title { font-size: 0.93rem; font-weight: 700; color: rgba(255,253,248,0.92); line-height: 1.42; margin-bottom: 0.4rem; }
.video-card__meta { font-size: 0.7rem; color: rgba(255,253,248,0.35); font-weight: 500; }
.video-modal { position: fixed; inset: 0; z-index: 9950; display: none; align-items: center; justify-content: center; padding: 1rem; }
.video-modal.is-open { display: flex; }
.video-modal__backdrop { position: absolute; inset: 0; background: rgba(8,6,4,0.96); backdrop-filter: blur(10px); }
.video-modal__inner { position: relative; z-index: 1; width: min(96vw, 980px); }
.video-modal__close { position: absolute; top: -3.2rem; right: 0; background: rgba(255,253,248,0.1); border: 1px solid rgba(255,253,248,0.18); color: #fff; border-radius: 50%; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s; }
.video-modal__close:hover { background: rgba(255,253,248,0.22); }
.video-modal__ratio { position: relative; padding-bottom: 56.25%; height: 0; border-radius: 12px; overflow: hidden; background: #000; box-shadow: 0 30px 80px rgba(0,0,0,0.6); }
.video-modal__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.kit-section { background: var(--fena-cream); padding: 3.5rem 0; border-top: 1px solid var(--fena-border); }
.kit-card { background: #fff; border: 1px solid var(--fena-border); border-radius: 18px; padding: 2rem; box-shadow: var(--fena-shadow-soft); display: flex; align-items: center; gap: 1.5rem; transition: box-shadow 0.28s, transform 0.28s; }
.kit-card:hover { transform: translateY(-4px); box-shadow: var(--fena-shadow); }
.kit-card__icon { width: 54px; height: 54px; border-radius: 14px; background: linear-gradient(135deg, var(--fena-clay), var(--fena-gold)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; }
.kit-card__title { font-size: 1rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.2rem; }
.kit-card__desc { font-size: 0.82rem; color: var(--fena-muted); margin: 0; line-height: 1.6; }
.kit-card__btn { margin-left: auto; flex-shrink: 0; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.52rem 1.1rem; border-radius: 999px; background: var(--fena-ink); color: #fff; font-size: 0.75rem; font-weight: 700; text-decoration: none; transition: background 0.22s; white-space: nowrap; }
.kit-card__btn:hover { background: var(--fena-clay); color: #fff; }
@media (max-width: 1199.98px) {
    .photo-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 991.98px) {
    .photo-grid { grid-template-columns: repeat(3, 1fr); }
    .video-grid { grid-template-columns: repeat(2, 1fr); }
    .media-stats__grid { grid-template-columns: repeat(2, 1fr); }
    .media-stat:nth-child(2) { border-right: none; }
    .media-stat:nth-child(3) { border-right: 1px solid rgba(255,253,248,0.08); }
    .media-stat:nth-child(1),
    .media-stat:nth-child(2) { border-bottom: 1px solid rgba(255,253,248,0.08); }
    .kit-card { flex-wrap: wrap; }
    .kit-card__btn { margin-left: 0; }
}
@media (max-width: 767.98px) {
    .photo-grid { grid-template-columns: repeat(2, 1fr); gap: 0.4rem; }
    .video-grid { grid-template-columns: 1fr; }
    .media-lightbox__prev { left: 0.5rem; }
    .media-lightbox__next { right: 0.5rem; }
}
@media (max-width: 575.98px) {
    .media-stats__grid { grid-template-columns: repeat(2, 1fr); }
}

/* =====================================================
   PAGE: ARTICLE (DÉTAIL ACTUALITÉ)
   ===================================================== */
.read-progress { position: fixed; top: 0; left: 0; width: 0%; height: 3px; background: linear-gradient(90deg, var(--fena-gold), var(--fena-clay)); z-index: 9999; transition: width 0.08s linear; pointer-events: none; }
.article-hero { position: relative; min-height: 520px; display: flex; align-items: flex-end; overflow: hidden; }
.article-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center 30%; transform: scale(1.06); transition: transform 8s ease; filter: brightness(0.45); }
.article-hero__bg.is-loaded { transform: scale(1); }
.article-hero__overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(18,14,10,0.88) 0%, rgba(18,14,10,0.32) 55%, transparent 100%); }
.article-hero__content { position: relative; z-index: 2; padding: 4rem 0 3.5rem; width: 100%; }
.article-hero__breadcrumb { list-style: none; margin: 0 0 1.25rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.6rem; font-size: 0.73rem; font-weight: 600; color: rgba(255,253,248,0.5); }
.article-hero__breadcrumb li + li::before { content: '›'; margin-right: 0.6rem; opacity: 0.4; }
.article-hero__breadcrumb a { color: rgba(255,253,248,0.55); text-decoration: none; transition: color 0.2s; }
.article-hero__breadcrumb a:hover { color: var(--fena-gold); }
.article-hero__breadcrumb .current { color: rgba(255,253,248,0.85); }
.article-hero__cat { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.28rem 0.9rem; border-radius: 999px; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; background: var(--fena-clay); color: #fff; margin-bottom: 1rem; }
.article-hero__title { font-size: clamp(1.6rem, 3.5vw, 2.65rem); font-weight: 800; color: #fff; line-height: 1.22; max-width: 820px; margin-bottom: 1.5rem; }
.article-hero__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; font-size: 0.78rem; color: rgba(255,253,248,0.62); }
.article-hero__meta-item { display: flex; align-items: center; gap: 0.45rem; }
.article-hero__meta svg { flex-shrink: 0; }
.article-layout { background: var(--fena-cream); padding: 4rem 0 5rem; }
.article-col { max-width: 780px; margin: 0 auto; }
.article-feat-img { position: relative; height: 460px; border-radius: 20px; overflow: hidden; margin-bottom: 0.75rem; box-shadow: 0 20px 50px rgba(29,26,22,0.15); }
.article-feat-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.article-img-caption { text-align: center; font-size: 0.74rem; color: var(--fena-muted); font-style: italic; margin-bottom: 2.5rem; }
.article-lead { font-size: 1.1rem; line-height: 1.9; color: var(--fena-ink); font-weight: 600; padding: 1.25rem 1.5rem; border-left: 4px solid var(--fena-gold); background: rgba(220,174,63,0.06); border-radius: 0 10px 10px 0; margin-bottom: 2rem; }
.article-text p { font-size: 1rem; line-height: 1.92; color: #3c3028; margin-bottom: 1.5rem; }
.article-h2 { font-size: 1.38rem; font-weight: 800; color: var(--fena-ink); margin: 2.75rem 0 1rem; position: relative; padding-left: 1rem; }
.article-h2::before { content: ''; position: absolute; left: 0; top: 0.2em; bottom: 0.2em; width: 3px; background: var(--fena-gold); border-radius: 2px; }
.article-pullquote { margin: 2.5rem 0; padding: 1.75rem 2rem 1.75rem 2.25rem; background: linear-gradient(135deg, rgba(185,79,45,0.05) 0%, rgba(220,174,63,0.06) 100%); border-left: 4px solid var(--fena-clay); border-radius: 0 16px 16px 0; }
.article-pullquote__text { font-size: 1.15rem; line-height: 1.72; font-weight: 700; color: var(--fena-ink); font-style: italic; margin: 0 0 0.65rem; }
.article-pullquote__author { font-size: 0.75rem; font-weight: 700; color: var(--fena-clay); text-transform: uppercase; letter-spacing: 0.06em; margin: 0; }
.article-inline-img { position: relative; height: 360px; border-radius: 16px; overflow: hidden; margin: 2rem 0 0.5rem; box-shadow: 0 12px 36px rgba(29,26,22,0.12); }
.article-inline-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.article-infobox { background: #fff; border: 1px solid var(--fena-border); border-radius: 16px; padding: 1.5rem 1.75rem; margin: 2rem 0; box-shadow: var(--fena-shadow-soft); }
.article-infobox__title { font-size: 0.8rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.07em; color: var(--fena-clay); margin-bottom: 0.85rem; display: flex; align-items: center; gap: 0.5rem; }
.article-infobox ul { margin: 0; padding-left: 1.25rem; }
.article-infobox ul li { font-size: 0.93rem; line-height: 1.75; color: #3c3028; margin-bottom: 0.3rem; }
.article-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--fena-border); }
.article-tag { padding: 0.32rem 0.9rem; border-radius: 999px; background: rgba(29,26,22,0.05); border: 1px solid var(--fena-border); font-size: 0.73rem; font-weight: 600; color: var(--fena-muted); text-decoration: none; transition: all 0.2s; }
.article-tag:hover { background: var(--fena-ink); border-color: var(--fena-ink); color: #fff; }
.author-box { display: flex; gap: 1.25rem; align-items: flex-start; background: #fff; border: 1px solid var(--fena-border); border-radius: 18px; padding: 1.75rem; margin-top: 3rem; box-shadow: var(--fena-shadow-soft); }
.author-box__avatar { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 3px solid var(--fena-gold); background: var(--fena-ink); display: flex; align-items: center; justify-content: center; }
.author-box__avatar svg { color: rgba(255,255,255,0.5); }
.author-box__name { font-size: 1rem; font-weight: 800; color: var(--fena-ink); margin-bottom: 0.2rem; }
.author-box__role { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; color: var(--fena-clay); margin-bottom: 0.65rem; }
.author-box__bio { font-size: 0.88rem; line-height: 1.72; color: var(--fena-muted); margin: 0; }
.share-strip { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 2rem; padding: 1.25rem 1.5rem; background: #fff; border: 1px solid var(--fena-border); border-radius: 14px; box-shadow: var(--fena-shadow-soft); }
.share-strip__label { font-size: 0.78rem; font-weight: 700; color: var(--fena-muted); text-transform: uppercase; letter-spacing: 0.06em; margin-right: 0.25rem; }
.share-btn { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.5rem 1rem; border-radius: 999px; border: 1.5px solid var(--fena-border); background: #fff; font-size: 0.75rem; font-weight: 700; cursor: pointer; text-decoration: none; transition: all 0.2s; font-family: Poppins, sans-serif; color: var(--fena-ink); }
.share-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(29,26,22,0.12); }
.share-btn--fb:hover  { border-color: #1877f2; color: #1877f2; }
.share-btn--tw:hover  { border-color: #1da1f2; color: #1da1f2; }
.share-btn--wa:hover  { border-color: #25d366; color: #25d366; }
.share-btn--copy:hover { border-color: var(--fena-clay); color: var(--fena-clay); }
.back-link { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; font-weight: 700; color: var(--fena-muted); text-decoration: none; margin-bottom: 2rem; transition: color 0.2s, gap 0.2s; }
.back-link:hover { color: var(--fena-clay); gap: 0.7rem; }
.related-section { background: #fff; }
.related-card { border-radius: 18px; overflow: hidden; background: var(--fena-cream); border: 1px solid var(--fena-border); box-shadow: var(--fena-shadow-soft); transition: transform 0.28s, box-shadow 0.28s; height: 100%; display: flex; flex-direction: column; }
.related-card:hover { transform: translateY(-5px); box-shadow: var(--fena-shadow); }
.related-card__img { position: relative; height: 200px; overflow: hidden; flex-shrink: 0; }
.related-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.related-card:hover .related-card__img img { transform: scale(1.06); }
.related-card__body { padding: 1.35rem 1.5rem 1.65rem; display: flex; flex-direction: column; flex: 1; }
.related-card__date { font-size: 0.73rem; color: var(--fena-muted); font-weight: 500; margin-bottom: 0.45rem; }
.related-card__title { font-size: 0.97rem; font-weight: 800; color: var(--fena-ink); line-height: 1.4; margin-bottom: 1rem; flex: 1; }
.related-card__read { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; font-weight: 700; color: var(--fena-clay); text-decoration: none; margin-top: auto; transition: gap 0.2s; }
.related-card__read:hover { gap: 0.65rem; color: var(--fena-clay); }
.article-newsletter { background: var(--fena-ink); padding: 4.5rem 0; text-align: center; position: relative; overflow: hidden; }
.article-newsletter__deco { position: absolute; top: -60px; right: -40px; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(220,174,63,0.08) 0%, transparent 70%); pointer-events: none; }
@media (max-width: 767.98px) {
    .article-hero { min-height: 420px; }
    .article-feat-img { height: 280px; }
    .article-inline-img { height: 240px; }
    .article-pullquote__text { font-size: 1rem; }
    .author-box { flex-direction: column; }
    .article-hero__title { font-size: 1.55rem; }
}
@media (max-width: 575.98px) {
    .share-strip { gap: 0.5rem; }
    .share-btn span { display: none; }
}

/* Fix vendor prefix */
.form-control-custom { appearance: none; }

/* =====================================================
   BREAKPOINTS EXPLICITES : 375px | 768px | 1024px | 1440px
   ===================================================== */

/* 375px — très petits mobiles (iPhone SE, etc.) */
@media (max-width: 375px) {
    .container { padding-left: 1rem; padding-right: 1rem; }
    .section-title { font-size: clamp(1.45rem, 7vw, 2rem); }
    .hero-caption h1, .hero-caption h2 { font-size: clamp(1.4rem, 8vw, 2rem); }
    .btn-fena, .btn-fena-outline { padding: 0.55rem 1.1rem; font-size: 0.82rem; }
    .fena-about__grid { grid-template-columns: 1fr; }
    .fena-news__grid { grid-template-columns: 1fr; }
    .cultures-track { grid-auto-columns: 88vw; }
    .fena-kings__grid { grid-template-columns: 1fr; }
    .fena-videos__header { flex-direction: column; align-items: flex-start; }
    .videos-grid { grid-template-columns: 1fr !important; }
    .fena-footer__cols { grid-template-columns: 1fr; }
}

/* 768px — tablette portrait */
@media (min-width: 768px) and (max-width: 1023.98px) {
    .fena-about__grid { grid-template-columns: 1fr; }
    .videos-grid { grid-template-columns: repeat(2, 1fr); }
    .fena-kings__grid { grid-template-columns: repeat(2, 1fr); }
}

/* 1024px — tablette paysage / petit desktop */
@media (min-width: 1024px) and (max-width: 1199.98px) {
    .cultures-track { grid-auto-columns: 240px; }
    .videos-grid { grid-template-columns: repeat(3, 1fr); }
}

/* 1440px — grand écran */
@media (min-width: 1440px) {
    .container { max-width: 1360px; }
    .section-title { font-size: clamp(2.2rem, 3vw, 3rem); }
    .cultures-track { grid-auto-columns: 300px; }
    .hero-caption h1 { font-size: clamp(2.8rem, 4vw, 4rem); }
}

/* ── Onglets vidéos par édition (page Médias) ─────────────────────────────── */
.video-edition-panel { display: none; }
.video-edition-panel--active { display: block; }
