@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/dm-serif-display-400-normal-latin-ext.woff2) format('woff2');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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/dm-serif-display-400-normal-latin.woff2) format('woff2');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:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400-normal-latin-ext.woff2) format('woff2');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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400-normal-latin.woff2) format('woff2');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:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-500-normal-latin-ext.woff2) format('woff2');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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-500-normal-latin.woff2) format('woff2');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:'IBM Plex Sans';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-400-italic-latin-ext.woff2) format('woff2');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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Sans';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-400-italic-latin.woff2) format('woff2');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:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-400-normal-latin-ext.woff2) format('woff2');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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-400-normal-latin.woff2) format('woff2');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:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-500-normal-latin-ext.woff2) format('woff2');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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-500-normal-latin.woff2) format('woff2');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:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-600-normal-latin-ext.woff2) format('woff2');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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-600-normal-latin.woff2) format('woff2');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;}
/* ---------- Étude de cas : palette du site (second-palette Kadence) ---------- */
.dr-cas,.cas-lightbox{
  --cas-bg:#ffffff; --cas-bg2:#e8eae3; --cas-border:#caccc6;
  --cas-text:#373833; --cas-text2:rgba(55,56,51,.88); --cas-muted:rgba(55,56,51,.72);
  --cas-brass:#fa2742; --cas-brass2:#373833; --cas-dark:#373833; --cas-light:#e8eae3;
  --cas-serif:'DM Serif Display',Georgia,serif;
  --cas-sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --cas-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  background:var(--cas-bg); color:var(--cas-text); font-family:var(--cas-sans);
  font-size:1.0625rem; line-height:1.65; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
.dr-cas *,.dr-cas *::before,.dr-cas *::after{box-sizing:border-box}
.dr-cas p{margin:0 0 1.1em; color:var(--cas-text2)}
.dr-cas p.cas-lead{color:var(--cas-text); font-size:1.2rem; line-height:1.55}
.dr-cas a{color:var(--cas-brass); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px}
.dr-cas a:hover,.dr-cas a:focus-visible{color:var(--cas-brass2)}
.dr-cas :focus-visible{outline:2px solid var(--cas-brass); outline-offset:3px}
.dr-cas img{display:block; max-width:100%; height:auto}
.dr-cas h1,.dr-cas h2,.dr-cas h3{font-family:var(--cas-serif); font-weight:400; color:var(--cas-text); margin:0 0 .5em; line-height:1.12; letter-spacing:-.005em}
.dr-cas h1{font-size:clamp(2.25rem,6vw,4.25rem); max-width:16ch}
.dr-cas h2{font-size:clamp(1.75rem,3.6vw,2.6rem); max-width:22ch}
.dr-cas h3{font-size:1.3rem; margin-bottom:.35em}
.dr-cas ul,.dr-cas ol{margin:0 0 1.2em; padding-left:1.25em; color:var(--cas-text2)}
.dr-cas li{margin:.35em 0}
.dr-cas li strong,.dr-cas p strong{color:var(--cas-text); font-weight:600}
.cas-wrap{width:100%; max-width:1120px; margin:0 auto; padding:0 16px}
.cas-narrow{max-width:760px}
.cas-section{padding:clamp(3rem,8vw,6rem) 0}
.cas-section.cas-alt{background:var(--cas-bg2); border-top:1px solid var(--cas-border); border-bottom:1px solid var(--cas-border)}
.dr-cas p.cas-label,.cas-label{font-family:var(--cas-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cas-brass); margin:0 0 1rem}
.cas-label::before{content:''; display:inline-block; width:1.5rem; height:1px; background:var(--cas-brass); vertical-align:middle; margin-right:.6rem}
.cas-rule{height:1px; background:var(--cas-border); margin:0}

/* Hero : bloc sombre (palette5) sur une page claire */
.cas-hero{--cas-bg:#373833; --cas-bg2:#2f302c; --cas-border:rgba(202,204,198,.3); --cas-text:#ffffff; --cas-text2:#e8eae3; --cas-muted:#caccc6; background:var(--cas-bg); color:var(--cas-text); position:relative; padding:clamp(3rem,8vw,6.5rem) 0 0; isolation:isolate}
.cas-hero-bg{position:absolute; inset:0; z-index:-1; overflow:hidden}
.cas-hero-bg img{width:100%; height:100%; object-fit:cover; opacity:.45}
.cas-hero-bg::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(55,56,51,.55) 0%,rgba(55,56,51,.85) 60%,var(--cas-bg) 100%)}
.cas-hero .cas-chapo{font-size:clamp(1.1rem,2vw,1.35rem); color:var(--cas-text); max-width:46ch; line-height:1.5; margin:1.25rem 0 0}
.cas-hero-visual{margin:clamp(2rem,5vw,3.5rem) auto 0; max-width:1120px; padding:0 16px}
.cas-hero-visual img{width:100%; border:1px solid var(--cas-border); border-radius:4px}
.cas-fiche{display:grid; grid-template-columns:1fr; gap:0; margin:0; border:1px solid var(--cas-border); background:var(--cas-bg2); border-radius:4px; overflow:hidden}
.cas-fiche>div{padding:1.1rem 1.25rem; border-bottom:1px solid var(--cas-border)}
.cas-fiche>div:last-child{border-bottom:0}
.cas-fiche dt{font-family:var(--cas-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cas-brass); margin:0 0 .3rem}
.cas-fiche dd{margin:0; color:var(--cas-text); font-size:.98rem; line-height:1.5}
.cas-fiche-wrap{padding:clamp(2rem,4vw,3rem) 16px clamp(2rem,4vw,3rem)}

