
:root {
  --coral:      #FB926B;
  --mint:       #BAFAEE;
  --periwinkle: #BFCCFB;
  --cream:      #FEECC2;
  --cream-mid:  #fbefd3;
  --rose:       #FFCEEC;
  --lavender:   #CDB8FF;
  --body-bg:    #f6f6f6;
  --ink:        #161616;
  --ink-70:     rgba(22,22,22,.7);
  --ink-45:     rgba(22,22,22,.45);
  --ink-20:     rgba(22,22,22,.2);
  --dark-btn:   #2b2b2b;
  --mid:        #d0d0d0;
  --white:      #ffffff;
  --display: 'Bricolage Grotesque', system-ui, sans-serif;
  --sans: 'Lato', system-ui, sans-serif;
  --r-grid:14px;
  /* catégories projets */
  --ca:#FB926B; /* Aménagement */
  --cb:#BFCCFB; /* Budget participatif */
  --cc:#BAFAEE; /* Diagnostic */
  --cd:#FEECC2; /* Démocratie locale */
  --ce:#FFCEEC; /* Concertation */
  --cf:#CDB8FF; /* Espace public */
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family: var(--sans);background:var(--body-bg);color:var(--ink);cursor:none;font-size:16.8px;line-height:1.6;font-weight:400}

/* ── CURSOR ── */
#cur{width:9px;height:9px;background:var(--coral);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .12s,background .2s;mix-blend-mode:multiply}
#cur-r{width:30px;height:30px;border:1.5px solid rgba(251,146,107,.4);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:transform .3s cubic-bezier(.23,1,.32,1)}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:1rem 3.5rem;background:rgba(246,246,246,.97);backdrop-filter:blur(16px);border-bottom:1.5px solid var(--mid)}
.logo{font-family: var(--sans);font-size:1.2rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.04em}
.logo em{font-style:normal;color:var(--coral)}
.nav-menu{display:flex;align-items:center;gap:2rem;list-style:none}
.nav-menu a{text-decoration:none;font-size:.82rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink);opacity:.35;transition:opacity .2s}
.nav-menu a:hover,.nav-menu a.active{opacity:1}
.nav-btn{background:var(--ink)!important;color:#fff!important;padding:.42rem 1.2rem;border-radius:0!important;opacity:1!important;border:1.5px solid var(--ink)!important;font-weight:700!important;transition:background .18s!important}
.nav-btn:hover{background:var(--coral)!important;border-color:var(--coral)!important}
.nav-secondary{display:flex;gap:1.2rem}
.nav-secondary a{text-decoration:none;font-size:.82rem;font-weight:500;color:var(--ink-45);transition:color .2s}
.nav-secondary a:hover{color:var(--coral)}

/* ── SWITCHER ── */
.tpl-sw{position:fixed;bottom:2rem;right:2rem;z-index:600;background:var(--ink);padding:1rem;display:flex;flex-direction:column;gap:.4rem;box-shadow:4px 4px 0 var(--periwinkle)}
.sw-lbl{font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);padding:0 .5rem .4rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.2rem}
.sw-b{background:none;border:1.5px solid rgba(255,255,255,.15);color:rgba(255,255,255,.45);font-family: var(--sans);font-size:.78rem;font-weight:600;cursor:pointer;padding:.42rem .75rem;text-align:left;transition:all .15s;white-space:nowrap}
.sw-b:hover{background:rgba(255,255,255,.07);color:#fff;border-color:rgba(255,255,255,.4)}
.sw-b.on{background:var(--periwinkle);color:var(--ink);border-color:var(--ink)}
.page{display:none}.page.on{display:block}

/* ═══════════════════════════════
   PAGE 1 — LISTE DES PROJETS
═══════════════════════════════ */

/* HERO */
.page-hero{background:var(--cream);border-bottom:1.5px solid var(--ink);padding-top:4.8rem}
.hero-inner{max-width:1560px;margin:0 auto;padding:3.5rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end}
.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-45);margin-bottom:1.6rem}
.breadcrumb a{text-decoration:none;color:var(--ink-45)}.breadcrumb a:hover{color:var(--ink)}
.active-crumb{color:var(--ink)}
h1.page-title{font-family: var(--sans);font-size:clamp(2.8rem,5vw,5rem);font-weight:700;letter-spacing:-.05em;line-height:1.0;margin-bottom:1.1rem;color:var(--ink)}
h1.page-title em{font-style:normal;color:var(--coral)}
.hero-desc{font-size:1.08rem;font-weight:400;line-height:1.78;color:var(--ink-70);max-width:50ch}

