
:root{
  --paper:#EEE6D4; --surface:#F6F1E6; --surface2:#EAE0CB;
  --ink:#29231C; --ink-soft:#6B6052; --ink-faint:#998C78;
  --rule:#D2C6AD; --rule-soft:#E0D6C0;
  --oxblood:#7C2B2B; --oxblood-deep:#5E1F1F; --smoke:#3B5158;
  --maxw:1180px;
  --serif:'Spectral',Georgia,'Times New Roman',serif;
  --display:'Fraunces',Georgia,serif;
  --mono:'Spectral',Georgia,'Times New Roman',serif; /* étiquettes : même famille que le texte, distinguées par capitales et interlettrage */
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--serif); font-size:18px; line-height:1.62;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
a{color:inherit}
em{font-style:italic}
::selection{background:var(--oxblood); color:#F6F1E6}

/* ---------- top bar ---------- */
.topbar{
  position:sticky; top:0; z-index:50; background:rgba(238,230,212,.86);
  backdrop-filter:saturate(1.2) blur(8px);
  border-bottom:1px solid var(--rule);
}
.topbar-in{max-width:var(--maxw); margin:0 auto; padding:.7rem 1.4rem;
  display:flex; align-items:center; gap:1.2rem}
.brand{font-family:var(--mono); font-size:.72rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-soft); cursor:pointer; white-space:nowrap;
  border:0; background:none; padding:0}
.brand b{color:var(--oxblood); font-weight:600}
.search{flex:1; display:flex; justify-content:flex-end}
.search input{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.02em;
  width:min(340px,100%); padding:.5rem .8rem; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule); border-radius:0;
  outline:none;
}
.search input:focus{border-color:var(--oxblood); box-shadow:inset 0 0 0 1px var(--oxblood)}
.search input::placeholder{color:var(--ink-faint)}

main{max-width:var(--maxw); margin:0 auto; padding:0 1.4rem}

/* ---------- hero ---------- */
.hero{padding:4.2rem 0 2.4rem; border-bottom:1px solid var(--rule)}
.hero .eyebrow{font-family:var(--mono); font-size:.7rem; letter-spacing:.32em;
  text-transform:uppercase; color:var(--oxblood); margin:0 0 1.1rem}
.hero h1{font-family:var(--display); font-weight:500; font-optical-sizing:auto;
  font-size:clamp(2.7rem,7vw,5.4rem); line-height:.98; letter-spacing:-.01em;
  margin:0 0 .5rem; max-width:14ch}
.hero h1 .it{font-style:italic; color:var(--oxblood)}
.hero .sub{font-family:var(--display); font-style:italic; font-weight:400;
  font-size:clamp(1.05rem,2.3vw,1.5rem); color:var(--ink-soft); margin:.3rem 0 1.8rem;
  max-width:42ch}
.tally{display:flex; gap:2.2rem; flex-wrap:wrap; font-family:var(--mono);
  font-size:.74rem; letter-spacing:.04em; color:var(--ink-soft)}
.tally b{display:block; font-family:var(--display); font-style:normal; font-weight:500;
  font-size:1.9rem; line-height:1; color:var(--ink); letter-spacing:0; margin-bottom:.25rem}

/* ---------- zone rail (itinéraire) ---------- */
.rail-wrap{padding:1.7rem 0 .4rem; position:sticky; top:53px; z-index:40;
  background:var(--paper);}
.rail-label{font-family:var(--mono); font-size:.66rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink-faint); margin:0 0 .9rem}
.rail{display:flex; flex-wrap:wrap; gap:.55rem 1.5rem; padding-bottom:.7rem}
.stop{flex:0 0 auto; max-width:100%; display:inline-flex; align-items:baseline; gap:.5rem; cursor:pointer;
  background:none; border:0; text-align:left; font-family:inherit; color:var(--ink-soft);
  padding:.15rem 0}
.stop .dot{width:8px; height:8px; border-radius:50%; flex:0 0 auto; align-self:center;
  background:var(--paper); border:1.5px solid var(--rule); transition:.18s}
.stop .nm{font-family:var(--mono); font-size:.72rem; letter-spacing:.02em;
  text-transform:uppercase; transition:.18s; white-space:normal; word-break:break-word}
