/*
Theme Name:  Lumumba Lab
Theme URI:   https://www.llab.cd
Author:      Lumumba Lab
Description: Thème institutionnel Lumumba Lab v3 — aéré, élégant, orange accent.
Version:     3.0.0
Text Domain: llab
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root {
    /* Couleurs */
    --white:       #ffffff;
    --off-white:   #fafaf8;
    --light:       #f4f2ee;
    --light-2:     #ede9e3;
    --light-3:     #e3ddd6;
    --ink:         #181614;
    --ink-2:       #3c3833;
    --ink-3:       #7a746c;
    --ink-4:       #b0a99f;
    --orange:      #e06030;
    --orange-2:    #f07848;
    --orange-pale: rgba(224, 96, 48, .08);
    --orange-mid:  rgba(224, 96, 48, .15);

    /* Typographie */
    --font-serif: 'DM Serif Display', Georgia, serif;
    --font-sans:  'DM Sans', system-ui, sans-serif;

    /* Espacement */
    --gap:       24px;
    --col:       72px;
    --sec:       128px;
    --sec-sm:    80px;
    --sec-lg:    160px;

    /* Effets */
    --radius:    4px;
    --radius-lg: 8px;
    --shadow:    0 1px 4px rgba(24,22,20,.06), 0 4px 20px rgba(24,22,20,.07);
    --shadow-lg: 0 8px 32px rgba(24,22,20,.10), 0 24px 64px rgba(24,22,20,.09);
    --tr:        .35s cubic-bezier(.4,0,.2,1);
    --tr-s:      .2s ease;
}

/* ============================================================
   RESET
   ============================================================ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{
    font-family:var(--font-sans);
    background:var(--white);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
    line-height:1.65;
}
img{max-width:100%;display:block;height:auto;}
a{text-decoration:none;color:inherit;transition:color var(--tr-s);}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}

/* ============================================================
   LAYOUT
   ============================================================ */
.wrap{
    max-width:1280px;
    margin:0 auto;
    padding:0 var(--col);
}
.wrap--narrow{max-width:900px;}
.wrap--wide{max-width:1440px;}
.section{padding:var(--sec) 0;}
.section--sm{padding:var(--sec-sm) 0;}
.section--lg{padding:var(--sec-lg) 0;}
.bg-white{background:var(--white);}
.bg-light{background:var(--light);}
.bg-off{background:var(--off-white);}

/* ============================================================
   TYPE HELPERS
   ============================================================ */
.kicker{
    font-family:var(--font-sans);
    font-size:.72rem;font-weight:500;
    letter-spacing:2.8px;text-transform:uppercase;
    color:var(--orange);
    display:inline-block;margin-bottom:20px;
}
.kicker--dark{color:var(--ink-3);}

.headline-xl{
    font-family:var(--font-serif);
    font-size:clamp(2.8rem,5vw,4.8rem);
    font-weight:400;line-height:1.05;
    letter-spacing:-.5px;color:var(--ink);
}
.headline-lg{
    font-family:var(--font-serif);
    font-size:clamp(2.2rem,3.8vw,3.6rem);
    font-weight:400;line-height:1.08;
    letter-spacing:-.3px;color:var(--ink);
}
.headline-md{
    font-family:var(--font-serif);
    font-size:clamp(1.7rem,2.8vw,2.6rem);
    font-weight:400;line-height:1.12;
    color:var(--ink);
}
.headline-sm{
    font-family:var(--font-serif);
    font-size:1.4rem;
    font-weight:400;line-height:1.25;
    color:var(--ink);
}
em.accent{font-style:italic;color:var(--orange);}

.body-lg{font-size:1.1rem;line-height:1.78;color:var(--ink-2);font-weight:300;}
.body-md{font-size:1rem;line-height:1.78;color:var(--ink-2);}
.body-sm{font-size:.88rem;line-height:1.7;color:var(--ink-3);}

/* ============================================================
   BOUTONS
   ============================================================ */
