:root{
  --night:#171310;--night-2:#211a15;--ink:#1a1410;--paper:#f4ece0;
  --gold:#b08733;--gold-l:#d9b567;--oxblood:#7a2230;
  --line-d:#332a20;--muted-d:#a89a85;
  --disp:"Fraunces",Georgia,serif;--sans:"Archivo",system-ui,sans-serif;
  --cw:min(1560px,calc(100vw - 170px));
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--night);color:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.wrap{max-width:var(--cw);margin:0 auto;padding:0 40px}
.lbl{font-size:11px;letter-spacing:.26em;text-transform:uppercase;font-weight:600}
.hide{display:none !important}

.strip{background:var(--ink);color:var(--gold-l);font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;text-align:center;padding:7px 10px;font-weight:600;border-bottom:1px solid var(--line-d);position:relative;z-index:60}
header{position:sticky;top:0;z-index:56;background:rgba(23,19,16,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-d)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.brand{display:flex;align-items:center;gap:12px}
.seal{width:40px;height:40px;border-radius:50%;border:1px solid var(--gold);color:var(--gold-l);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:600;font-size:15px;flex-shrink:0}
.brand .bt{font-family:var(--disp);font-size:19px;font-weight:600;line-height:1}
.brand .bt small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted-d);font-weight:600;margin-top:3px}
.menu{display:flex;gap:26px;list-style:none;font-size:13px;font-weight:500}
.menu a{opacity:.84;padding:5px 0;transition:.2s}.menu a:hover{opacity:1;color:var(--gold-l)}
.nav-right{display:flex;align-items:center;gap:12px}
.lang{position:relative}
.lang-btn{display:flex;align-items:center;gap:7px;border:1px solid var(--line-d);background:var(--night-2);color:var(--paper);padding:7px 11px;border-radius:2px;font-size:12px;font-weight:500;cursor:pointer}
.lang-btn svg{width:19px;height:13px}
.chev{width:7px;height:7px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);margin-top:-3px}
.lang-menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--night-2);border:1px solid var(--line-d);padding:6px;min-width:160px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s;box-shadow:0 20px 46px rgba(0,0,0,.5)}
.lang:hover .lang-menu{opacity:1;visibility:visible;transform:none}
.lang-menu a{display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:13px}.lang-menu a:hover{background:#2a211a}.lang-menu svg{width:19px;height:13px}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer}.burger span{width:23px;height:2px;background:var(--paper)}

.subbar{position:sticky;top:74px;z-index:54;background:rgba(23,19,16,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-d)}
.subbar .in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 40px;max-width:var(--cw);margin:0 auto}
.search{position:relative;flex:1;max-width:520px}
.search .box{display:flex;align-items:center;gap:10px;background:var(--night);border:1px solid var(--line-d);border-radius:8px;padding:10px 14px}
.search .box svg{width:17px;height:17px;stroke:var(--muted-d);fill:none;stroke-width:2;flex-shrink:0}
.search input{flex:1;background:none;border:0;outline:0;color:var(--paper);font:inherit;font-size:14px}
.search input::placeholder{color:var(--muted-d)}
.ac{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--night-2);border:1px solid var(--line-d);border-radius:8px;overflow:hidden;box-shadow:0 24px 50px rgba(0,0,0,.5);display:none;max-height:340px;overflow-y:auto;z-index:5}
.ac.show{display:block}
.ac a{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.04)}
.ac a:hover,.ac a.hl{background:#2a211a}
.ac .t{width:34px;height:34px;border-radius:5px;flex-shrink:0;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:12px;color:#fff}
.ac .nm{font-size:14px;font-weight:600}.ac .mt{font-size:11.5px;color:var(--muted-d)}
.ac .yr{margin-left:auto;font-family:var(--disp);font-style:italic;color:var(--gold-l);font-size:13px}
.sort{display:flex;background:var(--night);border:1px solid var(--line-d);border-radius:8px;padding:3px;flex-shrink:0}
.sort button{border:0;background:none;color:var(--muted-d);font:inherit;font-weight:600;font-size:12.5px;padding:7px 14px;border-radius:6px;cursor:pointer;transition:.15s;white-space:nowrap}
.sort button.on{background:var(--gold);color:#1a1410}
/* filter chips row */
.filterrow{border-top:1px solid var(--line-d)}
.chips{display:flex;align-items:center;gap:8px;padding:10px 40px;max-width:var(--cw);margin:0 auto}
.chipscroll{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;scroll-behavior:smooth}
.chipscroll::-webkit-scrollbar{display:none}
.navbtn{flex-shrink:0;width:30px;height:30px;border:1px solid var(--line-d);background:var(--night);color:var(--gold-l);font-size:15px;line-height:1;border-radius:7px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}
.navbtn:hover{border-color:var(--gold);color:var(--paper)}
.navbtn.dis{opacity:.28;pointer-events:none;color:var(--muted-d)}
.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-d);background:var(--night);color:var(--paper);font:inherit;font-size:12.5px;font-weight:600;padding:6px 13px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:.15s;flex-shrink:0}
.chip .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.chip.off{opacity:.4;text-decoration:line-through}
.chip.off .dot{filter:grayscale(1)}
.chip.reset{border-style:dashed;color:var(--gold-l)}

.bg{position:fixed;inset:0;z-index:0;transition:background 1.1s ease;background:radial-gradient(66% 70% at 82% 14%,rgba(217,181,103,.28),transparent 55%),linear-gradient(165deg,#241d15,#171310 64%)}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:62px 62px;mask:radial-gradient(circle at 50% 40%,#000,transparent 82%)}
body.mode-az .bg,body.mode-az .grain,body.mode-az .voyage-hud{opacity:0;pointer-events:none}
.voyage-hud{display:none}/* remplacé par .era-ghost (grosse date propre à chaque section, défile avec elle) */
.rail{position:fixed;right:calc((100vw - var(--cw))/2 - 64px);top:198px;max-height:calc(100vh - 220px);z-index:12;display:flex;flex-direction:column;align-items:flex-end;gap:1px;overflow-y:auto;scrollbar-width:none;padding:4px 0}
.rail::-webkit-scrollbar{display:none}
.rail a{font-family:var(--disp);font-size:12px;color:rgba(244,236,224,.34);text-align:right;padding:1px 8px;transition:.15s;font-feature-settings:"tnum";white-space:nowrap;cursor:pointer;border-right:2px solid transparent}
.rail a:hover{color:var(--gold-l)}
.rail a.on{color:var(--paper);font-size:16px;border-right-color:var(--gold)}
.rail a.off{opacity:.22;pointer-events:none}

main{position:relative;z-index:5}
.intro{min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px 20px;position:relative}
.intro .kick{display:flex;align-items:center;gap:14px;color:var(--gold-l);margin-bottom:14px}
.intro .kick .rule{height:1px;width:48px;background:var(--gold)}
.intro h1{font-family:var(--disp);font-weight:500;font-size:clamp(40px,6.6vw,90px);line-height:.94;letter-spacing:-.015em;max-width:16ch}
.intro h1 em{font-style:italic;color:var(--gold-l)}
.intro p{color:#e2d7c4;margin-top:14px;font-size:17px;max-width:540px}
.scroll-cue{position:absolute;bottom:26px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-d);animation:bob 1.8s infinite}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(8px);opacity:1}}
.era{padding:36px 0 92px}/* contenu calé en HAUT : chaque section commence juste sous la précédente, alignée avec le rail */
.era .inner{max-width:var(--cw);margin:0 auto;width:100%;position:relative}
.era-ghost{position:absolute;top:0;left:calc(50% - var(--cw)/2 - 30px);transform:translateY(-24%);z-index:0;font-family:var(--disp);font-weight:500;font-size:clamp(60px,15vw,190px);line-height:.8;color:rgba(244,236,224,.06);pointer-events:none;font-feature-settings:"tnum";white-space:nowrap;user-select:none}
.era .eralbl,.era .yr,.era .cards{position:relative;z-index:1}
body.light .era-ghost{color:rgba(50,38,18,.07)}
.era .yr{font-family:var(--disp);font-weight:500;font-size:clamp(44px,7vw,96px);color:var(--gold-l);line-height:.9;opacity:0;transform:translateY(30px);transition:.7s;font-feature-settings:"tnum"}
.era.show .yr{opacity:1;transform:none}
.era .eralbl{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-d);margin-bottom:8px;opacity:0;transition:.6s}
.era.show .eralbl{opacity:1}
.era .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:26px}
.card{display:block;border:1px solid rgba(217,181,103,.18);border-radius:8px;overflow:hidden;backdrop-filter:blur(4px);background:rgba(255,255,255,.03);transition:border-color .2s,transform .25s}
.era .card{opacity:0;transform:translateY(28px);transition:.6s}
.era.show .card{opacity:1;transform:none}
.grid .card,.azgrid .card{width:auto}
.card:hover{border-color:var(--gold);transform:translateY(-5px)}
.card .thumb{position:relative;aspect-ratio:16/10;overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:600;font-size:24px;color:#fff;background:#0e0b07}
.card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card:hover .thumb img{transform:scale(1.06)}
.card .cbody{padding:14px 16px}
.card .nm{font-family:var(--disp);font-weight:500;font-size:18px}
.card .meta{color:var(--muted-d);font-size:12.5px;margin-top:7px;display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.card .chip2{font-size:10px;font-weight:700;text-transform:uppercase;padding:3px 8px;border-radius:999px;color:#171310}
.card .hc-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;border:1px solid var(--gold);color:var(--gold-l)}
.card .thumb.logo{background:#fff;display:flex;align-items:center;justify-content:center;position:relative}
.card .thumb.logo .fav{position:static;inset:auto;width:auto;height:auto;max-width:52%;max-height:46px;object-fit:contain;background:none;padding:0;border-radius:0;box-shadow:none;transform:none;image-rendering:auto}
.card:hover .thumb.logo .fav{transform:scale(1.06)}
.card .thumb.logo .lfb{display:none;position:absolute;inset:0;align-items:center;justify-content:center;font-family:var(--disp);font-weight:600;font-size:24px;color:#171310}
.card .thumb.logo.failed .lfb{display:flex}
body.light .card:hover{border-color:#171310}
.card.heritage .nm{font-style:italic}
/* toggle « Cremerie de Paris only » */
.sortwrap{display:flex;align-items:center;gap:10px}
.cremerie-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-d);background:var(--night-2);color:var(--muted-d);font:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:.15s}
.cremerie-toggle .cdot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--gold);flex-shrink:0;transition:.15s}
.cremerie-toggle:hover{color:var(--paper)}
.cremerie-toggle.on{border-color:var(--gold);color:var(--gold-l);background:rgba(217,181,103,.12)}
.cremerie-toggle.on .cdot{background:var(--gold)}
.origin{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px}
.origin h2{font-family:var(--disp);font-weight:500;font-size:clamp(28px,4.6vw,58px);line-height:1.02}
.origin h2 em{font-style:italic;color:var(--gold-l)}
.origin .btn{margin-top:24px;border:1px solid var(--gold);color:var(--gold-l);padding:14px 28px;border-radius:2px;font-weight:600;text-transform:uppercase;font-size:12.5px;letter-spacing:.12em;transition:.25s}
.origin .btn:hover{background:var(--gold);color:#1a1410}

.azview{display:none;position:relative;z-index:5;background:var(--night);min-height:100vh;padding:34px 0 70px}
body.mode-az .azview{display:block}
body.mode-az main{display:none}
body.mode-az #brands{display:none}
.azgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.azletter{grid-column:1/-1;font-family:var(--disp);font-style:italic;color:var(--gold);font-size:26px;border-bottom:1px solid var(--line-d);padding-bottom:8px;margin-top:20px;scroll-margin-top:180px}

.ground{position:relative;z-index:5;background:var(--night)}
section.blk{padding:88px 0;border-top:1px solid var(--line-d)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:36px;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--line-d);padding-bottom:20px}
.sec-head .l{display:flex;align-items:baseline;gap:16px}
.sec-head .num{font-family:var(--disp);font-style:italic;color:var(--gold);font-size:19px}
.sec-head h2{font-family:var(--disp);font-weight:500;font-size:clamp(26px,3.6vw,46px);line-height:1}
.sec-head h2 em{font-style:italic;color:var(--gold-l)}
.sec-head .lk{color:var(--gold-l);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;white-space:nowrap;cursor:pointer}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 20px}
.addr-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:stretch}
#lmap{border-radius:10px;border:1px solid var(--line-d);min-height:420px;height:100%;z-index:1}
.leaflet-container{background:#0e0b07}
.venpin{background:var(--gold);color:#171310;font-family:var(--disp);font-weight:600;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.5);font-size:12px}
.venpin.big{background:var(--oxblood);color:#fff;box-shadow:0 0 0 6px rgba(122,34,48,.25),0 3px 12px rgba(0,0,0,.5)}
.addr-txt{display:flex;flex-direction:column;justify-content:center}
.addr-txt h2{font-family:var(--disp);font-weight:500;font-size:clamp(26px,3.2vw,42px);line-height:1.04;margin:14px 0 16px}
.addr-txt h2 em{font-style:italic;color:var(--gold-l)}
.addr-txt p{color:#e2d7c4;font-size:16px;max-width:460px}
.venues{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.venues div{border-left:2px solid var(--gold);padding-left:14px}
.venues b{font-family:var(--disp);font-style:italic;color:var(--gold-l);font-size:15px}
.venues span{display:block;font-size:12px;color:var(--muted-d);margin-top:2px}
footer{background:var(--ink);padding:66px 0 30px;position:relative;z-index:5}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:44px}
footer h4{font-family:var(--disp);font-weight:500;font-size:18px;margin-bottom:16px;color:var(--paper)}
.foot-brand{display:inline-block;margin-bottom:18px}
.foot-logo{height:52px;width:auto;border-radius:6px;background:#fff;padding:6px;box-shadow:0 6px 18px rgba(0,0,0,.35)}
footer p,footer li{color:var(--muted-d);font-size:14px}footer ul{list-style:none;line-height:2.1}footer a:hover{color:var(--gold-l)}
.fbot{border-top:1px solid var(--line-d);margin-top:44px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:#7d7060}
.cookie{position:fixed;left:20px;right:20px;bottom:20px;z-index:90;max-width:560px;margin:0 auto;background:var(--night-2);border:1px solid var(--line-d);border-radius:10px;padding:16px 18px;display:flex;gap:14px;align-items:center;box-shadow:0 20px 50px rgba(0,0,0,.5);font-size:13px;color:#e2d7c4}
.cookie b{color:var(--gold-l)}.cookie .cta{display:flex;gap:8px;flex-shrink:0}
.cookie button{font:inherit;font-weight:600;font-size:12.5px;padding:9px 15px;border-radius:6px;cursor:pointer;border:1px solid var(--line-d);background:none;color:var(--paper)}
.cookie button.acc{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.appbar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:80;background:rgba(23,19,16,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line-d);padding:8px 6px calc(8px + env(safe-area-inset-bottom));justify-content:space-around}
.appbar a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;color:#8a7d6a;font-weight:500}
.appbar a.active{color:var(--gold-l)}.appbar svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5}
@media(max-width:1280px){.era .cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}.azgrid{grid-template-columns:repeat(3,1fr)}.era .cards{grid-template-columns:repeat(2,1fr)}.addr-inner{grid-template-columns:1fr}#lmap{min-height:340px}.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:960px){:root{--cw:calc(100vw - 40px)}.rail{display:none}}
@media(max-width:768px){
  .wrap{padding:0 20px}.menu{display:none}.burger{display:flex}.nav{height:60px}
  .subbar{top:60px}.subbar .in{padding:10px 20px}.chips{padding:10px 20px}.sort button{padding:7px 10px}
  .voyage-hud{font-size:24vw;left:12px}
  .era{padding:66px 6vw}.azgrid{grid-template-columns:repeat(2,1fr)}
  .venues{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr;gap:26px}
  .appbar{display:flex}body{padding-bottom:74px}section.blk{padding:56px 0}.cookie{bottom:82px}
}
/* ---------- LIGHT THEME (toggle) ---------- */
body.light{--night:#f4ece0;--night-2:#fffaf0;--ink:#efe5d4;--paper:#241c14;--line-d:#e4d8c1;--muted-d:#6f6350}
body.light .bg{background:radial-gradient(66% 70% at 82% 14%,rgba(176,135,51,.16),transparent 55%),linear-gradient(165deg,#f8f2e6,#efe5d4 64%)!important}
body.light .grain{opacity:.3}
body.light header,body.light .subbar,body.light .appbar{background:rgba(244,236,224,.92)}
body.light .voyage-hud{color:rgba(50,38,18,.07)}
body.light .card{background:#fffaf0;border-color:#e8dcc4}
body.light .intro p,body.light .addr-txt p{color:#544735}
body.light .cookie{color:var(--paper)}
body.light .lang-menu a:hover,body.light .ac a:hover,body.light .ac a.hl{background:#efe6d5}
body.light .rail a{color:rgba(40,28,14,.4)}
body.light .rail a.on{color:var(--paper)}
/* theme toggle */
.theme-toggle{display:inline-flex;gap:0;border:1px solid var(--line-d);border-radius:999px;overflow:hidden;background:var(--night-2);cursor:pointer;padding:2px;flex-shrink:0}
.theme-toggle .seg{display:flex;align-items:center;justify-content:center;width:32px;height:26px;border-radius:999px;color:var(--muted-d);transition:.15s}
.theme-toggle .seg svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7}
.theme-toggle .seg.on{background:var(--gold);color:#1a1410}
/* --- mobile menu (burger) --- */
@media(max-width:768px){
  header.menu-open .menu{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--night-2);border-bottom:1px solid var(--line-d);padding:8px 20px 14px}
  header.menu-open .menu a{padding:11px 0;border-bottom:1px solid var(--line-d);font-size:15px}
}

/* --- legal pages --- */
.legal{position:relative;z-index:5;padding:60px 0 30px}
.legal .wrap{max-width:860px}
.legal h1{font-family:var(--disp);font-weight:500;font-size:clamp(30px,4vw,48px);margin-bottom:24px}
.legal h2{font-family:var(--disp);font-weight:500;font-size:22px;color:var(--gold-l);margin:28px 0 8px}
.legal p{color:#d7ccba;font-size:15.5px;margin-bottom:10px}
body.light .legal p{color:#4a3f30}
.legal a{color:var(--gold-l);text-decoration:underline}
.legal .legal-updated{margin-top:30px;font-size:13px;color:var(--muted-d)}

/* --- méga-année dans le hero --- */
.intro .hero-year{font-family:var(--disp);font-weight:500;font-size:clamp(56px,11vw,150px);line-height:.82;color:var(--gold-l);letter-spacing:-.02em;margin-bottom:4px;opacity:.95}
@media(max-width:768px){.intro .hero-year{font-size:26vw}}