/* Vidéo */
.cas-video{position:relative; aspect-ratio:16/9; background:#000; border:1px solid var(--cas-border); border-radius:4px; overflow:hidden}
.cas-video video{width:100%; height:100%; display:block; object-fit:cover}
.cas-video-play{position:absolute; inset:0; width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:rgba(55,56,51,.25); border:0; cursor:pointer; padding:0; transition:background .3s}
.cas-video-play:hover{background:rgba(55,56,51,.1)}
.cas-video-play span{display:flex; align-items:center; justify-content:center; width:clamp(64px,10vw,96px); height:clamp(64px,10vw,96px); border-radius:50%; background:var(--cas-brass); color:#e8eae3; box-shadow:0 10px 40px rgba(55,56,51,.35)}
.cas-video-play svg{width:38%; height:38%; margin-left:6%}
.cas-video.is-playing .cas-video-play{display:none}
.dr-cas p.cas-caption,.cas-caption{font-family:var(--cas-mono); font-size:.78rem; color:var(--cas-muted); margin:.75rem 0 0; letter-spacing:.02em}

/* Grilles */
.cas-two{display:grid; grid-template-columns:1fr; gap:2.5rem}
.cas-two-media{display:grid; grid-template-columns:1fr; gap:2rem; align-items:center}
.cas-two-media img{border:1px solid var(--cas-border); border-radius:4px; width:100%}
.cas-portrait{max-width:380px; margin:0 auto}
.cas-cards{display:grid; grid-template-columns:1fr; gap:1px; background:var(--cas-border); border:1px solid var(--cas-border); border-radius:4px; overflow:hidden; margin:1.5rem 0 0}
.cas-card{background:var(--cas-bg); padding:1.5rem 1.4rem}
.cas-card .cas-num{font-family:var(--cas-serif); font-size:2rem; color:var(--cas-brass); line-height:1; margin-bottom:.75rem}
.cas-card h3{font-size:1.2rem}
.cas-card p{margin:0; font-size:.98rem}
.cas-tools{display:flex; flex-wrap:wrap; gap:.5rem; margin:1.5rem 0 0; padding:0; list-style:none}
.cas-tools li{font-family:var(--cas-mono); font-size:.76rem; letter-spacing:.06em; color:var(--cas-text2); border:1px solid var(--cas-border); padding:.4rem .7rem; border-radius:2px; margin:0}

/* Étapes */
.cas-steps{counter-reset:etape; list-style:none; padding:0; margin:1.25rem 0 0}
.cas-steps li{counter-increment:etape; position:relative; padding-left:3.25rem; margin:0 0 1.1rem; color:var(--cas-text)}
.cas-steps li::before{content:counter(etape,decimal-leading-zero); position:absolute; left:0; top:.1rem; font-family:var(--cas-serif); color:var(--cas-brass); font-size:1.5rem; line-height:1}
.cas-scan-img{position:relative}
.cas-scan-img img{width:100%; border:1px solid var(--cas-border); border-radius:4px}
.cas-scan-img figcaption{font-family:var(--cas-mono); font-size:.74rem; color:var(--cas-muted); margin-top:.6rem}

/* Versions */
.cas-versions{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--cas-border); border:1px solid var(--cas-border); border-radius:4px; overflow:hidden; margin:1.5rem 0; list-style:none; padding:0}
.cas-versions li{background:var(--cas-bg2); padding:1.1rem 1.2rem; margin:0}
.cas-versions b{display:block; font-family:var(--cas-serif); font-weight:400; font-size:1.25rem; color:var(--cas-text); margin-bottom:.2rem}
.cas-versions span{font-family:var(--cas-mono); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cas-brass)}
.cas-quote{border-left:2px solid var(--cas-brass); padding:.25rem 0 .25rem 1.25rem; margin:2rem 0 0; font-family:var(--cas-serif); font-size:1.5rem; line-height:1.35; color:var(--cas-text)}
.cas-quote cite{display:block; font-family:var(--cas-mono); font-style:normal; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cas-muted); margin-top:.75rem}

