/* =============================================================================
   amu-kit.css — amUIdentité : header, séparateur, footer, CTA, boutons.
   Recopié du gabarit de référence _CLAUDE/WEB.html (ne pas reconstruire de
   mémoire). Polices sorties en fichiers .woff dans /fonts.
   ========================================================================== */
@font-face{font-family:'AMUMonumentGrotesk-Regular';src:url(../fonts/AMUMonumentGrotesk-Regular.woff) format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'AMUMonumentGrotesk-Medium';src:url(../fonts/AMUMonumentGrotesk-Medium.woff) format('woff');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'AMUMonumentGrotesk-Bold';src:url(../fonts/AMUMonumentGrotesk-Bold.woff) format('woff');font-weight:700;font-style:normal;font-display:swap}

/* =============================================================================
   FONTS — amU Monument Grotesk
   ========================================================================== */

/* =============================================================================
   VARIABLES amU
   ========================================================================== */
:root{
  --amu-yellow:#FED100;
  --amu-purple:#9966ff;        /* violet bandeau (header) */
  --amu-purple-fonce:#7d42f3;  /* violet foncé "violetfonce" (footer amUNews) */
  --black:#111;
  --white:#fff;
  --grey:#f5f6fa;
  --font-title:'AMUMonumentGrotesk-Bold',sans-serif;
  --font-medium:'AMUMonumentGrotesk-Medium',sans-serif;
  --font-text:'AMUMonumentGrotesk-Regular',sans-serif;
  --header-h:70px;
  --pad:clamp(20px,5vw,60px);
  --ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;padding-top:var(--header-h);background:var(--white);color:var(--black);font-family:var(--font-text);font-size:17px;line-height:1.55}
a{color:inherit;text-decoration:none}

/* Règle typo : équilibrage des titres + paragraphes propres (voir .md) */
h1,h2,h3,h4,h5,h6,p,li,a,span,figcaption,blockquote,td,th,dt,dd,label,button,.balance{text-wrap:balance}

/* =============================================================================
   HEADER amU — bandeau violet, logo amU news sur carton blanc (se réduit au
   scroll), lien boutique + menu croix → overlay blanc des rubriques.
   ========================================================================== */
.site-header{position:fixed;top:0;left:0;width:100%;height:var(--header-h);z-index:1000;display:flex;align-items:flex-start;justify-content:space-between;background:var(--amu-purple);transition:transform .35s ease,opacity .3s ease}
/* le header DISPARAÎT au scroll vers le bas, revient au moindre scroll vers le haut
   (géré dans le JS du header) ; -160 % : le carton du logo dépasse du bandeau */