.btn{
    display:inline-flex;align-items:center;gap:10px;
    font-family:var(--font-sans);
    font-size:.8rem;font-weight:500;
    letter-spacing:.6px;
    padding:14px 30px;
    border-radius:var(--radius);
    border:none;cursor:pointer;
    transition:var(--tr);
    white-space:nowrap;
    position:relative;
}
.btn-orange{background:var(--orange);color:var(--white);}
.btn-orange:hover{background:var(--orange-2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(224,96,48,.25);}
.btn-dark{background:var(--ink);color:var(--white);}
.btn-dark:hover{background:var(--ink-2);transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-outline{
    background:transparent;color:var(--ink);
    border:1.5px solid var(--light-3);
}
.btn-outline:hover{border-color:var(--ink);background:var(--light);}
.btn-outline-light{
    background:transparent;color:rgba(255,255,255,.85);
    border:1.5px solid rgba(255,255,255,.25);
}
.btn-outline-light:hover{border-color:rgba(255,255,255,.7);color:var(--white);}
.btn-ghost{
    background:transparent;color:var(--orange);
    border:none;padding:0;
    font-size:.82rem;font-weight:500;
    letter-spacing:.3px;
    display:inline-flex;align-items:center;gap:8px;
}
.btn-ghost:hover{gap:13px;color:var(--orange-2);}
.btn-ghost .arr{display:inline-block;transition:transform var(--tr);}
.btn-ghost:hover .arr{transform:translateX(4px);}

.btn-link{
    display:inline-flex;align-items:center;gap:8px;
    font-size:.82rem;font-weight:500;
    color:var(--ink);letter-spacing:.3px;
    transition:var(--tr-s);
}
.btn-link:hover{color:var(--orange);}
.btn-link .arr{transition:transform var(--tr);}
.btn-link:hover .arr{transform:translateX(4px);}

/* Loader */
.btn .ldr{display:none;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;position:absolute;}
.btn.loading .btn-text{visibility:hidden;}
.btn.loading .ldr{display:block;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============================================================
   DIVIDER
   ============================================================ */
.rule{height:1px;background:var(--light-2);width:100%;}

/* ============================================================
   NAV
   ============================================================ */
.site-nav{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    height:72px;
    transition:background var(--tr),box-shadow var(--tr),border-color var(--tr);
}
.site-nav.scrolled{
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(18px);
    border-bottom:1px solid var(--light-2);
    box-shadow:0 1px 16px rgba(24,22,20,.05);
}
.nav-inner{
    height:72px;max-width:1280px;margin:0 auto;
    padding:0 var(--col);
    display:flex;align-items:center;
    justify-content:space-between;gap:24px;
}
/* Logo */
.nav-brand img{
    height:44px;width:auto;
    transition:filter var(--tr),opacity var(--tr);
}
.site-nav:not(.scrolled) .nav-brand img{filter:invert(1);opacity:.9;}
.site-nav.scrolled .nav-brand img{filter:none;mix-blend-mode:multiply;}

/* Links */
.nav-links{display:flex;align-items:center;gap:2px;}
.nav-links a{
    font-size:.78rem;font-weight:400;
    letter-spacing:.4px;
    padding:8px 16px;border-radius:var(--radius);
    color:rgba(255,255,255,.65);
    transition:var(--tr-s);
}
.site-nav.scrolled .nav-links a{color:var(--ink-3);}
.nav-links a:hover{color:var(--white);background:rgba(255,255,255,.1);}
.site-nav.scrolled .nav-links a:hover{color:var(--ink);background:var(--light);}
.nav-links a.cur{color:var(--white);}
.site-nav.scrolled .nav-links a.cur{color:var(--ink);}

/* CTA nav */
.nav-cta{
    background:var(--orange)!important;
    color:var(--white)!important;
    padding:9px 22px!important;
    font-weight:500!important;
    border-radius:var(--radius);
}
.nav-cta:hover{background:var(--orange-2)!important;transform:translateY(-1px);}

/* Burger */
.nav-burger{
    display:none;flex-direction:column;gap:5px;
    padding:6px;cursor:pointer;
}
.nav-burger span{
    display:block;width:22px;height:1.5px;
    background:rgba(255,255,255,.85);border-radius:2px;
    transition:var(--tr);
}
.site-nav.scrolled .nav-burger span{background:var(--ink);}

/* Mobile nav */
.mob-nav{
    position:fixed;top:72px;left:0;right:0;z-index:999;
    background:rgba(255,255,255,.98);backdrop-filter:blur(18px);
    border-bottom:1px solid var(--light-2);
    padding:8px 16px 18px;
    flex-direction:column;gap:2px;
    display:none;
    box-shadow:var(--shadow-lg);
}
.mob-nav.open{display:flex;}
.mob-nav a{
    font-size:.85rem;font-weight:400;
    color:var(--ink-2);
    padding:13px 16px;border-radius:var(--radius);
    transition:var(--tr-s);
}
.mob-nav a:hover{background:var(--light);color:var(--ink);}

/* ============================================================
   HERO — style Fortil : texte gauche, grande photo droite
   ============================================================ */
.hero{
    min-height:100vh;
    background:var(--ink);
    display:grid;
    grid-template-columns:1fr 1fr;
    position:relative;
    overflow:hidden;
}
/* Côté gauche — texte */
.hero-left{
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:180px var(--col) 80px;
    position:relative;z-index:2;
    background:var(--ink);
}
/* Ligne déco orange */
.hero-left::before{
    content:'';
    position:absolute;top:0;left:0;
    width:3px;height:100%;
    background:linear-gradient(to bottom,transparent 20%,var(--orange) 60%,transparent 100%);
}
.hero-eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-size:.7rem;font-weight:500;
    letter-spacing:2.5px;text-transform:uppercase;
    color:rgba(255,255,255,.4);
    margin-bottom:24px;
}
.hero-pulse{
    width:7px;height:7px;border-radius:50%;
    background:var(--orange);
    animation:pulse 2.4s ease infinite;
}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.3;transform:scale(.7);}}

