/* Classes utilitaires manquantes dans le CSS Next.js d'origine (purgé). */
.pt-2{padding-top:.5rem}.pt-16{padding-top:4rem}.pb-28{padding-bottom:7rem}
.mt-14{margin-top:3.5rem}.mb-9{margin-bottom:2.25rem}
@media (min-width:640px){.sm\:space-y-8>:not([hidden])~:not([hidden]){margin-top:2rem}}
@media (min-width:768px){
.md\:pt-16{padding-top:4rem}.md\:pt-20{padding-top:5rem}.md\:pt-24{padding-top:6rem}
.md\:pb-24{padding-bottom:6rem}.md\:pb-32{padding-bottom:8rem}.md\:pb-36{padding-bottom:9rem}
.md\:p-7{padding:1.75rem}}
a[style*="rgba(255,255,255,.08)"]:hover{background:rgba(255,255,255,.18)!important;border-color:#fff!important}
/* Versions chinoise et japonaise : polices système CJK après Satoshi, sans interlettrage négatif. */
html:lang(zh),html:lang(zh) body{--font-satoshi:"satoshi","satoshi Fallback","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Noto Sans CJK SC",sans-serif;--font-instrument:"satoshiDisplay","satoshiDisplay Fallback","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Noto Sans CJK SC",sans-serif}
html:lang(ja),html:lang(ja) body{--font-satoshi:"satoshi","satoshi Fallback","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo","Noto Sans JP","Noto Sans CJK JP",sans-serif;--font-instrument:"satoshiDisplay","satoshiDisplay Fallback","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo","Noto Sans JP","Noto Sans CJK JP",sans-serif}
html:lang(zh) *,html:lang(ja) *{letter-spacing:0!important}
html:lang(ja) body{line-break:strict}html:lang(ja) :is(h1,h2,h3){word-break:auto-phrase;overflow-wrap:anywhere}
/* Menu mobile : les langues en ligne (7 langues). */
.hx-mobile-menu .hx-langs{display:flex;flex-wrap:wrap;gap:2px 20px;padding:12px 4px 4px}
.hx-mobile-menu .hx-langs a.hx-lang{display:inline-flex;padding:8px 0;font-size:15px;border-bottom:0}
/* Arabe : polices système placées AVANT « satoshi Fallback » (= Arial, dont l'arabe est daté), pas d'interlettrage (il casse les ligatures), mise en page de droite à gauche. */
html:lang(ar),html:lang(ar) body{--font-satoshi:"satoshi",system-ui,"Segoe UI","Geeza Pro","Noto Sans Arabic",Tahoma,sans-serif;--font-instrument:"satoshiDisplay",system-ui,"Segoe UI","Geeza Pro","Noto Sans Arabic",Tahoma,sans-serif}
html:lang(ar) *{letter-spacing:0!important}
html[dir=rtl] .hx-langmenu{right:auto;left:0}
html[dir=rtl] .marquee{direction:ltr}
html[dir=rtl] :is(.lucide-arrow-right,.lucide-chevron-right,.lucide-arrow-up-right){transform:scaleX(-1)}
html[dir=rtl] :is(code,pre,kbd){direction:ltr;unicode-bidi:isolate}
/* Audit du 30/09 : titres longs sur mobile, détails de l'arabe, animations réduites sur demande. */
h1,h2{overflow-wrap:anywhere}html:lang(de) :is(h1,h2){-webkit-hyphens:auto;hyphens:auto}
html[dir=rtl] a[href^="tel:"]{direction:ltr;unicode-bidi:isolate;display:inline-block}
html[dir=rtl] .hxdl .badge{right:auto;left:14px}
html[dir=rtl] blockquote{border-left:0;border-right:3px solid currentColor;padding-left:0;padding-right:1rem}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.marquee-track{animation:none!important}}
picture{display:contents}html[dir=rtl] .hx-flip{transform:scaleX(-1)}
/* Très petits écrans (320 px) et libellés longs (allemand). */
.hx-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))!important}
.hxdl a{min-width:0}.hxdl .os{overflow-wrap:anywhere}
.hxdl .badge{max-width:calc(100% - 84px);white-space:normal;line-height:1.25;text-align:center}
