/* =========================================================================
   Le Patrimoine Français — feuille de style unique.
   Ordre : polices → jetons → base → typographie → utilitaires → en-tête →
   composants → sections → pages → adaptations → impression.
   Un seul thème : la pierre claire et le vert profond. Pas de bascule.
   ========================================================================= */

/* ------------------------------ polices ------------------------------ */
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-500-latin.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-500-latin-ext.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-600-latin.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-600-latin-ext.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-700-latin.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-700-latin-ext.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-500i-latin.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/cormorant-garamond-500i-latin-ext.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cinzel';src:url('/fonts/cinzel-400-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cinzel';src:url('/fonts/cinzel-400-latin-ext.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Cinzel';src:url('/fonts/cinzel-600-latin.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cinzel';src:url('/fonts/cinzel-600-latin-ext.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Sans';src:url('/fonts/instrument-sans-n-latin.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Sans';src:url('/fonts/instrument-sans-n-ext.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Sans';src:url('/fonts/instrument-sans-i-latin.woff2') format('woff2');font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ------------------------------ jetons ------------------------------ */
:root{
  --nuit:#0E1109;
  --foret:#1A2113;
  --foret-clair:#26301C;
  --olive:#5C6947;
  --olive-fonce:#465238;
  --sauge:#8C9A75;
  --or:#FFBD00;
  --or-chaud:#E8A712;
  --or-mat:#9A6F08;
  --pierre:#C4CBD6;
  --pierre-sombre:#8E99A8;
  --ivoire:#F7F3E9;
  --parchemin:#EDE6D5;
  --craie:#FCFAF5;
  --encre:#14180F;
  --encre-doux:#4C543F;
  --encre-tres-doux:#6E765F;
  --ligne:rgba(20,24,15,.14);
  --ligne-claire:rgba(247,243,233,.16);

  --page:min(1380px,100% - 2 * var(--marge));
  --texte:min(72ch,100%);
  --marge:clamp(1.25rem,5vw,4.5rem);
  --gouttiere:clamp(1.25rem,2.6vw,2.5rem);
  --section-y:clamp(4.5rem,10vw,10rem);
  --rayon:2px;

  --titre:'Cormorant Garamond',ui-serif,Georgia,'Times New Roman',serif;
  --capitale:'Cinzel',var(--titre);
  --courant:'Instrument Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --t-mega:clamp(2.8rem,8.6vw,7.8rem);
  --t-h1:clamp(2.6rem,6.4vw,5.6rem);
  --t-h2:clamp(2.05rem,4.2vw,3.6rem);
  --t-h3:clamp(1.45rem,2.3vw,2.1rem);
  --t-h4:clamp(1.12rem,1.5vw,1.35rem);
  --t-corps:clamp(1.02rem,.42vw + .93rem,1.15rem);
  --t-petit:.875rem;
  --t-micro:.72rem;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-doux:cubic-bezier(.4,0,.2,1);
  --duree:.7s;
  --ombre-basse:0 1px 2px rgba(14,17,9,.06),0 8px 24px -12px rgba(14,17,9,.18);
  --ombre-haute:0 24px 70px -30px rgba(14,17,9,.45),0 2px 8px rgba(14,17,9,.06);
  --entete-h:76px;
}

/* ------------------------------ base ------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--entete-h) + 1.5rem)}
body{
  margin:0;background:var(--ivoire);color:var(--encre);
  font-family:var(--courant);font-size:var(--t-corps);line-height:1.66;
  font-feature-settings:"kern","liga","calt";
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;overflow-x:clip;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--or);color:var(--nuit)}
:focus-visible{outline:2px solid var(--or-chaud);outline-offset:3px;border-radius:2px}
hr{border:0;height:1px;background:var(--ligne);margin:2.5rem 0}

body::after{
  content:'';position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.34;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
}

/* ------------------------------ typographie ------------------------------ */
h1,h2,h3,h4,h5{font-family:var(--titre);font-weight:600;line-height:1.06;letter-spacing:-.014em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:var(--t-h1)}
h2{font-size:var(--t-h2)}
h3{font-size:var(--t-h3);line-height:1.16}
h4{font-size:var(--t-h4);font-family:var(--courant);font-weight:600;letter-spacing:-.01em;line-height:1.3}
p{margin:0 0 1.25em;text-wrap:pretty}
strong{font-weight:600}
sup{font-size:.62em;vertical-align:.42em;line-height:0}
small{font-size:var(--t-petit)}
blockquote{margin:0}

.oeil{font-family:var(--capitale);font-size:var(--t-micro);letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--or-mat);display:flex;align-items:center;gap:.85rem;margin:0 0 1.6rem}
.oeil::before{content:'';width:clamp(28px,4vw,56px);height:1px;background:currentColor;opacity:.55;flex:none}
.oeil--clair{color:var(--or)}
.oeil--centre{justify-content:center}
.oeil--centre::after{content:'';width:clamp(28px,4vw,56px);height:1px;background:currentColor;opacity:.55;flex:none}
.oeil sup{letter-spacing:0;margin-right:.12em}

.chapo{font-family:var(--titre);font-size:clamp(1.3rem,2.1vw,1.72rem);line-height:1.44;color:var(--encre-doux);font-weight:500;letter-spacing:-.008em}
.mention{font-size:var(--t-petit);color:var(--encre-tres-doux);line-height:1.55}
.numero{font-family:var(--capitale);font-size:var(--t-micro);letter-spacing:.16em;color:var(--or-mat);font-weight:600}

.prose{max-width:var(--texte);font-size:clamp(1.06rem,.4vw + 1rem,1.19rem);line-height:1.78}
.prose>h2{font-size:clamp(1.8rem,3.1vw,2.7rem);margin-top:2.4em;margin-bottom:.5em;position:relative;padding-top:1.6rem}
.prose>h2::before{content:'';position:absolute;top:0;left:0;width:46px;height:1px;background:var(--or-chaud)}
.prose>h2:first-child{margin-top:0}
.prose>h3{margin-top:2em;font-size:clamp(1.3rem,2vw,1.62rem)}
.prose>h4{margin-top:1.9em;color:var(--olive-fonce)}
.prose ul,.prose ol{margin:0 0 1.4em}
.prose li{margin-bottom:.55em}
.prose ul{list-style:none;padding-left:0}
.prose ul>li{position:relative;padding-left:1.6em}
.prose ul>li::before{content:'';position:absolute;left:.35em;top:.72em;width:6px;height:6px;background:var(--or-chaud);transform:rotate(45deg)}
.prose ol{list-style:none;counter-reset:l;padding-left:0}
.prose ol>li{position:relative;padding-left:2.4em;counter-increment:l}
.prose ol>li::before{content:counter(l,decimal-leading-zero);position:absolute;left:0;top:.2em;font-family:var(--capitale);font-size:.72em;letter-spacing:.08em;color:var(--or-mat);font-weight:600}
.prose a{color:var(--olive-fonce);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--or-chaud) 60%,transparent);text-underline-offset:.22em;text-decoration-thickness:1px;transition:color .25s,text-decoration-color .25s}
.prose a:hover{color:var(--or-mat);text-decoration-color:var(--or-chaud)}
.prose .initiale::first-letter{font-family:var(--titre);font-weight:600;float:left;font-size:4.6em;line-height:.82;padding:.06em .1em 0 0;color:var(--olive)}
.citation{margin:2.4em 0;padding:0 0 0 clamp(1.2rem,3vw,2.4rem);border-left:1px solid var(--or-chaud);font-family:var(--titre);font-size:clamp(1.25rem,2.1vw,1.62rem);line-height:1.46;color:var(--olive-fonce);font-style:italic}
.citation p{margin-bottom:.5em}
.citation-source{font-family:var(--courant);font-style:normal;font-size:var(--t-petit);letter-spacing:.1em;text-transform:uppercase;color:var(--encre-tres-doux);margin-top:1rem}
.citation-source::before{content:'— '}