.site-header.is-hidden{transform:translateY(-160%);opacity:0;pointer-events:none}
.sh-logo{display:flex;align-items:center;gap:13px;flex-shrink:0;height:104px;background:#fff;padding:8px 18px;transform-origin:left top;animation:sh-logo-intro .6s var(--ease) both;will-change:height}
.sh-amu{height:100%;width:auto;display:block;flex-shrink:0}
.sh-amu .amu-mark{fill:var(--black)}
/* trait "|" récupéré du SVG amU : se dessine depuis le centre vers les extrémités */
.sh-amu .sh-trait{fill:none;stroke:var(--black);stroke-width:3px;stroke-dasharray:160;stroke-dashoffset:160;animation:sh-trait-draw .6s var(--ease) .15s forwards}
@keyframes sh-trait-draw{to{stroke-dashoffset:0}}
/* nom du site en AMU Monument — taille proportionnelle au logo (suit la réduction au scroll) */
.sh-nom{font-family:var(--font-text);font-size:calc(var(--logo-h,104px) * .52);line-height:1;letter-spacing:-.02em;color:var(--black);white-space:nowrap}
.sh-nom-l{display:inline-block;white-space:pre;opacity:0;animation:sh-nom-fade 700ms ease-in-out both}
@keyframes sh-nom-fade{from{opacity:0}to{opacity:1}}
@keyframes sh-logo-intro{from{transform:scale(1.12)}to{transform:scale(1)}}
/* réduction PROGRESSIVE du logo au scroll : la hauteur est pilotée en JS
   (interpolée image par image entre --logo-max et --logo-min) → pas de saut binaire */
.sh-logo{height:var(--logo-h, 104px)}
@media(min-width:2000px){.sh-logo{height:var(--logo-h,140px)}}

.sh-right{display:flex;align-items:stretch;height:var(--header-h)}
/* lien boutique amU : fond blanc qui glisse du haut au hover, picto blanc→noir */
.sh-shop{position:relative;width:var(--header-h);height:var(--header-h);display:flex;align-items:center;justify-content:center;color:#fff;background-color:transparent;background-image:linear-gradient(#fff,#fff);background-repeat:no-repeat;background-position:top center;background-size:100% 0;transition:background-size .4s ease-in-out,color .2s ease}
.sh-shop:hover{background-size:100% 100%;color:#000}
.shop-bag{display:block}
/* bouton menu croix : fond blanc qui glisse du haut au hover, croix blanche→noire, croix→X au clic */
.menu-btn{position:relative;width:var(--header-h);height:var(--header-h);border:0;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;background-color:transparent;background-image:linear-gradient(#fff,#fff);background-repeat:no-repeat;background-position:top center;background-size:100% 0;transition:background-size .4s ease-in-out}
.menu-btn:hover,.menu-btn.active{background-size:100% 100%}
.menu-btn svg{width:42px;height:42px;overflow:visible}
.croix{fill:none;stroke:#fff;stroke-width:2;stroke-miterlimit:10;transform-box:fill-box;transform-origin:center;transition:stroke .2s ease}
.menu-btn:hover .croix,.menu-btn.active .croix{stroke:#000}
.menu-btn.active .croix01{animation:croix-rotate01 .5s forwards}
.menu-btn.active .croix03{animation:croix-opacity 0s forwards}
.menu-btn.active .croix02{animation:croix-rotate02 .5s forwards}
@keyframes croix-rotate01{to{transform:rotate(45deg) translate(3.5px,3.5px)}}
@keyframes croix-rotate02{to{transform:rotate(-45deg) translate(3.5px,-3.5px)}}
@keyframes croix-opacity{to{opacity:0}}

.sh-overlay{display:none;position:fixed;top:var(--header-h);right:0;z-index:999;background:#fff;min-width:290px;max-width:94vw;box-shadow:-4px 10px 30px rgba(0,0,0,.14);padding:26px 40px 32px}
.sh-overlay.active{display:block;animation:overlay-in .25s ease both}
@keyframes overlay-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.sh-menu-list{list-style:none;margin:0;padding:0}
.sh-menu-list a{display:flex;align-items:baseline;gap:9px;padding:5px 0;font-family:var(--font-title);font-size:16px;line-height:1.3;color:var(--black);transition:transform .3s ease,color .2s ease}
.sh-menu-list a:hover,.sh-menu-list a.is-active{transform:translateX(10px);color:var(--amu-purple)}
.sh-menu-num{font-family:var(--font-title);font-size:10px;color:var(--amu-purple)}
@media(max-width:480px){.sh-overlay{left:0;min-width:0;width:100%}.sh-logo{padding:6px 12px}}

/* =============================================================================
   SÉPARATEUR DE SECTION amU
   Gabarit : petit picto + petit titre À GAUCHE, gros titre À DROITE,
   trait fin DESSOUS qui grandit depuis son centre au scroll (rejoué dans
   les deux sens). Picto noir par défaut.
   ========================================================================== */
.amu-sep{max-width:1100px;margin:120px auto 44px;padding:0 var(--pad)}
.amu-sep-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.amu-sep-left{display:flex;align-items:center;gap:12px;padding-bottom:6px}
.amu-sep-picto{width:12px;height:12px;display:block;flex-shrink:0;fill:var(--black)}
.amu-sep-label{font-family:var(--font-medium);font-size:1rem;letter-spacing:-.2px;color:var(--black)}
.amu-sep-title{font-family:var(--font-text);font-weight:normal;font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-1.5px;margin:0;line-height:.95;color:var(--black);text-align:right}
/* le trait : grandit depuis le centre */
.amu-sep-line{margin-top:22px}
.amu-sep-line span{display:block;height:1px;background:var(--black);transform:scaleX(0);transform-origin:center;transition:transform .9s var(--ease)}
.amu-sep.in .amu-sep-line span{transform:scaleX(1)}
@media(max-width:480px){
  .amu-sep-head{align-items:flex-start}
  .amu-sep-title{font-size:2rem}
}

/* =============================================================================
   FOOTER amU  (gabarit du site racisme — le bon)
   violet foncé, pictos 20px bordés, police Regular, logo amU complet en bas à
   droite (copyright flex:1 + logo width:100%), responsive @700 / @600.
   ========================================================================== */
.amu-footer{position:relative;background:var(--amu-purple-fonce);color:#fff;font-size:12px;font-family:var(--font-text);display:flex;flex-direction:column;margin-top:120px}
.footer-haut{display:flex;flex-direction:column;gap:20px;padding:20px;min-height:500px}
.rs{display:flex;align-items:center;justify-content:space-between;margin-top:50px}
.rs>div{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.rs>div>div{margin-right:20px;text-align:left}
.rs a img{height:20px;width:20px;margin:0 2px;border:1px solid #fff;transition:filter .5s ease}
.rs a:hover img{filter:brightness(0) invert(0);border:1px solid #000}
.footer-separateur{border-bottom:.5px solid #fff;width:100%}
.footer-menu{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px 22px;text-align:left}
.footer-menu div{align-content:center}
.footer-menu a{color:#fff;text-decoration:none;position:relative;display:inline-block;padding-bottom:2px}
.footer-menu a::after{content:'';position:absolute;left:50%;bottom:0;width:0;height:1px;background:#fff;transform:translateX(-50%);transition:width .3s ease}
.footer-menu a:hover::after{width:100%}                /* soulignement animé qui grandit du centre (le hover d'avant) */
.footer-bas{display:flex;gap:20px}
.copyright{flex:1;white-space:nowrap;display:flex;align-items:flex-end;padding-left:20px;padding-bottom:20px}
.footer-logo{align-self:flex-end;display:flex;justify-content:flex-end;align-items:flex-end;width:100%;opacity:0;transition:opacity .3s ease}
.footer-logo.in{opacity:1}
.footer-logo svg{width:500px;height:auto;max-width:100%;overflow:visible}
.footer-logo-01{fill:#000}
.footer-logo-sign{fill:#000}
.footer-logo-02{fill:#fff}
.footer-logo.in #blocA,.footer-logo.in #lettre_a{animation:flogo 1s 0s 1 both}
.footer-logo.in #blocM,.footer-logo.in #lettre_m{animation:flogo 1s .3s 1 both}
.footer-logo.in #blocU,.footer-logo.in #lettre_U{animation:flogo 1s .6s 1 both}
@keyframes flogo{0%{transform:translateY(200%)}100%{transform:translateY(0)}}
@media(max-width:700px){.footer-menu{flex-direction:column;align-items:flex-start;gap:10px}}
@media(max-width:600px){.footer-bas{flex-direction:column;gap:0}.footer-logo svg{width:100%}}

/* =============================================================================
   COMPOSANTS — Bouton CTA + Boutons télécharger / uploader
   ========================================================================== */
.cta{display:inline-flex;align-items:center;position:relative;text-decoration:none;font-family:var(--font-title);font-size:15px;color:var(--black);padding:14px 26px;border:.5px solid var(--black);overflow:hidden;transition:padding .3s var(--ease)}
/* carré (flèche) en HAUT À DROITE, pas pleine hauteur ; la flèche le remplit */
.cta-fleche{position:absolute;top:0;right:0;height:calc(100% - 20px);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;background:var(--black);color:#fff;transform:translateX(20px);opacity:0;transition:transform .3s var(--ease),opacity .3s ease}
.cta-fleche svg{width:100%;height:100%;display:block}
.cta:hover{padding-right:64px}
.cta:hover .cta-fleche{transform:translateX(0);opacity:1}
/* version fond foncé : carré blanc + flèche noire */
.cta.on-dark{border-color:#fff;color:#fff}
.cta.on-dark .cta-fleche{background:#fff;color:var(--black)}
/* Boutons télécharger / uploader : picto + texte + note, flèche animée (rebond) */
.upload-link{display:flex;align-items:center;gap:20px;padding:15px 22px;border:1px solid var(--black);background:var(--white);color:var(--black);text-decoration:none;transition:background .25s var(--ease),color .25s var(--ease)}
.upload-link:hover{background:var(--black);color:var(--white)}
.upload-picto{flex-shrink:0;display:flex;align-items:center}
.upload-picto svg{height:26px;width:auto;display:block}
.io-base,.io-fleche{fill:currentColor}
.io-fleche{transform-box:fill-box;transform-origin:center;animation:io-bounce-up 1s ease-in-out infinite both}
@keyframes io-bounce-up{0%,100%{transform:translateY(0)}50%{transform:translateY(-20%)}}
.upload-link.is-download .io-fleche{animation-name:io-bounce-down}     /* download = flèche bas */
@keyframes io-bounce-down{0%,100%{transform:rotate(180deg) translateY(0)}50%{transform:rotate(180deg) translateY(-20%)}}
@media(prefers-reduced-motion:reduce){.io-fleche{animation:none}.upload-link.is-download .io-fleche{transform:rotate(180deg)}}
.upload-texte{flex:1;text-align:left;font-family:var(--font-medium);font-size:15px}
.upload-format{flex-shrink:0;font-family:var(--font-text);font-size:13px;color:#888}
.upload-link:hover .upload-format{color:rgba(255,255,255,.65)}
/* mises en page démo */
/* hero : fond violet foncé comme le site de la charte */
.web-hero{background:var(--amu-purple-fonce);color:#fff;padding:clamp(64px,12vh,130px) var(--pad) clamp(54px,9vh,100px)}
.web-hero h1{font-family:var(--font-title);font-size:clamp(2.4rem,6vw,4.4rem);line-height:1;letter-spacing:-2px;margin:0 0 18px;max-width:18ch;color:#fff}
.web-hero p{max-width:62ch;color:rgba(255,255,255,.85);margin:0 0 30px}
.web-hero code{background:rgba(255,255,255,.18);padding:1px 7px;border-radius:3px}
.web-hero .hero-cta{display:flex;flex-wrap:wrap;gap:14px}

/* ===== Swiper 11 (swiper-bundle.min.css, embarqué — MIT) ===== */
/**
 * Swiper 11.0.7
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2024 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: February 27, 2024
 */

:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}

/* =============================================================================
   GABARIT-CHARTE-WEB-V2 — STYLES TYPOGRAPHIQUES & COMPOSANTS ÉDITORIAUX
   (liste à puces carrées, colonnes, exergue, chiffres animés, marquee)
   ========================================================================== */
.spec-h1{font-family:var(--font-title);font-size:clamp(2rem,4.6vw,3.6rem);line-height:1;letter-spacing:-2px;margin:0 0 10px}
.spec-h2{font-family:var(--font-text);font-size:clamp(1.9rem,4.2vw,3.2rem);letter-spacing:-1.5px;line-height:.95;margin:0 0 10px}
.spec-h3{font-family:var(--font-title);font-size:1.4rem;letter-spacing:-.02em;margin:0 0 10px}
.spec-chapo{font-size:clamp(1.05rem,1.5vw,1.25rem);color:rgba(17,17,17,.6);max-width:64ch;margin:0 0 22px}
/* liste à puces carrées jaunes + variante numérotée */
.amu-liste{list-style:none;margin:0 0 26px;padding:0}
/* la couleur (carré ou chiffre) se pilote avec --puce : n'importe quelle couleur de la gamme amU */
.amu-liste li{position:relative;padding-left:22px;margin:0 0 10px;line-height:1.5}
.amu-liste li::before{content:'';position:absolute;left:0;top:.5em;width:7px;height:7px;background:var(--puce,var(--amu-yellow))}
.amu-liste-num{counter-reset:amu}
.amu-liste-num li{padding-left:30px}
.amu-liste-num li::before{content:counter(amu,decimal-leading-zero);counter-increment:amu;width:auto;height:auto;top:.12em;background:none;font-family:var(--font-title);font-size:.8em;color:var(--puce,var(--amu-purple-fonce))}
/* texte en colonnes */
.amu-colonnes{columns:2;column-gap:48px;column-rule:1px solid #ececf2;margin:0 0 26px}
.amu-colonnes p{margin:0 0 1em;break-inside:avoid-column}
@media(max-width:760px){.amu-colonnes{columns:1}}
/* exergue / citation au trait jaune */
.amu-exergue{margin:0 0 26px;padding:6px 0 6px 28px;border-left:9px solid var(--amu-yellow)}
.amu-exergue p{margin:0;font-family:var(--font-text);font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.25;letter-spacing:-.5px}
.amu-exergue footer{margin-top:14px;font-family:var(--font-medium);font-size:.9rem;color:rgba(17,17,17,.5)}
/* chiffres animés */
.chiffres-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:0 0 26px}
.chiffre{display:flex;flex-direction:column;gap:5px;padding:24px;background:#fff;border:1px solid #ececf2}
.chiffre-n{font-family:var(--font-title);font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:-.03em;color:var(--amu-purple-fonce);line-height:1;font-variant-numeric:tabular-nums}
.chiffre-l{font-family:var(--font-medium);font-size:.98rem}
.chiffre-s{font-size:.83rem;color:rgba(17,17,17,.4)}
/* bandeau défilant (marquee) */
.hero-marquee{position:relative;width:100%;overflow:hidden;padding:18px 0;margin:0 0 26px;border-top:1px solid #ececf2;border-bottom:1px solid #ececf2}
.marquee-track{display:flex;align-items:center;gap:28px;width:max-content;animation:marquee 42s linear infinite}
.marquee-item{font-family:var(--font-medium);font-size:14px;color:rgba(17,17,17,.6);white-space:nowrap}
.marquee-dot{width:9px;height:9px;background:var(--amu-yellow);flex-shrink:0}
@keyframes marquee{to{transform:translateX(-50%)}}
.hero-marquee:hover .marquee-track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* =============================================================================
   CARROUSELS — Swiper 11 (embarqué inline plus bas) + accordéon 100 % CSS.
   Démos en aplats de couleurs charte (remplacer par vos images).
   ========================================================================== */
.car-slide-color{display:flex;align-items:flex-end;padding:20px;width:100%;height:100%;font-family:var(--font-title);font-size:1.4rem;color:rgba(0,0,0,.55)}
/* dans les carrousels de tête et d'articles, l'aplat remplit la slide en absolu
   (sinon height:100% se réfère à un parent sans hauteur) */
.swiper-hero .swiper-slide,.swiper-article .swiper-slide{height:100%;position:relative}
.swiper-hero .car-slide-color,.swiper-article .image-wrapper .car-slide-color{position:absolute;inset:0;width:auto;height:auto}
/* 1 · carrousel de tête (amUNews) */
.swiper-hero{width:100%;height:420px;overflow:hidden;position:relative;background:var(--grey);margin:0 0 26px}
.swiper-hero .cover{object-fit:cover;object-position:center;width:100%;height:100%;display:block}
.legend-header{position:absolute;bottom:0;right:0;text-wrap:balance;z-index:5}
.legend-header-inside{padding:20px;width:250px;background:#fff;text-align:left}
.legend-header .titre{font-family:var(--font-medium);font-size:15px;line-height:1.3}
.legend-header .soustitre{margin-top:10px;margin-bottom:20px;font-size:12px;color:#888}
.swiper-hero .swiper-pagination{text-align:left;padding-left:14px}
.swiper-hero .swiper-pagination-bullet{height:10px;width:10px;background:#000;opacity:.35}
.swiper-hero .swiper-pagination-bullet-active{background:#000;opacity:1}
.carrousel-nav{position:absolute;bottom:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;width:250px;height:34px;padding:0 12px;background:#fff}
.carrousel-prev,.carrousel-next,.articles-prev,.articles-next{border:0;background:none;padding:0;cursor:pointer;width:26px;height:26px;color:#000;transition:transform .2s ease;display:flex;align-items:center;justify-content:center}
.carrousel-prev svg,.carrousel-next svg,.articles-prev svg,.articles-next svg{width:100%;height:100%}
.carrousel-prev svg,.articles-prev svg{transform:rotate(180deg)}
.carrousel-prev:hover,.articles-prev:hover{transform:translateX(-5px)}
.carrousel-next:hover,.articles-next:hover{transform:translateX(5px)}
@media(max-width:600px){.swiper-hero{height:300px}}
/* 2 · carrousel d'articles (amUNews) */
.carrousel-articles-nav{display:flex;justify-content:flex-end;gap:8px;margin:0 0 12px}
.swiper-article{width:100%;height:340px;overflow:hidden;margin:0 0 26px}
.swiper-article .swiper-slide a{display:block;height:100%}
.image-wrapper{overflow:hidden;width:100%;height:100%;position:relative}
.image-wrapper img{width:100%;height:100%;transition:transform .3s ease-in-out;display:block}
.image-wrapper .cover{object-fit:cover;object-position:center}
.image-wrapper:hover img{transform:scale(1.2)}
.image-wrapper .legend{position:absolute;bottom:0;right:0;width:70%;height:130px;background:#fff;padding:12px 20px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;text-wrap:balance;overflow:hidden;transition:background-color .3s ease-in-out;z-index:5}
.image-wrapper:hover .legend{background-color:var(--hover-color,#fff)}
.image-wrapper .legend .titre{font-family:var(--font-medium);font-size:15px;line-height:1.3}
.image-wrapper .legend .soustitre{font-size:12px;color:#888}
/* 3 · carrousel magazine — pile de cartes */
.mag-wrap{display:flex;justify-content:center;margin:0 0 26px}
.swiper-mag{max-width:90%;width:420px}
/* le wrapper porte le carré ; la pagination vit DANS LE FLUX, sous la carte */
.swiper-mag .swiper-wrapper{aspect-ratio:1/1;height:auto}
.swiper-mag .swiper-pagination{position:relative;bottom:auto;left:auto;right:auto;margin-top:16px;text-align:center}
.swiper-mag .swiper-slide{aspect-ratio:1/1;overflow:hidden;box-shadow:2px 2px 2px 1px rgba(0,0,0,.2)}  /* angles droits */
.mag-legend{position:absolute;bottom:0;right:0;width:70%;background:#fff;padding:12px 20px;text-align:left;text-wrap:balance;z-index:5}
.mag-legend .titre{font-family:var(--font-medium);font-size:15px;line-height:1.3}
.mag-legend .soustitre{margin-top:4px;font-size:12px;color:#888}
.swiper-mag .swiper-slide img,.swiper-mag .car-slide-color{width:100%;height:100%}
.swiper-mag .swiper-pagination-bullet{background:#000;opacity:.35}
.swiper-mag .swiper-pagination-bullet-active{background:#000;opacity:1}
/* 4 · carrousel accordéon (100 % CSS) */
.accordeon{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px}
.accordeon-tuile{position:relative;overflow:hidden;height:280px;cursor:pointer;
  width:calc(100%/6 - 9px);max-width:calc((100%/6)*1.35 - 9px);flex-grow:1;transition:width .3s ease-in-out}
.accordeon:hover .accordeon-tuile:not(:hover){width:calc((100% - (100%/6)*1.3)/5 - 9px)}
.accordeon .accordeon-tuile:hover{width:calc((100%/6)*1.3 - 9px)}
.accordeon-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease-in-out}
.accordeon-tuile:hover .accordeon-img{transform:scale(1.08)}
.accordeon .legend{position:absolute;bottom:0;right:0;width:74%;min-height:74px;background:#fff;padding:10px 14px;transition:background-color .4s ease-in-out}
.accordeon-tuile:hover .legend{background-color:var(--hover-color,#f8dbba)}
.accordeon .legend .nom{display:block;font-family:var(--font-medium);font-size:14px;line-height:1.25}
.accordeon .legend .poste{display:block;font-size:11.5px;color:rgba(17,17,17,.55);margin-top:2px}
@media(max-width:760px){
  .accordeon-tuile{width:calc(100%/3 - 7px);max-width:calc((100%/3)*1.3 - 7px);height:220px}
  .accordeon:hover .accordeon-tuile:not(:hover){width:calc((100% - (100%/3)*1.25)/2 - 7px)}
  .accordeon .accordeon-tuile:hover{width:calc((100%/3)*1.25 - 7px)}
}


/* =============================================================================
   BLOC ARTICLE (.artp) — image parallax + aplat qui s'étire au scroll + texte
   et CTA à droite (repris du site carrière amU). Couleur : --artp-forme.
   ========================================================================== */
.artp{position:relative}
.artp-visuel{position:relative;width:min(100%,860px);margin-left:auto}
.artp-img{position:relative;overflow:hidden;aspect-ratio:16/10;z-index:1}
.artp-img img,.artp-img .artp-faux{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.15);will-change:transform}
.artp-forme{position:absolute;left:-4%;bottom:-34%;width:30%;height:72%;z-index:0;background:var(--artp-forme,#FFFFBF);transform-origin:top left;will-change:transform}
.artp-body{display:flex;flex-direction:column;align-items:flex-start;gap:26px;width:min(44%,420px);margin-left:auto;margin-top:38px}
.artp-body p{margin:0}
@media(prefers-reduced-motion:reduce){.artp-img img,.artp-img .artp-faux{transform:scale(1.05)}.artp-forme{transform:none!important}}
@media(max-width:760px){.artp-visuel{width:100%}.artp-forme{left:-6%;bottom:-26%;width:38%;height:60%}.artp-body{width:100%;margin-top:96px}}