.stop .ct{font-family:var(--mono); font-size:.64rem; color:var(--ink-faint)}
.stop:hover .nm{color:var(--ink)}
.stop:hover .dot{border-color:var(--oxblood)}
.stop.active .dot{background:var(--oxblood); border-color:var(--oxblood)}
.stop.active .nm{color:var(--oxblood); font-weight:600}

/* ---------- results ---------- */
.results{padding:1.4rem 0 5rem}
.zone-block{margin-top:2.6rem}
.zone-head{display:flex; align-items:baseline; gap:1rem; margin:0 0 .2rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--rule)}
.zone-head h2{font-family:var(--display); font-weight:500; font-size:1.55rem;
  letter-spacing:-.01em; margin:0}
.zone-head .zc{font-family:var(--mono); font-size:.68rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-faint)}
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(265px,1fr)); gap:1px;
  background:var(--rule-soft); border:1px solid var(--rule-soft); margin-top:1px}
.card{background:var(--surface); padding:1.3rem 1.35rem 1.45rem; cursor:pointer;
  position:relative; transition:background .16s; min-height:150px;
  display:flex; flex-direction:column}
.card:hover{background:#FBF7EE}
.card:focus-visible{outline:2px solid var(--oxblood); outline-offset:-2px}
.card .ref{font-family:var(--mono); font-size:.62rem; letter-spacing:.1em;
  color:var(--ink-faint); margin-bottom:.5rem}
.card h3{font-family:var(--display); font-weight:500; font-size:1.34rem; line-height:1.12;
  margin:0 0 .15rem; letter-spacing:-.01em}
.card .prov{font-family:var(--mono); font-size:.64rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--oxblood); margin-bottom:.6rem}
.card .ex{font-size:.84rem; line-height:1.5; color:var(--ink-soft); margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.empty{font-family:var(--mono); font-size:.8rem; color:var(--ink-soft);
  padding:3rem 0; letter-spacing:.04em}
.empty b{color:var(--ink)}

/* ---------- zone intro ---------- */
.zone-head h2.clickable{cursor:pointer}
.zone-head h2.clickable:hover{color:var(--oxblood)}
.zone-intro{max-width:730px; margin:1.5rem 0 2.2rem}
.zone-intro p{font-size:1.04rem; line-height:1.68; margin:0 0 1.15rem; color:var(--ink)}
.zone-intro p:first-child{font-family:var(--display); font-style:italic; font-weight:400;
  font-size:1.2rem; line-height:1.5; color:var(--ink); margin-bottom:1.4rem;
  padding-left:1.1rem; border-left:2px solid var(--oxblood)}
.zone-teaser{max-width:760px; margin:1rem 0 1.5rem}
.zone-teaser p{font-size:.97rem; line-height:1.62; color:var(--ink-soft); margin:0 0 .7rem;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.zone-more{font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  background:none; border:0; border-bottom:1px solid var(--oxblood); color:var(--oxblood);
  cursor:pointer; padding:.25rem 0; transition:.16s}
.zone-more:hover{color:var(--oxblood-deep); border-bottom-color:var(--oxblood-deep)}
.zone-back{font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; background:none;
  border:0; color:var(--oxblood); cursor:pointer; padding:0; margin:.2rem 0 1.6rem}

/* ---------- fiche ---------- */
.fiche{max-width:760px; margin:0 auto; padding:2.6rem 0 5rem}
.crumb{font-family:var(--mono); font-size:.7rem; letter-spacing:.06em;
  background:none; border:0; color:var(--oxblood); cursor:pointer; padding:0;
  margin-bottom:2rem; display:inline-flex; align-items:center; gap:.5rem}
.crumb:hover{color:var(--oxblood-deep)}
.fiche .ref{font-family:var(--mono); font-size:.72rem; letter-spacing:.14em;
  color:var(--ink-faint); margin-bottom:.9rem}
.fiche h1{font-family:var(--display); font-weight:500; font-size:clamp(2.1rem,5vw,3.1rem);
  line-height:1.02; letter-spacing:-.015em; margin:0 0 .9rem}
.prov-line{font-family:var(--mono); font-size:.74rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--smoke); margin-bottom:1.6rem;
  display:flex; gap:.6rem; flex-wrap:wrap; align-items:center}
.prov-line .sep{color:var(--rule)}
.prov-line .z{color:var(--oxblood)}
.chapo{font-family:var(--display); font-style:italic; font-weight:400;
  font-size:1.28rem; line-height:1.5; color:var(--ink); margin:0 0 2.6rem;
  padding-left:1.2rem; border-left:2px solid var(--oxblood)}

.sec-label{font-family:var(--mono); font-size:.68rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-faint); margin:2.8rem 0 1rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--rule)}