/* Preuves */
.cas-proofs{list-style:none; padding:0; margin:1.5rem 0 0; display:grid; grid-template-columns:1fr; gap:1.25rem}
.cas-proofs li{margin:0; padding:1.25rem 0 0; border-top:1px solid var(--cas-border); color:var(--cas-text)}
.cas-proofs li b{display:block; font-family:var(--cas-serif); font-weight:400; font-size:1.3rem; margin-bottom:.3rem}
.cas-proofs li span{color:var(--cas-text2); font-size:.98rem}

/* Galerie */
.cas-gallery{display:grid; grid-template-columns:1fr; gap:1rem; list-style:none; padding:0; margin:1.5rem 0 0}
.cas-gallery li{margin:0}
.cas-gallery a{display:block; border:1px solid var(--cas-border); border-radius:4px; overflow:hidden; background:var(--cas-bg2)}
.cas-gallery img{width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .5s ease, opacity .3s}
.cas-gallery a:hover img{transform:scale(1.02)}
.cas-gallery figcaption{font-family:var(--cas-mono); font-size:.74rem; color:var(--cas-muted); margin-top:.5rem}
.cas-lightbox{--cas-text:#ffffff; --cas-text2:#e8eae3; --cas-border:rgba(202,204,198,.35); position:fixed; inset:0; z-index:99999; background:rgba(55,56,51,.97); font-family:var(--cas-sans); display:none; align-items:center; justify-content:center; padding:16px}
.cas-lightbox.is-open{display:flex}
.cas-lightbox img{max-width:min(96vw,1400px); max-height:82vh; width:auto; height:auto; border:1px solid var(--cas-border)}
.cas-lightbox figcaption{position:absolute; left:16px; right:16px; bottom:18px; text-align:center; font-family:var(--cas-mono); font-size:.78rem; color:var(--cas-text2)}
.cas-lightbox button{position:absolute; top:12px; width:48px; height:48px; border-radius:50%; border:1px solid var(--cas-border); background:#e8eae3; color:#373833; cursor:pointer; font-size:1.9rem; line-height:1; padding:0 0 .2em; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(0,0,0,.5)}
.cas-lightbox .cas-lb-close{right:12px}
.cas-lightbox .cas-lb-prev,.cas-lightbox .cas-lb-next{top:50%; transform:translateY(-50%)}
.cas-lightbox .cas-lb-prev{left:12px}
.cas-lightbox .cas-lb-next{right:12px}
.cas-lightbox button:hover{border-color:var(--cas-brass); background:var(--cas-brass); color:#e8eae3}

/* Boutons */
.cas-btn{display:inline-flex; align-items:center; gap:.5rem; font-family:var(--cas-mono); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; padding:.9rem 1.4rem; border-radius:2px; border:1px solid var(--cas-brass); color:var(--cas-brass); background:transparent; cursor:pointer; transition:background .2s,color .2s}
.cas-btn:hover,.cas-btn:focus-visible{background:var(--cas-brass); color:#e8eae3}
.cas-btn.cas-btn-solid{background:var(--cas-brass); color:#e8eae3}
.cas-btn.cas-btn-solid:hover,.cas-btn.cas-btn-solid:focus-visible{background:var(--cas-brass2); border-color:var(--cas-brass2); color:#e8eae3}
.cas-actions{display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem}

/* Fin */
.cas-next{text-align:left}
.cas-next .cas-next-title{font-family:var(--cas-serif); font-size:clamp(1.6rem,3vw,2.2rem); color:var(--cas-text); margin:.25rem 0 .5rem}
.cas-next p{max-width:60ch}

/* Apparition discrète */
.cas-reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease}
.cas-reveal.is-visible{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){
  .cas-reveal{opacity:1; transform:none; transition:none}
  .cas-gallery img{transition:none}
}

/* Le thème : neutraliser ce qui déborderait dans l'habillage */
.dr-cas-page #inner-wrap{padding:0}
.dr-cas-page .dr-cas-article{margin:0}

@media (min-width:700px){
  .cas-fiche{grid-template-columns:repeat(3,1fr)}
  .cas-fiche>div{border-right:1px solid var(--cas-border)}
  .cas-fiche>div:nth-child(3n){border-right:0}
  .cas-fiche>div:nth-last-child(-n+3){border-bottom:0}
  .cas-two{grid-template-columns:1fr 1fr; gap:3.5rem}
  .cas-two-media{grid-template-columns:5fr 6fr; gap:3rem}
  .cas-two-media.cas-media-right{grid-template-columns:6fr 5fr}
  .cas-cards{grid-template-columns:repeat(3,1fr)}
  .cas-gallery{grid-template-columns:repeat(2,1fr)}
  .cas-proofs{grid-template-columns:1fr 1fr; gap:2rem}
  .cas-versions{grid-template-columns:repeat(4,1fr)}
}
@media (min-width:1100px){
  .cas-gallery{grid-template-columns:repeat(4,1fr)}
}

/* Animations discrètes (v1.2) : entrée du héros, parallaxe, figures collantes, apparitions en cascade */
@keyframes casUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.cas-hero .cas-label,.cas-hero h1,.cas-hero .cas-chapo,.cas-hero-visual{animation:casUp .8s ease both}
.cas-hero h1{animation-delay:.1s}
.cas-hero .cas-chapo{animation-delay:.2s}
.cas-hero-visual{animation-delay:.35s}
.cas-hero-bg img{will-change:transform; transform:translateY(0)}
.cas-cards.cas-reveal>*,.cas-gallery.cas-reveal>li,.cas-proofs.cas-reveal>li,.cas-versions.cas-reveal>li,.cas-tools.cas-reveal>li,.cas-fiche>div{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease}
.cas-cards.cas-reveal.is-visible>*,.cas-gallery.cas-reveal.is-visible>li,.cas-proofs.cas-reveal.is-visible>li,.cas-versions.cas-reveal.is-visible>li,.cas-tools.cas-reveal.is-visible>li,.cas-fiche.is-visible>div{opacity:1; transform:none}
.cas-reveal.is-visible>:nth-child(2),.cas-fiche.is-visible>:nth-child(2){transition-delay:.08s}
.cas-reveal.is-visible>:nth-child(3),.cas-fiche.is-visible>:nth-child(3){transition-delay:.16s}
.cas-reveal.is-visible>:nth-child(4),.cas-fiche.is-visible>:nth-child(4){transition-delay:.24s}
.cas-reveal.is-visible>:nth-child(5),.cas-fiche.is-visible>:nth-child(5){transition-delay:.32s}
.cas-reveal.is-visible>:nth-child(6),.cas-fiche.is-visible>:nth-child(6){transition-delay:.40s}
.cas-reveal.is-visible>:nth-child(7){transition-delay:.48s}
.cas-reveal.is-visible>:nth-child(8){transition-delay:.56s}
.cas-reveal.is-visible>:nth-child(9){transition-delay:.64s}
.cas-steps li{opacity:0; transform:translateX(-10px); transition:opacity .5s ease, transform .5s ease}
.is-visible .cas-steps li{opacity:1; transform:none}
.is-visible .cas-steps li:nth-child(2){transition-delay:.1s}
.is-visible .cas-steps li:nth-child(3){transition-delay:.2s}
.is-visible .cas-steps li:nth-child(4){transition-delay:.3s}
.cas-card,.cas-versions li{transition:transform .3s ease, box-shadow .3s ease}
.cas-card:hover{transform:translateY(-3px); box-shadow:0 12px 30px rgba(55,56,51,.08)}
.cas-btn{transition:background .2s,color .2s,transform .2s}
.cas-btn:hover{transform:translateY(-1px)}
@media (min-width:900px){
  .cas-two-media{align-items:start}
  .cas-two-media>figure{position:sticky; top:110px}
}
@media (prefers-reduced-motion: reduce){
  .cas-hero .cas-label,.cas-hero h1,.cas-hero .cas-chapo,.cas-hero-visual{animation:none}
  .cas-cards.cas-reveal>*,.cas-gallery.cas-reveal>li,.cas-proofs.cas-reveal>li,.cas-versions.cas-reveal>li,.cas-tools.cas-reveal>li,.cas-fiche>div,.cas-steps li{opacity:1; transform:none; transition:none}
  .cas-card:hover,.cas-btn:hover{transform:none}
  .cas-two-media>figure{position:static}
}

/* ---------- Page Réalisations (portfolio) v1.3 ---------- */
.pf-hero{background:var(--cas-bg2); padding:clamp(3rem,8vw,6rem) 0 clamp(2rem,5vw,3.5rem); border-bottom:1px solid var(--cas-border)}
.pf-hero h1{font-size:clamp(2.5rem,7vw,5rem); max-width:12ch; margin-bottom:.4em}
.pf-hero .cas-chapo{font-size:clamp(1.1rem,2vw,1.35rem); max-width:52ch; color:var(--cas-text); line-height:1.5; margin:0}
.pf-hero .cas-label,.pf-hero h1,.pf-hero .cas-chapo{animation:casUp .8s ease both}
.pf-hero h1{animation-delay:.1s}.pf-hero .cas-chapo{animation-delay:.2s}
.pf-filters{display:flex; flex-wrap:wrap; gap:.5rem; margin:2rem 0 0; padding:0; list-style:none; animation:casUp .8s .3s ease both}
.pf-filters button{font-family:var(--cas-mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; padding:.55rem .9rem; border-radius:2px; border:1px solid var(--cas-border); background:transparent; color:var(--cas-text); cursor:pointer; transition:background .2s,color .2s,border-color .2s}
.pf-filters button:hover,.pf-filters button:focus-visible{border-color:var(--cas-brass); color:var(--cas-brass)}
.pf-filters button[aria-pressed="true"]{background:var(--cas-brass); border-color:var(--cas-brass); color:#e8eae3}
.pf-section{padding:clamp(2.5rem,6vw,4.5rem) 0}
.pf-section.cas-alt{background:var(--cas-bg2); border-top:1px solid var(--cas-border); border-bottom:1px solid var(--cas-border)}
.pf-featured{display:grid; grid-template-columns:1fr; gap:0; border:1px solid var(--cas-border); border-radius:6px; overflow:hidden; background:var(--cas-bg); text-decoration:none; color:inherit; transition:transform .35s ease, box-shadow .35s ease}
.pf-featured:hover{transform:translateY(-4px); box-shadow:0 24px 60px rgba(55,56,51,.12)}
.pf-featured .pf-media{aspect-ratio:16/10; overflow:hidden; background:var(--cas-bg2)}
.pf-featured img{width:100%; height:100%; object-fit:cover; transition:transform .8s ease}
.pf-featured:hover img{transform:scale(1.03)}
.pf-featured .pf-body{padding:clamp(1.5rem,3vw,2.5rem)}
.pf-featured h2{font-size:clamp(1.7rem,3.2vw,2.5rem); margin:.3em 0 .5em; max-width:18ch}
.pf-featured p{margin:0 0 1.25rem; max-width:52ch}
.pf-tag{font-family:var(--cas-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cas-brass); margin:0}
.pf-meta{font-family:var(--cas-mono); font-size:.74rem; letter-spacing:.04em; color:var(--cas-muted); margin:.75rem 0 0}
.pf-more{display:inline-flex; align-items:center; gap:.5rem; font-family:var(--cas-mono); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cas-brass); margin-top:.5rem}
.pf-more::after{content:'\2192'; transition:transform .25s}
.pf-featured:hover .pf-more::after,.pf-card:hover .pf-more::after{transform:translateX(5px)}
.pf-grid{display:grid; grid-template-columns:1fr; gap:1.5rem; list-style:none; padding:0; margin:0}
.pf-grid li{margin:0}
.pf-grid li.is-hidden{display:none}
.pf-card{display:flex; flex-direction:column; height:100%; border:1px solid var(--cas-border); border-radius:6px; overflow:hidden; background:var(--cas-bg); text-decoration:none; color:inherit; transition:transform .35s ease, box-shadow .35s ease}
.pf-card:hover,.pf-card:focus-visible{transform:translateY(-5px); box-shadow:0 20px 50px rgba(55,56,51,.12)}
.pf-card .pf-media{aspect-ratio:16/10; overflow:hidden; background:var(--cas-bg2)}
.pf-card img{width:100%; height:100%; object-fit:cover; transition:transform .8s ease}
.pf-card:hover img{transform:scale(1.04)}
.pf-card .pf-body{padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; flex:1}
.pf-card h3{font-size:1.45rem; margin:.35em 0 .45em; line-height:1.15}
.pf-card p{margin:0; font-size:.98rem; flex:1}
.pf-card .pf-meta{margin-top:1rem}
.pf-grid.cas-reveal>li{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease}
.pf-grid.cas-reveal.is-visible>li{opacity:1; transform:none}
.pf-families{display:grid; grid-template-columns:1fr; gap:1px; background:var(--cas-border); border:1px solid var(--cas-border); border-radius:6px; overflow:hidden; margin:1.5rem 0 0; list-style:none; padding:0}
.pf-families li{background:var(--cas-bg); padding:1.5rem 1.4rem; margin:0}
.pf-families .cas-num{font-family:var(--cas-serif); font-size:2rem; color:var(--cas-brass); line-height:1; margin-bottom:.6rem}
.pf-families h3{font-size:1.2rem; margin-bottom:.35em}
.pf-families p{margin:0; font-size:.96rem}
.pf-families.cas-reveal>li{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease}
.pf-families.cas-reveal.is-visible>li{opacity:1; transform:none}
.pf-cta{text-align:center}
.pf-cta h2{margin:0 auto .5em; max-width:22ch}
.pf-cta p{max-width:48ch; margin:0 auto 1.5rem}
.pf-cta .cas-actions{justify-content:center}
@media (min-width:700px){
  .pf-grid{grid-template-columns:repeat(2,1fr)}
  .pf-families{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1000px){
  .pf-featured{grid-template-columns:7fr 5fr}
  .pf-featured .pf-media{aspect-ratio:auto; min-height:100%}
  .pf-featured .pf-body{display:flex; flex-direction:column; justify-content:center}
  .pf-grid{grid-template-columns:repeat(3,1fr)}
  .pf-families{grid-template-columns:repeat(4,1fr)}
}
@media (prefers-reduced-motion: reduce){
  .pf-hero .cas-label,.pf-hero h1,.pf-hero .cas-chapo,.pf-filters{animation:none}
  .pf-featured,.pf-card,.pf-featured img,.pf-card img{transition:none}
  .pf-featured:hover,.pf-card:hover{transform:none}
  .pf-grid.cas-reveal>li,.pf-families.cas-reveal>li{opacity:1; transform:none; transition:none}
}

/* v1.3.1 : les cartes sont des liens, sans soulignement ni changement de couleur */
.dr-cas a.pf-card,.dr-cas a.pf-featured,.dr-cas a.pf-card *,.dr-cas a.pf-featured *{text-decoration:none}
.dr-cas a.pf-card:hover,.dr-cas a.pf-featured:hover,.dr-cas a.pf-card:focus-visible,.dr-cas a.pf-featured:focus-visible{color:inherit}
.dr-cas a.pf-card:hover h3,.dr-cas a.pf-featured:hover h2{color:var(--cas-brass)}
.pf-card h3,.pf-featured h2{transition:color .25s}
@media (min-width:1000px){ .pf-grid{grid-template-columns:repeat(2,1fr); gap:2rem} .pf-card h3{font-size:1.7rem} }

/* v1.3.2 : témoignages en grille */
.cas-quotes{display:grid; grid-template-columns:1fr; gap:1.75rem; margin:1.5rem 0 0}
.cas-quotes .cas-quote{margin:0; font-size:1.2rem; line-height:1.4}
.cas-quotes.cas-reveal>.cas-quote{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease}
.cas-quotes.cas-reveal.is-visible>.cas-quote{opacity:1; transform:none}
@media (min-width:700px){ .cas-quotes{grid-template-columns:1fr 1fr; gap:2.5rem} }
@media (prefers-reduced-motion: reduce){ .cas-quotes.cas-reveal>.cas-quote{opacity:1; transform:none; transition:none} }

/* ---------- Accueil v1.4 ---------- */
.hm-hero{background:var(--cas-bg2); padding:clamp(3rem,7vw,5.5rem) 0; border-bottom:1px solid var(--cas-border)}
.hm-hero .cas-wrap{display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:center}
.hm-hero h1{font-size:clamp(2.2rem,5.2vw,3.9rem); max-width:16ch; margin:0 0 .5em; animation:casUp .8s .1s ease both}
.hm-hero .cas-label{animation:casUp .8s ease both}
.hm-hero .hm-lead{font-size:clamp(1.05rem,1.8vw,1.25rem); color:var(--cas-text); max-width:50ch; margin:0 0 1.5rem; animation:casUp .8s .2s ease both}
.hm-hero .cas-actions{margin-top:0; animation:casUp .8s .3s ease both}
.hm-photo{justify-self:center; width:min(340px,80vw); aspect-ratio:1; border-radius:50%; overflow:hidden; background:var(--cas-brass); box-shadow:0 24px 60px rgba(55,56,51,.18); animation:casUp .9s .15s ease both}
.hm-photo img{width:100%; height:100%; object-fit:cover; display:block}
.hm-principles{counter-reset:p}
.hm-proof{display:grid; grid-template-columns:1fr; gap:1.5rem; margin:2rem 0 0}
.hm-proof>div{border:1px solid var(--cas-border); border-radius:6px; background:var(--cas-bg); padding:1.5rem 1.4rem}
.hm-proof .cas-quote{margin:.25rem 0 0; font-size:1.15rem}
.hm-proof p{margin:0}
.hm-proof .pf-tag{margin-bottom:.6rem}
.hm-posts{display:grid; grid-template-columns:1fr; gap:1.5rem; list-style:none; padding:0; margin:1.5rem 0 0}
.hm-posts li{margin:0}
.hm-posts a{display:flex; flex-direction:column; height:100%; border:1px solid var(--cas-border); border-radius:6px; overflow:hidden; background:var(--cas-bg); text-decoration:none; color:inherit; transition:transform .35s ease, box-shadow .35s ease}
.hm-posts a *{text-decoration:none}
.hm-posts a:hover{transform:translateY(-5px); box-shadow:0 20px 50px rgba(55,56,51,.12); color:inherit}
.hm-posts a:hover h3{color:var(--cas-brass)}
.hm-post-media{aspect-ratio:16/9; overflow:hidden; background:var(--cas-bg2)}
.hm-post-media img{width:100%; height:100%; object-fit:cover; transition:transform .8s ease}
.hm-posts a:hover img{transform:scale(1.04)}
.hm-post-body{padding:1.2rem 1.3rem 1.4rem}
.hm-post-body h3{font-size:1.25rem; margin:.3em 0 .4em; line-height:1.2; transition:color .25s}
.hm-post-body p{margin:0; font-size:.95rem}
.hm-posts.cas-reveal>li{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease}
.hm-posts.cas-reveal.is-visible>li{opacity:1; transform:none}
.hm-history{list-style:none; padding:0; margin:1.5rem 0 0; border-top:1px solid var(--cas-border)}
.hm-history li{margin:0; border-bottom:1px solid var(--cas-border)}
.hm-history summary{cursor:pointer; list-style:none; display:grid; grid-template-columns:1fr auto; align-items:center; gap:1rem; padding:1rem 0; font-family:var(--cas-serif); font-size:1.15rem; color:var(--cas-text)}
.hm-history summary::-webkit-details-marker{display:none}
.hm-history summary::after{content:'+'; font-family:var(--cas-mono); color:var(--cas-brass); font-size:1.3rem; transition:transform .25s}
.hm-history details[open] summary::after{transform:rotate(45deg)}
.hm-history summary small{display:block; font-family:var(--cas-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--cas-muted); margin-bottom:.25rem}
.hm-history ul{margin:0 0 1.1rem; padding-left:1.2em; columns:1}
.hm-history li li{border:0; margin:.25em 0; font-size:.96rem}
.hm-formation{display:grid; grid-template-columns:1fr; gap:.4rem 2rem; list-style:none; padding:0; margin:1.5rem 0 0}
.hm-formation li{margin:0; display:grid; grid-template-columns:3.2rem 1fr; gap:.75rem; padding:.55rem 0; border-bottom:1px solid var(--cas-border); font-size:.96rem}
.hm-formation b{font-family:var(--cas-mono); font-weight:500; font-size:.78rem; letter-spacing:.06em; color:var(--cas-brass); padding-top:.2em}
.hm-formation span{color:var(--cas-muted); font-size:.88rem}
.hm-band{background:var(--cas-brass); color:#e8eae3; padding:clamp(3rem,7vw,5rem) 0; text-align:center}
.hm-band blockquote{margin:0 auto; max-width:30ch; font-family:var(--cas-serif); font-size:clamp(1.6rem,3.4vw,2.6rem); line-height:1.25; color:#fff}
.hm-band cite{display:block; font-family:var(--cas-mono); font-style:normal; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:#e8eae3; margin-top:1.25rem}
.hm-contact{display:grid; grid-template-columns:1fr; gap:1.25rem; margin:1.5rem 0 0}
.hm-contact div{border-top:2px solid var(--cas-brass); padding-top:.9rem}
.hm-contact .pf-tag{margin-bottom:.4rem}
.hm-contact p{margin:0; color:var(--cas-text)}
.hm-contact a{text-decoration:none}
.hm-contact a:hover{text-decoration:underline}
.hm-langues{font-family:var(--cas-mono); font-size:.8rem; letter-spacing:.06em; color:var(--cas-text); margin:1rem 0 0}
@media (min-width:700px){
  .hm-posts{grid-template-columns:repeat(3,1fr)}
  .hm-formation{grid-template-columns:1fr 1fr}
  .hm-contact{grid-template-columns:repeat(3,1fr)}
  .hm-proof{grid-template-columns:1fr 1fr}
  .hm-history ul{columns:2; column-gap:2.5rem}
}
@media (min-width:900px){
  .hm-hero .cas-wrap{grid-template-columns:7fr 5fr; gap:3rem}
  .hm-photo{width:min(380px,100%); justify-self:end}
}
@media (prefers-reduced-motion: reduce){
  .hm-hero h1,.hm-hero .cas-label,.hm-hero .hm-lead,.hm-hero .cas-actions,.hm-photo{animation:none}
  .hm-posts a,.hm-post-media img{transition:none} .hm-posts a:hover{transform:none}
  .hm-posts.cas-reveal>li{opacity:1; transform:none; transition:none}
}

/* v1.4.1 */
.hm-band blockquote{border:0; padding:0; background:transparent}
@media (min-width:1000px){ .pf-grid.pf-grid-3{grid-template-columns:repeat(3,1fr); gap:1.5rem} .pf-grid.pf-grid-3 .pf-card h3{font-size:1.45rem} }

/* v1.4.2 : frise de formation */
.hm-timeline{list-style:none; padding:0; margin:1.5rem 0 0; position:relative}
.hm-timeline::before{content:''; position:absolute; left:14px; top:0; bottom:0; width:1px; background:var(--cas-border)}
.hm-timeline li{margin:0 0 .9rem; position:relative; padding-left:2.6rem}
.hm-timeline li::before{content:''; position:absolute; left:9px; top:1.1rem; width:11px; height:11px; border-radius:50%; background:var(--cas-bg); border:2px solid var(--cas-brass); box-sizing:border-box}
.hm-timeline .hm-tl-card{background:var(--cas-bg); border:1px solid var(--cas-border); border-radius:6px; padding:.9rem 1.1rem; transition:transform .3s ease, box-shadow .3s ease}
.hm-timeline .hm-tl-card:hover{transform:translateY(-2px); box-shadow:0 10px 26px rgba(55,56,51,.08)}
.hm-timeline b{display:block; font-family:var(--cas-serif); font-weight:400; font-size:1.05rem; color:var(--cas-text); line-height:1.25}
.hm-timeline span{font-size:.86rem; color:var(--cas-muted)}
.hm-timeline .hm-tl-year{font-family:var(--cas-mono); font-size:.74rem; letter-spacing:.12em; color:var(--cas-brass); display:block; margin-bottom:.2rem}
.hm-timeline.cas-reveal>li{opacity:0; transform:translateY(12px); transition:opacity .5s ease, transform .5s ease}
.hm-timeline.cas-reveal.is-visible>li{opacity:1; transform:none}
@media (min-width:900px){
  .hm-timeline::before{left:50%}
  .hm-timeline li{width:50%; padding:0 2.4rem 0 0; margin-bottom:0}
  .hm-timeline li:nth-child(even){margin-left:50%; padding:0 0 0 2.4rem}
  .hm-timeline li::before{left:auto; right:-6px; top:1.3rem}
  .hm-timeline li:nth-child(even)::before{right:auto; left:-5px}
  .hm-timeline li+li{margin-top:-1.4rem}
  .hm-timeline li:nth-child(even){margin-top:-.2rem}
  .hm-timeline .hm-tl-year{position:absolute; top:1rem; right:-4.2rem; width:3rem; text-align:left}
  .hm-timeline li:nth-child(even) .hm-tl-year{right:auto; left:-4.2rem; text-align:right}
}
@media (prefers-reduced-motion: reduce){ .hm-timeline.cas-reveal>li{opacity:1; transform:none; transition:none} .hm-timeline .hm-tl-card{transition:none} .hm-timeline .hm-tl-card:hover{transform:none} }