.hero-title{
    font-family:var(--font-serif);
    font-size:clamp(2.8rem,4.5vw,5rem);
    font-weight:400;
    line-height:1.03;
    color:var(--white);
    margin-bottom:28px;
    max-width:520px;
}
.hero-title em{font-style:italic;color:var(--orange);}

.hero-desc{
    font-size:1.05rem;line-height:1.75;
    color:rgba(255,255,255,.55);
    max-width:440px;margin-bottom:44px;
    font-weight:300;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}

/* Stats strip bas hero */
.hero-stats{
    margin-top:64px;padding-top:36px;
    border-top:1px solid rgba(255,255,255,.1);
    display:flex;gap:40px;flex-wrap:wrap;
}
.hero-stat-n{
    font-family:var(--font-serif);
    font-size:2.4rem;font-weight:400;
    color:var(--white);display:block;
    line-height:1;margin-bottom:6px;
}
.hero-stat-n sup{font-size:1.1rem;color:var(--orange);}
.hero-stat-l{
    font-size:.7rem;font-weight:500;
    letter-spacing:2px;text-transform:uppercase;
    color:rgba(255,255,255,.35);
}

/* Côté droit — grande photo */
.hero-right{
    position:relative;overflow:hidden;
}
.hero-photo{
    width:100%;height:100%;
    object-fit:cover;
    display:block;
    filter:brightness(.85) saturate(.9);
}
.hero-photo-placeholder{
    width:100%;height:100%;
    background:linear-gradient(160deg,var(--ink-2) 0%,#2a1f18 100%);
    display:flex;align-items:center;justify-content:center;
}
.hero-photo-placeholder svg{width:64px;height:64px;fill:rgba(255,255,255,.08);}
/* Overlay gradient gauche sur la photo */
.hero-right::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(to right,var(--ink) 0%,transparent 30%);
    pointer-events:none;
}

/* ============================================================
   PHOTO BAND — défilement horizontal
   ============================================================ */
.photo-band{
    overflow:hidden;border-top:1px solid var(--light-2);
    border-bottom:1px solid var(--light-2);
    background:var(--off-white);
}
.pb-track{
    display:flex;gap:3px;
    animation:pb-scroll 48s linear infinite;
    width:max-content;
}
.photo-band:hover .pb-track{animation-play-state:paused;}
.pb-img{
    width:340px;height:240px;object-fit:cover;flex-shrink:0;
    transition:filter var(--tr);
}
.pb-img:hover{filter:brightness(1.05);}
.pb-ph{
    width:340px;height:240px;flex-shrink:0;
    background:var(--light);
    display:flex;align-items:center;justify-content:center;
    flex-direction:column;gap:10px;
}
.pb-ph svg{width:28px;height:28px;fill:var(--light-3);}
.pb-ph span{font-size:.68rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--ink-4);}
@keyframes pb-scroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* ============================================================
   À PROPOS — style Fortil : texte + photo côte à côte
   ============================================================ */
.about-sec{background:var(--white);}
.split{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px;
    align-items:center;
}
.split--reverse{direction:rtl;}
.split--reverse>*{direction:ltr;}
.split--wide{gap:120px;}
.split--narrow{gap:72px;}