/* Hero right — stats */
.hero-stats{padding:.25rem}
.hs-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:1.4rem;display:flex;align-items:center;gap:.6rem}
.hs-label::before{content:'';width:20px;height:2px;background:var(--coral)}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.stat-cell{background-color:rgba(255,255,255,.82);background-image:radial-gradient(circle,rgba(22,22,22,.12) 1px,transparent 1px);background-size:18px 18px;border:1.5px solid rgba(22,22,22,.28);border-radius:16px;padding:1.2rem 1.4rem;box-shadow:3px 4px 0 rgba(0,0,0,.14);transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,border-color .2s}
.stat-cell:hover{border-color:var(--ink);transform:translateX(5px) translateY(-2px);box-shadow:5px 7px 0 rgba(0,0,0,.2)}
.stat-n{font-size:2.4rem;font-weight:700;letter-spacing:-.05em;line-height:1;margin-bottom:.2rem}
.stat-l{font-size:.72rem;font-weight:600;color:var(--ink-45);letter-spacing:.04em;text-transform:uppercase}
.sc-a .stat-n{color:var(--coral)}
.sc-b .stat-n{color:#3860d4}
.sc-c .stat-n{color:#0a8a78}
.sc-d .stat-n{color:#7a5500}

/* ── BODY WRAP ── */
.body-wrap{max-width:1560px;margin:0 auto;padding:3rem 3.5rem 5rem;display:grid;grid-template-columns:240px 1fr;gap:3rem;align-items:start}
.sidebar{position:sticky;top:5.5rem}
.sidebar-title{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-bottom:.9rem;padding-bottom:.6rem;border-bottom:1.5px solid var(--mid)}
.cat-list{display:flex;flex-direction:column;gap:.3rem}
.cat-btn{display:flex;align-items:center;gap:.6rem;padding:.65rem .9rem;border:1.5px solid #3a3a3a;background:var(--white);font-family: var(--sans);font-size:.9rem;font-weight:600;color:var(--dark-btn);cursor:pointer;transition:all .15s;text-align:left;width:100%}
.cat-btn:hover{background:var(--body-bg);border-color:var(--ink);color:var(--ink)}
.cat-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.cat-dot{width:9px;height:9px;flex-shrink:0;border:1.5px solid rgba(0,0,0,.2)}
.cat-btn.active .cat-dot{border-color:rgba(255,255,255,.35)}
.cat-count{margin-left:auto;font-size:.8rem;font-weight:700;opacity:.4}
.cat-btn.active .cat-count{opacity:.65}

/* Sidebar search */
.sb-search{position:relative;margin-bottom:1.2rem}
.sb-search input{width:100%;background:var(--white);border:1.5px solid var(--ink);padding:.75rem .9rem .75rem 2.5rem;font-family: var(--sans);font-size:.85rem;font-weight:500;color:var(--ink);outline:none;transition:box-shadow .2s}
.sb-search input::placeholder{color:var(--ink-45);font-weight:400}
.sb-search input:focus{box-shadow:3px 3px 0 rgba(251,146,107,.3)}
.sb-search .ss-icon{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);width:15px;height:15px;stroke:var(--ink-45);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}

/* Active filter tags */
.active-filters{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.8rem}
.af-tag{display:inline-flex;align-items:center;gap:.4rem;background:var(--coral);color:#fff;font-size:.82rem;font-weight:700;padding:.25rem .8rem;border:1.5px solid var(--ink)}
.af-tag button{background:none;border:none;cursor:pointer;color:#fff;display:flex;padding:0;opacity:.7;transition:opacity .2s}
.af-tag button:hover{opacity:1}
.af-tag button svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round}

/* ── RÉSULTATS ── */
.results-zone{}
.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem;flex-wrap:wrap;gap:.8rem}
.rh-count{font-size:.95rem;font-weight:600;color:var(--ink-45)}
.rh-count strong{color:var(--ink);font-weight:700}
.sort-sel{background:var(--white);border:1.5px solid #3a3a3a;padding:.45rem .85rem;font-family: var(--sans);font-size:.82rem;font-weight:600;color:var(--dark-btn);outline:none;cursor:pointer}

/* ── GRID WRAP ── */
.grid-wrap{background:var(--cream-mid);border-radius:var(--r-grid);padding:1.2rem;border:1.5px solid #c9b98a}
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}

/* ── PROJECT CARD ── */
.pcard{background:var(--white);border:1.5px solid var(--ink);box-shadow:4px 4px 0 #c8c8c8;display:flex;flex-direction:column;cursor:pointer;position:relative;overflow:hidden;transition:box-shadow .2s,transform .2s}
.pcard::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.pcard:hover{transform:translate(-2px,-3px);box-shadow:6px 8px 0 #c8c8c8}
.pcard:hover .pc-arr{opacity:1;transform:translateX(3px)}
.pcard:hover .pc-title{color:var(--coral)}
/* couleur barre top = couleur badge */
.pcat-participation::before  { background: var(--periwinkle); }
.pcat-amenagement::before    { background: var(--mint); }
.pcat-inclusion::before      { background: var(--lavender); }
.pcat-recherche::before      { background: var(--cream); }
/* legacy slugs */
.pcat-budget::before         { background: var(--periwinkle); }
.pcat-diagnostic::before     { background: var(--mint); }
.pcat-democratie::before     { background: var(--periwinkle); }
.pcat-concertation::before   { background: var(--mint); }
.pcat-espace::before         { background: var(--lavender); }

.pc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:1.6rem 1.6rem .9rem}
.pc-badge{font-size:.73rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.22rem .7rem;border:1.5px solid rgba(0,0,0,.2);white-space:nowrap;flex-shrink:0}
.badge-amenagement{background:var(--periwinkle);color:#2a40a0}
.badge-budget{background:var(--periwinkle);color:#2a40a0}
.badge-diagnostic{background:var(--mint);color:#0a5c50}
.badge-democratie{background:var(--cream);color:#7a5500}
.badge-concertation{background:var(--mint);color:#0a5c50}
.badge-espace{background:var(--cf);color:#3a1080}
.pc-year{font-size:.82rem;font-weight:700;color:var(--ink-45)}

.pc-body{padding:0 1.6rem 1rem;flex:1;display:flex;flex-direction:column;gap:.55rem}
.pc-title{font-size:1.12rem;font-weight:700;letter-spacing:-.025em;line-height:1.28;color:var(--ink);transition:color .18s}
.pc-desc{font-size:.92rem;font-weight:400;line-height:1.65;color:var(--ink-70);flex:1}

/* Lieu + méthode */
.pc-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.2rem}
.pc-meta-item{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--ink-45)}
.pc-meta-item svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.7;flex-shrink:0}
.pc-meta-sep{width:3px;height:3px;background:var(--ink-45);opacity:.35;flex-shrink:0}

/* Partenaires */
.pc-partners{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:0 1.6rem .9rem}
.pc-partners-lbl{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-45)}
.pc-partner{font-size:.78rem;font-weight:600;background:var(--body-bg);color:var(--ink-70);padding:.15rem .55rem;border:1.5px solid var(--mid)}

/* Footer card */
.pc-footer{background:var(--white);color:var(--ink);padding:.85rem 1.6rem;border-top:1.5px solid var(--mid);display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.pc-method{font-size:.82rem;font-weight:600;color:var(--ink-45);display:flex;align-items:center;gap:.35rem}
.pc-method svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.6}
.pc-arr{width:28px;height:28px;border:1.5px solid var(--ink);background:var(--body-bg);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,transform .2s,background .18s}
.pc-arr svg{width:12px;height:12px;stroke:var(--ink);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.pcard:hover .pc-arr{background:var(--periwinkle);border-color:var(--ink)}
.pcard:hover .pc-arr svg{stroke:var(--ink)}

/* No results */
.no-results{display:none;text-align:center;padding:5rem 2rem;grid-column:1/-1;background:var(--white);border:1.5px solid var(--ink)}
.no-results.visible{display:block}
.nr-icon{width:52px;height:52px;background:var(--body-bg);border:1.5px solid var(--mid);display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem}
.nr-icon svg{width:22px;height:22px;stroke:var(--ink-45);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nr-title{font-size:1.3rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.02em;opacity:.6}
.nr-sub{font-size:.9rem;font-weight:500;opacity:.4;line-height:1.7}

/* CTA contact */
.contact-strip{background:var(--ink);padding:2rem 2.5rem;margin-top:1.2rem;display:flex;align-items:center;gap:2rem;color:#fff}
.cs-text{flex:1}
.cs-title{font-size:1.2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.2rem}
.cs-sub{font-size:.95rem;font-weight:400;opacity:.42}
.cs-actions{display:flex;gap:.8rem;flex-shrink:0;flex-wrap:wrap}
.cs-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family: var(--sans);font-size:.92rem;font-weight:700;text-decoration:none;transition:all .18s;white-space:nowrap}
.cs-btn.primary{background:var(--periwinkle);color:var(--ink);border:1.5px solid var(--ink)}.cs-btn.primary:hover{background:#a8bcf9;border-color:var(--ink)}
.cs-btn.outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.3)}.cs-btn.outline:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6)}
.cs-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.pcard{animation:fadeUp .3s both}
.pcard:nth-child(1){animation-delay:.03s}.pcard:nth-child(2){animation-delay:.06s}
.pcard:nth-child(3){animation-delay:.09s}.pcard:nth-child(4){animation-delay:.12s}
.pcard:nth-child(5){animation-delay:.15s}.pcard:nth-child(6){animation-delay:.18s}

/* ═══════════════════════════════
   PAGE 2 — FICHE DÉTAIL PROJET
═══════════════════════════════ */

/* Progress bar */
.reading-progress{position:fixed;top:0;left:0;height:3px;background:var(--coral);z-index:600;transition:width .1s;width:0;border-right:2px solid var(--ink)}

/* HERO FICHE */
.fiche-hero{background:var(--cream);border-bottom:1.5px solid var(--ink);padding-top:4.8rem}
.fiche-hero-inner{max-width:1560px;margin:0 auto;padding:3.5rem;display:grid;grid-template-columns:1fr 360px;gap:4rem;align-items:start}
.fiche-left{}
.proj-type-row{display:flex;align-items:center;gap:.8rem;margin-bottom:1.4rem;flex-wrap:wrap}
.proj-type-badge{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.3rem .9rem;border:1.5px solid var(--ink);background:var(--white)}
.proj-type-badge svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.proj-year-badge{font-size:.72rem;font-weight:700;color:var(--ink-45)}
h1.proj-title{font-size:clamp(2rem,4vw,3.8rem);font-weight:700;letter-spacing:-.05em;line-height:1.0;margin-bottom:1.1rem;color:var(--ink)}
h1.proj-title em{font-style:normal;color:var(--coral)}
.proj-intro{font-size:1.08rem;line-height:1.82;color:var(--ink-70);max-width:56ch;margin-bottom:2rem}
.proj-quick-infos{display:flex;flex-wrap:wrap;gap:.5rem}
.pqi{display:inline-flex;align-items:center;gap:.4rem;background:var(--white);border:1.5px solid var(--ink);padding:.38rem .9rem;font-size:.88rem;font-weight:600;color:var(--ink-70)}
.pqi svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.6;flex-shrink:0}
.pqi strong{color:var(--ink)}

/* Cover card fiche */
.proj-cover-card{background:var(--ink);border:1.5px solid var(--ink);box-shadow:6px 6px 0 rgba(22,22,22,.2)}
.pcc-visual{height:200px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;border-bottom:1.5px solid rgba(255,255,255,.1)}
.pcc-bg{position:absolute;inset:0;background:linear-gradient(145deg,#1a2a3a,#0d1f30)}
.pcc-accent{position:absolute;top:-20%;right:-10%;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(251,146,107,.25),transparent 65%);pointer-events:none}
.pcc-icon{position:relative;z-index:1}
.pcc-icon svg{width:64px;height:64px;stroke:rgba(251,146,107,.25);fill:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.pcc-body{padding:1.6rem 1.8rem}
.pcc-label{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:.4rem}
.pcc-title{font-size:1.08rem;font-weight:700;color:#fff;line-height:1.32;margin-bottom:1.3rem;letter-spacing:-.02em}
.pcc-actions{display:flex;flex-direction:column;gap:.55rem}
.pcc-btn{display:flex;align-items:center;gap:.6rem;padding:.8rem 1.1rem;font-family: var(--sans);font-size:.92rem;font-weight:700;text-decoration:none;transition:all .18s;border:none;cursor:pointer;width:100%;letter-spacing:-.01em}
.pcc-btn.contact{background:var(--periwinkle);color:var(--ink);border:1.5px solid rgba(255,255,255,.3)}.pcc-btn.contact:hover{background:#a8bcf9}
.pcc-btn.share{background:rgba(255,255,255,.07);color:rgba(255,255,255,.65);border:1.5px solid rgba(255,255,255,.15)}.pcc-btn.share:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35)}
.pcc-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.pcc-tags{display:flex;flex-wrap:wrap;gap:.35rem;padding:1.2rem 1.8rem 1.6rem;border-top:1px solid rgba(255,255,255,.08)}
.pcc-tag{font-size:.78rem;font-weight:600;background:rgba(255,255,255,.07);color:rgba(255,255,255,.45);padding:.2rem .65rem;border:1px solid rgba(255,255,255,.12)}

/* ── FICHE BODY ── */
.fiche-body{max-width:1560px;margin:0 auto;padding:3.5rem;display:grid;grid-template-columns:1fr 280px;gap:4rem;align-items:start}

/* Article content */
.proj-content h2{font-size:1.65rem;font-weight:700;letter-spacing:-.035em;line-height:1.2;margin:3rem 0 1rem;padding-top:2.5rem;border-top:1.5px solid var(--mid)}
.proj-content h2:first-child{margin-top:0;padding-top:0;border-top:none}
.proj-content h3{font-size:1.18rem;font-weight:700;letter-spacing:-.02em;margin:1.8rem 0 .6rem;color:var(--coral)}
.proj-content p{font-size:1.05rem;line-height:1.88;color:var(--ink-70);margin-bottom:1.2rem}
.proj-content p strong{color:var(--ink);font-weight:700}
.proj-content ul{padding-left:1.5rem;margin-bottom:1.2rem}
.proj-content ul li{font-size:1.03rem;line-height:1.8;color:var(--ink-70);margin-bottom:.4rem}

/* Steps */
.steps{display:flex;flex-direction:column;gap:0;margin:1.5rem 0;position:relative}
.steps::before{content:'';position:absolute;left:14px;top:8px;bottom:8px;width:1.5px;background:linear-gradient(to bottom,var(--coral),rgba(251,146,107,.12))}
.step{display:flex;gap:1.3rem;align-items:flex-start;padding-bottom:2rem}
.step:last-child{padding-bottom:0}
.step-dot{width:34px;height:34px;background:var(--white);border:2px solid var(--coral);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}
.step-n{font-size:1rem;font-weight:700;color:var(--coral)}
.step-title{font-size:1.08rem;font-weight:700;margin-bottom:.4rem;color:var(--ink)}
.step-txt{font-size:1rem;line-height:1.82;color:var(--ink-70)}

/* Plus-value box */
.plus-value-box{background:var(--cream);border:1.5px solid var(--ink);padding:1.8rem;margin:2rem 0;box-shadow:4px 4px 0 rgba(22,22,22,.1)}
.pvb-kicker{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--coral);margin-bottom:.7rem;display:flex;align-items:center;gap:.5rem}
.pvb-kicker::before{content:'';width:18px;height:2px;background:var(--coral)}
.pvb-txt{font-size:1.03rem;line-height:1.8;color:var(--ink-70)}
.pvb-txt strong{color:var(--ink)}

/* CTA inline */
.proj-cta-inline{background:var(--ink);padding:2rem;margin:2.5rem 0;display:flex;align-items:center;gap:1.5rem;border:1.5px solid var(--ink)}
.pci-icon{width:42px;height:42px;background:rgba(251,146,107,.15);border:1.5px solid rgba(251,146,107,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pci-icon svg{width:18px;height:18px;stroke:var(--periwinkle);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pci-title{font-size:1.08rem;font-weight:700;color:#fff;margin-bottom:.2rem;letter-spacing:-.02em}
.pci-txt{font-size:.93rem;line-height:1.65;color:rgba(255,255,255,.42)}
.pci-btn{margin-left:auto;flex-shrink:0;background:var(--periwinkle);color:var(--ink);padding:.72rem 1.4rem;text-decoration:none;font-size:.92rem;font-weight:700;white-space:nowrap;transition:background .18s;border:1.5px solid var(--ink)}
.pci-btn:hover{background:#a8bcf9}

/* SIDEBAR fiche */
.proj-sidebar{position:sticky;top:5.5rem;display:flex;flex-direction:column;gap:1.2rem}
.fiche-sidebar-card{background:var(--white);border:1.5px solid var(--ink);padding:1.6rem;box-shadow:3px 3px 0 #c8c8c8}
.fsc-title{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-bottom:1rem;padding-bottom:.55rem;border-bottom:1.5px solid var(--mid)}
.info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--mid);font-size:.93rem}
.info-row:last-child{border-bottom:none}
.ir-label{color:var(--ink-45);font-weight:500;flex-shrink:0}
.ir-val{font-weight:600;text-align:right;line-height:1.45;color:var(--ink)}

/* Related */
.related-item{display:flex;gap:.85rem;padding:.75rem 0;border-bottom:1px solid var(--mid);cursor:pointer;text-decoration:none;color:var(--ink);transition:all .18s}
.related-item:last-child{border-bottom:none}
.related-item:hover .ri-title{color:var(--coral)}
.related-item:hover{transform:translateX(2px)}
.ri-dot{width:8px;height:8px;flex-shrink:0;background:var(--coral);margin-top:.35rem;border:1px solid rgba(22,22,22,.2)}
.ri-type{font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-45);margin-bottom:.2rem}
.ri-title{font-size:.93rem;font-weight:600;line-height:1.38;transition:color .18s}

/* Share */
.share-row{display:flex;gap:.5rem;flex-wrap:wrap}
.share-btn{display:inline-flex;align-items:center;gap:.4rem;font-size:.87rem;font-weight:600;background:var(--body-bg);border:1.5px solid var(--mid);padding:.42rem .85rem;cursor:pointer;font-family: var(--sans);color:var(--ink-70);transition:all .18s;text-decoration:none}
.share-btn:hover{border-color:var(--ink);color:var(--ink)}
.share-btn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* Contact sidebar card */
.fiche-sidebar-card.cc{background:var(--cream);border-color:var(--ink);box-shadow:3px 3px 0 rgba(251,146,107,.3)}
.fsc-contact-link{display:flex;align-items:center;gap:.45rem;color:var(--coral);font-size:.97rem;font-weight:700;text-decoration:none;transition:color .18s;margin-top:.5rem}
.fsc-contact-link:hover{color:var(--ink)}
.fsc-contact-link svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* PREV/NEXT */
.proj-prevnext{max-width:1560px;margin:0 auto;padding:0 3.5rem 5rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-top:1.5px solid var(--mid);padding-top:2.5rem}
.pn-card{background:var(--white);border:1.5px solid var(--ink);padding:1.8rem;text-decoration:none;color:var(--ink);transition:all .2s;display:flex;flex-direction:column;gap:.4rem;box-shadow:3px 3px 0 #c8c8c8}
.pn-card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 #c8c8c8}
.pn-dir{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-45);display:flex;align-items:center;gap:.35rem}
.pn-dir svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.pn-type{font-size:.82rem;font-weight:700;color:var(--coral);margin-top:.1rem}
.pn-title{font-size:1.1rem;font-weight:700;letter-spacing:-.025em;line-height:1.28;margin-top:.1rem}
.pn-card.next{text-align:right}.pn-card.next .pn-dir{justify-content:flex-end}

/* ── FOOTER ── */
footer{background:var(--ink)!important;color:rgba(255,255,255,.85)!important;padding:4.5rem 0 2.5rem;border-top:1.5px solid var(--ink)}
.ft{max-width:1560px;margin:0 auto;padding:0 3.5rem}
.ft-top{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.3fr;gap:4rem;padding-bottom:3rem;border-bottom:1.5px solid rgba(22,22,22,.15);margin-bottom:2rem}
.ft-brand .logo{color:var(--ink);display:block;margin-bottom:1rem}
.ft-brand p{font-size:.83rem;line-height:1.75;color:var(--ink-70);max-width:28ch;margin-bottom:1.5rem}
.ft-social{display:flex;gap:.5rem}
.fsc-s{width:30px;height:30px;background:rgba(22,22,22,.07);border:1px solid rgba(22,22,22,.2);display:flex;align-items:center;justify-content:center;transition:background .2s;text-decoration:none}
.fsc-s:hover{background:var(--ink)}.fsc-s svg{width:13px;height:13px;stroke:var(--ink);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.fsc-s:hover svg{stroke:#fff}
.ft-col h4{font-size:.77rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-bottom:1rem}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.ft-col ul a{text-decoration:none;font-size:.92rem;font-weight:500;color:var(--ink-70);transition:color .2s}
.ft-col ul a:hover{color:var(--ink)}
.ft-nl input{width:100%;background:var(--white);border:1.5px solid var(--ink);padding:.75rem .9rem;color:var(--ink);font-family: var(--sans);font-size:.92rem;margin-bottom:.6rem;outline:none;font-weight:500}
.ft-nl input::placeholder{color:var(--ink-45)}.ft-nl input:focus{border-color:var(--ink)}
.ft-nl button{width:100%;background:var(--periwinkle);color:var(--ink);border:1.5px solid var(--ink);padding:.75rem;font-family: var(--sans);font-size:.92rem;font-weight:700;cursor:pointer;transition:background .18s}
.ft-nl button:hover{background:var(--ink);color:#fff}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;gap:2rem}
.ft-copy{font-size:.8rem;font-weight:500;color:var(--ink-45)}
.ft-legal{display:flex;gap:1.8rem}
.ft-legal a{font-size:.8rem;font-weight:500;color:var(--ink-45);text-decoration:none;transition:color .2s}.ft-legal a:hover{color:var(--ink)}

::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--body-bg)}
::-webkit-scrollbar-thumb{background:var(--mid)}::-webkit-scrollbar-thumb:hover{background:var(--periwinkle)}

/* ── CORRECTIF ICÔNE LIEU ── */
.pc-lieu {
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: .82rem;
  color: var(--ink-mid);
  margin-top: .5rem;
}
.pc-lieu svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
  flex-shrink: 0;
}

/* ── CORRECTIF LAYOUT SIDEBAR ── */
.body-wrap {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 2rem;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 2rem 3rem 4rem;
  align-items: start;
}
.sidebar {
  position: sticky;
  top: 90px;
}

/* ── CORRECTIF FOOTER ── */
footer{background:var(--ink)!important;color:rgba(255,255,255,.85)!important;}

.pc-arr {
  color: var(--ink);
  display: flex;
  align-items: center;
}
.pc-arr svg {
  stroke: currentColor;
  width: 20px;
  height: 20px;
}
/* ── PCARD min-width fix ── */
.pcard {
  min-width: 0;
  word-break: break-word;
}
.pc-top {
  flex-wrap: wrap;
  gap: .4rem;
  align-items: flex-start;
}
.pc-badge {
  white-space: normal;
  word-break: normal;
  hyphens: auto;
  max-width: 100%;
  line-height: 1.3;
}
.pc-year {
  white-space: nowrap;
  flex-shrink: 0;
}

.pcard { border: 1.5px solid var(--border) !important; }

/* ══════════════════════════════════════════
   RESPONSIVE — 768px
══════════════════════════════════════════ */
@media(max-width:768px){
  /* Archive sidebar + grid */
  .body-wrap{
    grid-template-columns:1fr !important;
    padding:1.5rem 1.25rem 3rem !important;
    gap:1.5rem !important;
  }
  .sidebar{position:static !important;top:auto !important}
  .proj-grid{grid-template-columns:1fr 1fr;gap:.75rem}
  .grid-wrap{padding:.85rem}

  /* Hero archive */
  .hero-inner{grid-template-columns:1fr;gap:2rem;padding:2.5rem 1.25rem 2rem}
  h1.page-title{font-size:clamp(2.2rem,10vw,3.2rem)}
  .hero-desc{font-size:.95rem;max-width:100%}
  .hero-stats{padding:1.4rem}
  .stats-grid{grid-template-columns:1fr 1fr}

  /* Fiche hero */
  .fiche-hero-inner{grid-template-columns:1fr;gap:2rem;padding:2.5rem 1.25rem 2rem}
  h1.proj-title{font-size:clamp(2rem,8vw,3rem)}
  .proj-intro{font-size:1rem;max-width:100%}
  .proj-cover-card{margin-top:.5rem}

  /* Fiche body */
  .fiche-body{grid-template-columns:1fr;gap:2rem;padding:2rem 1.25rem 3rem}
  .proj-sidebar{position:static;top:auto}

  /* Prev/next */
  .proj-prevnext{grid-template-columns:1fr;gap:.75rem;padding:2rem 1.25rem 3rem}

  /* Contact strip */
  .contact-strip{flex-direction:column;gap:1.2rem;padding:1.5rem 1.25rem}
  .cs-actions{flex-direction:column;width:100%}
  .cs-btn{width:100%;justify-content:center}

  /* Footer */
  .ft-top{grid-template-columns:1fr;gap:2rem}
  .ft-bottom{flex-direction:column;align-items:flex-start;gap:.6rem}
  .ft-legal{flex-wrap:wrap;gap:1rem}
}

@media(max-width:480px){
  .proj-grid{grid-template-columns:1fr}
}