/* ------------------------------ utilitaires ------------------------------ */
.page{width:var(--page);margin-inline:auto}
.section{padding-block:var(--section-y);position:relative}
.section--serre{padding-block:clamp(3rem,6vw,5.5rem)}
.section--sombre{background:var(--foret);color:var(--ivoire)}
.section--nuit{background:var(--nuit);color:var(--ivoire)}
.section--parchemin{background:var(--parchemin)}
.section--craie{background:var(--craie)}
.section--sombre h1,.section--sombre h2,.section--sombre h3,.section--nuit h1,.section--nuit h2,.section--nuit h3{color:var(--craie)}
.section--sombre .chapo,.section--nuit .chapo{color:color-mix(in srgb,var(--ivoire) 78%,transparent)}
.section--sombre .mention,.section--nuit .mention{color:color-mix(in srgb,var(--ivoire) 62%,transparent)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.centre{text-align:center}
.mesure{max-width:var(--texte)}
.mesure-courte{max-width:58ch}
.evite{position:absolute;left:-9999px;z-index:10000;background:var(--foret);color:var(--craie);padding:.9rem 1.4rem}
.evite:focus{left:1rem;top:1rem}

/* ------------------------------ boutons et liens ------------------------------ */
.btn{
  --fond:var(--foret);--texte-btn:var(--craie);--bord:var(--foret);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  padding:1.05rem 2.05rem;border:1px solid var(--bord);background:var(--fond);color:var(--texte-btn);
  font-size:.83rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  text-decoration:none;cursor:pointer;border-radius:var(--rayon);overflow:hidden;isolation:isolate;
  transition:color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease);
  will-change:transform;
}
.btn::before{
  content:'';position:absolute;inset:0;z-index:-1;background:var(--or);
  transform:translateY(101%);transition:transform .55s var(--ease);
}
.btn:hover::before,.btn:focus-visible::before{transform:translateY(0)}
.btn:hover,.btn:focus-visible{color:var(--nuit);border-color:var(--or)}
.btn:active{transform:scale(.985)}
.btn .fleche{transition:transform .45s var(--ease)}
.btn:hover .fleche{transform:translateX(4px)}
.btn--or{--fond:var(--or);--texte-btn:var(--nuit);--bord:var(--or)}
.btn--or::before{background:var(--craie)}
.btn--or:hover,.btn--or:focus-visible{color:var(--nuit);border-color:var(--craie)}
.btn--fantome{--fond:transparent;--texte-btn:var(--encre);--bord:color-mix(in srgb,var(--encre) 28%,transparent)}
.btn--fantome::before{background:var(--foret)}
.btn--fantome:hover,.btn--fantome:focus-visible{color:var(--craie);border-color:var(--foret)}
.btn--clair{--fond:transparent;--texte-btn:var(--craie);--bord:var(--ligne-claire)}
.btn--clair::before{background:var(--or)}
.btn--petit{padding:.72rem 1.35rem;font-size:.74rem}
.btn--large{width:100%}

/* lien souligné qui se dessine */
.lien{
  position:relative;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;
  font-size:.82rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:inherit;
  padding-bottom:.35rem;
}
.lien::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;opacity:.3;transform-origin:right;transform:scaleX(1);transition:transform .5s var(--ease)}
.lien::before{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--or-chaud);transform-origin:left;transform:scaleX(0);transition:transform .5s var(--ease) .06s}
.lien:hover::after,.lien:focus-visible::after{transform:scaleX(0);transform-origin:right}
.lien:hover::before,.lien:focus-visible::before{transform:scaleX(1)}
.lien .fleche{transition:transform .45s var(--ease)}
.lien:hover .fleche{transform:translateX(4px)}
.fleche{width:1em;height:1em;flex:none;stroke:currentColor;fill:none;stroke-width:1.5}

.groupe-btn{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}

/* ------------------------------ en-tête ------------------------------ */
.entete{
  position:fixed;top:0;left:0;right:0;z-index:900;
  transition:transform .5s var(--ease),background-color .4s var(--ease-doux),box-shadow .4s,border-color .4s;
  border-bottom:1px solid transparent;
}
.entete__barre{display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);height:var(--entete-h);width:var(--page);margin-inline:auto;transition:height .4s var(--ease-doux)}
.entete[data-fixe='oui']{background:color-mix(in srgb,var(--ivoire) 88%,transparent);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom-color:var(--ligne)}
.entete[data-fixe='oui'] .entete__barre{height:64px}
.entete[data-cache='oui']{transform:translateY(-102%)}
/* en-tête posé sur un visuel sombre : texte clair tant qu'on n'a pas défilé */
.entete[data-sur-visuel='oui']:not([data-fixe='oui']){color:var(--craie)}
.entete[data-sur-visuel='oui']:not([data-fixe='oui']) .nav__lien{color:var(--craie)}
.entete[data-sur-visuel='oui']:not([data-fixe='oui']) .btn--fantome{--texte-btn:var(--craie);--bord:var(--ligne-claire)}