.split-text{}
.split-text .kicker{margin-bottom:16px;}
.split-headline{margin-bottom:24px;}
.split-body{
    font-size:1rem;line-height:1.82;
    color:var(--ink-2);font-weight:300;
    margin-bottom:32px;
}
.split-body p+p{margin-top:16px;}

/* Photo dans un split */
.split-media{position:relative;}
.split-img{
    width:100%;height:auto;
    border-radius:var(--radius-lg);
    display:block;
    box-shadow:var(--shadow-lg);
    aspect-ratio:4/3;object-fit:cover;
}
.split-img-placeholder{
    width:100%;
    aspect-ratio:4/3;
    background:var(--light);
    border-radius:var(--radius-lg);
    display:flex;align-items:center;justify-content:center;
    flex-direction:column;gap:12px;
    color:var(--ink-4);
    font-size:.72rem;font-weight:500;
    letter-spacing:2px;text-transform:uppercase;
}
.split-img-placeholder svg{width:36px;height:36px;fill:var(--light-3);}

/* Badge décoratif sur la photo */
.split-badge{
    position:absolute;
    bottom:-20px;left:-20px;
    background:var(--white);
    border-radius:var(--radius-lg);
    padding:20px 24px;
    box-shadow:var(--shadow-lg);
    display:flex;align-items:center;gap:14px;
    min-width:200px;
}
.split-badge-num{
    font-family:var(--font-serif);
    font-size:2.2rem;font-weight:400;
    color:var(--orange);line-height:1;
}
.split-badge-num sup{font-size:.9rem;}
.split-badge-lbl{font-size:.78rem;line-height:1.4;color:var(--ink-2);}

/* Piliers valeurs */
.values{display:flex;flex-direction:column;margin-top:8px;}
.value-row{
    display:flex;align-items:flex-start;gap:20px;
    padding:22px 0;border-bottom:1px solid var(--light-2);
    transition:padding-left var(--tr);
}
.value-row:first-child{border-top:1px solid var(--light-2);}
.value-row:hover{padding-left:8px;}
.value-num{
    font-family:var(--font-serif);
    font-size:1rem;font-style:italic;
    color:var(--orange);opacity:.6;
    min-width:28px;margin-top:1px;
}
.value-title{font-size:.9rem;font-weight:500;color:var(--ink);margin-bottom:4px;}
.value-body{font-size:.84rem;line-height:1.65;color:var(--ink-3);}

/* ============================================================
   INITIATIVES — cartes propres, pas tassées
   ============================================================ */
.initiatives-sec{background:var(--light);}
.sec-header{
    display:flex;justify-content:space-between;
    align-items:flex-end;margin-bottom:60px;
    flex-wrap:wrap;gap:24px;
}
.sec-header-left{}
.sec-header-right{flex-shrink:0;}

/* Grille espacée — 3 colonnes */
.inits-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}
/* Carte init */
.init-card{
    background:var(--white);
    border-radius:var(--radius-lg);
    overflow:hidden;
    border:1px solid var(--light-2);
    display:flex;flex-direction:column;
    transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr);
}
.init-card:hover{
    box-shadow:var(--shadow-lg);
    transform:translateY(-6px);
    border-color:transparent;
}
/* Grande carte : 1ère */
.inits-grid .init-card:first-child{
    grid-column:span 2;
    flex-direction:row;
}
.inits-grid .init-card:first-child .ic-media{
    width:55%;flex-shrink:0;
    aspect-ratio:auto;
    min-height:340px;
}
.inits-grid .init-card:first-child .ic-body{
    padding:40px;
    justify-content:space-between;
}

.ic-media{
    position:relative;overflow:hidden;
    aspect-ratio:16/10;
}
.ic-img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .6s ease;
}
.init-card:hover .ic-img{transform:scale(1.04);}
.ic-ph{
    width:100%;height:100%;
    background:linear-gradient(135deg,var(--light) 0%,var(--light-2) 100%);
    display:flex;align-items:center;justify-content:center;
}
.ic-ph svg{width:40px;height:40px;fill:var(--light-3);}
.ic-overlay{
    position:absolute;inset:0;
    background:linear-gradient(to top,rgba(24,22,20,.5) 0%,transparent 50%);
}
/* Tag catégorie */
.ic-tag{
    position:absolute;top:16px;left:16px;
    font-size:.66rem;font-weight:500;
    letter-spacing:1.5px;text-transform:uppercase;
    background:var(--orange);color:var(--white);
    padding:5px 11px;border-radius:2px;
}
/* Numéro bas-gauche */
.ic-num{
    position:absolute;bottom:14px;right:14px;
    font-family:var(--font-serif);
    font-size:.8rem;font-style:italic;
    color:rgba(255,255,255,.6);
}