.two{display:grid; grid-template-columns:1fr 1fr; gap:2.6rem}
@media(max-width:680px){.two{grid-template-columns:1fr; gap:0}}

table.ingr{width:100%; border-collapse:collapse; font-size:.92rem}
table.ingr td{padding:.42rem 0; border-bottom:1px solid var(--rule-soft);
  vertical-align:baseline}
table.ingr td.q{font-family:var(--mono); font-size:.8rem; text-align:right;
  color:var(--ink-soft); white-space:nowrap; padding-left:1rem; font-variant-numeric:tabular-nums}

ol.steps{list-style:none; counter-reset:s; margin:0; padding:0}
ol.steps li{counter-increment:s; position:relative; padding:0 0 1.05rem 2.1rem;
  font-size:.94rem; line-height:1.55}
ol.steps li::before{content:counter(s,decimal-leading-zero); position:absolute; left:0; top:.05rem;
  font-family:var(--mono); font-size:.7rem; color:var(--oxblood); letter-spacing:.02em}
ol.steps li .lead{font-weight:600}

.notes p{margin:0 0 1.15rem; font-size:1.04rem; line-height:1.66}
.notes ul{margin:0 0 1.15rem; padding-left:1.2rem}
.notes li{margin-bottom:.45rem; line-height:1.55}
.notes p:first-child{margin-top:0}

.fiche-nav{display:flex; justify-content:space-between; gap:1rem; margin-top:3.4rem;
  padding-top:1.6rem; border-top:1px solid var(--rule)}
.fiche-nav button{flex:1; background:var(--surface); border:1px solid var(--rule);
  padding:1rem 1.1rem; cursor:pointer; text-align:left; transition:.16s;
  font-family:inherit}
.fiche-nav button:hover{background:#FBF7EE; border-color:var(--oxblood)}
.fiche-nav button:disabled{opacity:.35; cursor:default}
.fiche-nav button.nx{text-align:right}
.fiche-nav .dir{font-family:var(--mono); font-size:.62rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:.3rem}
.fiche-nav .ttl{font-family:var(--display); font-size:1rem; color:var(--ink); line-height:1.1}

footer{border-top:1px solid var(--rule); padding:2.4rem 0 3rem; margin-top:2rem}
.foot-in{max-width:var(--maxw); margin:0 auto; padding:0 1.4rem}
.foot-nav{display:flex; flex-wrap:wrap; gap:.4rem 1.8rem; margin-bottom:1.3rem}
.foot-nav button{font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  background:none; border:0; color:var(--ink-soft); cursor:pointer; padding:.2rem 0}
.foot-nav button:hover{color:var(--oxblood)}
.foot-note{font-family:var(--mono); font-size:.66rem; letter-spacing:.05em; color:var(--ink-faint);
  line-height:1.8; margin:0}
.foot-note b{color:var(--ink-soft)}
.foot-note em{font-style:italic}

/* ---------- vues référence (complément, bibliographie) ---------- */
.cmp-zone{margin-bottom:3rem}
.cmp-zone > h2{font-family:var(--display); font-weight:500; font-size:1.9rem; line-height:1.04;
  letter-spacing:-.015em; margin:0 0 1.3rem; padding-top:1rem; padding-bottom:.5rem;
  border-bottom:1px solid var(--rule); scroll-margin-top:90px}
.cmp-country{margin-top:1.9rem}
.cmp-country > h3{font-family:var(--mono); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--oxblood); margin:0 0 .9rem; font-weight:600}
.cmp-country .lead{font-family:var(--display); font-style:italic; font-size:1.05rem; color:var(--ink-soft);
  line-height:1.5; margin:0 0 1rem}