.marque{display:flex;align-items:center;gap:.85rem;text-decoration:none;flex:none;color:inherit}
.marque__sceau{width:46px;height:46px;flex:none;border-radius:50%;transition:width .4s var(--ease),height .4s var(--ease),transform .8s var(--ease)}
.marque:hover .marque__sceau{transform:rotate(-8deg)}
.entete[data-fixe='oui'] .marque__sceau{width:38px;height:38px}
.marque__mots{display:flex;flex-direction:column;line-height:1;gap:.28rem}
.marque__nom{font-family:var(--capitale);font-size:.83rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.marque__sous{font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;opacity:.62;white-space:nowrap}

.nav{margin-left:auto;display:flex;align-items:center;gap:clamp(.4rem,1.4vw,1.5rem)}
.nav__item{position:relative}
.nav__lien{
  display:flex;align-items:center;gap:.35rem;padding:.55rem .1rem;text-decoration:none;
  font-size:.78rem;font-weight:500;letter-spacing:.075em;text-transform:uppercase;color:var(--encre);
  background:none;border:0;cursor:pointer;white-space:nowrap;transition:color .3s;
}
.nav__lien::after{content:'';position:absolute;left:0;right:0;bottom:.15rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav__item:hover .nav__lien::after,.nav__lien[aria-current='page']::after,.nav__lien[aria-expanded='true']::after{transform:scaleX(1)}
.nav__lien[aria-current='page']{color:var(--or-mat)}
.nav__chevron{width:9px;height:9px;stroke:currentColor;fill:none;stroke-width:1.6;opacity:.6;transition:transform .35s var(--ease)}
.nav__item:hover .nav__chevron,.nav__lien[aria-expanded='true'] .nav__chevron{transform:rotate(180deg)}
.entete__actions{display:flex;align-items:center;gap:.6rem;flex:none;margin-left:auto}

/* mega-menu */
.mega{
  position:absolute;top:calc(100% + .5rem);left:50%;translate:-50% 0;width:min(860px,92vw);
  background:var(--craie);border:1px solid var(--ligne);box-shadow:var(--ombre-haute);
  padding:2.1rem;display:grid;grid-template-columns:1fr 1.35fr;gap:2rem;
  opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;
  transition:opacity .35s var(--ease),transform .45s var(--ease),visibility .35s;
  color:var(--encre);border-radius:var(--rayon);
}
.nav__item:hover .mega,.mega:hover,.mega.est-ouvert{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.mega__intro{border-right:1px solid var(--ligne);padding-right:1.8rem}
.mega__titre{font-family:var(--titre);font-size:1.7rem;margin-bottom:.5rem}
.mega__resume{font-size:.9rem;color:var(--encre-doux);line-height:1.55;margin-bottom:1.2rem}
.mega__liens{display:grid;grid-template-columns:1fr 1fr;gap:.2rem 1.4rem;align-content:start}
.mega__lien{display:block;padding:.62rem .7rem;text-decoration:none;border-radius:var(--rayon);transition:background-color .3s}
.mega__lien:hover{background:var(--parchemin)}
.mega__lien b{display:block;font-size:.9rem;font-weight:600;margin-bottom:.12rem}
.mega__lien span{display:block;font-size:.76rem;color:var(--encre-tres-doux);line-height:1.4}
.mega__lien--vedette b{color:var(--or-mat)}
.mega--large{grid-template-columns:1fr;width:min(1000px,94vw)}
.nav__item:nth-last-child(-n+2) .mega{left:auto;right:0;translate:none}
.mega--large .mega__intro{border-right:0;border-bottom:1px solid var(--ligne);padding:0 0 1.4rem;margin-bottom:.4rem;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}
.mega--large .mega__resume{margin:0;max-width:52ch}
.mega--large .mega__liens{grid-template-columns:repeat(4,1fr)}

/* barre de progression de lecture */
.progression{position:fixed;top:0;left:0;height:2px;background:var(--or);z-index:901;width:0;transition:width .12s linear}

/* menu plein écran (mobile) */
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:none;border:1px solid var(--ligne);cursor:pointer;border-radius:var(--rayon)}
.burger span{display:block;width:18px;height:1px;background:currentColor;position:relative;transition:background-color .2s}
.burger span::before,.burger span::after{content:'';position:absolute;left:0;width:18px;height:1px;background:currentColor;transition:transform .4s var(--ease)}
.burger span::before{top:-5px}.burger span::after{top:5px}
.burger[aria-expanded='true'] span{background:transparent}
.burger[aria-expanded='true'] span::before{transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded='true'] span::after{transform:translateY(-5px) rotate(-45deg)}

.voile{
  position:fixed;inset:0;z-index:899;background:var(--foret);color:var(--ivoire);
  padding:calc(var(--entete-h) + 2rem) var(--marge) 2rem;overflow-y:auto;
  clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease);
}
.voile[data-ouvert='oui']{clip-path:inset(0 0 0 0)}
.voile__liste{list-style:none;margin:0;padding:0;max-width:640px}
.voile__groupe{border-bottom:1px solid var(--ligne-claire)}
.voile__tete{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;background:none;border:0;padding:1.1rem 0;text-align:left;cursor:pointer;font-family:var(--titre);font-size:1.75rem;color:var(--craie);text-decoration:none}
.voile__tete .numero{color:var(--sauge)}
.voile__sous{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.voile__groupe[data-ouvert='oui'] .voile__sous{grid-template-rows:1fr}
.voile__sous>div{overflow:hidden}
.voile__sous a{display:block;padding:.5rem 0 .5rem 1.2rem;text-decoration:none;font-size:.95rem;color:color-mix(in srgb,var(--ivoire) 78%,transparent);border-left:1px solid var(--ligne-claire)}
.voile__sous a:hover{color:var(--or)}
.voile__pied{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:.8rem}

/* ------------------------------ apparitions ------------------------------ */
/* Les états de départ des animations ne s'appliquent que si JavaScript est là
   pour les lever : sans script, la page reste intégralement lisible. */
.js [data-anim]{opacity:0;will-change:transform,opacity}
html.js [data-anim='monte']{transform:translateY(28px)}
html.js [data-anim='monte-court']{transform:translateY(14px)}
html.js [data-anim='fondu']{transform:none}
html.js [data-anim='droite']{transform:translateX(-30px)}
html.js [data-anim='gauche']{transform:translateX(30px)}
html.js [data-anim='echelle']{transform:scale(.94)}
html.js [data-anim].est-vu{opacity:1;transform:none;transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--retard,0ms)}
/* Le masque du mot doit être plus haut que l'encre de la police : avec une
   interligne de 0,94 le jambage du « g » et les accents dépassent la boîte de
   ligne, et overflow:hidden les couperait. On élargit donc la zone de découpe
   par du remplissage, annulé par une marge négative pour ne rien déplacer. */
.mot{display:inline-block;overflow:hidden;vertical-align:top;
  padding:.1em .06em .2em;margin:-.1em -.06em -.2em}
.js .mot>span{display:inline-block;transform:translateY(155%);transition:transform 1s var(--ease);transition-delay:var(--retard,0ms)}
.est-vu .mot>span,.mot.est-vu>span{transform:translateY(0)}
.js .trait-anime{transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease)}
.est-vu .trait-anime{transform:scaleX(1)}

/* ------------------------------ images ------------------------------ */
.media{position:relative;overflow:hidden;margin:0;background:var(--parchemin);background-size:cover;background-position:center;background-repeat:no-repeat}
.media img{width:100%;height:100%;object-fit:cover;display:block}
.media[data-lqip]{background-size:cover;background-position:center}
.js .media img[data-charge]{opacity:0;transition:opacity .8s var(--ease-doux)}
.js .media img[data-charge].est-charge{opacity:1}
.media--arc{clip-path:url(#arc-brise)}
.media--cintre{clip-path:url(#arc-cintre)}
.media--zoom img{transition:transform 1.4s var(--ease)}
.media--zoom:hover img{transform:scale(1.055)}
.media__legende{margin-top:.85rem;font-size:var(--t-petit);color:var(--encre-tres-doux);line-height:1.5;display:flex;gap:.6rem}
.media__legende::before{content:'';width:18px;height:1px;background:var(--or-chaud);margin-top:.7em;flex:none}
/* Une image posée en fond de section doit couvrir la boîte, pas conserver son
   format naturel : sans cette règle, object-fit n'a rien à recadrer et la
   photographie est rognée par le haut. */
.hero__fond>.media,.hero-page__fond>.media,.appel__fond>.media{height:100%;width:100%;background-color:transparent}
.r-16-9{aspect-ratio:16/9}.r-4-3{aspect-ratio:4/3}.r-3-4{aspect-ratio:3/4}.r-1-1{aspect-ratio:1}.r-2-3{aspect-ratio:2/3}.r-3-2{aspect-ratio:3/2}.r-21-9{aspect-ratio:21/9}

/* ------------------------------ grilles ------------------------------ */
.grille{display:grid;gap:var(--gouttiere)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.g-auto{grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr))}
.g-large{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr))}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.duo--decale{grid-template-columns:1.05fr .95fr}
.duo--texte{grid-template-columns:.85fr 1.15fr;align-items:start}
.pile{display:flex;flex-direction:column;gap:var(--gouttiere)}
.entete-section{display:flex;justify-content:space-between;align-items:flex-end;gap:clamp(1.5rem,4vw,4rem);margin-bottom:clamp(2.5rem,5vw,4.5rem);flex-wrap:wrap}
.entete-section h2{margin:0;max-width:20ch}
.entete-section__droite{max-width:44ch;color:var(--encre-doux)}
.section--sombre .entete-section__droite,.section--nuit .entete-section__droite{color:color-mix(in srgb,var(--ivoire) 72%,transparent)}

/* ------------------------------ cartes ------------------------------ */
.carte{
  position:relative;display:flex;flex-direction:column;background:var(--craie);
  border:1px solid var(--ligne);text-decoration:none;color:inherit;overflow:hidden;
  transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .6s var(--ease);
  border-radius:var(--rayon);height:100%;
}
a.carte:hover{transform:translateY(-6px);box-shadow:var(--ombre-haute);border-color:color-mix(in srgb,var(--or-chaud) 45%,transparent)}
.carte__media{overflow:hidden;background:var(--parchemin)}
.carte__media img{transition:transform 1.2s var(--ease)}
a.carte:hover .carte__media img{transform:scale(1.06)}
.carte__corps{padding:clamp(1.4rem,2.2vw,2rem);display:flex;flex-direction:column;gap:.75rem;flex:1}
.carte__sur{display:flex;align-items:center;gap:.6rem;font-family:var(--capitale);font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--or-mat);font-weight:600}
.carte__titre{font-family:var(--titre);font-size:clamp(1.3rem,1.9vw,1.62rem);line-height:1.14;margin:0;letter-spacing:-.01em}
.carte__texte{font-size:.93rem;color:var(--encre-doux);line-height:1.6;margin:0;flex:1}
.carte__pied{display:flex;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.76rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--olive-fonce)}
a.carte:hover .carte__pied{color:var(--or-mat)}
a.carte:hover .carte__pied .fleche{transform:translateX(5px)}
.carte__pied .fleche{transition:transform .45s var(--ease)}
.carte--sombre{background:var(--foret-clair);border-color:var(--ligne-claire);color:var(--ivoire)}
.carte--sombre .carte__titre{color:var(--craie)}
.carte--sombre .carte__texte{color:color-mix(in srgb,var(--ivoire) 74%,transparent)}
.carte--sombre .carte__pied{color:var(--or)}
.carte--sombre .carte__sur{color:var(--or)}
.carte--nue{background:transparent;border:0;border-top:1px solid var(--ligne);border-radius:0}
.carte--nue .carte__corps{padding:1.6rem 0 2rem}
a.carte--nue:hover{transform:none;box-shadow:none}
a.carte--nue:hover .carte__titre{color:var(--or-mat)}
.carte__num{position:absolute;top:1.2rem;right:1.4rem;font-family:var(--titre);font-size:2.6rem;line-height:1;font-variant-numeric:lining-nums;color:color-mix(in srgb,var(--olive) 22%,transparent);pointer-events:none}
.carte--sombre .carte__num{color:color-mix(in srgb,var(--or) 26%,transparent)}