.ic-body{
    padding:28px;flex:1;
    display:flex;flex-direction:column;
}
.ic-title{
    font-family:var(--font-serif);
    font-size:1.25rem;font-weight:400;
    color:var(--ink);margin-bottom:10px;
    line-height:1.25;
}
.inits-grid .init-card:first-child .ic-title{font-size:1.6rem;line-height:1.15;}
.ic-excerpt{font-size:.85rem;line-height:1.7;color:var(--ink-3);flex:1;}
.ic-link{
    margin-top:20px;
    font-size:.78rem;font-weight:500;
    color:var(--orange);
    display:inline-flex;align-items:center;gap:7px;
    transition:gap var(--tr-s),color var(--tr-s);
}
.init-card:hover .ic-link{gap:11px;}

/* ============================================================
   GALERIE ÉVÉNEMENTS — grille asymétrique, bien aérée
   ============================================================ */
.events-sec{background:var(--white);}
/* Grille 3 colonnes, hauteurs variables */
.ev-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-auto-rows:auto;
    gap:20px;
}
.ev-item{
    border-radius:var(--radius-lg);
    overflow:hidden;
    position:relative;cursor:pointer;
    background:var(--light);
}
/* Taille variable par position */
.ev-item:nth-child(1){grid-column:span 2;aspect-ratio:16/9;}
.ev-item:nth-child(2){aspect-ratio:3/4;}
.ev-item:nth-child(3){aspect-ratio:1;}
.ev-item:nth-child(4){aspect-ratio:1;}
.ev-item:nth-child(5){grid-column:span 2;aspect-ratio:16/7;}
.ev-item:nth-child(n+6){aspect-ratio:4/3;}

.ev-img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .55s ease,filter .55s ease;
    display:block;
}
.ev-item:hover .ev-img{transform:scale(1.04);filter:brightness(1.05);}
.ev-caption{
    position:absolute;inset:0;
    background:linear-gradient(to top,rgba(24,22,20,.75) 0%,transparent 55%);
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:22px;
    opacity:0;transition:opacity var(--tr);
}
.ev-item:hover .ev-caption{opacity:1;}
.ev-date{
    font-size:.66rem;font-weight:500;
    letter-spacing:2px;text-transform:uppercase;
    color:var(--orange);margin-bottom:5px;
}
.ev-name{
    font-family:var(--font-serif);
    font-size:1rem;color:var(--white);
    line-height:1.3;
}
/* Placeholder */
.ev-ph{
    width:100%;height:100%;
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    gap:10px;color:var(--ink-4);
}
.ev-ph svg{width:28px;height:28px;fill:var(--light-3);}
.ev-ph span{font-size:.68rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;}

/* ============================================================
   ÉQUIPE
   ============================================================ */
.team-sec{background:var(--light);}
.team-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
    gap:40px 28px;
}
.t-card{
    display:flex;flex-direction:column;
    align-items:center;text-align:center;
}
.t-avatar{
    width:128px;height:128px;
    border-radius:50%;overflow:hidden;
    background:var(--light-2);
    border:2px solid var(--light-2);
    margin-bottom:18px;
    position:relative;
    transition:border-color var(--tr),box-shadow var(--tr);
}
.t-card:hover .t-avatar{
    border-color:var(--orange);
    box-shadow:0 0 0 5px var(--orange-pale);
}
.t-avatar img{width:100%;height:100%;object-fit:cover;}
.t-avatar-ph{
    width:100%;height:100%;
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(145deg,var(--light-2),var(--light-3));
}
.t-avatar-ph svg{width:52px;height:52px;fill:var(--light-3);}
/* Petit badge orange */
.t-badge{
    position:absolute;bottom:2px;right:2px;
    width:28px;height:28px;border-radius:50%;
    background:var(--orange);
    border:2px solid var(--light);
    display:flex;align-items:center;justify-content:center;
}
.t-badge svg{width:11px;height:11px;fill:var(--white);}
.t-name{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:4px;}
.t-role{font-size:.78rem;color:var(--ink-3);line-height:1.45;}
/* Réseaux */
.t-socials{
    display:flex;gap:8px;margin-top:10px;
    opacity:0;transition:opacity var(--tr);
}
.t-card:hover .t-socials{opacity:1;}
.t-socials a{
    width:28px;height:28px;border-radius:50%;
    background:var(--light-2);border:1px solid var(--light-3);
    display:flex;align-items:center;justify-content:center;
    transition:background var(--tr-s),border-color var(--tr-s);
}
.t-socials a:hover{background:var(--orange);border-color:var(--orange);}
.t-socials a svg{width:11px;height:11px;fill:var(--ink-3);transition:fill var(--tr-s);}
.t-socials a:hover svg{fill:var(--white);}