.ref-entry{font-size:.95rem; line-height:1.55; margin:0 0 .75rem; padding-left:1.3rem; text-indent:-1.3rem}
.ref-entry strong{color:var(--ink); font-weight:600}
.cat-block{margin-bottom:2.8rem}
.cat-block > h2{font-family:var(--display); font-weight:500; font-size:1.7rem; line-height:1.1;
  letter-spacing:-.01em; margin:0 0 1.2rem; padding-bottom:.5rem; border-bottom:1px solid var(--rule);
  scroll-margin-top:90px}
.cat-block .ref-entry{margin-bottom:1rem}
.ref-intro{max-width:720px; margin:0 0 2.4rem}
.ref-intro p{font-size:1.02rem; line-height:1.66; margin:0 0 1.1rem; color:var(--ink)}
.ref-intro p:first-child{font-family:var(--display); font-style:italic; font-size:1.16rem;
  padding-left:1.1rem; border-left:2px solid var(--oxblood); color:var(--ink); margin-bottom:1.3rem}

/* ---------- recherche globale ---------- */
.search-view{padding-top:2.4rem}
.search-head{padding-bottom:1.4rem; margin-bottom:1rem; border-bottom:1px solid var(--rule)}
.search-head h1{font-family:var(--display); font-weight:500; font-size:clamp(2rem,4.5vw,2.8rem);
  letter-spacing:-.015em; margin:0 0 .5rem}
.search-sub{font-family:var(--mono); font-size:.74rem; letter-spacing:.04em; color:var(--ink-soft); margin:0}
.res-group{margin-top:2.4rem}
.res-ghead{display:flex; align-items:baseline; gap:1rem; margin-bottom:.4rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--rule)}
.res-ghead h3{font-family:var(--display); font-weight:500; font-size:1.4rem; margin:0; letter-spacing:-.01em}
.res-ghead .zc{font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; color:var(--ink-faint)}
.res-list{border-top:1px solid var(--rule-soft)}
.res-row{display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem; width:100%;
  text-align:left; background:none; border:0; border-bottom:1px solid var(--rule-soft); cursor:pointer;
  padding:.75rem .2rem; transition:background .14s; font-family:inherit}
.res-row:hover{background:#FBF7EE}
.res-row .rl{font-family:var(--display); font-size:1.06rem; color:var(--ink); line-height:1.25}
.res-row .rs{font-family:var(--mono); font-size:.64rem; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink-faint); white-space:nowrap; flex:0 0 auto}
@media(max-width:600px){
  .res-row{flex-direction:column; gap:.25rem}
  .res-row .rs{white-space:normal}
}
.ref-entry{scroll-margin-top:90px}
.hit{animation:hitflash 2.2s ease}
@keyframes hitflash{0%,12%{background:var(--surface2)} 100%{background:transparent}}

/* view transition */
.view{animation:fade .32s ease both}
@keyframes fade{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .view{animation:none}
  .hit{animation:none}
}
:focus-visible{outline:2px solid var(--oxblood); outline-offset:2px}

/* ---------- nav links ---------- */
.navlinks{display:flex; gap:.2rem}
.nav-a{font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  background:none; border:0; cursor:pointer; color:var(--ink-soft); padding:.4rem .7rem;
  border-bottom:2px solid transparent}
.nav-a:hover{color:var(--ink)}
.nav-a.on{color:var(--oxblood); border-bottom-color:var(--oxblood)}
@media(max-width:600px){.navlinks{display:none}}

.hero-cta{margin:2.2rem 0 0}
.hero-cta button{font-family:var(--mono); font-size:.74rem; letter-spacing:.08em;
  text-transform:uppercase; background:none; border:0; border-bottom:1px solid var(--oxblood);
  color:var(--oxblood); cursor:pointer; padding:.3rem 0; transition:.16s}
.hero-cta button span{display:inline-block; transition:transform .18s}
.hero-cta button:hover span{transform:translateX(4px)}

/* ---------- lien d'achat ---------- */
.hero-actions{display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.6rem; margin-top:2.2rem}
.buy{display:inline-block; font-family:var(--mono); font-size:.74rem; letter-spacing:.08em;
  text-transform:uppercase; background:var(--oxblood); color:#F5EFE2; text-decoration:none;
  padding:.7rem 1.3rem; border-radius:2px; transition:.16s; white-space:nowrap}