/* cartes-actions : icône dessinée + trait qui se remplit */
.carte-action{position:relative;padding:clamp(1.6rem,2.6vw,2.4rem) 0;border-top:1px solid var(--ligne);display:grid;grid-template-columns:auto 1fr;gap:clamp(1.2rem,2.4vw,2.4rem);text-decoration:none;color:inherit;transition:padding-left .5s var(--ease)}
.carte-action::before{content:'';position:absolute;top:-1px;left:0;width:100%;height:1px;background:var(--or-chaud);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease)}
.carte-action:hover::before{transform:scaleX(1)}
.carte-action:hover{padding-left:.7rem}
.carte-action__icone{width:clamp(52px,5vw,72px);height:clamp(52px,5vw,72px);stroke:var(--olive);fill:none;stroke-width:1.1;transition:stroke .5s}
.carte-action:hover .carte-action__icone{stroke:var(--or-mat)}
.section--sombre .carte-action{border-color:var(--ligne-claire)}
.section--sombre .carte-action__icone{stroke:var(--sauge)}
.section--sombre .carte-action:hover .carte-action__icone{stroke:var(--or)}

/* ------------------------------ chiffres ------------------------------ */
.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:1px;background:var(--ligne-claire)}
.chiffre{padding:clamp(1.8rem,3vw,2.8rem) clamp(1.2rem,2vw,2rem);background:var(--foret);display:flex;flex-direction:column;gap:.5rem}
.section--craie .chiffre,.section--parchemin .chiffre{background:var(--craie)}
.chiffre__valeur{font-family:var(--titre);font-size:clamp(2.6rem,5vw,4.2rem);line-height:.95;color:var(--or);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.section--craie .chiffre__valeur,.section--parchemin .chiffre__valeur{color:var(--olive)}
.chiffre__legende{font-size:.85rem;line-height:1.45;color:color-mix(in srgb,var(--ivoire) 72%,transparent)}
.section--craie .chiffre__legende,.section--parchemin .chiffre__legende{color:var(--encre-doux)}
.chiffre__source{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--ivoire) 45%,transparent);margin-top:auto;padding-top:.6rem}
.section--craie .chiffre__source,.section--parchemin .chiffre__source{color:var(--encre-tres-doux)}

/* ------------------------------ bandeau défilant ------------------------------ */
.defile{overflow:hidden;border-block:1px solid var(--ligne);padding:1.1rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.section--sombre .defile,.section--nuit .defile{border-color:var(--ligne-claire)}
.defile__piste{display:flex;gap:0;width:max-content;animation:glisse 46s linear infinite}
.defile:hover .defile__piste{animation-play-state:paused}
.defile__lot{display:flex;gap:0;flex:none}
.defile__mot{font-family:var(--titre);font-size:clamp(1.3rem,2.4vw,2rem);padding:0 clamp(1rem,2vw,1.8rem);color:var(--encre-doux);white-space:nowrap;display:flex;align-items:center;gap:clamp(1rem,2vw,1.8rem)}
.defile__mot::after{content:'';width:5px;height:5px;background:var(--or-chaud);transform:rotate(45deg);flex:none}
.section--sombre .defile__mot,.section--nuit .defile__mot{color:color-mix(in srgb,var(--ivoire) 70%,transparent)}
@keyframes glisse{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ------------------------------ hero ------------------------------ */
.hero{position:relative;min-height:min(100svh,980px);display:flex;align-items:flex-end;overflow:hidden;background:var(--nuit);color:var(--ivoire);isolation:isolate}
.hero__fond{position:absolute;inset:-8% 0 -8%;z-index:0}
.hero__fond img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:respire 26s ease-in-out infinite alternate}
@keyframes respire{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-1.2%,-1%,0)}}
.hero__voile{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(14,17,9,.72) 0%,rgba(14,17,9,.22) 34%,rgba(14,17,9,.55) 68%,rgba(14,17,9,.92) 100%),
  radial-gradient(120% 80% at 20% 90%,rgba(14,17,9,.75),transparent 60%)}
