:root{--stone:#ece3d0;--paper:#f8f2e4;--ink:#3a2f21;--ink2:#5c4c38;--ocre:#b5652a;--ocre2:#8a4a1c;--sauge:#6f7c57;--gold:#c69a3a;--line:#ddcda7;--ff:'Spectral',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{background:var(--stone);color:var(--ink);font:17px/1.65 var(--sans);overflow-x:hidden}
img{max-width:100%;display:block}a{color:var(--ocre2)}
h1,h2,h3,h4{font-family:var(--ff);font-weight:600;line-height:1.14;color:var(--ink)}
h2{font-size:clamp(2rem,4.4vw,3.2rem)}h3{font-size:1.55rem}
em{font-style:italic;color:var(--ocre2)}
.kicker{font:600 .76rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--sauge);margin-bottom:.8rem}
.wrap{max-width:1120px;margin:0 auto;padding:5rem 1.4rem}
p+p{margin-top:1rem}
/* header */
.top{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.6rem;transition:.35s;color:#fff}
.top.solid{background:rgba(248,242,228,.96);color:var(--ink);box-shadow:0 1px 14px #0002;backdrop-filter:blur(8px)}
.brand{display:flex;gap:.65rem;align-items:center;text-decoration:none;color:inherit}.logo{width:40px;height:40px;flex:none}
.brand span{display:flex;flex-direction:column;line-height:1.05}.brand b{font:700 1.18rem var(--ff)}.brand i{font:italic 500 .82rem var(--ff);letter-spacing:.02em}
nav{display:flex;gap:1.2rem}nav a{color:inherit;text-decoration:none;font-size:.88rem;font-weight:500;position:relative;padding:.2rem 0}
nav a:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:currentColor;transition:.3s}nav a:hover:after,nav a.on:after{width:100%}
.burger{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer}.burger span{display:block;height:2px;background:currentColor;margin:7px 8px;transition:.3s}
/* hero */
.hero{position:relative;min-height:100vh;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(#241a0fcc,#241a0f66 42%,#1a1308cc),var(--bg) center/cover fixed}
.hero.short{min-height:58vh}
.hero-in{padding:6rem 1.4rem 3rem;max-width:920px;animation:rise 1.2s both}
.hero h1{color:#fff;font-size:clamp(2.8rem,8vw,6.4rem);text-shadow:0 3px 30px #0008}.hero h1 em{color:var(--gold)}
.hero .kicker{color:#e9d9ad}.sub{font:italic 400 clamp(1.2rem,2.4vw,1.75rem) var(--ff);margin-top:1.2rem}.sub b{color:var(--gold)}
.scroll{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);font:.7rem var(--sans);letter-spacing:.3em;text-transform:uppercase;opacity:.8}
.scroll:after{content:"";display:block;width:1px;height:36px;margin:.5rem auto 0;background:#fff;animation:drop 1.8s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes rise{from{opacity:0;transform:translateY(30px)}}
/* buttons */
.btn{display:inline-block;margin-top:1.6rem;background:var(--ocre2);color:#fdf6e6;padding:.85rem 1.8rem;border-radius:2px;border:0;text-decoration:none;font:600 .88rem var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.3s;box-shadow:3px 3px 0 var(--ink)}
.btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}.btn.light{background:var(--paper);color:var(--ocre2);box-shadow:3px 3px 0 #0006}
/* chiffres */
.chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center;padding-block:3.5rem 1rem}
.chiffres b{display:block;font:700 3.6rem/1 var(--ff);color:var(--ocre2)}.chiffres span{font:600 .74rem var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--sauge)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.split.rev figure{order:0}
figure img{width:100%;aspect-ratio:4/5;object-fit:cover;border:10px solid var(--paper);box-shadow:0 14px 40px #0004;transform:rotate(1.2deg);transition:.5s}
figure:hover img{transform:rotate(0)}figcaption{font:italic 1.05rem var(--ff);color:var(--ink2);text-align:center;margin-top:.8rem}
.ticks{list-style:none;margin-top:1.2rem}.ticks li{padding-left:2rem;position:relative;margin:.4rem 0}.ticks li:before{content:"✦";position:absolute;left:0;color:var(--sauge)}
/* next / bandeau info */
.next{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-block:2rem}
.label{background:var(--paper);border:2px solid var(--ocre2);outline:2px solid var(--paper);outline-offset:-8px;padding:2rem 2.4rem;max-width:640px;box-shadow:0 8px 30px #0003;position:relative}
.tag{font:600 .7rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--sauge)}.label h3{font-size:2rem;margin:.2rem 0}
/* stones strip */
.stones{display:grid;grid-template-columns:repeat(3,1fr);height:58vh;min-height:360px}
.stones>a{background:linear-gradient(#0000,#241a0fcc),var(--bg) center/cover;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;transition:.6s;text-decoration:none}
.stones h3{color:#fff;font-size:2.1rem}.stones p{color:#f0e4c8}.stones:hover>a{filter:saturate(.5) brightness(.8)}.stones>a:hover{filter:none;flex:1.3}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.4rem}
.card{background:var(--paper);padding:2rem;border-top:4px solid var(--ocre2);text-decoration:none;color:inherit;box-shadow:0 6px 22px #0002;transition:.3s;display:block}
.card:hover{transform:translateY(-6px)}.card i{font:italic 700 2.2rem var(--ff);color:var(--sauge)}.card h3{margin:.4rem 0}
.title{text-align:center;max-width:720px;margin:0 auto 1rem}.intro{margin-top:1rem;color:var(--ink2)}
.cta{background:linear-gradient(#241a0fee,#17100aee),url(img/hero-facade.jpg) center/cover fixed;color:var(--stone);text-align:center;padding:6rem 1.4rem}.cta h2{color:var(--stone)}.cta p{margin-top:1rem}
/* band */
.band{min-height:56vh;display:grid;place-items:center;padding:4rem 1.4rem;background:linear-gradient(#241a0fbb,#241a0fbb),var(--bg) center/cover fixed;text-align:center}
.band blockquote{font:italic 600 clamp(1.5rem,3.6vw,2.6rem)/1.3 var(--ff);color:#f3e6c4;max-width:820px}
/* paper */
.paper{background:var(--paper);padding:2.4rem;box-shadow:0 8px 30px #0003;border:1px solid var(--line)}
.word .paper{max-width:760px;margin:auto;font:italic 1.4rem/1.55 var(--ff)}.sign{font:600 1.05rem var(--sans);color:var(--ocre2);margin-top:1.5rem!important;font-style:normal;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}.sign small{display:block;font:italic .95rem var(--ff);color:var(--ink2);text-transform:none;letter-spacing:0;margin-top:.2rem}
/* fiche */
.fiche{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:2rem;border:1px solid var(--line)}
.fiche div{background:var(--paper);padding:1.4rem}.fiche span{display:block;font:600 .7rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sauge)}.fiche b{font:600 1.3rem var(--ff);color:var(--ocre2)}
/* steps / timeline restauration */
.steps{list-style:none;counter-reset:s;max-width:780px;margin:2rem auto 0}.steps li{counter-increment:s;display:flex;gap:1.4rem;padding:1.2rem 0;border-bottom:1px dashed var(--line);align-items:baseline}
.steps li:before{content:counter(s);font:italic 700 2.4rem var(--ff);color:var(--sauge);width:2.4rem}.steps b{font:600 1.35rem var(--ff);color:var(--ink);min-width:12rem}
.steps.todo li:before{color:var(--ocre);content:"○"}.steps.done li:before{content:"✓";color:var(--sauge)}
.axe{margin-top:3.5rem}.axe h2{font-size:2.2rem;display:flex;gap:1rem;align-items:baseline}.axe h2 i{color:var(--sauge);font-style:normal}
.note{background:var(--paper);border-left:4px solid var(--sauge);padding:1rem 1.4rem;font-size:.95rem;margin-top:1rem}
.note.warn{border-color:var(--ocre)}
/* avant/après */
.avant-apres{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2rem}
.avant-apres figure{aspect-ratio:auto}.avant-apres img{aspect-ratio:4/3;object-fit:cover}
/* bureau */
.bureau{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:2.4rem}
.membre{background:var(--paper);padding:1.8rem 1.4rem;text-align:center;box-shadow:0 6px 20px #0002;border:1px solid var(--line)}
.membre .ini{width:64px;height:64px;border-radius:50%;background:var(--ocre2);color:#fdf6e6;display:grid;place-items:center;font:600 1.3rem var(--ff);margin:0 auto .9rem}
.membre h3{font-size:1.15rem;margin-bottom:.2rem}.membre span{font:600 .7rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--sauge)}
/* concerts programme */
.prog{list-style:none;margin-top:2rem;border-top:1px solid var(--line)}
.prog li{display:grid;grid-template-columns:7rem 1fr;gap:1.4rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}
.prog .d{font:700 1.1rem var(--ff);color:var(--ocre2)}.prog h4{font-size:1.25rem}.prog p{color:var(--ink2);font-size:.95rem;margin-top:.2rem}
/* laureats */
.laureats{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:2rem}
.laureats li{list-style:none;background:var(--paper);padding:1.4rem 1.6rem;border-left:3px solid var(--gold);box-shadow:0 4px 16px #0002}
/* soutenir */
.dons{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.4rem}
.don{background:var(--paper);padding:2rem;text-align:center;box-shadow:0 6px 22px #0002;border:1px solid var(--line)}
.don b{display:block;font:700 2.4rem var(--ff);color:var(--ocre2);margin-bottom:.4rem}
.impact{margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.impact div{background:var(--paper);padding:1.6rem;border-top:3px solid var(--sauge)}.impact b{font:700 1.6rem var(--ff);color:var(--ink)}
.form{display:grid;gap:1rem;max-width:760px;margin:2rem auto 0}.split .form{margin:0}.g2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label{display:grid;gap:.3rem;font:600 .8rem var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--sauge)}
input,select,textarea{font:400 1rem var(--sans);padding:.7rem .8rem;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:2px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--ocre2);border-color:transparent}
.chk{display:flex;gap:.6rem;text-transform:none;letter-spacing:0;font-weight:400;font-size:.9rem;color:var(--ink)}.chk input{width:auto}.hp{display:none}
/* galerie */
.filters{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin:2rem 0}.filters button{font:600 .8rem var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:.6rem 1.2rem;border:1px solid var(--ocre2);background:none;color:var(--ocre2);cursor:pointer}.filters .on{background:var(--ocre2);color:#fff}
.grid{columns:3 280px;gap:1rem}.tile{display:block;position:relative;margin-bottom:1rem;overflow:hidden;break-inside:avoid;border:6px solid var(--paper);box-shadow:0 6px 20px #0003}
.tile img{width:100%;transition:.6s}.tile:hover img{transform:scale(1.07)}.tile span{position:absolute;left:0;bottom:0;background:var(--ocre2);color:#fff;font:.75rem var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:.3rem .8rem}.tile.hide{display:none}
.lightbox{position:fixed;inset:0;background:#120b05ee;z-index:99;display:none;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1rem}.lightbox.on{display:flex}.lightbox img{max-height:80vh;max-width:92vw;border:8px solid var(--paper)}.lightbox p{color:#fff;font:italic 1.3rem var(--ff)}.x{position:absolute;top:1rem;right:1.4rem;font-size:2.4rem;color:#fff;background:none;border:0;cursor:pointer}
.coords{list-style:none;margin-top:1.4rem}.coords li{padding:.8rem 0;border-bottom:1px dashed var(--line)}.coords b{display:block;font:600 .72rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sauge)}
.merci,.legalp{max-width:760px;text-align:center;padding-top:9rem}.legalp{text-align:left}.legalp h3{margin:1.6rem 0 .3rem}
/* footer */
footer{background:#241a0f;color:#d9c9a3;padding:4rem 1.4rem 1.5rem;font-size:.92rem}.fwrap{max-width:1120px;margin:auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
footer h4{color:var(--stone);font-size:1.2rem;margin-bottom:.6rem}footer a{display:block;color:#d9c9a3;text-decoration:none;margin:.2rem 0}footer a:hover{color:#fff}footer .brand{display:flex;margin-bottom:.8rem}
.legal{max-width:1120px;margin:2.4rem auto 0;padding-top:1.2rem;border-top:1px solid #ffffff22;font-size:.78rem;opacity:.7}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s,transform .9s}.reveal.in{opacity:1;transform:none}
@media(max-width:900px){nav{position:fixed;inset:0 0 0 28%;background:var(--ocre2);flex-direction:column;justify-content:center;padding:2rem;transform:translateX(100%);transition:.4s;gap:1.4rem;color:#fff}nav a{font-size:1.25rem}nav.open{transform:none}.burger{display:block;position:relative;z-index:60}
.split,.g2,.videos,.fiche,.avant-apres,.bureau,.dons,.impact,.laureats,.cards{grid-template-columns:1fr}.chiffres,.stones{grid-template-columns:1fr 1fr}.stones{height:auto}.stones>a{min-height:220px}.fwrap{grid-template-columns:1fr 1fr}.hero{background-attachment:scroll}.band,.cta{background-attachment:scroll}.prog li{grid-template-columns:1fr}.steps li{flex-wrap:wrap}.steps b{min-width:0}.split{gap:2rem}.wrap{padding-block:3.4rem}.bureau{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