.buy:hover{background:#641f1f; color:#fff}
.hero-actions .hero-cta{margin:0}
.book-cta{margin:3.6rem 0 .5rem; padding:1.9rem 1.8rem; border:1px solid var(--rule);
  border-radius:4px; background:#F5EFE2; display:flex; flex-wrap:wrap; gap:1.2rem 2rem;
  align-items:center; justify-content:space-between}
.book-cta .bc-txt{max-width:32rem}
.book-cta h3{font-family:var(--display); font-weight:500; font-size:1.45rem; margin:0 0 .35rem}
.book-cta p{font-size:.95rem; color:var(--ink-soft); margin:0; line-height:1.5}
.foot-nav a.foot-buy{font-family:var(--mono); font-size:.72rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--oxblood); text-decoration:none; padding:.2rem 0}
.foot-nav a.foot-buy:hover{color:#641f1f}

/* ---------- bilingue ---------- */
.lang-toggle{font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; font-weight:600;
  background:none; border:1px solid var(--rule); border-radius:2px; color:var(--ink-soft);
  cursor:pointer; padding:.32rem .6rem; margin-left:.9rem; transition:.16s; white-space:nowrap}
.lang-toggle:hover{border-color:var(--oxblood); color:var(--oxblood)}
.lang-toggle b{color:var(--oxblood)}
.ai-banner{background:#F3E7DF; border-bottom:1px solid #E0C9BC; color:#6B3A2A;
  font-size:.82rem; line-height:1.45}
.ai-banner .abin{max-width:var(--maxw); margin:0 auto; padding:.7rem 2rem; display:flex;
  gap:.7rem; align-items:flex-start}
.ai-banner .abic{flex:none; font-weight:700; font-family:var(--mono); font-size:.7rem;
  letter-spacing:.08em; text-transform:uppercase; margin-top:.06rem}
.ai-banner .abx{margin-left:auto; flex:none; background:none; border:0; cursor:pointer;
  color:#6B3A2A; opacity:.6; font-size:1.1rem; line-height:1; padding:0 .2rem}
.ai-banner .abx:hover{opacity:1}
.ai-banner b{font-weight:700}
@media(max-width:600px){.ai-banner .abin{padding:.7rem 1.1rem}}
.mt-note{font-family:var(--mono); font-size:.66rem; letter-spacing:.05em; color:var(--oxblood);
  background:#F3E7DF; border:1px solid #E6D2C6; border-radius:2px; padding:.5rem .8rem;
  margin:0 0 1.4rem; display:inline-block}

/* ---------- introduction ---------- */
.intro{padding:2.4rem 0 5rem}
.intro-top{display:flex; align-items:baseline; justify-content:space-between; gap:1rem;
  flex-wrap:wrap; padding-bottom:1.4rem; margin-bottom:2.2rem; border-bottom:1px solid var(--rule)}
.intro-top .eyebrow{font-family:var(--mono); font-size:.7rem; letter-spacing:.3em;
  text-transform:uppercase; color:var(--oxblood); margin:0 0 .7rem}
.intro-top h1{font-family:var(--display); font-weight:500; font-size:clamp(2.2rem,5vw,3.3rem);
  line-height:1; letter-spacing:-.015em; margin:0}
.intro-wrap{display:grid; grid-template-columns:218px 1fr; gap:3.4rem; align-items:start}
.intro-toc{position:sticky; top:96px; align-self:start; font-family:var(--mono);
  max-height:calc(100vh - 120px); overflow:auto}
.intro-toc .toc-h{font-size:.62rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-faint); margin:0 0 .9rem}
.intro-toc .toc-link{display:block; width:100%; text-align:left; background:none; cursor:pointer;
  font-family:var(--mono); font-size:.74rem; line-height:1.35;
  color:var(--ink-soft); padding:.32rem 0 .32rem .8rem; border:0; border-left:1px solid var(--rule-soft)}
.intro-toc .toc-link.chap{color:var(--ink); letter-spacing:.02em; margin-top:.7rem; border-left-color:var(--rule)}
.intro-toc .toc-link.sub{font-size:.68rem; padding-left:1.5rem; color:var(--ink-faint)}
.intro-toc .toc-link:hover{color:var(--oxblood)}
.intro-toc .toc-link.active{color:var(--oxblood); border-left-color:var(--oxblood); border-left-width:2px; padding-left:calc(.8rem - 1px)}
.intro-toc .toc-link.sub.active{padding-left:calc(1.5rem - 1px)}

.intro-body{max-width:720px}
.chap-block{margin-bottom:3.2rem}
.chap-block > h2{font-family:var(--display); font-weight:500; font-size:2.1rem; line-height:1.04;
  letter-spacing:-.015em; margin:0 0 1.3rem; padding-top:1rem; scroll-margin-top:90px}
.sub-block{margin-top:2.6rem; scroll-margin-top:90px}
.sub-block > h3{font-family:var(--display); font-weight:500; font-style:italic; font-size:1.42rem;
  color:var(--oxblood); margin:0 0 1rem; letter-spacing:-.01em}
.intro-body h4{font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--smoke); margin:1.9rem 0 .9rem; font-weight:600}
.intro-body p{font-size:1.05rem; line-height:1.7; margin:0 0 1.15rem}
.intro-body ul{margin:0 0 1.2rem; padding-left:1.3rem}
.intro-body li{margin-bottom:.5rem; line-height:1.6}
.asterism{text-align:center; color:var(--ink-faint); letter-spacing:1em; margin:2rem 0 2.3rem;
  font-size:.9rem; padding-left:1em}