.hero__contenu{position:relative;z-index:3;width:var(--page);margin-inline:auto;padding-block:clamp(3rem,6vh,4.5rem) clamp(2.5rem,5vh,3.5rem);padding-top:calc(var(--entete-h) + clamp(2rem,5vh,3.5rem))}
.hero__titre{font-size:var(--t-mega);line-height:.94;letter-spacing:-.025em;margin:0 0 1.6rem;color:var(--craie);max-width:16ch;font-weight:500}
.hero__titre em{font-style:italic;color:var(--or)}
.hero__chapo{max-width:52ch;font-size:clamp(1.04rem,1.25vw,1.28rem);line-height:1.58;color:color-mix(in srgb,var(--ivoire) 82%,transparent);margin-bottom:2rem}
.hero__bas{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 2rem;margin-top:clamp(2rem,5vh,4rem);padding-top:1.6rem;border-top:1px solid var(--ligne-claire)}
.hero__meta{display:flex;gap:clamp(1.6rem,4vw,3.4rem);flex-wrap:wrap}
.hero__meta div{max-width:22ch}
.hero__meta b{display:block;font-family:var(--titre);font-size:clamp(1.5rem,2.2vw,1.9rem);line-height:1;color:var(--or);font-weight:600;margin-bottom:.3rem;font-variant-numeric:tabular-nums}
.hero__meta span{font-size:.78rem;line-height:1.4;color:color-mix(in srgb,var(--ivoire) 66%,transparent)}
.hero__descendre{position:absolute;right:var(--marge);bottom:clamp(3rem,7vh,5rem);z-index:4;display:flex;flex-direction:column;align-items:center;gap:.9rem;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:color-mix(in srgb,var(--ivoire) 60%,transparent);text-decoration:none}
.hero__descendre i{display:block;width:1px;height:56px;background:linear-gradient(var(--or),transparent);overflow:hidden;position:relative}
.hero__descendre i::after{content:'';position:absolute;inset:0;background:var(--or);animation:coule 2.4s var(--ease-doux) infinite}
@keyframes coule{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
.hero__sceau{position:absolute;z-index:2;right:calc(var(--marge) - 2vw);top:22vh;width:clamp(180px,26vw,420px);opacity:.13;pointer-events:none;mix-blend-mode:screen}

/* hero secondaire (pages intérieures) */
.hero-page{position:relative;padding-top:calc(var(--entete-h) + clamp(2.5rem,8vh,7rem));padding-bottom:clamp(3rem,7vw,5.5rem);background:var(--foret);color:var(--ivoire);overflow:hidden;isolation:isolate}
.hero-page--image{padding-top:calc(var(--entete-h) + clamp(3.5rem,13vh,10rem));padding-bottom:clamp(4rem,9vw,7rem)}
.hero-page__fond{position:absolute;inset:0;z-index:0}
.hero-page__fond img{width:100%;height:100%;object-fit:cover}
/* Le voile est dirigé : très dense du côté du texte, presque transparent du
   côté de l'image. La photographie reste lisible, le titre aussi. */
.hero-page__fond::after{content:'';position:absolute;inset:0;background:
  linear-gradient(100deg,rgba(14,17,9,.95) 0%,rgba(14,17,9,.86) 34%,rgba(14,17,9,.42) 68%,rgba(14,17,9,.58) 100%),
  linear-gradient(180deg,rgba(14,17,9,.62),rgba(14,17,9,.1) 38%,rgba(14,17,9,.72))}
@media (max-width:900px){
  .hero-page__fond::after{background:linear-gradient(180deg,rgba(14,17,9,.9),rgba(14,17,9,.72) 45%,rgba(14,17,9,.92))}
}
.hero-page__contenu{position:relative;z-index:2;width:var(--page);margin-inline:auto}
.hero-page--duo{padding-top:calc(var(--entete-h) + clamp(2.5rem,7vh,5rem));padding-bottom:clamp(3rem,7vw,5rem)}
.hero-page--duo .hero-page__contenu{display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero-page__photo .media{border:1px solid var(--ligne-claire);background:var(--foret-clair)}
.hero-page__photo{position:relative}
.hero-page__photo::after{content:'';position:absolute;inset:auto -8% -6% -8%;height:60%;z-index:-1;
  background:radial-gradient(60% 60% at 50% 100%,color-mix(in srgb,var(--or) 22%,transparent),transparent 70%);pointer-events:none}
.hero-page h1{font-size:var(--t-h1);color:var(--craie);max-width:20ch;margin-bottom:1.2rem;font-weight:500}
.hero-page .chapo{max-width:60ch;color:color-mix(in srgb,var(--ivoire) 80%,transparent)}
.hero-page__ornement{position:absolute;right:-4vw;bottom:-30%;width:min(46vw,620px);opacity:.07;z-index:1;pointer-events:none}
/* Arcade de fond : dessinée, jamais photographiée. Elle donne à chaque rubrique
   une signature graphique sans recourir à une image d'illustration douteuse. */
.hero-page__arcature{position:absolute;left:0;right:0;bottom:0;height:min(78%,340px);z-index:1;pointer-events:none;opacity:.3;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 45%);mask-image:linear-gradient(180deg,transparent,#000 45%)}
.hero-page__arcature svg{width:100%;height:100%;stroke:var(--or);fill:none;stroke-width:1.2;vector-effect:non-scaling-stroke}
.appel__arcature{position:absolute;left:0;right:0;bottom:0;height:min(70%,320px);z-index:1;pointer-events:none;opacity:.18;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 55%);mask-image:linear-gradient(180deg,transparent,#000 55%)}
.appel__arcature svg{width:100%;height:100%;stroke:var(--or);fill:none;stroke-width:1.2}

/* fil d'Ariane */
.ariane{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.6rem;color:color-mix(in srgb,var(--ivoire) 62%,transparent)}
.ariane a{text-decoration:none;transition:color .3s}
.ariane a:hover{color:var(--or)}
.ariane li{display:flex;align-items:center;gap:.45rem;list-style:none}
.ariane ol{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}
.ariane li+li::before{content:'/';opacity:.45}
.ariane [aria-current]{color:var(--or)}

/* ------------------------------ frise chronologique ------------------------------ */
.frise{position:relative;padding-left:clamp(1.8rem,4vw,3.5rem)}
.frise::before{content:'';position:absolute;left:0;top:.6rem;bottom:0;width:1px;background:var(--ligne)}
.frise__jauge{position:absolute;left:0;top:.6rem;width:1px;background:var(--or-chaud);height:var(--avance,0%);transition:height .2s linear}
.section--sombre .frise::before{background:var(--ligne-claire)}
.jalon{position:relative;padding-bottom:clamp(2.4rem,4vw,3.6rem)}
.jalon::before{content:'';position:absolute;left:calc(-1 * clamp(1.8rem,4vw,3.5rem) - 4px);top:.75rem;width:9px;height:9px;background:var(--ivoire);border:1px solid var(--or-chaud);transform:rotate(45deg);transition:background-color .4s}
.jalon.est-vu::before{background:var(--or)}
.section--sombre .jalon::before{background:var(--foret)}
.jalon__date{font-family:var(--capitale);font-size:.78rem;letter-spacing:.16em;color:var(--or-mat);font-weight:600;display:block;margin-bottom:.5rem}
.section--sombre .jalon__date{color:var(--or)}
.jalon__titre{font-family:var(--titre);font-size:clamp(1.3rem,2vw,1.72rem);margin:0 0 .5rem;line-height:1.16}
.jalon__texte{color:var(--encre-doux);max-width:62ch;margin:0;font-size:.98rem;line-height:1.65}
.section--sombre .jalon__texte{color:color-mix(in srgb,var(--ivoire) 74%,transparent)}

/* ------------------------------ accordéon ------------------------------ */
.accordeon{border-top:1px solid var(--ligne)}
.section--sombre .accordeon{border-color:var(--ligne-claire)}
.pli{border-bottom:1px solid var(--ligne)}
.section--sombre .pli{border-color:var(--ligne-claire)}
.pli__tete{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:1.5rem 0;background:none;border:0;text-align:left;cursor:pointer;font-family:var(--titre);font-size:clamp(1.15rem,1.8vw,1.42rem);line-height:1.3;color:inherit;transition:color .3s}
.pli__tete:hover{color:var(--or-mat)}
.section--sombre .pli__tete:hover{color:var(--or)}
.pli__signe{flex:none;width:22px;height:22px;position:relative;margin-top:.35rem}
.pli__signe::before,.pli__signe::after{content:'';position:absolute;background:currentColor;transition:transform .45s var(--ease),opacity .3s}
.pli__signe::before{left:0;top:50%;width:100%;height:1px;translate:0 -50%}
.pli__signe::after{top:0;left:50%;height:100%;width:1px;translate:-50% 0}
.pli__tete[aria-expanded='true'] .pli__signe::after{transform:rotate(90deg);opacity:0}
.pli__corps{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.pli__tete[aria-expanded='true']+.pli__corps{grid-template-rows:1fr}
.pli__corps>div{overflow:hidden}
.pli__corps p{padding-right:clamp(0rem,6vw,4rem);color:var(--encre-doux);margin:0 0 1.2rem}
.pli__corps>div>*:first-child{padding-top:.2rem}
.section--sombre .pli__corps p{color:color-mix(in srgb,var(--ivoire) 76%,transparent)}

/* ------------------------------ encadrés et tableaux ------------------------------ */
.encadre{background:var(--parchemin);border-left:2px solid var(--or-chaud);padding:clamp(1.3rem,2.4vw,2rem);margin:2.2em 0;border-radius:0 var(--rayon) var(--rayon) 0}
.encadre__titre{font-family:var(--capitale);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--or-mat);margin:0 0 .7rem;font-weight:600}
.encadre p:last-child{margin-bottom:0}
.encadre--sombre{background:var(--foret-clair);color:var(--ivoire);border-left-color:var(--or)}
.tableau{width:100%;border-collapse:collapse;font-size:.93rem;margin:2em 0}
.tableau th,.tableau td{text-align:left;padding:.9rem 1rem;border-bottom:1px solid var(--ligne);vertical-align:top}
.tableau th{font-family:var(--capitale);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--or-mat);font-weight:600}
.tableau tbody tr:hover{background:color-mix(in srgb,var(--parchemin) 55%,transparent)}
.tableau caption{caption-side:bottom;text-align:left;font-size:var(--t-petit);color:var(--encre-tres-doux);padding-top:.9rem}
.table-defile{overflow-x:auto}

/* ------------------------------ étiquettes ------------------------------ */
.puces{display:flex;flex-wrap:wrap;gap:.5rem}
.puce{display:inline-flex;align-items:center;gap:.4rem;padding:.34rem .8rem;border:1px solid var(--ligne);border-radius:100px;font-size:.72rem;letter-spacing:.05em;color:var(--encre-doux);background:var(--craie);text-decoration:none;transition:border-color .3s,color .3s,background-color .3s}
a.puce:hover,.puce[aria-pressed='true']{border-color:var(--or-chaud);color:var(--nuit);background:color-mix(in srgb,var(--or) 22%,var(--craie))}
.section--sombre .puce{border-color:var(--ligne-claire);background:transparent;color:color-mix(in srgb,var(--ivoire) 78%,transparent)}
.etiquette{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--capitale);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:var(--or-mat);font-weight:600}
.etiquette::before{content:'';width:5px;height:5px;background:currentColor;transform:rotate(45deg)}

/* ------------------------------ carte de France ------------------------------ */
.carte-france{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.carte-france__svg{width:100%;height:auto;overflow:visible}
.carte-france__svg path{fill:color-mix(in srgb,var(--olive) 26%,transparent);stroke:var(--sauge);stroke-width:1.4;cursor:pointer;transition:fill .4s var(--ease),stroke .4s,transform .5s var(--ease);transform-origin:center;transform-box:fill-box}
.carte-france__svg a:hover path,.carte-france__svg a:focus-visible path,.carte-france__svg path.est-active{fill:var(--or);stroke:var(--or);transform:translateY(-4px)}
.carte-france__svg a:focus-visible{outline:none}
.carte-france__svg text{font-family:var(--courant);font-size:15px;fill:color-mix(in srgb,var(--ivoire) 55%,transparent);pointer-events:none;text-anchor:middle;transition:fill .4s,font-size .3s}
.carte-france__svg a:hover text,.carte-france__svg a:focus-visible text{fill:var(--craie)}
.carte-france__liste{display:grid;grid-template-columns:1fr 1fr;gap:.1rem 1.5rem;list-style:none;margin:0;padding:0}
.carte-france__liste a{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;padding:.55rem 0;text-decoration:none;border-bottom:1px solid var(--ligne-claire);font-size:.94rem;transition:color .3s,padding-left .4s var(--ease)}
.carte-france__liste a:hover{color:var(--or);padding-left:.4rem}
.carte-france__liste small{font-size:.7rem;opacity:.55;letter-spacing:.06em;white-space:nowrap}

/* ------------------------------ formulaires ------------------------------ */
.champ{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.25rem}
.champ label{font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--encre-doux)}
.champ__aide{font-size:.78rem;color:var(--encre-tres-doux);line-height:1.45}
.champ input,.champ select,.champ textarea{
  width:100%;padding:.9rem 1rem;background:var(--craie);border:1px solid var(--ligne);
  border-radius:var(--rayon);transition:border-color .3s,box-shadow .3s;font-size:1rem;
}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--or-chaud);box-shadow:0 0 0 3px color-mix(in srgb,var(--or) 22%,transparent)}
.champ textarea{min-height:150px;resize:vertical;line-height:1.6}
.champ--case{flex-direction:row;align-items:flex-start;gap:.7rem}
.champ--case input{width:18px;height:18px;flex:none;margin-top:.25rem;accent-color:var(--olive)}
.champ--case label{text-transform:none;letter-spacing:0;font-weight:400;font-size:.88rem;line-height:1.5;color:var(--encre-doux)}
.duo-champs{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem}
.section--sombre .champ input,.section--sombre .champ select,.section--sombre .champ textarea{background:color-mix(in srgb,var(--craie) 8%,transparent);border-color:var(--ligne-claire);color:var(--ivoire)}
.section--sombre .champ label{color:color-mix(in srgb,var(--ivoire) 76%,transparent)}
.section--sombre .champ__aide{color:color-mix(in srgb,var(--ivoire) 58%,transparent)}