/* Bandeau CTA équipe */
.team-cta{
    margin-top:64px;padding:48px 64px;
    background:var(--white);
    border:1px solid var(--light-2);
    border-radius:var(--radius-lg);
    display:flex;justify-content:space-between;align-items:center;
    gap:32px;flex-wrap:wrap;
}
.team-cta-title{
    font-family:var(--font-serif);
    font-size:1.6rem;color:var(--ink);margin-bottom:6px;
}
.team-cta-sub{font-size:.9rem;color:var(--ink-3);}

/* ============================================================
   ACTUALITÉS
   ============================================================ */
.news-sec{background:var(--white);}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}

/* Post card */
.post-card{
    background:var(--white);
    border:1px solid var(--light-2);
    border-radius:var(--radius-lg);
    overflow:hidden;
    display:flex;flex-direction:column;
    transition:box-shadow var(--tr),transform var(--tr),border-color var(--tr);
}
.post-card:hover{box-shadow:var(--shadow);transform:translateY(-4px);border-color:transparent;}
.pc-media{overflow:hidden;}
.pc-img{width:100%;height:220px;object-fit:cover;display:block;transition:transform .5s ease;}
.post-card:hover .pc-img{transform:scale(1.04);}
.pc-ph{width:100%;height:220px;background:var(--light);display:flex;align-items:center;justify-content:center;}
.pc-ph svg{width:28px;height:28px;fill:var(--light-3);}
.pc-body{padding:26px;flex:1;display:flex;flex-direction:column;}
.pc-cat{
    font-size:.66rem;font-weight:500;
    letter-spacing:2px;text-transform:uppercase;
    color:var(--orange);margin-bottom:10px;
}
.pc-title{
    font-family:var(--font-serif);
    font-size:1.1rem;color:var(--ink);
    margin-bottom:10px;line-height:1.3;
}
.pc-title a{color:inherit;}
.pc-title a:hover{color:var(--orange);}
.pc-excerpt{font-size:.84rem;line-height:1.68;color:var(--ink-3);flex:1;}
.pc-meta{
    display:flex;justify-content:space-between;align-items:center;
    margin-top:18px;padding-top:14px;
    border-top:1px solid var(--light-2);
    font-size:.75rem;color:var(--ink-4);
}
.pc-read{
    font-size:.72rem;font-weight:500;
    color:var(--orange);
    display:inline-flex;align-items:center;gap:5px;
    transition:gap var(--tr-s);
}
.post-card:hover .pc-read{gap:9px;}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-sec{background:var(--off-white);}
.contact-grid{
    display:grid;
    grid-template-columns:1fr 1.15fr;
    gap:80px;align-items:start;
}
.contact-infos{display:flex;flex-direction:column;gap:0;margin-top:36px;}
.c-item{
    display:flex;align-items:flex-start;gap:16px;
    padding:20px 0;border-bottom:1px solid var(--light-2);
}
.c-item:last-child{border-bottom:none;}
.c-icon{
    width:36px;height:36px;flex-shrink:0;
    border-radius:var(--radius);
    background:var(--orange-pale);border:1px solid var(--orange-mid);
    display:flex;align-items:center;justify-content:center;
}
.c-icon svg{width:15px;height:15px;fill:var(--orange);}
.c-lbl{font-size:.66rem;font-weight:500;letter-spacing:1.8px;text-transform:uppercase;color:var(--ink-4);margin-bottom:3px;}
.c-val{font-size:.9rem;color:var(--ink-2);line-height:1.5;}
.c-val a{color:var(--orange);}
.c-val a:hover{text-decoration:underline;}