.fig{margin:1.8rem 0; border:1px solid var(--rule); background:var(--surface2);
  padding:1.6rem 1.4rem; display:flex; align-items:center; gap:1.1rem}
.fig .tag{font-family:var(--mono); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--paper); background:var(--smoke); padding:.35rem .6rem; white-space:nowrap}
.fig .cap{font-family:var(--display); font-style:italic; font-size:1.05rem; color:var(--ink-soft)}
.fig .cap small{display:block; font-family:var(--mono); font-style:normal; font-size:.6rem;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-top:.25rem}
.intro-end{margin-top:3.4rem; padding-top:1.8rem; border-top:1px solid var(--rule)}
.intro-end button{font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase;
  background:var(--surface); border:1px solid var(--rule); color:var(--ink); cursor:pointer;
  padding:.9rem 1.2rem; transition:.16s}
.intro-end button:hover{border-color:var(--oxblood); color:var(--oxblood)}
@media(max-width:760px){
  .intro-wrap{grid-template-columns:1fr; gap:0}
  .intro-toc{position:static; max-height:none; margin-bottom:2rem; padding-bottom:1.4rem;
    border-bottom:1px solid var(--rule)}
  .intro-toc.collapsed a{display:none}
  .fig{flex-direction:column; align-items:flex-start; gap:.7rem}
}

/* ---------- écran de choix de langue ---------- */
.lang-gate{position:fixed; inset:0; z-index:200; background:var(--paper);
  display:flex; align-items:center; justify-content:center; padding:24px;}
.lg-card{max-width:560px; text-align:center;}
.lg-kicker{font-family:var(--mono); font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--faded); margin:0 0 18px;}
.lg-title{font-family:var(--display); font-weight:600; font-size:clamp(2rem,6vw,3.2rem);
  line-height:1.08; margin:0 0 6px; color:var(--ink);}
.lg-title span{font-style:italic; color:var(--oxblood);}
.lg-title-en{font-family:var(--display); font-style:italic; font-size:clamp(1.1rem,3vw,1.5rem);
  color:var(--faded); margin:0 0 34px;}
.lg-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:26px;}
.lg-btn{font-family:var(--mono); font-size:.85rem; letter-spacing:.14em; text-transform:uppercase;
  padding:13px 34px; background:var(--oxblood); color:var(--paper); border:1px solid var(--oxblood);
  cursor:pointer; transition:background .15s,color .15s;}
.lg-btn:hover{background:transparent; color:var(--oxblood);}
.lg-note{font-size:.78rem; line-height:1.55; color:var(--faded); max-width:420px; margin:0 auto;}