/* bloc de don : paliers indicatifs, aucun calcul fiscal */
.simulateur{background:var(--craie);border:1px solid var(--ligne);padding:clamp(1.6rem,3vw,2.6rem);border-radius:var(--rayon)}
.section--sombre .simulateur,.section--parchemin .simulateur{background:var(--craie)}
.paliers{list-style:none;margin:0;padding:0}
.paliers li{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1.2rem;align-items:baseline;
  padding:.95rem 0;border-bottom:1px solid var(--ligne)}
.paliers li:first-child{padding-top:0}
.paliers li:last-child{border-bottom:0;padding-bottom:0}
.paliers b{font-family:var(--titre);font-size:clamp(1.35rem,2.2vw,1.72rem);font-weight:600;color:var(--olive);
  line-height:1;font-variant-numeric:lining-nums;white-space:nowrap;min-width:3.6em}
.paliers span{font-size:.93rem;color:var(--encre-doux);line-height:1.5}

/* ------------------------------ recherche et filtres ------------------------------ */
.barre-recherche{position:relative;display:flex;align-items:center;gap:.8rem;border-bottom:1px solid var(--ligne);padding-bottom:.9rem}
.barre-recherche input{flex:1;border:0;background:none;font-family:var(--titre);font-size:clamp(1.4rem,3vw,2.2rem);padding:.2rem 0}
.barre-recherche input:focus{outline:none}
.barre-recherche svg{width:22px;height:22px;stroke:var(--or-mat);fill:none;stroke-width:1.5;flex:none}
.resultats{list-style:none;margin:2rem 0 0;padding:0}
.resultat{border-bottom:1px solid var(--ligne)}
.resultat a{display:block;padding:1.3rem 0;text-decoration:none;transition:padding-left .4s var(--ease)}
.resultat a:hover{padding-left:.6rem}
.resultat b{display:block;font-family:var(--titre);font-size:1.4rem;font-weight:600;margin-bottom:.3rem;line-height:1.2}
.resultat a:hover b{color:var(--or-mat)}
.resultat span{font-size:.9rem;color:var(--encre-doux);line-height:1.55;display:block}
.resultat em{font-style:normal;background:color-mix(in srgb,var(--or) 35%,transparent);padding:0 .15em}
.resultat__fil{font-family:var(--capitale);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--or-mat);margin-bottom:.4rem;display:block}
.filtres{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}
.filtre{padding:.5rem 1.05rem;border:1px solid var(--ligne);background:transparent;cursor:pointer;font-size:.78rem;letter-spacing:.05em;border-radius:100px;transition:all .3s var(--ease)}
.filtre:hover{border-color:var(--or-chaud)}
.filtre[aria-pressed='true']{background:var(--foret);color:var(--craie);border-color:var(--foret)}
[data-masque]{display:none !important}