/* Formulaire */
.cf{
    background:var(--white);
    border-radius:var(--radius-lg);
    padding:44px;
    box-shadow:var(--shadow);
    border:1px solid var(--light-2);
}
.cf-title{font-family:var(--font-serif);font-size:1.7rem;color:var(--ink);margin-bottom:4px;}
.cf-sub{font-size:.85rem;color:var(--ink-3);margin-bottom:32px;}
.fg{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.fg label{font-size:.68rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-2);}
.fg input,.fg textarea,.fg select{
    background:var(--off-white);
    border:1.5px solid var(--light-2);
    border-radius:var(--radius);
    padding:13px 16px;
    font-family:var(--font-sans);font-size:.92rem;color:var(--ink);
    outline:none;
    transition:border-color var(--tr-s),box-shadow var(--tr-s),background var(--tr-s);
    -webkit-appearance:none;width:100%;
}
.fg input:focus,.fg textarea:focus,.fg select:focus{
    border-color:var(--orange);
    background:var(--white);
    box-shadow:0 0 0 3px var(--orange-pale);
}
.fg input::placeholder,.fg textarea::placeholder{color:var(--ink-4);}
.fg textarea{resize:vertical;min-height:128px;}
.fg select{cursor:pointer;}
.cf-ok{
    display:none;text-align:center;padding:48px 20px;
}
.cf-ok-icon{
    width:54px;height:54px;border-radius:50%;
    background:var(--orange-pale);border:1.5px solid var(--orange-mid);
    color:var(--orange);font-size:1.5rem;
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 16px;
}
.cf-ok h3{font-family:var(--font-serif);font-size:1.6rem;color:var(--ink);margin-bottom:8px;}
.cf-ok p{font-size:.9rem;color:var(--ink-3);}

/* ============================================================
   PAGE INTÉRIEURE
   ============================================================ */
.page-hero{
    padding:140px 0 72px;
    background:var(--light);
    border-bottom:1px solid var(--light-2);
}
.page-hero-kicker{margin-bottom:14px;}
.page-hero h1{
    font-family:var(--font-serif);
    font-size:clamp(2.2rem,4.5vw,3.6rem);
    font-weight:400;line-height:1.05;
    margin-bottom:14px;
}
.page-hero-meta{font-size:.8rem;color:var(--ink-4);}

/* Contenu riche */
.rich-body{padding:72px 0;}
.rich-inner{max-width:760px;margin:0 auto;padding:0 var(--col);}
.rich-inner h2{font-family:var(--font-serif);font-size:1.85rem;margin:44px 0 14px;}
.rich-inner h3{font-family:var(--font-serif);font-size:1.3rem;margin:28px 0 10px;}
.rich-inner p{font-size:1rem;line-height:1.82;color:var(--ink-2);margin-bottom:18px;}
.rich-inner ul,.rich-inner ol{padding-left:22px;margin-bottom:18px;}
.rich-inner li{font-size:.97rem;line-height:1.75;color:var(--ink-2);margin-bottom:6px;}
.rich-inner a{color:var(--orange);text-decoration:underline;text-decoration-color:var(--orange-mid);}
.rich-inner a:hover{text-decoration-color:var(--orange);}
.rich-inner img{border-radius:var(--radius-lg);margin:28px 0;box-shadow:var(--shadow);}
.rich-inner blockquote{
    border-left:3px solid var(--orange);
    padding:14px 24px;margin:28px 0;
    background:var(--orange-pale);border-radius:0 var(--radius) var(--radius) 0;
    font-family:var(--font-serif);font-size:1.1rem;font-style:italic;
    color:var(--ink);line-height:1.6;
}

.back-link{
    display:inline-flex;align-items:center;gap:8px;
    font-size:.75rem;font-weight:500;
    letter-spacing:.8px;
    color:var(--ink-3);
    padding:48px var(--col) 0;
    transition:color var(--tr-s),gap var(--tr-s);
}
.back-link:hover{color:var(--orange);gap:12px;}
.back-link::before{content:'←';}

/* ============================================================
   PAGINATION
   ============================================================ */
