:root{--sapin:#1d3b2f;--sapin2:#14291f;--pierre:#8c928d;--pierre-l:#e8e6e0;--bois:#b5763a;--neige:#fbfaf6;--rouge:#b8352b;--ink:#1c2420;--r:18px}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--neige);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.1;letter-spacing:-.01em;color:var(--sapin)}
h2{font-size:clamp(2rem,4.4vw,3.2rem)}h3{font-size:1.4rem}
.wrap{width:min(1180px,92vw);margin:auto}
.kicker{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--rouge);margin-bottom:.8rem;display:block}
section{padding:clamp(4rem,9vw,7rem) 0}
.lead{font-size:1.2rem;max-width:62ch;color:#3b4640}
/* nav */
header.nav{position:fixed;inset:0 0 auto;z-index:50;transition:.35s}
header.nav .in{display:flex;align-items:center;justify-content:space-between;width:min(1280px,94vw);margin:auto;height:76px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#fff;font-family:'Fraunces',serif;font-weight:600;font-size:1.3rem}
.brand svg{width:46px;height:34px}
nav ul{display:flex;gap:1.6rem;list-style:none;padding:0}
nav a{text-decoration:none;color:#fff;font-weight:600;font-size:.95rem;position:relative;padding:.3rem 0}
nav a:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--rouge);transition:.3s}
nav a:hover:after,nav a[aria-current]:after{width:100%}
nav a.cta{background:var(--rouge);padding:.55rem 1.1rem;border-radius:99px}nav a.cta:after{display:none}
header.nav.solid{background:rgba(20,41,31,.96);backdrop-filter:blur(8px);box-shadow:0 6px 24px #0004}
.burger{display:none;background:none;border:0;color:#fff;font-size:1.8rem;cursor:pointer}
@media(max-width:980px){.burger{display:block}nav{position:fixed;inset:76px 0 auto;background:var(--sapin2);max-height:0;overflow:hidden;transition:.4s}nav.open{max-height:520px}nav ul{flex-direction:column;padding:1.2rem 6vw 1.8rem;gap:1rem}}
/* bunting */
.bunting{position:absolute;top:76px;left:0;width:100%;height:70px;pointer-events:none;z-index:3}
.bunting g{transform-origin:top center;animation:sway 4s ease-in-out infinite alternate}
.bunting g:nth-child(2n){animation-delay:-1.3s}.bunting g:nth-child(3n){animation-delay:-2.4s}
@keyframes sway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:#fff;padding:0 0 9vh;overflow:hidden;background:var(--sapin2)}
.hero .bg{position:absolute;inset:-4% 0;background:center/cover no-repeat;will-change:transform}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0a1a1280 0%,#0a1a1200 30%,#0a1a12e0 100%)}
.hero .wrap{position:relative;z-index:2}
.hero h1{color:#fff;font-size:clamp(2.8rem,8vw,6.4rem);max-width:14ch;text-shadow:0 4px 30px #0007}
.hero h1 em{font-style:italic;color:#f1c08a}
.hero p{font-size:clamp(1.05rem,2vw,1.4rem);max-width:46ch;margin:1.2rem 0 2rem;color:#f1efe8}
.hero.small{min-height:62svh;padding-bottom:7vh}.hero.small h1{font-size:clamp(2.4rem,6vw,4.6rem)}
.btn{display:inline-block;padding:.95rem 1.7rem;border-radius:99px;background:var(--rouge);color:#fff;font-weight:700;text-decoration:none;transition:.25s;border:2px solid var(--rouge);cursor:pointer;font:inherit;font-weight:700}
.btn:hover{transform:translateY(-3px);box-shadow:0 12px 26px #b8352b55}
.btn.ghost{background:transparent;border-color:#fff8;color:#fff;margin-left:.6rem}.btn.ghost:hover{background:#fff2;box-shadow:none}
.btn.dark{background:var(--sapin);border-color:var(--sapin)}
.scroll{position:absolute;right:4vw;bottom:6vh;z-index:3;writing-mode:vertical-rl;letter-spacing:.3em;font-size:.7rem;text-transform:uppercase;color:#fffc}
/* next event */
.next{background:var(--sapin);color:#fff;padding:0}
.next .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:0;align-items:stretch}
.next .txt{padding:clamp(2.5rem,6vw,5rem) clamp(1rem,4vw,4rem) clamp(2.5rem,6vw,5rem) 0}
.next h2{color:#fff}.next .kicker{color:#f1c08a}
.next .date{display:inline-flex;gap:1rem;align-items:center;margin:1.4rem 0}
.datebox{background:var(--neige);color:var(--sapin);border-radius:14px;padding:.6rem 1.1rem;text-align:center;font-family:'Fraunces',serif;line-height:1}
.datebox b{display:block;font-size:2.8rem}.datebox span{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;font-family:'Figtree'}
.count{display:flex;gap:.8rem;margin:1.2rem 0 1.8rem}.count div{background:#ffffff14;border-radius:12px;padding:.6rem 1rem;min-width:72px;text-align:center}
.count b{display:block;font-family:'Fraunces',serif;font-size:2rem}.count span{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:#d8e0da}
.next .pic{background:center/cover;min-height:380px}
@media(max-width:860px){.next .grid{grid-template-columns:1fr}.next .txt{padding:3rem 0}}
/* seasons */
.seasons{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.4rem}
.season{border-radius:var(--r);padding:1.6rem;background:#fff;border:1px solid var(--pierre-l);transition:.3s;position:relative}
.season .e{font-size:2rem}.season h3{margin:.4rem 0}.season p{font-size:.95rem;color:#4c5852}
.season.now{background:var(--sapin);color:#fff;transform:translateY(-8px);box-shadow:0 22px 40px #1d3b2f33}.season.now h3{color:#fff}.season.now p{color:#dfe7e1}
.season.now:before{content:"En ce moment";position:absolute;top:-12px;left:1.2rem;background:var(--rouge);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .7rem;border-radius:99px}
@media(max-width:900px){.seasons{grid-template-columns:1fr 1fr}}@media(max-width:520px){.seasons{grid-template-columns:1fr}}
/* cards & split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.split.rev>:first-child{order:2}
.split img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:0 30px 50px -20px #1d3b2f55}
.split p+p{margin-top:1rem}.split h2{margin-bottom:1.2rem}
@media(max-width:860px){.split{grid-template-columns:1fr}.split.rev>:first-child{order:0}}
.stone{background:var(--pierre-l)}.dark{background:var(--sapin);color:#e9efe9}.dark h2,.dark h3{color:#fff}.dark .kicker{color:#f1c08a}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.6rem}
@media(max-width:900px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--pierre-l);transition:.3s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 40px -18px #1d3b2f55}
.card img{aspect-ratio:3/2;object-fit:cover;width:100%}.card .b{padding:1.5rem}.card h3{margin-bottom:.5rem}.card p{font-size:.97rem;color:#4c5852}
.tag{display:inline-block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:.25rem .7rem;border-radius:99px;background:#f3e0cf;color:#8a4a17;margin-bottom:.7rem}
.tag.v{background:#dfe9e2;color:var(--sapin)}
/* agenda */
.timeline{margin-top:2.4rem;border-left:3px solid var(--pierre-l);padding-left:0}
.ev{display:grid;grid-template-columns:110px 1fr auto;gap:1.4rem;align-items:center;padding:1.3rem 1.4rem;margin-left:1.4rem;background:#fff;border-radius:var(--r);border:1px solid var(--pierre-l);margin-bottom:1rem;position:relative;transition:.3s}
.ev:before{content:"";position:absolute;left:-1.95rem;top:50%;width:14px;height:14px;border-radius:50%;background:var(--neige);border:3px solid var(--pierre)}
.ev.us{border-color:var(--rouge);box-shadow:0 14px 30px -14px #b8352b66}.ev.us:before{background:var(--rouge);border-color:var(--rouge)}
.ev:hover{transform:translateX(6px)}
.ev .d{font-family:'Fraunces',serif;color:var(--sapin);line-height:1.1}.ev .d b{font-size:1.9rem;display:block}.ev .d span{font-size:.8rem;font-family:'Figtree';text-transform:uppercase;letter-spacing:.1em;color:#5e6a63}
.ev h3{font-size:1.2rem}.ev p{font-size:.93rem;color:#55615a}
.ev.past{opacity:.55}
@media(max-width:700px){.ev{grid-template-columns:1fr;gap:.4rem}}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.6rem}
.filters button{border:1.5px solid var(--sapin);background:transparent;color:var(--sapin);padding:.5rem 1.1rem;border-radius:99px;font:inherit;font-weight:600;cursor:pointer;transition:.2s}
.filters button.on,.filters button:hover{background:var(--sapin);color:#fff}
/* gallery */
.masonry{columns:3 280px;column-gap:1rem;margin-top:2.4rem}
.masonry figure{break-inside:avoid;margin-bottom:1rem;position:relative;border-radius:14px;overflow:hidden;cursor:zoom-in}
.masonry img{width:100%;transition:.6s}.masonry figure:hover img{transform:scale(1.05)}
.masonry figcaption{position:absolute;inset:auto 0 0;padding:2rem 1rem .8rem;background:linear-gradient(transparent,#0a1a12dd);color:#fff;font-size:.88rem;opacity:0;transition:.3s}
.masonry figure:hover figcaption{opacity:1}
.lb{position:fixed;inset:0;background:#0a1410f2;z-index:100;display:none;align-items:center;justify-content:center;flex-direction:column;padding:2rem;color:#fff;text-align:center}
.lb.on{display:flex}.lb img{max-height:78vh;max-width:94vw;border-radius:10px}.lb p{margin-top:1rem;max-width:70ch}
.lb button{position:absolute;top:1.2rem;right:1.6rem;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer}
/* forms */
form{display:grid;gap:1rem}label{font-weight:600;font-size:.92rem;color:var(--sapin)}
input,textarea,select{width:100%;padding:.9rem 1rem;border:1.5px solid #cfd3cd;border-radius:12px;font:inherit;background:#fff;margin-top:.3rem}
input:focus,textarea:focus,select:focus{outline:3px solid #b8352b33;border-color:var(--rouge)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:600px){.two{grid-template-columns:1fr}}
.panel{background:#fff;border-radius:var(--r);padding:clamp(1.5rem,3vw,2.4rem);border:1px solid var(--pierre-l)}
.ok{display:none;background:#dfe9e2;padding:1rem;border-radius:12px;color:var(--sapin);font-weight:600}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.4rem;text-align:center}
.facts div{padding:1.4rem;border-radius:var(--r);background:#ffffff12}.facts b{font-family:'Fraunces',serif;font-size:2.6rem;display:block;color:#f1c08a}
@media(max-width:800px){.facts{grid-template-columns:1fr 1fr}}
.bureau{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem}@media(max-width:800px){.bureau{grid-template-columns:1fr 1fr}}
.bureau div{border:2px dashed var(--pierre);border-radius:var(--r);padding:1.4rem;text-align:center;color:#5e6a63}.bureau b{display:block;color:var(--sapin);font-family:'Fraunces',serif;font-size:1.15rem}
/* footer */
footer{background:var(--sapin2);color:#cfd9d2;padding:4rem 0 2rem;font-size:.95rem}
footer .g{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}@media(max-width:860px){footer .g{grid-template-columns:1fr 1fr}}
footer h4{color:#fff;font-family:'Fraunces',serif;font-size:1.1rem;margin-bottom:.8rem}footer a{text-decoration:none;display:block;padding:.15rem 0}footer a:hover{color:#f1c08a}
footer .bot{border-top:1px solid #ffffff22;margin-top:2.5rem;padding-top:1.2rem;font-size:.82rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}
.rv{opacity:0;transform:translateY(34px);transition:1s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
.legal h2{font-size:1.6rem;margin:2rem 0 .6rem}.legal p{max-width:70ch}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.bunting g{animation:none}html{scroll-behavior:auto}}