/* glossaire */
.alphabet{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:2rem}
.alphabet button{width:34px;height:34px;border:1px solid var(--ligne);background:none;cursor:pointer;font-family:var(--capitale);font-size:.78rem;font-weight:600;border-radius:var(--rayon);transition:all .3s}
.alphabet button:hover:not(:disabled){border-color:var(--or-chaud);color:var(--or-mat)}
.alphabet button[aria-pressed='true']{background:var(--foret);color:var(--craie);border-color:var(--foret)}
.alphabet button:disabled{opacity:.3;cursor:default}
.termes{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(2rem,5vw,4rem)}
.terme{break-inside:avoid;padding:1.1rem 0;border-bottom:1px solid var(--ligne)}
.terme dt{font-family:var(--titre);font-size:1.25rem;font-weight:600;margin-bottom:.3rem;color:var(--olive-fonce)}
.terme dd{margin:0;font-size:.93rem;color:var(--encre-doux);line-height:1.6}
.terme dd a{color:var(--or-mat);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--or-chaud) 40%,transparent)}

/* ------------------------------ sommaire collant ------------------------------ */
.avec-sommaire{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.sommaire{position:sticky;top:calc(var(--entete-h) + 2rem);font-size:.86rem}
.sommaire__titre{font-family:var(--capitale);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--or-mat);margin-bottom:1rem;font-weight:600}
.sommaire ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--ligne)}
.sommaire li{margin:0}
.sommaire a{display:block;padding:.5rem 0 .5rem 1rem;text-decoration:none;color:var(--encre-tres-doux);border-left:1px solid transparent;margin-left:-1px;transition:color .3s,border-color .3s;line-height:1.4}
.sommaire a:hover{color:var(--encre)}
.sommaire a.est-active{color:var(--olive-fonce);border-left-color:var(--or-chaud);font-weight:600}

/* ------------------------------ scrollytelling ------------------------------ */
.epingle{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.epingle__visuel{position:sticky;top:calc(var(--entete-h) + clamp(1.5rem,6vh,3.5rem))}
/* La planche : un cadre fixe, aux proportions constantes, dans lequel les
   dessins se relaient. Sans lui, un tracé au format 200×300 s'étirait à la
   largeur de la colonne et débordait de son conteneur. */
.epingle__cadre{position:relative;width:min(100%,420px);aspect-ratio:4/5;max-height:min(60vh,520px);
  margin-inline:auto;border:1px solid var(--ligne-claire);border-radius:var(--rayon);
  background:linear-gradient(165deg,color-mix(in srgb,var(--foret-clair) 70%,transparent),transparent 70%)}
.epingle__couche{position:absolute;inset:clamp(1.2rem,2.4vw,2rem);margin:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;
  opacity:0;transition:opacity .7s var(--ease),transform 1s var(--ease);transform:scale(1.03)}
.epingle__couche.est-active{opacity:1;transform:scale(1)}
/* Le dessin se cale sur la hauteur disponible, jamais sur la largeur. */
.epingle__couche svg{flex:1;min-height:0;width:auto;height:auto;max-width:100%;max-height:100%}
.epingle__couche figcaption{flex:none;font-family:var(--capitale);font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:color-mix(in srgb,var(--ivoire) 52%,transparent);text-align:center;line-height:1.5}
.epingle__etapes{display:flex;flex-direction:column}
.etape{padding-block:clamp(2rem,9vh,5rem);transition:opacity .6s var(--ease)}
.js .etape{opacity:.32}
.etape.est-active{opacity:1}
.etape:first-child{padding-top:0}
/* Chiffres alignés : le Cormorant compose des chiffres bas de casse par défaut.
   « 01 » se lisait « OI », et le jambage du 5 heurtait le titre en dessous. */
.etape__num{font-family:var(--titre);font-size:clamp(2.4rem,4.2vw,3.6rem);line-height:1;font-weight:600;
  color:color-mix(in srgb,var(--or) 55%,transparent);margin:0 0 .4rem;
  font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.etape h3{font-size:clamp(1.55rem,2.6vw,2.15rem);margin:0 0 .7rem}
.etape__texte{color:color-mix(in srgb,var(--ivoire) 76%,transparent);max-width:46ch;margin:0}
/* ------------------------------ bandeau d'appel ------------------------------ */
.appel{position:relative;overflow:hidden;background:var(--foret);color:var(--ivoire);isolation:isolate}
.appel__fond{position:absolute;inset:0;z-index:0;opacity:.24}
.appel__fond img{width:100%;height:100%;object-fit:cover}
.appel::after{content:'';position:absolute;inset:0;z-index:1;background:radial-gradient(90% 120% at 50% 0%,rgba(26,33,19,.5),rgba(14,17,9,.95))}
.appel__contenu{position:relative;z-index:2;text-align:center;max-width:60ch;margin-inline:auto}
.appel h2{font-size:clamp(2.3rem,5.4vw,4.4rem);margin-bottom:1.2rem;font-weight:500}
.appel p{color:color-mix(in srgb,var(--ivoire) 80%,transparent);font-size:1.1rem;margin-bottom:2.2rem}
.appel .groupe-btn{justify-content:center}

/* ------------------------------ paires de navigation ------------------------------ */
.suite{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ligne);border-block:1px solid var(--ligne)}
.suite a{background:var(--ivoire);padding:clamp(1.6rem,3vw,2.4rem);text-decoration:none;transition:background-color .4s}
.suite a:hover{background:var(--parchemin)}
.suite a:last-child{text-align:right}
.suite small{font-family:var(--capitale);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:var(--or-mat);display:block;margin-bottom:.5rem}
.suite b{font-family:var(--titre);font-size:clamp(1.2rem,2vw,1.6rem);font-weight:600;line-height:1.2;display:block}

/* ------------------------------ pied de page ------------------------------ */
.pied{background:var(--nuit);color:color-mix(in srgb,var(--ivoire) 80%,transparent);padding-top:clamp(3.5rem,7vw,6rem);position:relative;overflow:hidden}
.pied__haut{display:grid;grid-template-columns:1.35fr 2.4fr;gap:clamp(2.5rem,5vw,5rem);padding-bottom:clamp(3rem,5vw,4.5rem);border-bottom:1px solid var(--ligne-claire)}
.pied__marque{display:flex;flex-direction:column;gap:1.2rem;max-width:36ch}
.pied__marque img{width:70px;height:70px}
.pied__nom{font-family:var(--capitale);font-size:1rem;letter-spacing:.16em;text-transform:uppercase;color:var(--craie);font-weight:600}
.pied__colonnes{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.pied__colonne h3{font-family:var(--capitale);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin-bottom:1.1rem;font-weight:600}
.pied__colonne ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.pied__colonne a{text-decoration:none;font-size:.88rem;transition:color .3s,padding-left .35s var(--ease);display:inline-block}
.pied__colonne a:hover{color:var(--or);padding-left:.25rem}
.pied__lettre{padding-block:clamp(2.5rem,4vw,3.5rem);border-bottom:1px solid var(--ligne-claire);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,4vw,4rem);align-items:center}
.pied__lettre h3{font-family:var(--titre);font-size:clamp(1.6rem,2.6vw,2.2rem);color:var(--craie);margin:0 0 .5rem;font-weight:500}
.pied__lettre p{margin:0;font-size:.92rem;color:color-mix(in srgb,var(--ivoire) 66%,transparent)}
.pied__bas{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;padding-block:1.8rem;font-size:.78rem;color:color-mix(in srgb,var(--ivoire) 55%,transparent)}
.pied__bas nav{display:flex;flex-wrap:wrap;gap:1.2rem}
.pied__bas a{text-decoration:none;transition:color .3s}
.pied__bas a:hover{color:var(--or)}
.pied__signature{display:flex;align-items:center;gap:.5rem}
.pied__filigrane{position:absolute;left:50%;bottom:-14%;translate:-50% 0;width:min(120%,1500px);font-family:var(--capitale);font-size:clamp(4rem,15vw,15rem);letter-spacing:.02em;color:color-mix(in srgb,var(--ivoire) 3.5%,transparent);white-space:nowrap;pointer-events:none;line-height:1;text-align:center;font-weight:600}

/* ------------------------------ courriel obfusqué ------------------------------ */
.courriel{cursor:pointer}

/* ------------------------------ curseur ------------------------------ */
.curseur{position:fixed;top:0;left:0;width:28px;height:28px;border:1px solid var(--or);border-radius:50%;pointer-events:none;z-index:9999;translate:-50% -50%;transition:width .35s var(--ease),height .35s var(--ease),background-color .35s,opacity .3s;opacity:0;mix-blend-mode:difference}
.curseur.est-actif{opacity:.85}
.curseur.est-sur-lien{width:52px;height:52px;background:color-mix(in srgb,var(--or) 18%,transparent)}
@media (hover:none),(pointer:coarse){.curseur{display:none}}

/* ------------------------------ pages particulières ------------------------------ */
.fiche-tete{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(2rem,5vw,4rem);align-items:end}
.dessin{width:100%;height:auto;stroke:var(--olive);fill:none;stroke-width:1}
.dessin--or{stroke:var(--or-chaud)}
.dessin--clair{stroke:var(--sauge)}
.dessin path,.dessin circle,.dessin line,.dessin rect,.dessin polyline{vector-effect:non-scaling-stroke}
.js .dessin--trace path,.js .dessin--trace line,.js .dessin--trace circle,.js .dessin--trace polyline{stroke-dasharray:var(--long,1200);stroke-dashoffset:var(--long,1200);transition:stroke-dashoffset 2.4s var(--ease-doux)}
.est-vu .dessin--trace path,.est-vu .dessin--trace line,.est-vu .dessin--trace circle,.est-vu .dessin--trace polyline{stroke-dashoffset:0}

.mosaique{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gouttiere)}
.mosaique>*{grid-column:span 4}
.mosaique>.large{grid-column:span 8}
.mosaique>.pleine{grid-column:span 12}
.mosaique>.moitie{grid-column:span 6}
.decale-bas{margin-top:clamp(2rem,6vw,5rem)}
.decale-haut{margin-bottom:clamp(2rem,6vw,5rem)}