.pagination{display:flex;justify-content:center;gap:6px;padding:48px 0;}
.pagination a,.pagination span{
    width:38px;height:38px;border-radius:var(--radius);
    display:flex;align-items:center;justify-content:center;
    font-size:.85rem;font-weight:500;color:var(--ink-3);
    border:1.5px solid var(--light-2);transition:var(--tr-s);
}
.pagination a:hover{border-color:var(--orange);color:var(--orange);background:var(--orange-pale);}
.pagination .current{background:var(--orange);color:var(--white);border-color:var(--orange);}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--ink);padding:72px 0 0;}
.ft{
    display:grid;
    grid-template-columns:280px 1fr 1fr 1fr;
    gap:60px;padding-bottom:56px;
    border-bottom:1px solid rgba(255,255,255,.07);
}
.ft-logo{height:38px;width:auto;filter:invert(1);opacity:.65;margin-bottom:20px;}
.ft-desc{font-size:.8rem;line-height:1.7;color:rgba(255,255,255,.3);}
.ft-col-h{font-size:.65rem;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.25);margin-bottom:18px;}
.ft-links{display:flex;flex-direction:column;gap:9px;}
.ft-links a{font-size:.84rem;color:rgba(255,255,255,.42);transition:color var(--tr-s),padding-left var(--tr-s);}
.ft-links a:hover{color:rgba(255,255,255,.85);padding-left:4px;}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;padding:22px 0;flex-wrap:wrap;gap:12px;}
.ft-copy{font-size:.7rem;color:rgba(255,255,255,.2);letter-spacing:.5px;}
.ft-legal{display:flex;gap:20px;}
.ft-legal a{font-size:.7rem;color:rgba(255,255,255,.2);transition:color var(--tr-s);}
.ft-legal a:hover{color:rgba(255,255,255,.55);}

/* ============================================================
   ANIMATIONS
   ============================================================ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
.reveal.d4{transition-delay:.32s;}
/* Fade de côté */
.reveal-left{opacity:0;transform:translateX(-24px);transition:opacity .65s ease,transform .65s ease;}
.reveal-right{opacity:0;transform:translateX(24px);transition:opacity .65s ease,transform .65s ease;}
.reveal-left.in,.reveal-right.in{opacity:1;transform:translateX(0);}

/* ============================================================
   ADMIN BAR
   ============================================================ */
.admin-bar .site-nav{top:32px;}
.admin-bar .mob-nav{top:calc(72px + 32px);}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1100px){
    :root{--col:40px;--sec:96px;}
    .hero{grid-template-columns:1fr;min-height:auto;}
    .hero-right{display:none;}
    .hero-left{padding:140px var(--col) 80px;}
    .split{grid-template-columns:1fr;gap:48px;}
    .split--reverse{direction:ltr;}
    .inits-grid{grid-template-columns:1fr 1fr;}
    .inits-grid .init-card:first-child{grid-column:span 2;flex-direction:column;}
    .inits-grid .init-card:first-child .ic-media{width:100%;min-height:auto;}
    .ev-grid{grid-template-columns:1fr 1fr;}
    .ev-item:nth-child(1){grid-column:span 2;}
    .ev-item:nth-child(5){grid-column:span 2;}
    .news-grid{grid-template-columns:1fr 1fr;}
    .contact-grid{grid-template-columns:1fr;gap:48px;}
    .ft{grid-template-columns:1fr 1fr;gap:40px;}
    .split-badge{display:none;}
}
@media(max-width:768px){
    :root{--col:20px;--sec:72px;}
    .nav-links{display:none;}
    .nav-burger{display:flex;}
    .inits-grid{grid-template-columns:1fr;}
    .inits-grid .init-card:first-child{grid-column:span 1;}
    .ev-grid{grid-template-columns:1fr;}
    .ev-item:nth-child(n){grid-column:span 1;aspect-ratio:16/9;}
    .team-grid{grid-template-columns:repeat(2,1fr);}
    .news-grid{grid-template-columns:1fr;}
    .cf{padding:28px 20px;}
    .fg-row{grid-template-columns:1fr;}
    .ft{grid-template-columns:1fr;gap:32px;}
    .ft-bottom{flex-direction:column;align-items:flex-start;}
    .team-cta{padding:32px 24px;flex-direction:column;align-items:flex-start;}
    .hero-title{font-size:2.6rem;}
}
@media(max-width:480px){
    .hero-title{font-size:2.2rem;}
    .hero-stats{gap:24px;}
    .team-grid{grid-template-columns:repeat(2,1fr);}
}