.mainnav{display:flex;gap:1rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.mainnav a{text-decoration:none;color:var(--ink-soft)}.mainnav a:hover{color:var(--oxblood)}
.langswap{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-decoration:none;color:var(--ink-soft);margin-left:auto}
.brand{text-decoration:none}
a.card{display:block;text-decoration:none;color:inherit}
a.navlink{text-decoration:none;color:inherit;border:1px solid var(--rule);padding:.8rem 1rem;display:flex;flex-direction:column;gap:.2rem}
a.navlink:hover{border-color:var(--oxblood)}
.fiche-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2.4rem}
.navlink .dir{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.navlink.nx{text-align:right}
.aibanner{background:var(--surface2);border-bottom:1px solid var(--rule)}
.abin{max-width:var(--maxw);margin:0 auto;padding:.55rem 1.4rem;display:flex;gap:.8rem;align-items:baseline;font-size:.82rem;color:var(--ink-soft)}
.abic{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);white-space:nowrap}
.foot{border-top:1px solid var(--rule);margin-top:3rem}
.footnote{max-width:var(--maxw);margin:0 auto;padding:1.2rem 1.4rem;font-size:.78rem;color:var(--ink-faint)}
.longdoc h1{font-family:var(--display);font-weight:500}
.rail .stop{text-decoration:none;color:inherit}
a.toc-link{text-decoration:none}
a.zone-more{text-decoration:none;display:inline-block}
.zone-page{padding-top:1.6rem}
.zone-page .zone-intro p{max-width:760px}
.intro-body h2, .intro-body h3{scroll-margin-top:96px}
.zone-block{scroll-margin-top:180px}


.mainnav{display:flex;gap:1rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.mainnav a{text-decoration:none;color:var(--ink-soft)}.mainnav a:hover{color:var(--oxblood)}
.langswap{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-decoration:none;color:var(--ink-soft);margin-left:auto}
.brand{text-decoration:none}
a.card{display:block;text-decoration:none;color:inherit}
a.navlink{text-decoration:none;color:inherit;border:1px solid var(--rule);padding:.8rem 1rem;display:flex;flex-direction:column;gap:.2rem}
a.navlink:hover{border-color:var(--oxblood)}
.fiche-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2.4rem}
.navlink .dir{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.navlink.nx{text-align:right}
.aibanner{background:var(--surface2);border-bottom:1px solid var(--rule)}
.abin{max-width:var(--maxw);margin:0 auto;padding:.55rem 1.4rem;display:flex;gap:.8rem;align-items:baseline;font-size:.82rem;color:var(--ink-soft)}
.abic{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);white-space:nowrap}
.foot{border-top:1px solid var(--rule);margin-top:3rem}
.footnote{max-width:var(--maxw);margin:0 auto;padding:1.2rem 1.4rem;font-size:.78rem;color:var(--ink-faint)}
.longdoc h1{font-family:var(--display);font-weight:500}
.rail .stop{text-decoration:none;color:inherit}
a.toc-link{text-decoration:none}
a.zone-more{text-decoration:none;display:inline-block}
.zone-page{padding-top:1.6rem}
.zone-page .zone-intro p{max-width:760px}
.intro-body h2, .intro-body h3{scroll-margin-top:96px}
.zone-block{scroll-margin-top:180px}
.hero{padding:2.4rem 0 1.8rem}
.hero-cols{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.hero-main{flex:1 1 420px;min-width:280px}
.hero .sub{margin-bottom:1.1rem}
.hero-actions{display:flex;align-items:center;gap:1.4rem;margin:0;flex-wrap:wrap}
.cover-link{display:block;line-height:0}
.cover-thumb{width:132px;height:auto;border:1px solid var(--rule);box-shadow:4px 5px 0 rgba(41,35,28,.08)}
.cover-link:hover .cover-thumb{border-color:var(--oxblood)}
.hero-btns{display:flex;flex-direction:column;gap:.7rem;align-items:stretch}
a.contact{display:inline-block;text-align:center;text-decoration:none;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oxblood);border:1px solid var(--oxblood);padding:.7rem 1.3rem}
a.contact:hover{background:var(--oxblood);color:var(--surface)}
.ingr-note{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-transform:none;color:var(--ink-faint);margin-left:.5rem}
.liminaire{border-left:2px solid var(--oxblood);background:var(--surface2);padding:.9rem 1.2rem;margin:1.4rem 0}
.liminaire .lim-t{font-family:var(--display);font-size:1rem;font-weight:600;margin:0 0 .5rem}
.liminaire p{margin:.5rem 0;font-size:.92rem}
.liminaire p:last-child{margin-bottom:0}