.projet{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:clamp(3rem,6vw,5rem);border-bottom:1px solid var(--ligne-claire)}
.projet:nth-child(even) .projet__texte{order:2}
.projet__url{font-family:var(--capitale);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--or)}
.projet__ecran{position:relative;aspect-ratio:4/3;background:linear-gradient(160deg,var(--foret-clair),var(--nuit));border:1px solid var(--ligne-claire);display:grid;place-items:center;overflow:hidden;border-radius:var(--rayon)}
.projet__ecran svg{width:64%;height:auto}

/* ------------------------------ adaptations ------------------------------ */
@media (max-width:1180px){
  .mega{width:min(720px,94vw)}
  .carte-france{grid-template-columns:1fr}
  .avec-sommaire{grid-template-columns:1fr}
  .sommaire{position:static;border-top:1px solid var(--ligne);padding-top:1.5rem;order:-1}
  .sommaire ol{display:flex;flex-wrap:wrap;border:0}
  .sommaire a{padding:.35rem .9rem;border:1px solid var(--ligne);border-radius:100px;margin:0 .3rem .3rem 0}
  .pied__haut{grid-template-columns:1fr}
  .pied__colonnes{grid-template-columns:repeat(2,1fr);gap:2.5rem}
}
@media (max-width:1360px){
  .nav{gap:clamp(.3rem,1vw,1rem)}
  .nav__lien{font-size:.74rem;letter-spacing:.06em}
  .marque__sous{display:none}
}
@media (max-width:1300px){
  .nav__principal{display:none}
  .burger{display:flex}
  .marque__sous{display:block}
}
@media (max-width:900px){
  .hero-page--duo .hero-page__contenu{grid-template-columns:1fr;gap:2.5rem}
  .hero-page__photo{max-width:520px}
  .hero-page__photo .r-3-4{aspect-ratio:4/3}
}
@media (max-width:1024px){
  :root{--entete-h:66px}
  .g-4{grid-template-columns:repeat(2,1fr)}
  .g-3{grid-template-columns:repeat(2,1fr)}
  .epingle{grid-template-columns:1fr}
  .epingle__visuel{position:relative;top:auto;margin-bottom:2rem}
  .epingle__cadre{width:min(100%,320px);max-height:none}
  .etape{padding-block:2rem}
  .js .etape{opacity:1}
  .duo,.duo--decale,.duo--texte{grid-template-columns:1fr}
  .fiche-tete{grid-template-columns:1fr}
  .mosaique>*{grid-column:span 6}
  .mosaique>.large{grid-column:span 12}
  .projet{grid-template-columns:1fr}
  .projet:nth-child(even) .projet__texte{order:0}
  .hero__sceau{display:none}
}
@media (max-width:760px){
  .g-2,.g-3,.g-4{grid-template-columns:1fr}
  .duo-champs{grid-template-columns:1fr}
  .termes{columns:1}
  .carte-france__liste{grid-template-columns:1fr}
  .suite{grid-template-columns:1fr}
  .suite a:last-child{text-align:left}
  .pied__lettre{grid-template-columns:1fr}
  .pied__colonnes{grid-template-columns:1fr;gap:2rem}
  .mosaique>*,.mosaique>.large,.mosaique>.moitie{grid-column:span 12}
  .entete-section{flex-direction:column;align-items:flex-start}
  .hero__descendre{display:none}
  .paliers li{grid-template-columns:1fr;gap:.15rem}
  .decale-bas{margin-top:0}
}
@media (max-width:640px){
  /* L'emblème porte le nom de l'association gravé en couronne : sur un écran
     étroit, il suffit, et la barre cesse de déborder. */
  .marque__mots{display:none}
  .marque__sceau{width:40px;height:40px}
  .entete[data-fixe='oui'] .marque__sceau{width:34px;height:34px}
  .entete__actions .btn--fantome{display:none}
  .entete__actions .btn--or{padding:.6rem .9rem;font-size:.66rem;letter-spacing:.06em}
  .entete__barre{gap:.75rem}
  .hero__meta{gap:1.2rem 1.6rem}
  .hero__meta div{max-width:none;flex:1 1 40%}
}

/* ------------------------------ mouvement réduit ------------------------------ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  [data-anim]{opacity:1;transform:none}
  .mot>span{transform:none}
  .hero__fond img{animation:none;transform:scale(1.02)}
  .defile__piste{animation:none}
  .curseur{display:none}
  .dessin--trace path,.dessin--trace line,.dessin--trace circle,.dessin--trace polyline{stroke-dashoffset:0}
  .epingle__couche{opacity:1;position:relative;transform:none}
  .epingle__couche:not(.est-active){display:none}
}

/* ------------------------------ transitions de page ------------------------------ */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:sort .3s var(--ease-doux) both}
  ::view-transition-new(root){animation:entre .45s var(--ease-doux) both}
  @keyframes sort{to{opacity:0}}
  @keyframes entre{from{opacity:0;transform:translateY(8px)}}
}

/* ------------------------------ impression ------------------------------ */
@media print{
  .entete,.voile,.pied__lettre,.hero__descendre,.curseur,.progression,.appel,body::after{display:none !important}
  body{background:#fff;color:#000;font-size:11pt}
  .hero,.hero-page{min-height:0;background:#fff;color:#000;padding-top:1cm}
  .hero__fond,.hero__voile,.hero-page__fond{display:none}
  .hero__titre,.hero-page h1{color:#000}
  a{text-decoration:underline}
  .section{padding-block:1cm;background:#fff !important;color:#000 !important}
  .page{width:100%}
}
