/* =============================================================================
   HZM Média — Image · Galerie · Vidéo · Lottie
   Préfixe .hzm-md- · variables CSS pilotées par le rendu PHP.
   ========================================================================== */

.hzm-md{ font-family:Arial,Helvetica,sans-serif; }
.hzm-md-al-left{ text-align:left; }
.hzm-md-al-center{ text-align:center; }
.hzm-md-al-right{ text-align:right; }

/* =============================================================================
   PLEINE LARGEUR
   Le média occupe toute la largeur de sa colonne, sans limite. La largeur du
   contenu et les marges se règlent au niveau de la rangée WPBakery, comme pour
   un bloc d'images bord à bord. Le comparateur avant/après est épargné en PHP
   (il garde sa largeur propre), il n'a donc pas de règle ici.
   ========================================================================== */
.hzm-md-al-full{ display:block; width:100%; text-align:left; }

/* L'image simple : sa figure « inline-block » prenait la largeur de son
   contenu ; en pleine largeur elle devient un bloc à 100 %, image comprise. */
.hzm-md-al-full .hzm-md-fig{ display:block; width:100%; }
.hzm-md-al-full .hzm-md-imgwrap{ width:100%; }

/* Vidéo, scroller, panoramas, embed, lottie, galeries, stack, zones : on lève
   la largeur maximale et les marges auto qui les recentraient. */
.hzm-md-al-full .hzm-md-video,
.hzm-md-al-full.hzm-md-video,
.hzm-md-al-full .hzm-md-scr-wrap,
.hzm-md-al-full .hzm-md-pano-wrap,
.hzm-md-al-full .hzm-md-embed,
.hzm-md-al-full .hzm-md-stk,
.hzm-md-al-full .hzm-md-stk-anim,
.hzm-md-al-full .hzm-md-hz,
.hzm-md-al-full .hzm-md-lottie,
.hzm-md-al-full.hzm-md-lottie,
.hzm-md-al-full .hzm-md-gal,
.hzm-md-al-full .hzm-md-msgal{
	max-width:none;
	width:100%;
	margin-left:0;
	margin-right:0;
}

.hzm-md-empty{
	display:block; padding:24px; border:1px dashed #c9c9db; border-radius:10px;
	color:#8a8a9e; font-size:14px; background:#faf9fe; text-align:center;
}

/* ----- proportions partagées ----- */
.hzm-md-r-1-1  .hzm-md-imgwrap, .hzm-md-r-1-1 img,
.hzm-md-r-4-3  .hzm-md-imgwrap, .hzm-md-r-16-9 .hzm-md-imgwrap, .hzm-md-r-3-4 .hzm-md-imgwrap{ display:block; }

/* =============================================================================
   IMAGE
   ========================================================================== */
.hzm-md-fig{
	display:inline-block; margin:0; position:relative; vertical-align:top;
	--hzm-md-radius:10px; --hzm-md-hspeed:400ms; --hzm-md-bd:4px; --hzm-md-shsz:24px;
}
.hzm-md-stage{ position:relative; display:block; line-height:0; }
.hzm-md-fig > a{ display:block; line-height:0; }
.hzm-md-imgwrap{ display:block; position:relative; overflow:hidden; border-radius:var(--hzm-md-radius); line-height:0; }
.hzm-md-imgwrap img{ display:block; width:100% !important; height:auto; max-width:none; transition:transform var(--hzm-md-hspeed) ease, filter var(--hzm-md-hspeed) ease; }

/* proportions */
.hzm-md-r-1-1  .hzm-md-imgwrap{ aspect-ratio:1/1; }
.hzm-md-r-4-3  .hzm-md-imgwrap{ aspect-ratio:4/3; }
.hzm-md-r-16-9 .hzm-md-imgwrap{ aspect-ratio:16/9; }
.hzm-md-r-3-4  .hzm-md-imgwrap{ aspect-ratio:3/4; }
.hzm-md-fig[class*="hzm-md-r-"] .hzm-md-imgwrap img{ width:100% !important; height:100% !important; }
.hzm-md-fit-cover  .hzm-md-imgwrap img{ object-fit:cover; }
.hzm-md-fit-contain .hzm-md-imgwrap img{ object-fit:contain; }

/* ---- formes basiques (border-radius / clip) ---- */
.hzm-md-imgwrap.hzm-md-shape-rounded, .hzm-md-halo.hzm-md-shape-rounded{ border-radius:28px; }
.hzm-md-imgwrap.hzm-md-shape-circle,  .hzm-md-halo.hzm-md-shape-circle{ border-radius:50%; aspect-ratio:1/1; }
.hzm-md-imgwrap.hzm-md-shape-circle img{ height:100%; object-fit:cover; }
.hzm-md-imgwrap.hzm-md-shape-blob,    .hzm-md-halo.hzm-md-shape-blob{ border-radius:42% 58% 63% 37% / 41% 44% 56% 59%; }
.hzm-md-imgwrap.hzm-md-shape-leaf,    .hzm-md-halo.hzm-md-shape-leaf{ border-radius:0 50% 0 50%; }

/* ---- arches ---- */
.hzm-md-imgwrap.hzm-md-shape-arch,     .hzm-md-halo.hzm-md-shape-arch{ border-radius:50% 50% 6% 6% / 62% 62% 6% 6%; }
.hzm-md-imgwrap.hzm-md-shape-archd,    .hzm-md-halo.hzm-md-shape-archd{ border-radius:10px 46% 46% 10px / 10px 60% 60% 10px; }
.hzm-md-imgwrap.hzm-md-shape-archoval, .hzm-md-halo.hzm-md-shape-archoval{ border-radius:46% 46% 46% 46% / 58% 58% 14% 14%; }
.hzm-md-imgwrap.hzm-md-shape-pointed,  .hzm-md-halo.hzm-md-shape-pointed{ border-radius:50% 50% 4% 4% / 88% 88% 4% 4%; }
.hzm-md-imgwrap.hzm-md-shape-corner,   .hzm-md-halo.hzm-md-shape-corner{ border-radius:48% 10px 10px 10px; }

/* ---- masques artistiques (portés de la Box) ---- */
.hzm-md-imgwrap.hzm-md-shape-brush, .hzm-md-halo.hzm-md-shape-brush{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M2.0,50.0 L3.0,46.8 L6.3,41.5 L9.0,34.3 L13.3,27.9 L15.8,27.8 L19.7,18.6 L23.1,14.9 L25.5,20.9 L29.4,18.5 L31.7,18.3 L35.3,17.3 L37.8,9.1 L40.3,8.7 L43.9,7.2 L48.8,14.8 L51.4,13.5 L54.4,11.0 L58.6,11.8 L64.0,15.4 L68.1,16.7 L71.6,17.8 L77.0,21.0 L79.3,22.9 L84.4,30.6 L87.5,23.6 L90.2,35.4 L92.8,37.5 L96.0,45.2 L97.0,50.7 L98.0,50.0 L97.0,46.9 L96.0,56.4 L92.8,61.9 L90.2,61.5 L87.5,73.4 L84.4,71.0 L79.3,72.0 L77.0,78.2 L71.6,81.2 L68.1,82.8 L64.0,79.8 L58.6,87.2 L54.4,87.9 L51.4,85.8 L48.8,86.9 L43.9,90.4 L40.3,89.1 L37.8,85.2 L35.3,84.2 L31.7,84.1 L29.4,81.2 L25.5,78.9 L23.1,82.3 L19.7,76.6 L15.8,66.8 L13.3,68.0 L9.0,64.9 L6.3,59.4 L3.0,52.1 Z M52.8,92.3 L54.5,94.0 L52.8,95.7 L51.1,94.0 Z M74.8,10.3 L76.8,12.3 L74.8,14.3 L72.8,12.3 Z M70.6,13.2 L72.2,14.7 L70.6,16.3 L69.1,14.7 Z M69.9,8.1 L71.4,9.6 L69.9,11.1 L68.4,9.6 Z M23.7,81.6 L25.9,83.8 L23.7,86.0 L21.4,83.8 Z M92.0,64.6 L92.9,65.5 L92.0,66.5 L91.0,65.5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M2.0,50.0 L3.0,46.8 L6.3,41.5 L9.0,34.3 L13.3,27.9 L15.8,27.8 L19.7,18.6 L23.1,14.9 L25.5,20.9 L29.4,18.5 L31.7,18.3 L35.3,17.3 L37.8,9.1 L40.3,8.7 L43.9,7.2 L48.8,14.8 L51.4,13.5 L54.4,11.0 L58.6,11.8 L64.0,15.4 L68.1,16.7 L71.6,17.8 L77.0,21.0 L79.3,22.9 L84.4,30.6 L87.5,23.6 L90.2,35.4 L92.8,37.5 L96.0,45.2 L97.0,50.7 L98.0,50.0 L97.0,46.9 L96.0,56.4 L92.8,61.9 L90.2,61.5 L87.5,73.4 L84.4,71.0 L79.3,72.0 L77.0,78.2 L71.6,81.2 L68.1,82.8 L64.0,79.8 L58.6,87.2 L54.4,87.9 L51.4,85.8 L48.8,86.9 L43.9,90.4 L40.3,89.1 L37.8,85.2 L35.3,84.2 L31.7,84.1 L29.4,81.2 L25.5,78.9 L23.1,82.3 L19.7,76.6 L15.8,66.8 L13.3,68.0 L9.0,64.9 L6.3,59.4 L3.0,52.1 Z M52.8,92.3 L54.5,94.0 L52.8,95.7 L51.1,94.0 Z M74.8,10.3 L76.8,12.3 L74.8,14.3 L72.8,12.3 Z M70.6,13.2 L72.2,14.7 L70.6,16.3 L69.1,14.7 Z M69.9,8.1 L71.4,9.6 L69.9,11.1 L68.4,9.6 Z M23.7,81.6 L25.9,83.8 L23.7,86.0 L21.4,83.8 Z M92.0,64.6 L92.9,65.5 L92.0,66.5 L91.0,65.5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-brush2, .hzm-md-halo.hzm-md-shape-brush2{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M2.0,50.0 L3.0,53.3 L5.7,41.0 L10.2,36.3 L14.5,29.6 L18.3,29.3 L21.2,27.4 L26.0,21.9 L30.9,21.5 L34.8,19.2 L38.6,18.1 L41.6,19.2 L43.8,14.3 L47.3,15.9 L51.4,15.6 L53.8,15.7 L58.6,19.7 L61.6,17.6 L64.6,15.4 L66.9,16.8 L72.4,21.2 L77.0,30.5 L82.1,29.6 L86.4,33.9 L88.7,28.7 L92.0,39.6 L95.8,45.8 L97.0,47.9 L98.0,50.0 L97.0,51.4 L95.8,54.0 L92.0,58.0 L88.7,65.6 L86.4,62.0 L82.1,70.0 L77.0,73.6 L72.4,78.0 L66.9,81.9 L64.6,84.2 L61.6,82.0 L58.6,83.5 L53.8,83.8 L51.4,83.9 L47.3,83.7 L43.8,84.3 L41.6,82.4 L38.6,81.7 L34.8,80.5 L30.9,78.7 L26.0,77.2 L21.2,72.4 L18.3,68.0 L14.5,69.1 L10.2,59.1 L5.7,58.0 L3.0,45.9 Z M17.9,73.4 L20.0,75.5 L17.9,77.7 L15.7,75.5 Z M60.4,12.6 L61.8,14.0 L60.4,15.3 L59.1,14.0 Z M68.1,11.9 L69.6,13.5 L68.1,15.0 L66.5,13.5 Z M71.1,12.8 L71.9,13.6 L71.1,14.4 L70.3,13.6 Z M46.9,9.3 L48.5,10.9 L46.9,12.6 L45.2,10.9 Z M80.5,22.4 L82.3,24.2 L80.5,26.1 L78.6,24.2 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M2.0,50.0 L3.0,53.3 L5.7,41.0 L10.2,36.3 L14.5,29.6 L18.3,29.3 L21.2,27.4 L26.0,21.9 L30.9,21.5 L34.8,19.2 L38.6,18.1 L41.6,19.2 L43.8,14.3 L47.3,15.9 L51.4,15.6 L53.8,15.7 L58.6,19.7 L61.6,17.6 L64.6,15.4 L66.9,16.8 L72.4,21.2 L77.0,30.5 L82.1,29.6 L86.4,33.9 L88.7,28.7 L92.0,39.6 L95.8,45.8 L97.0,47.9 L98.0,50.0 L97.0,51.4 L95.8,54.0 L92.0,58.0 L88.7,65.6 L86.4,62.0 L82.1,70.0 L77.0,73.6 L72.4,78.0 L66.9,81.9 L64.6,84.2 L61.6,82.0 L58.6,83.5 L53.8,83.8 L51.4,83.9 L47.3,83.7 L43.8,84.3 L41.6,82.4 L38.6,81.7 L34.8,80.5 L30.9,78.7 L26.0,77.2 L21.2,72.4 L18.3,68.0 L14.5,69.1 L10.2,59.1 L5.7,58.0 L3.0,45.9 Z M17.9,73.4 L20.0,75.5 L17.9,77.7 L15.7,75.5 Z M60.4,12.6 L61.8,14.0 L60.4,15.3 L59.1,14.0 Z M68.1,11.9 L69.6,13.5 L68.1,15.0 L66.5,13.5 Z M71.1,12.8 L71.9,13.6 L71.1,14.4 L70.3,13.6 Z M46.9,9.3 L48.5,10.9 L46.9,12.6 L45.2,10.9 Z M80.5,22.4 L82.3,24.2 L80.5,26.1 L78.6,24.2 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-custom, .hzm-md-halo.hzm-md-shape-custom{ border-radius:0; -webkit-mask:var(--hzm-md-mask,none) center / cover no-repeat; mask:var(--hzm-md-mask,none) center / cover no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-paint, .hzm-md-halo.hzm-md-shape-paint{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M7.0,7.2 L11.3,11.6 L15.6,9.7 L19.9,4.9 L24.2,5.8 L28.5,4.5 L32.8,5.2 L37.1,11.5 L41.4,0.9 L45.7,1.5 L50.0,7.6 L54.3,4.1 L58.6,10.8 L62.9,0.3 L67.2,6.7 L71.5,3.4 L75.8,10.1 L80.1,2.2 L84.4,2.5 L88.7,5.5 L91.7,7.0 L96.7,11.3 L93.6,15.6 L93.3,19.9 L90.7,24.2 L89.9,28.5 L93.6,32.8 L89.3,37.1 L97.2,41.4 L91.3,45.7 L93.8,50.0 L88.1,54.3 L91.5,58.6 L90.7,62.9 L95.3,67.2 L88.8,71.5 L97.8,75.8 L94.9,80.1 L95.3,84.4 L93.9,88.7 L93.0,90.0 L88.7,96.1 L84.4,96.4 L80.1,96.0 L75.8,99.6 L71.5,88.9 L67.2,96.4 L62.9,95.4 L58.6,94.4 L54.3,93.3 L50.0,89.6 L45.7,95.2 L41.4,91.9 L37.1,93.5 L32.8,92.5 L28.5,95.5 L24.2,96.8 L19.9,88.3 L15.6,93.7 L11.3,96.9 L7.8,93.0 L7.6,88.7 L5.7,84.4 L9.5,80.1 L5.6,75.8 L7.2,71.5 L3.9,67.2 L9.0,62.9 L6.5,58.6 L7.0,54.3 L3.7,50.0 L11.9,45.7 L6.7,41.4 L4.1,37.1 L7.2,32.8 L2.3,28.5 L11.1,24.2 L0.5,19.9 L2.3,15.6 L9.6,11.3 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M7.0,7.2 L11.3,11.6 L15.6,9.7 L19.9,4.9 L24.2,5.8 L28.5,4.5 L32.8,5.2 L37.1,11.5 L41.4,0.9 L45.7,1.5 L50.0,7.6 L54.3,4.1 L58.6,10.8 L62.9,0.3 L67.2,6.7 L71.5,3.4 L75.8,10.1 L80.1,2.2 L84.4,2.5 L88.7,5.5 L91.7,7.0 L96.7,11.3 L93.6,15.6 L93.3,19.9 L90.7,24.2 L89.9,28.5 L93.6,32.8 L89.3,37.1 L97.2,41.4 L91.3,45.7 L93.8,50.0 L88.1,54.3 L91.5,58.6 L90.7,62.9 L95.3,67.2 L88.8,71.5 L97.8,75.8 L94.9,80.1 L95.3,84.4 L93.9,88.7 L93.0,90.0 L88.7,96.1 L84.4,96.4 L80.1,96.0 L75.8,99.6 L71.5,88.9 L67.2,96.4 L62.9,95.4 L58.6,94.4 L54.3,93.3 L50.0,89.6 L45.7,95.2 L41.4,91.9 L37.1,93.5 L32.8,92.5 L28.5,95.5 L24.2,96.8 L19.9,88.3 L15.6,93.7 L11.3,96.9 L7.8,93.0 L7.6,88.7 L5.7,84.4 L9.5,80.1 L5.6,75.8 L7.2,71.5 L3.9,67.2 L9.0,62.9 L6.5,58.6 L7.0,54.3 L3.7,50.0 L11.9,45.7 L6.7,41.4 L4.1,37.1 L7.2,32.8 L2.3,28.5 L11.1,24.2 L0.5,19.9 L2.3,15.6 L9.6,11.3 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-paint2, .hzm-md-halo.hzm-md-shape-paint2{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M6.0,12.8 L9.4,0.0 L12.8,4.8 L16.2,0.9 L19.5,1.5 L22.9,0.0 L26.3,4.7 L29.7,9.7 L33.1,0.0 L36.5,7.4 L39.8,7.9 L43.2,3.8 L46.6,3.9 L50.0,3.4 L53.4,5.6 L56.8,7.4 L60.2,2.8 L63.5,3.2 L66.9,3.3 L70.3,0.0 L73.7,1.4 L77.1,0.0 L80.5,3.3 L83.8,10.5 L87.2,0.2 L90.6,12.7 L100.0,6.0 L86.9,9.4 L86.4,12.8 L97.0,16.2 L98.9,19.5 L94.6,22.9 L100.0,26.3 L96.5,29.7 L100.0,33.1 L96.7,36.5 L99.8,39.8 L99.0,43.2 L100.0,46.6 L91.5,50.0 L99.0,53.4 L97.0,56.8 L97.1,60.2 L98.1,63.5 L92.6,66.9 L94.9,70.3 L100.0,73.7 L91.3,77.1 L100.0,80.5 L87.3,83.8 L99.9,87.2 L93.5,90.6 L94.0,98.6 L90.6,100.0 L87.2,89.3 L83.8,88.8 L80.5,100.0 L77.1,93.7 L73.7,94.6 L70.3,100.0 L66.9,87.4 L63.5,99.8 L60.2,98.4 L56.8,98.2 L53.4,100.0 L50.0,91.5 L46.6,92.7 L43.2,93.6 L39.8,96.6 L36.5,100.0 L33.1,99.2 L29.7,87.9 L26.3,93.1 L22.9,90.1 L19.5,90.0 L16.2,100.0 L12.8,90.4 L9.4,88.3 L0.0,94.0 L4.3,90.6 L0.0,87.2 L0.0,83.8 L3.9,80.5 L0.0,77.1 L5.5,73.7 L7.1,70.3 L11.1,66.9 L3.1,63.5 L0.0,60.2 L1.3,56.8 L3.1,53.4 L6.5,50.0 L5.0,46.6 L8.4,43.2 L0.0,39.8 L13.7,36.5 L0.1,33.1 L10.4,29.7 L0.0,26.3 L9.6,22.9 L1.2,19.5 L1.0,16.2 L11.2,12.8 L1.8,9.4 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M6.0,12.8 L9.4,0.0 L12.8,4.8 L16.2,0.9 L19.5,1.5 L22.9,0.0 L26.3,4.7 L29.7,9.7 L33.1,0.0 L36.5,7.4 L39.8,7.9 L43.2,3.8 L46.6,3.9 L50.0,3.4 L53.4,5.6 L56.8,7.4 L60.2,2.8 L63.5,3.2 L66.9,3.3 L70.3,0.0 L73.7,1.4 L77.1,0.0 L80.5,3.3 L83.8,10.5 L87.2,0.2 L90.6,12.7 L100.0,6.0 L86.9,9.4 L86.4,12.8 L97.0,16.2 L98.9,19.5 L94.6,22.9 L100.0,26.3 L96.5,29.7 L100.0,33.1 L96.7,36.5 L99.8,39.8 L99.0,43.2 L100.0,46.6 L91.5,50.0 L99.0,53.4 L97.0,56.8 L97.1,60.2 L98.1,63.5 L92.6,66.9 L94.9,70.3 L100.0,73.7 L91.3,77.1 L100.0,80.5 L87.3,83.8 L99.9,87.2 L93.5,90.6 L94.0,98.6 L90.6,100.0 L87.2,89.3 L83.8,88.8 L80.5,100.0 L77.1,93.7 L73.7,94.6 L70.3,100.0 L66.9,87.4 L63.5,99.8 L60.2,98.4 L56.8,98.2 L53.4,100.0 L50.0,91.5 L46.6,92.7 L43.2,93.6 L39.8,96.6 L36.5,100.0 L33.1,99.2 L29.7,87.9 L26.3,93.1 L22.9,90.1 L19.5,90.0 L16.2,100.0 L12.8,90.4 L9.4,88.3 L0.0,94.0 L4.3,90.6 L0.0,87.2 L0.0,83.8 L3.9,80.5 L0.0,77.1 L5.5,73.7 L7.1,70.3 L11.1,66.9 L3.1,63.5 L0.0,60.2 L1.3,56.8 L3.1,53.4 L6.5,50.0 L5.0,46.6 L8.4,43.2 L0.0,39.8 L13.7,36.5 L0.1,33.1 L10.4,29.7 L0.0,26.3 L9.6,22.9 L1.2,19.5 L1.0,16.2 L11.2,12.8 L1.8,9.4 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-ink, .hzm-md-halo.hzm-md-shape-ink{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M48,5 C68,3 86,16 88,36 C90,54 82,70 66,78 C64,86 60,97 54,97 C50,97 50,86 50,80 C34,84 16,74 12,56 C8,38 16,20 30,12 C36,8 42,6 48,5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M48,5 C68,3 86,16 88,36 C90,54 82,70 66,78 C64,86 60,97 54,97 C50,97 50,86 50,80 C34,84 16,74 12,56 C8,38 16,20 30,12 C36,8 42,6 48,5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-splash, .hzm-md-halo.hzm-md-shape-splash{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,3 C56,3 57,12 62,10 C64,4 72,6 71,13 C78,10 84,16 80,22 C88,20 92,28 86,32 C94,34 95,44 88,46 C95,52 92,62 84,60 C88,70 80,78 72,74 C74,84 64,88 58,82 C58,92 48,94 44,86 C40,94 30,90 32,80 C22,84 14,76 20,68 C10,68 6,58 15,54 C6,50 8,40 17,40 C10,34 14,24 24,28 C22,18 32,14 39,20 C40,10 45,6 50,3 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,3 C56,3 57,12 62,10 C64,4 72,6 71,13 C78,10 84,16 80,22 C88,20 92,28 86,32 C94,34 95,44 88,46 C95,52 92,62 84,60 C88,70 80,78 72,74 C74,84 64,88 58,82 C58,92 48,94 44,86 C40,94 30,90 32,80 C22,84 14,76 20,68 C10,68 6,58 15,54 C6,50 8,40 17,40 C10,34 14,24 24,28 C22,18 32,14 39,20 C40,10 45,6 50,3 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-blot, .hzm-md-halo.hzm-md-shape-blot{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M52,5 C74,3 93,18 93,40 C93,60 82,80 60,88 C40,95 20,90 11,72 C3,56 6,34 16,22 C26,10 38,6 52,5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M52,5 C74,3 93,18 93,40 C93,60 82,80 60,88 C40,95 20,90 11,72 C3,56 6,34 16,22 C26,10 38,6 52,5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-oil, .hzm-md-halo.hzm-md-shape-oil{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,20 C64,16 79,23 81,39 C83,53 75,68 59,73 C45,77 28,73 22,59 C16,46 21,29 36,23 C41,21 46,21 50,20 Z M87,20 C91,19 94,23 92,27 C90,30 85,29 84,25 C83,22 85,21 87,20 Z M15,80 C19,78 24,82 22,86 C20,89 14,88 13,84 C12,81 13,80 15,80 Z M80,82 C83,81 86,84 84,87 C82,89 78,88 77,85 C76,83 78,82 80,82 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,20 C64,16 79,23 81,39 C83,53 75,68 59,73 C45,77 28,73 22,59 C16,46 21,29 36,23 C41,21 46,21 50,20 Z M87,20 C91,19 94,23 92,27 C90,30 85,29 84,25 C83,22 85,21 87,20 Z M15,80 C19,78 24,82 22,86 C20,89 14,88 13,84 C12,81 13,80 15,80 Z M80,82 C83,81 86,84 84,87 C82,89 78,88 77,85 C76,83 78,82 80,82 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-bloba, .hzm-md-halo.hzm-md-shape-bloba{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M46,4 C60,2 66,12 78,10 C90,8 94,22 88,30 C98,34 96,50 86,54 C94,64 84,78 72,74 C70,86 54,90 48,80 C36,88 22,84 24,72 C12,74 6,60 16,54 C6,48 8,32 20,32 C16,20 28,10 40,16 C42,8 44,5 46,4 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M46,4 C60,2 66,12 78,10 C90,8 94,22 88,30 C98,34 96,50 86,54 C94,64 84,78 72,74 C70,86 54,90 48,80 C36,88 22,84 24,72 C12,74 6,60 16,54 C6,48 8,32 20,32 C16,20 28,10 40,16 C42,8 44,5 46,4 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-orga4, .hzm-md-halo.hzm-md-shape-orga4{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M42,8 C50,2 60,4 64,12 C76,8 86,16 84,28 C94,32 96,46 86,52 C94,62 88,76 76,74 C72,86 58,90 50,82 C40,92 24,88 24,76 C10,76 6,62 16,54 C6,44 12,28 26,28 C28,14 34,8 42,8 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M42,8 C50,2 60,4 64,12 C76,8 86,16 84,28 C94,32 96,46 86,52 C94,62 88,76 76,74 C72,86 58,90 50,82 C40,92 24,88 24,76 C10,76 6,62 16,54 C6,44 12,28 26,28 C28,14 34,8 42,8 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-petal, .hzm-md-halo.hzm-md-shape-petal{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M8,8 C40,0 96,4 96,4 C100,60 92,92 92,92 C60,100 4,96 4,96 C0,40 8,8 8,8 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M8,8 C40,0 96,4 96,4 C100,60 92,92 92,92 C60,100 4,96 4,96 C0,40 8,8 8,8 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-drip, .hzm-md-halo.hzm-md-shape-drip{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,5 C51,5 62,26 70,42 C75,52 78,58 78,66 C78,82 66,95 50,95 C34,95 22,82 22,66 C22,58 25,52 30,42 C38,26 49,5 50,5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,5 C51,5 62,26 70,42 C75,52 78,58 78,66 C78,82 66,95 50,95 C34,95 22,82 22,66 C22,58 25,52 30,42 C38,26 49,5 50,5 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-wave, .hzm-md-halo.hzm-md-shape-wave{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0,0 H100 V78 C82,96 64,66 46,80 C30,92 14,78 0,82 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0,0 H100 V78 C82,96 64,66 46,80 C30,92 14,78 0,82 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-star, .hzm-md-halo.hzm-md-shape-star{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,6 L69,25 L94,37 L80,60 L77,86 L50,80 L23,86 L20,60 L6,37 L31,25 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50,6 L69,25 L94,37 L80,60 L77,86 L50,80 L23,86 L20,60 L6,37 L31,25 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-ellipse, .hzm-md-halo.hzm-md-shape-ellipse{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cellipse cx='50' cy='50' rx='49' ry='49' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cellipse cx='50' cy='50' rx='49' ry='49' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.hzm-md-imgwrap.hzm-md-shape-torn, .hzm-md-halo.hzm-md-shape-torn{ border-radius:0; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M3,4 L12,2 L22,5 L33,1 L44,4 L55,2 L66,5 L77,2 L88,4 L97,3 L96,13 L99,24 L96,35 L98,46 L96,57 L99,68 L96,79 L98,90 L97,97 L88,96 L77,99 L66,95 L55,98 L44,95 L33,99 L22,96 L12,98 L3,97 L4,88 L1,77 L4,66 L2,55 L4,44 L1,33 L4,22 L2,12 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M3,4 L12,2 L22,5 L33,1 L44,4 L55,2 L66,5 L77,2 L88,4 L97,3 L96,13 L99,24 L96,35 L98,46 L96,57 L99,68 L96,79 L98,90 L97,97 L88,96 L77,99 L66,95 L55,98 L44,95 L33,99 L22,96 L12,98 L3,97 L4,88 L1,77 L4,66 L2,55 L4,44 L1,33 L4,22 L2,12 Z' fill='%23fff'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }

/* ---- contour / halo (masques) ---- */
.hzm-md-halo{ position:absolute; inset:0; z-index:0; }
.hzm-md-ismask .hzm-md-crisp{
	position:relative; z-index:1;
	-webkit-mask-size:calc(100% - 2*var(--hzm-md-halo,14px)) calc(100% - 2*var(--hzm-md-halo,14px)) !important;
	mask-size:calc(100% - 2*var(--hzm-md-halo,14px)) calc(100% - 2*var(--hzm-md-halo,14px)) !important;
}
.hzm-md-halomulti{ background-size:300% 100% !important; animation:hzm-md-flow 6s linear infinite; }
.hzm-md-halosoft{ filter:blur(var(--hzm-md-halosoft,8px)); }
/* animations néon */
.hzm-md-anim-pulse.hzm-md-ef-neon .hzm-md-stage{ animation:hzm-md-neonpulse 1.7s ease-in-out infinite; }
.hzm-md-anim-glow.hzm-md-ef-neon  .hzm-md-stage{ animation:hzm-md-neonglow 3.2s ease-in-out infinite; }
@keyframes hzm-md-neonpulse{ 0%,100%{ filter:drop-shadow(0 0 calc(var(--hzm-md-shsz)*.35) var(--hzm-md-shc,#8224E3)); } 50%{ filter:drop-shadow(0 0 var(--hzm-md-shsz) var(--hzm-md-shc,#8224E3)) drop-shadow(0 0 calc(var(--hzm-md-shsz)*1.5) var(--hzm-md-shc,#8224E3)); } }
@keyframes hzm-md-neonglow{ 0%,100%{ filter:drop-shadow(0 0 calc(var(--hzm-md-shsz)*.6) var(--hzm-md-shc,#8224E3)); } 50%{ filter:drop-shadow(0 0 calc(var(--hzm-md-shsz)*1.2) var(--hzm-md-shc,#8224E3)); } }

/* ---- bordure & contour + effets ---- */
/* bordure unie (forme non découpée) : anneau qui suit le rayon */
.hzm-md-bd-solid:not(.hzm-md-ismask) .hzm-md-imgwrap{ box-shadow:0 0 0 var(--hzm-md-bd) var(--hzm-md-bdc,#0072FF); }
/* contour détaché */
.hzm-md-bd-outline:not(.hzm-md-ismask) .hzm-md-imgwrap{ box-shadow:0 0 0 3px #fff, 0 0 0 calc(3px + var(--hzm-md-bd)) var(--hzm-md-bdc,#0072FF); }
/* cadre dégradé/multicolore (forme non découpée) */
.hzm-md-frame{ display:block; padding:var(--hzm-md-bd); border-radius:var(--hzm-md-radius); line-height:0; }
.hzm-md-frame .hzm-md-imgwrap{ border-radius:calc(var(--hzm-md-radius) - var(--hzm-md-bd)); }
.hzm-md-shape-circle .hzm-md-frame{ border-radius:50%; }
.hzm-md-shape-circle .hzm-md-frame .hzm-md-imgwrap{ border-radius:50%; }
.hzm-md-frame-anim{ background-size:300% 100% !important; animation:hzm-md-flow 6s linear infinite; }
@keyframes hzm-md-flow{ to{ background-position:300% 0; } }
/* ombres / néon (universel : drop-shadow suit forme et masque) */
.hzm-md-ef-shadow .hzm-md-stage{ filter:drop-shadow(0 14px 26px var(--hzm-md-shc,rgba(20,20,60,.30))); }
.hzm-md-ef-shadow3d .hzm-md-stage{ filter:drop-shadow(5px 5px 0 var(--hzm-md-shc,#0072FF)) drop-shadow(10px 10px 0 rgba(130,36,227,.45)); }
.hzm-md-ef-neon .hzm-md-stage{ filter:drop-shadow(0 0 var(--hzm-md-shsz) var(--hzm-md-shc,#8224E3)) drop-shadow(0 0 calc(var(--hzm-md-shsz)/2) var(--hzm-md-shc,#8224E3)); }

/* ---- hauteur fixe ---- */
.hzm-md-hash .hzm-md-imgwrap{ height:var(--hzm-md-h); }
.hzm-md-hash .hzm-md-imgwrap img{ height:100%; width:100%; object-fit:cover; }
.hzm-md-hash.hzm-md-fit-contain .hzm-md-imgwrap img{ object-fit:contain; }
.hzm-md-hpct .hzm-md-imgwrap{ aspect-ratio:var(--hzm-md-ar); height:auto; }
.hzm-md-hpct .hzm-md-imgwrap img{ width:100%; height:100%; object-fit:cover; }
.hzm-md-hpct.hzm-md-fit-contain .hzm-md-imgwrap img{ object-fit:contain; }

/* ---- filtres ---- */
.hzm-md-fx-gray     .hzm-md-imgwrap img{ filter:grayscale(1); }
.hzm-md-fx-sepia    .hzm-md-imgwrap img{ filter:sepia(.7); }
.hzm-md-fx-bright   .hzm-md-imgwrap img{ filter:brightness(1.12) saturate(1.1); }
.hzm-md-fx-contrast .hzm-md-imgwrap img{ filter:contrast(1.2) saturate(1.15); }
.hzm-md-fx-blur     .hzm-md-imgwrap img{ filter:blur(1.5px); }
.hzm-md-fx-noir     .hzm-md-imgwrap img{ filter:grayscale(1) contrast(1.4) brightness(.95); }
.hzm-md-fx-vintage  .hzm-md-imgwrap img{ filter:sepia(.35) contrast(1.08) saturate(1.25) brightness(1.05); }
.hzm-md-fx-oldfilm  .hzm-md-imgwrap img{ filter:sepia(.5) grayscale(.3) contrast(1.3) brightness(.92); }
.hzm-md-fx-warm     .hzm-md-imgwrap img{ filter:sepia(.2) saturate(1.3) brightness(1.05) hue-rotate(-8deg); }
.hzm-md-fx-cold     .hzm-md-imgwrap img{ filter:saturate(1.1) brightness(1.05) hue-rotate(12deg); }
.hzm-md-fx-vivid    .hzm-md-imgwrap img{ filter:saturate(1.6) contrast(1.15); }
.hzm-md-fx-fade     .hzm-md-imgwrap img{ filter:contrast(.85) saturate(.65) brightness(1.1); }
.hzm-md-fx-dramatic .hzm-md-imgwrap img{ filter:contrast(1.45) saturate(1.2) brightness(.92); }
/* vignette pour vieux film / vintage */
.hzm-md-fx-oldfilm .hzm-md-imgwrap::before, .hzm-md-fx-vintage .hzm-md-imgwrap::before{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.45) 100%); }

/* ---- voile ---- */
.hzm-md-ov{ position:absolute; inset:0; pointer-events:none; }

/* ---- survol ---- */
.hzm-md-hov-zoom:hover    .hzm-md-imgwrap img{ transform:scale(var(--hzm-md-hzoom,1.08)); }
.hzm-md-hov-zoomout       .hzm-md-imgwrap img{ transform:scale(var(--hzm-md-hzoom,1.12)); }
.hzm-md-hov-zoomout:hover .hzm-md-imgwrap img{ transform:scale(1); }
.hzm-md-hov-g2c           .hzm-md-imgwrap img{ filter:grayscale(1); }
.hzm-md-hov-g2c:hover     .hzm-md-imgwrap img{ filter:grayscale(0); }
.hzm-md-hov-c2g:hover     .hzm-md-imgwrap img{ filter:grayscale(1); }
.hzm-md-hov-slide:hover   .hzm-md-imgwrap img{ transform:translateY(-8px) scale(1.03); }
.hzm-md-hov-tilt          .hzm-md-imgwrap{ transition:transform var(--hzm-md-hspeed) ease; }
.hzm-md-hov-tilt:hover    .hzm-md-imgwrap{ transform:perspective(700px) rotateX(4deg) rotateY(-4deg); }
.hzm-md-hov-overlay .hzm-md-imgwrap::after{ content:""; position:absolute; inset:0; background:var(--hzm-md-hovc,rgba(20,20,60,.4)); opacity:0; transition:opacity var(--hzm-md-hspeed) ease; }
.hzm-md-hov-overlay:hover .hzm-md-imgwrap::after{ opacity:1; }
.hzm-md-hov-rotate:hover   .hzm-md-imgwrap img{ transform:scale(var(--hzm-md-hzoom,1.08)) rotate(2deg); }
.hzm-md-hov-pan:hover      .hzm-md-imgwrap img{ transform:scale(var(--hzm-md-hzoom,1.12)) translateX(-4%); }
.hzm-md-hov-brighten:hover .hzm-md-imgwrap img{ filter:brightness(1.18) saturate(1.12); }
.hzm-md-hov-blur:hover     .hzm-md-imgwrap img{ filter:blur(3px); }
.hzm-md-hov-shine .hzm-md-imgwrap::after{ content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; z-index:3; pointer-events:none; background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent); transform:skewX(-20deg); opacity:0; }
.hzm-md-hov-shine:hover .hzm-md-imgwrap::after{ animation:hzm-md-shine .85s ease; }
@keyframes hzm-md-shine{ 0%{ left:-60%; opacity:0; } 18%{ opacity:1; } 100%{ left:130%; opacity:0; } }

/* ---- légende ---- */
.hzm-md-cap{ margin:0; line-height:1.45; color:#3a3a52; }
.hzm-md-cap-in{ display:block; border-radius:8px; }
.hzm-md-cap .hzm-md-cap-t{ display:block; font-weight:700; margin-bottom:2px; }
.hzm-md-cap p{ margin:0 0 .4em; }
.hzm-md-cap p:last-child{ margin:0; }
.hzm-md-cap-btn{ display:inline-block; margin-top:8px; padding:7px 14px; border-radius:6px; background:#0072FF; color:#fff; font-weight:600; text-decoration:none !important; font-size:.92em; }
.hzm-md-cap-btn:hover, .hzm-md-cap-btn:focus{ text-decoration:none !important; }
.hzm-md-cap-btn{ transition:transform .2s ease, filter .2s ease, background .2s ease; }
.hzm-md-cap-btn-darken:hover{ filter:brightness(.86); }
.hzm-md-cap-btn-lift:hover{ transform:translateY(-2px); }
.hzm-md-cap-btn-grow:hover{ transform:scale(1.06); }
.hzm-md-cap-below{ margin-top:10px; }
/* légende sur l'image : bloc positionné */
.hzm-md-cap-over, .hzm-md-cap-reveal, .hzm-md-cap-swap{ position:absolute; z-index:3; --hzm-md-capm:12px; max-width:calc(100% - 2 * var(--hzm-md-capm,12px)); }
.hzm-md-cap-pos-tl{ top:var(--hzm-md-capm); left:var(--hzm-md-capm); }
.hzm-md-cap-pos-tc{ top:var(--hzm-md-capm); left:50%; transform:translateX(-50%); }
.hzm-md-cap-pos-tr{ top:var(--hzm-md-capm); right:var(--hzm-md-capm); }
.hzm-md-cap-pos-ml{ top:50%; left:var(--hzm-md-capm); transform:translateY(-50%); }
.hzm-md-cap-pos-mc{ top:50%; left:50%; transform:translate(-50%,-50%); }
.hzm-md-cap-pos-mr{ top:50%; right:var(--hzm-md-capm); transform:translateY(-50%); }
.hzm-md-cap-pos-bl{ bottom:var(--hzm-md-capm); left:var(--hzm-md-capm); }
.hzm-md-cap-pos-bc{ bottom:var(--hzm-md-capm); left:50%; transform:translateX(-50%); }
.hzm-md-cap-pos-br{ bottom:var(--hzm-md-capm); right:var(--hzm-md-capm); }
/* révélée au survol (anim portée par cap-in pour préserver le centrage) */
.hzm-md-cap-reveal .hzm-md-cap-in{ opacity:0; transition:opacity .32s ease, transform .32s ease; }
.hzm-md-fig:hover .hzm-md-cap-reveal .hzm-md-cap-in{ opacity:1; transform:none; }
.hzm-md-capanim-up .hzm-md-cap-in{ transform:translateY(16px); }
.hzm-md-capanim-down .hzm-md-cap-in{ transform:translateY(-16px); }
.hzm-md-capanim-zoom .hzm-md-cap-in{ transform:scale(.9); }
/* change au survol */
.hzm-md-cap-swap .hzm-md-cap-alt{ position:absolute; top:0; left:0; right:0; opacity:0; transition:opacity .3s ease; }
.hzm-md-cap-swap .hzm-md-cap-main{ transition:opacity .3s ease; }
.hzm-md-fig:hover .hzm-md-cap-swap .hzm-md-cap-main{ opacity:0; }
.hzm-md-fig:hover .hzm-md-cap-swap .hzm-md-cap-alt{ opacity:1; }

.hzm-md-lb{ display:block; cursor:zoom-in; }

/* =============================================================================
   GALERIE
   ========================================================================== */
.hzm-md-gal{ --hzm-md-cols:3; --hzm-md-gap:10px; --hzm-md-gradius:8px; text-align:left; }
.hzm-md-gitem{ margin:0; position:relative; overflow:hidden; border-radius:var(--hzm-md-gradius); }
.hzm-md-gitem img{ border-radius:0 !important; }
.hzm-md-gitem img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease, filter .45s ease; }
.hzm-md-gitem a, .hzm-md-gitem .hzm-md-cell{ display:block; position:relative; line-height:0; height:100%; }

/* grille */
.hzm-md-gal-grid .hzm-md-galtrack{
	display:grid; gap:var(--hzm-md-gap);
	grid-template-columns:repeat(var(--hzm-md-cols),1fr);
}
.hzm-md-gal-grid.hzm-md-r-1-1  .hzm-md-gitem{ aspect-ratio:1/1; }
.hzm-md-gal-grid.hzm-md-r-4-3  .hzm-md-gitem{ aspect-ratio:4/3; }
.hzm-md-gal-grid.hzm-md-r-16-9 .hzm-md-gitem{ aspect-ratio:16/9; }
.hzm-md-gal-grid.hzm-md-r-3-4  .hzm-md-gitem{ aspect-ratio:3/4; }

/* mosaïque (maçonnerie CSS) */
.hzm-md-gal-masonry .hzm-md-galtrack{
	column-count:var(--hzm-md-cols); column-gap:var(--hzm-md-gap);
}
.hzm-md-gal-masonry .hzm-md-gitem{ break-inside:avoid; margin-bottom:var(--hzm-md-gap); }

/* justifiée */
.hzm-md-gal-justified .hzm-md-galtrack{ display:flex; flex-wrap:wrap; gap:var(--hzm-md-gap); }
.hzm-md-gal-justified .hzm-md-gitem{ height:var(--hzm-md-rowh,220px); flex:1 1 auto; }
.hzm-md-gal-justified .hzm-md-gitem img{ height:100%; width:100%; }

/* carrousel */
.hzm-md-gal-carousel{ position:relative; }
.hzm-md-caro-vp{ position:relative; }
.hzm-md-gal-carousel .hzm-md-galtrack{
	display:flex; gap:var(--hzm-md-gap); overflow-x:auto; scroll-snap-type:x mandatory;
	scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.hzm-md-gal-carousel .hzm-md-galtrack::-webkit-scrollbar{ display:none; }
.hzm-md-caro-bar .hzm-md-galtrack{ scrollbar-width:thin; padding-bottom:6px; }
.hzm-md-caro-bar .hzm-md-galtrack::-webkit-scrollbar{ display:block; height:6px; }
.hzm-md-caro-bar .hzm-md-galtrack::-webkit-scrollbar-thumb{ background:var(--caro-dot-ac,#0072FF); border-radius:6px; }
.hzm-md-gal-carousel .hzm-md-gitem{
	flex:0 0 calc((100% - (var(--hzm-md-cols) - 1) * var(--hzm-md-gap)) / var(--hzm-md-cols));
	scroll-snap-align:start; aspect-ratio:4/3;
}
.hzm-md-arw{
	position:absolute; top:50%; transform:translateY(-50%); z-index:3;
	width:42px !important; height:42px !important; min-width:0; padding:0; box-sizing:border-box; line-height:1;
	border:0; border-radius:50%; cursor:pointer;
	background:var(--caro-arr-bg,rgba(255,255,255,.92)); color:var(--caro-arr-c,#14143c);
	box-shadow:0 4px 14px rgba(0,0,0,.18); display:flex; align-items:center; justify-content:center;
}
.hzm-md-arw-i{ font-size:24px; line-height:1; }
/* Les fleches se posaient sur l'image, a huit pixels du bord interieur. Le
   cadre du carrousel reserve maintenant leur largeur de chaque cote : la
   piste s'y inscrit, et les fleches tombent a l'exterieur des vignettes.
   Sous 700 px, la place manque et elles reviennent par-dessus l'image. */
.hzm-md-gal-carousel .hzm-md-caro-vp{ padding-left:54px; padding-right:54px; }
.hzm-md-prev2{ left:0; } .hzm-md-next2{ right:0; }
@media (max-width:700px){
	.hzm-md-gal-carousel .hzm-md-caro-vp{ padding-left:0; padding-right:0; }
	.hzm-md-prev2{ left:8px; } .hzm-md-next2{ right:8px; }
}
.hzm-md-dots{ display:flex; justify-content:center; gap:8px; margin-top:14px; }
.hzm-md-dot{ width:9px; height:9px; padding:0; border:0; border-radius:50%; background:var(--caro-dot-c,#c9c9db); cursor:pointer; transition:background .2s ease, width .2s ease; }
.hzm-md-dot.is-active{ background:var(--caro-dot-ac,#0072FF); width:22px; border-radius:5px; }

/* survol vignette */
.hzm-md-gov{ position:absolute; inset:0; background:var(--hzm-md-govc,rgba(20,20,60,.35)); opacity:0; transition:opacity .3s ease; }
.hzm-md-ghov-zoom  .hzm-md-gitem:hover img{ transform:scale(1.1); }
.hzm-md-ghov-overlay .hzm-md-gitem:hover .hzm-md-gov{ opacity:1; }
.hzm-md-ghov-g2c   .hzm-md-gitem img{ filter:grayscale(1); }
.hzm-md-ghov-g2c   .hzm-md-gitem:hover img{ filter:grayscale(0); }
.hzm-md-zoom{ position:absolute; inset:0; margin:auto; width:44px; height:44px; opacity:0; transition:opacity .3s ease; pointer-events:none; }
.hzm-md-zoom::before{ content:""; position:absolute; inset:0; margin:auto; width:16px; height:16px; border:2px solid #fff; border-radius:50%; }
.hzm-md-zoom::after{ content:""; position:absolute; right:12px; bottom:12px; width:8px; height:2px; background:#fff; transform:rotate(45deg); }
.hzm-md-gitem:hover .hzm-md-zoom{ opacity:1; }
.hzm-md-ghc{ position:absolute; left:0; right:0; box-sizing:border-box; color:var(--ghc-tc,#fff); padding:12px 14px; opacity:0; pointer-events:none; transition:opacity .32s ease, transform .32s ease; z-index:3; }
.hzm-md-ghc-t{ display:block; font-size:var(--ghc-ts,15px); font-weight:700; line-height:1.25; }
.hzm-md-ghc-d{ display:block; font-size:var(--ghc-ds,12px); margin-top:4px; line-height:1.4; opacity:.9; }
.hzm-md-ghc-slideup .hzm-md-ghc{ bottom:0; background:var(--ghc-bg,linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.15),transparent)); transform:translateY(100%); }
.hzm-md-ghc-slideup .hzm-md-gitem:hover .hzm-md-ghc{ transform:translateY(0); opacity:1; }
.hzm-md-ghc-banner .hzm-md-ghc{ bottom:0; background:var(--ghc-bg,rgba(0,0,0,.62)); }
.hzm-md-ghc-banner .hzm-md-gitem:hover .hzm-md-ghc{ opacity:1; }
.hzm-md-ghc-fade .hzm-md-ghc{ inset:0; display:flex; flex-direction:column; justify-content:flex-end; background:var(--ghc-bg,rgba(12,10,35,.6)); }
.hzm-md-ghc-fade .hzm-md-gitem:hover .hzm-md-ghc{ opacity:1; }
.hzm-md-ghc-center .hzm-md-ghc{ inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:var(--ghc-bg,rgba(12,10,35,.6)); }
.hzm-md-ghc-center .hzm-md-gitem:hover .hzm-md-ghc{ opacity:1; }

/* responsive colonnes */
@media(max-width:1024px){
	.hzm-md-gal-grid .hzm-md-galtrack{ grid-template-columns:repeat(var(--hzm-md-cols-t),1fr); }
	.hzm-md-gal-masonry .hzm-md-galtrack{ column-count:var(--hzm-md-cols-t); }
}
@media(max-width:600px){
	.hzm-md-gal-grid .hzm-md-galtrack{ grid-template-columns:repeat(var(--hzm-md-cols-m),1fr); }
	.hzm-md-gal-masonry .hzm-md-galtrack{ column-count:var(--hzm-md-cols-m); }
}

/* =============================================================================
   VIDÉO
   ========================================================================== */
.hzm-md-video{ position:relative; display:block; width:100%; max-width:var(--hzm-md-vmaxw,960px); margin:0 auto; text-align:left; }
/* Le wrapper externe partage la classe de type hzm-md-video : on annule le max-width dessus, seul l'élément vidéo interne le porte. */
.hzm-md.hzm-md-video{ max-width:none; width:100%; margin:0; }
.hzm-md-vframe, .hzm-md-poster{ position:relative; width:100%; overflow:hidden; border-radius:var(--hzm-md-vradius,12px); }
.hzm-md-r-16-9 .hzm-md-vframe, .hzm-md-r-16-9 .hzm-md-poster{ aspect-ratio:16/9; }
.hzm-md-r-4-3  .hzm-md-vframe, .hzm-md-r-4-3  .hzm-md-poster{ aspect-ratio:4/3; }
.hzm-md-r-21-9 .hzm-md-vframe, .hzm-md-r-21-9 .hzm-md-poster{ aspect-ratio:21/9; }
.hzm-md-r-1-1  .hzm-md-vframe, .hzm-md-r-1-1  .hzm-md-poster{ aspect-ratio:1/1; }
.hzm-md-vframe iframe, .hzm-md-vframe video{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.hzm-md-vsh-soft{ box-shadow:0 8px 22px rgba(20,20,60,.14); }
.hzm-md-vsh-medium{ box-shadow:0 16px 40px rgba(20,20,60,.2); }
.hzm-md-vsh-strong{ box-shadow:0 28px 64px rgba(20,20,60,.3); }

.hzm-md-vlb .hzm-md-vpop{ display:block; position:relative; cursor:pointer; }
.hzm-md-poster img{ width:100%; height:100%; object-fit:cover; }
.hzm-md-vauto .hzm-md-poster{ aspect-ratio:auto; }
.hzm-md-vauto .hzm-md-poster img{ position:static; height:auto !important; object-fit:contain; }
.hzm-md-noposter{ display:block; width:100%; height:100%; background:linear-gradient(135deg,#1a1030,#3a1d6e); }
.hzm-md-vov{ position:absolute; inset:0; }
.hzm-md-vov-dark{ background:rgba(10,8,25,.4); }
.hzm-md-vov-grad{ background:linear-gradient(135deg,rgba(0,114,255,.35),rgba(130,0,244,.35)); }

/* bouton play */
.hzm-md-play{
	position:absolute; inset:0; margin:auto; z-index:2;
	width:var(--hzm-md-vbtnsize,72px); height:var(--hzm-md-vbtnsize,72px);
	display:flex; align-items:center; justify-content:center;
	background:var(--hzm-md-vbtnc,rgba(255,255,255,.92)); color:var(--hzm-md-vbtnico,#14143c);
	box-shadow:0 8px 24px rgba(0,0,0,.25);
}
.hzm-md-play-circle{ border-radius:50%; }
.hzm-md-play-rounded{ border-radius:18px; }
.hzm-md-play-square{ border-radius:6px; }
.hzm-md-play-minimal{ background:transparent; box-shadow:none; color:#fff; }
.hzm-md-play-ico{ width:0; height:0; margin-left:4px; border-style:solid; border-width:11px 0 11px 18px; border-color:transparent transparent transparent currentColor; }
.hzm-md-panim-pulse{ animation:hzm-md-pulse 2s ease-out infinite; }
.hzm-md-panim-ring::after{ content:""; position:absolute; inset:-8px; border:2px solid var(--hzm-md-vbtnc,#fff); border-radius:inherit; animation:hzm-md-ring 1.8s ease-out infinite; }
@keyframes hzm-md-pulse{ 0%{ box-shadow:0 8px 24px rgba(0,0,0,.25),0 0 0 0 rgba(255,255,255,.5); } 100%{ box-shadow:0 8px 24px rgba(0,0,0,.25),0 0 0 22px rgba(255,255,255,0); } }
@keyframes hzm-md-ring{ 0%{ transform:scale(1); opacity:.8; } 100%{ transform:scale(1.5); opacity:0; } }

/* =============================================================================
   LOTTIE
   ========================================================================== */
.hzm-md-lottie{ display:inline-block; max-width:100%; }
.hzm-md-lsh-soft{ filter:drop-shadow(0 8px 18px rgba(20,20,60,.14)); }
.hzm-md-lsh-medium{ filter:drop-shadow(0 16px 34px rgba(20,20,60,.2)); }

/* =============================================================================
   LIGHTBOX (maison, sans dépendance) — partagée Image / Galerie / Vidéo
   ========================================================================== */
.hzm-md-lbx{
	position:fixed; inset:0; z-index:100000; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
	background:rgba(8,7,20,.92); opacity:0; visibility:hidden; transition:opacity .25s ease;
	padding:64px 84px;
}
.hzm-md-lbx.is-open{ opacity:1; visibility:visible; }
.hzm-md-lbx-stage{ position:relative; max-width:88vw; display:flex; flex-direction:column; align-items:center; }
.hzm-md-lbx-media{ display:flex; max-width:88vw; }
.hzm-md-lbx-media img{ max-width:88vw; max-height:74vh; display:block; border-radius:6px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.hzm-md-lbx-media{ cursor:zoom-in; }
.hzm-md-lbx-media img{ transition:transform .2s ease; }
.hzm-md-lbx-media.is-zoomed{ cursor:zoom-out; overflow:hidden; }
.hzm-md-lbx-media.is-zoomed img{ transition:none; will-change:transform; }
.hzm-md-lbx-media .hzm-md-lbx-video{ width:min(88vw,1100px); aspect-ratio:16/9; }
.hzm-md-lbx-media .hzm-md-lbx-video iframe, .hzm-md-lbx-media .hzm-md-lbx-video video{ width:100%; height:100%; border:0; border-radius:6px; }
.hzm-md-lbx-cap{ max-width:88vw; margin-top:12px; color:#e9e9f2; text-align:center; font-family:Arial,sans-serif; }
.hzm-md-lbx-cap .hzm-md-lbx-t{ display:block; font-size:var(--lbcap-ts,20px); font-weight:700; }
.hzm-md-lbx-cap .hzm-md-lbx-d{ display:block; font-size:var(--lbcap-ds,15px); color:#c9c9d6; margin-top:6px; line-height:1.5; max-height:22vh; overflow:auto; }
.hzm-md-lbx-cap.is-banner{ position:absolute; margin:0; z-index:3; text-align:left; max-width:min(72%,560px); padding:var(--lbcap-pad,10px 14px); border-radius:var(--lbcap-rad,8px); background:var(--lbcap-bg,rgba(0,0,0,.6)); color:var(--lbcap-tc,#fff); }
.hzm-md-lbx-cap.is-banner .hzm-md-lbx-d{ color:inherit; opacity:.85; max-height:14vh; }
.hzm-md-lbx-cap.is-banner.p-bl{ left:var(--lbcap-m,16px); bottom:var(--lbcap-m,16px); }
.hzm-md-lbx-cap.is-banner.p-br{ right:var(--lbcap-m,16px); bottom:var(--lbcap-m,16px); }
.hzm-md-lbx-cap.is-banner.p-tl{ left:var(--lbcap-m,16px); top:var(--lbcap-m,16px); }
.hzm-md-lbx-cap.is-banner.p-tr{ right:var(--lbcap-m,16px); top:var(--lbcap-m,16px); }
.hzm-md-lbx-thumbs{ display:flex; gap:8px; max-width:88vw; overflow-x:auto; padding:4px 2px; scrollbar-width:none; }
.hzm-md-lbx-thumbs::-webkit-scrollbar{ display:none; }
.hzm-md-lbx-th{ flex:0 0 auto; width:66px; height:46px; padding:0; border:2px solid transparent; border-radius:5px; overflow:hidden; cursor:pointer; background:none; opacity:.5; transition:opacity .2s ease, border-color .2s ease; }
.hzm-md-lbx-th img{ width:100%; height:100%; object-fit:cover; display:block; }
.hzm-md-lbx-th:hover{ opacity:.85; }
.hzm-md-lbx-th.is-active{ opacity:1; border-color:#fff; }
.hzm-md-lbx-count{ position:absolute; top:20px; left:50%; transform:translateX(-50%); color:#b9b9cc; font-size:13px; font-family:Arial,sans-serif; }
.hzm-md-lbx-close, .hzm-md-lbx-nav{
	position:absolute; border:0; cursor:pointer; background:rgba(255,255,255,.12); color:#fff;
	width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center;
	box-sizing:border-box; transition:background .2s ease; z-index:4;
}
.hzm-md-lbx-close:hover, .hzm-md-lbx-nav:hover{ background:rgba(255,255,255,.24); }
.hzm-md-lbx-close{ top:18px; right:18px; font-size:20px; line-height:1; }
.hzm-md-lbx-nav{ top:50%; transform:translateY(-50%); }
.hzm-md-lbx-ar{ font-size:30px; line-height:1; font-weight:400; color:#fff; }
.hzm-md-lbx-prev{ left:18px; } .hzm-md-lbx-next{ right:18px; }
@media(max-width:600px){ .hzm-md-lbx-nav{ width:36px; height:36px; } .hzm-md-lbx{ padding:14px; } .hzm-md-lbx-prev{ left:8px; } .hzm-md-lbx-next{ right:8px; } }

/* ===== Avant/Après (compare) ===== */
.hzm-md-cmp{ position:relative; width:100%; max-width:100%; height:var(--hzm-c-h,400px); border-radius:var(--hzm-c-rad,10px); overflow:hidden; user-select:none; touch-action:none; background:#e9edf5; }
@media(max-width:600px){ .hzm-md-cmp[style*="--hzm-c-hm"]{ height:var(--hzm-c-hm); } }
.hzm-md-cmp img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hzm-md-cmp-before{ position:absolute; inset:0; }
.hzm-md-cmp-horizontal .hzm-md-cmp-before{ clip-path:inset(0 calc(100% - var(--hzm-c-pos,50%)) 0 0); }
.hzm-md-cmp-vertical .hzm-md-cmp-before{ clip-path:inset(0 0 calc(100% - var(--hzm-c-pos,50%)) 0); }
.hzm-md-cmp-bar{ position:absolute; background:var(--hzm-c-barc,#fff); z-index:3; pointer-events:none; }
.hzm-md-cmp-horizontal .hzm-md-cmp-bar{ top:0; bottom:0; left:var(--hzm-c-pos,50%); width:var(--hzm-c-barw,3px); transform:translateX(-50%); }
.hzm-md-cmp-vertical .hzm-md-cmp-bar{ left:0; right:0; top:var(--hzm-c-pos,50%); height:var(--hzm-c-barw,3px); transform:translateY(-50%); }
.hzm-md-cmp-handle{ position:absolute; z-index:4; width:var(--hzm-c-handsz,44px); height:var(--hzm-c-handsz,44px); border-radius:50%; background:var(--hzm-c-handbg,#fff); color:var(--hzm-c-handic,#0072FF); display:flex; align-items:center; justify-content:center; }
.hzm-md-cmp-horizontal .hzm-md-cmp-handle{ top:50%; left:var(--hzm-c-pos,50%); transform:translate(-50%,-50%); cursor:ew-resize; }
.hzm-md-cmp-vertical .hzm-md-cmp-handle{ left:50%; top:var(--hzm-c-pos,50%); transform:translate(-50%,-50%); cursor:ns-resize; }
.hzm-md-cmp-vertical .hzm-md-cmp-ico{ transform:rotate(90deg); }
.hzm-md-cmp-handle:focus{ outline:2px solid var(--hzm-c-handic,#0072FF); outline-offset:2px; }
.hzm-md-chand-soft   .hzm-md-cmp-handle{ box-shadow:0 2px 6px rgba(0,0,0,.2); }
.hzm-md-chand-medium .hzm-md-cmp-handle{ box-shadow:0 3px 10px rgba(0,0,0,.3); }
.hzm-md-chand-strong .hzm-md-cmp-handle{ box-shadow:0 5px 16px rgba(0,0,0,.45); }
.hzm-md-csh-soft{ box-shadow:0 6px 18px rgba(0,0,0,.15); }
.hzm-md-csh-medium{ box-shadow:0 10px 28px rgba(0,0,0,.22); }
.hzm-md-csh-strong{ box-shadow:0 16px 40px rgba(0,0,0,.32); }
.hzm-md-cmp-lbl{ position:absolute; z-index:5; line-height:1.2; pointer-events:none; white-space:nowrap; }
.hzm-md-cmp-p-tl{ top:14px; left:14px; }
.hzm-md-cmp-p-tr{ top:14px; right:14px; }
.hzm-md-cmp-p-bl{ bottom:14px; left:14px; }
.hzm-md-cmp-p-br{ bottom:14px; right:14px; }
.hzm-md-empty{ padding:24px; text-align:center; color:#7a7a90; background:#f2f4f9; border-radius:10px; font-size:14px; }
/* bordure Avant/Après */
.hzm-md-cmp-bd-solid, .hzm-md-cmp-bd-grad, .hzm-md-cmp-bd-anim{ border:var(--hzm-c-bdw,4px) solid transparent; }
.hzm-md-cmp-bd-solid{ border-color:var(--hzm-c-bdc,#0072FF); }
.hzm-md-cmp-bd-grad{ background-image:linear-gradient(#0000,#0000), linear-gradient(120deg,var(--hzm-c-bd1,#0072FF),var(--hzm-c-bd2,#8200F4),var(--hzm-c-bd3,#FF6C5F)); background-origin:border-box; background-clip:padding-box,border-box; }
.hzm-md-cmp-bd-anim{ background-image:linear-gradient(#0000,#0000), linear-gradient(120deg,var(--hzm-c-bd1,#0072FF),var(--hzm-c-bd2,#8200F4),var(--hzm-c-bd3,#FF6C5F),var(--hzm-c-bd1,#0072FF)); background-origin:border-box; background-clip:padding-box,border-box; background-size:auto,300% 100%; animation:hzm-md-cbdflow var(--hzm-c-bdspeed,4s) linear infinite; }
@keyframes hzm-md-cbdflow{ from{ background-position:0 0,0% 0; } to{ background-position:0 0,300% 0; } }

/* ===== Photo Stack ===== */
.hzm-md-stk{ position:relative; width:100%; min-height:var(--hzm-s-h,0px); display:flex; align-items:center; justify-content:center; perspective:1200px; }
.hzm-md-stk-anim{ width:var(--hzm-s-w,260px); max-width:100%; position:relative; }
.hzm-md-stk-tilt{ position:relative; transition:transform .3s ease; }
.hzm-md-stk-inner{ position:relative; }
.hzm-md-stk-slot{ transform:translate(calc(var(--tx,0px)*var(--spread,1)),calc(var(--ty,0px)*var(--spread,1))) rotate(calc(var(--rot,0deg)*var(--spread,1))); transition:transform var(--hzm-s-speed,400ms) ease; }
.hzm-md-stk-slot:first-child{ position:relative; }
.hzm-md-stk-slot:not(:first-child){ position:absolute; top:0; left:0; width:100%; height:100%; }
.hzm-md-stk-slot:hover{ z-index:300 !important; }
.hzm-md-stk-fan .hzm-md-stk-slot{ transform-origin:bottom center; }
.hzm-md-stk-card{ width:100%; height:100%; overflow:hidden; background:#fff; box-sizing:border-box; transition:box-shadow .3s ease; }
.hzm-md-stk-slot:first-child .hzm-md-stk-card{ height:auto; }
.hzm-md-stk-card img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.hzm-md-stk-slot:first-child img{ height:auto; }
.hzm-md-stk-hasratio .hzm-md-stk-card{ aspect-ratio:var(--hzm-s-ar,3/2); height:auto; }
.hzm-md-stk-hasratio .hzm-md-stk-card img{ height:100%; }
.hzm-md-stk-slot:hover .hzm-md-stk-card{ box-shadow:0 18px 44px rgba(0,0,0,.34); animation-play-state:paused; }
.hzm-md-stk-slot:hover img{ transform:scale(1.05); }
.hzm-md-stk-sh-soft   .hzm-md-stk-card{ box-shadow:0 4px 12px rgba(0,0,0,.14); }
.hzm-md-stk-sh-medium .hzm-md-stk-card{ box-shadow:0 8px 22px rgba(0,0,0,.20); }
.hzm-md-stk-sh-strong .hzm-md-stk-card{ box-shadow:0 14px 34px rgba(0,0,0,.30); }
.hzm-md-stk-shh-soft:hover   .hzm-md-stk-card{ box-shadow:0 6px 16px rgba(0,0,0,.18); }
.hzm-md-stk-shh-medium:hover .hzm-md-stk-card{ box-shadow:0 12px 28px rgba(0,0,0,.26); }
.hzm-md-stk-shh-strong:hover .hzm-md-stk-card{ box-shadow:0 18px 44px rgba(0,0,0,.36); }
.hzm-md-stk-hov-spread:hover .hzm-md-stk-slot{ transform:translate(calc(var(--tx,0px)*1.8*var(--spread,1)),calc(var(--ty,0px)*1.8*var(--spread,1))) rotate(calc(var(--rot,0deg)*1.25)); }
.hzm-md-stk-hov-straighten:hover .hzm-md-stk-slot{ transform:translate(calc(var(--tx,0px)*var(--spread,1)),calc(var(--ty,0px)*var(--spread,1))) rotate(0deg); }
.hzm-md-stk-hov-pop:hover .hzm-md-stk-card{ transform:scale(1.04); }
.hzm-md-stk-inf-float .hzm-md-stk-card{ animation:hzm-stk-drift 5s ease-in-out infinite both; animation-delay:var(--d,0s); }
.hzm-md-stk-inf-sway  .hzm-md-stk-card{ animation:hzm-stk-sway2 6s ease-in-out infinite both; animation-delay:var(--d,0s); }
@keyframes hzm-stk-drift{ 0%,100%{ transform:translate(0,0); } 25%{ transform:translate(5px,-8px); } 50%{ transform:translate(-4px,-3px); } 75%{ transform:translate(3px,6px); } }
@keyframes hzm-stk-sway2{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-6px,5px); } }
.hzm-md-stk-in-fade .hzm-md-stk-inner{ animation:hzm-stk-fade .6s ease both; }
.hzm-md-stk-in-up   .hzm-md-stk-inner{ animation:hzm-stk-up .6s ease both; }
.hzm-md-stk-in-zoom .hzm-md-stk-inner{ animation:hzm-stk-zoom .6s ease both; }
@keyframes hzm-stk-fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes hzm-stk-up{ from{ opacity:0; transform:translateY(30px); } to{ opacity:1; transform:translateY(0); } }
@keyframes hzm-stk-zoom{ from{ opacity:0; transform:scale(.85); } to{ opacity:1; transform:scale(1); } }

/* Photo Stack — bordure & halo */
.hzm-md-stk-bd-solid{ border:var(--hzm-sbw,0) solid var(--hzm-sbc,#fff); }
.hzm-md-stk-bd-grad, .hzm-md-stk-bd-anim{ position:relative; }
.hzm-md-stk-bd-grad::before, .hzm-md-stk-bd-anim::before{ content:""; position:absolute; inset:0; border-radius:inherit; padding:var(--hzm-sbw,3px); background:linear-gradient(120deg,var(--hzm-sb1,#0072FF),var(--hzm-sb2,#8200F4),var(--hzm-sb3,#FF6C5F)); -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; z-index:2; }
.hzm-md-stk-bd-anim::before{ background:linear-gradient(120deg,var(--hzm-sb1,#0072FF),var(--hzm-sb2,#8200F4),var(--hzm-sb3,#FF6C5F),var(--hzm-sb1,#0072FF)); background-size:300% 100%; animation:hzm-md-sbdflow var(--hzm-sbspeed,4s) linear infinite; }
@keyframes hzm-md-sbdflow{ from{ background-position:0 0; } to{ background-position:300% 0; } }

/* Galerie — barre de filtres */
.hzm-md-galwrap{ display:block; }
.hzm-md-gfilters{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.hzm-md-gf{ cursor:pointer; border:var(--hzm-gf-bdw,0) solid var(--hzm-gf-bd,transparent); background:var(--hzm-gf-bg,transparent); font-family:inherit; font-size:14px; color:var(--hzm-gf-tc,#3a3a52); padding:var(--hzm-gf-pad,6px 14px); border-radius:20px; transition:background .2s ease, color .2s ease, border-color .2s ease; }
.hzm-md-gf-pill .hzm-md-gf{ background:var(--hzm-gf-bg,#f0f0f6); }
.hzm-md-gf-pill .hzm-md-gf.hzm-md-gf-on{ background:var(--hzm-gf-c,#0072FF); color:#fff; }
.hzm-md-gf-underline .hzm-md-gf{ border-radius:0; border-top:0; border-left:0; border-right:0; border-bottom:2px solid transparent; }
.hzm-md-gf-underline .hzm-md-gf.hzm-md-gf-on{ border-bottom-color:var(--hzm-gf-c,#0072FF); color:var(--hzm-gf-c,#0072FF); }
.hzm-md-gf-plain .hzm-md-gf.hzm-md-gf-on{ color:var(--hzm-gf-c,#0072FF); font-weight:700; }

/* Galerie — pagination */
.hzm-md-pager{ display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:22px; }
.hzm-md-more{ cursor:pointer; border:0; border-radius:24px; padding:11px 26px; font-family:inherit; font-size:14px; font-weight:600; color:var(--pag-atc,#fff); background:var(--pag-ac,linear-gradient(90deg,#0072FF,#8200F4,#FF6C5F)); background-size:170% auto; transition:background-position .35s ease; }
.hzm-md-more:hover{ background-position:right center; }
.hzm-md-page{ cursor:pointer; border:1px solid var(--pag-bd,#e0e0ec); background:var(--pag-bg,#fff); color:var(--pag-tc,#3a3a52); min-width:38px; height:38px; padding:0 10px; border-radius:8px; font-family:inherit; font-size:14px; transition:.2s ease; }
.hzm-md-page:hover{ border-color:var(--pag-ac,#8224E3); }
.hzm-md-page.is-active{ background:var(--pag-ac,#0072FF); color:var(--pag-atc,#fff); border-color:var(--pag-ac,#0072FF); }

/* Galerie — animation d'apparition */
.hzm-md-ganim-fade .hzm-md-gitem{ opacity:0; transition:opacity .6s ease; }
.hzm-md-ganim-fade .hzm-md-gitem.is-in{ opacity:1; }
.hzm-md-ganim-up .hzm-md-gitem{ opacity:0; transform:translateY(26px); transition:opacity .6s ease, transform .6s ease; }
.hzm-md-ganim-up .hzm-md-gitem.is-in{ opacity:1; transform:translateY(0); }
.hzm-md-ganim-zoom .hzm-md-gitem{ opacity:0; transform:scale(.92); transition:opacity .6s ease, transform .6s ease; }
.hzm-md-ganim-zoom .hzm-md-gitem.is-in{ opacity:1; transform:scale(1); }

/* ===== Scroll image ===== */
.hzm-md-scr-wrap{ overflow:hidden; max-width:100%; margin:0 auto; box-shadow:0 6px 20px rgba(0,0,0,.14); background:#fff; }
.hzm-md-scr-bar{ height:34px; display:flex; align-items:center; gap:7px; padding:0 14px; }
.hzm-md-scr-bar-dark{ background:#2a2a3c; }
.hzm-md-scr-bar-light{ background:#f2f2f5; border-bottom:1px solid #e2e2ea; }
.hzm-md-scr-bar span{ width:11px; height:11px; border-radius:50%; background:#ff5f57; }
.hzm-md-scr-bar span:nth-child(2){ background:#febc2e; }
.hzm-md-scr-bar span:nth-child(3){ background:#28c840; }
.hzm-md-scr{ height:var(--scr-h,320px); overflow:hidden; position:relative; }
.hzm-md-scr-img{ display:block; width:100%; height:auto; }
.hzm-md-scr-hover .hzm-md-scr-img, .hzm-md-scr-auto .hzm-md-scr-img, .hzm-md-scr-scroll .hzm-md-scr-img{ will-change:transform; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.hzm-md-scr-manual{ overflow-y:auto; scrollbar-width:thin; scrollbar-color:#8224E3 #f0f0f6; }
.hzm-md-scr-manual::-webkit-scrollbar{ width:10px; }
.hzm-md-scr-manual::-webkit-scrollbar-track{ background:#f0f0f6; }
.hzm-md-scr-manual::-webkit-scrollbar-thumb{ background:#8224E3; border-radius:6px; }
.hzm-md-scr-manual .hzm-md-scr-img{ transform:none; }
.hzm-md-scr-hover .hzm-md-scr-img{ transition:transform var(--scr-dur,4s) ease; }
.hzm-md-scr-hover:hover .hzm-md-scr-img{ transform:translateY(calc(-100% + var(--scr-h,320px))); }
.hzm-md-scr-auto .hzm-md-scr-img{ animation:hzm-md-scrmove var(--scr-dur,6s) ease-in-out infinite alternate; }
@keyframes hzm-md-scrmove{ from{ transform:translateY(0); } to{ transform:translateY(calc(-100% + var(--scr-h,320px))); } }
.hzm-md-scr-scroll .hzm-md-scr-img{ transform:translateY(calc((-100% + var(--scr-h,320px)) * var(--scr-p,0))); }

/* ===== Panoramique ===== */
.hzm-md-pano-wrap{ position:relative; overflow:hidden; max-width:100%; margin:0 auto; box-shadow:0 6px 20px rgba(0,0,0,.14); background:#fff; }
.hzm-md-pano{ height:var(--pano-h,360px); overflow:hidden; background-size:auto var(--pano-zoom,100%); background-repeat:no-repeat; background-position-x:var(--pano-p,50%); background-position-y:center; touch-action:pan-y; }
.hzm-md-pano-drag{ cursor:grab; }
.hzm-md-pano-drag.is-drag{ cursor:grabbing; }
.hzm-md-pano-hint{ position:absolute; bottom:12px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,.55); color:#fff; padding:6px 15px; border-radius:20px; font:14px Arial,sans-serif; pointer-events:none; opacity:.92; transition:opacity .35s ease; }
.hzm-md-pano-wrap:hover .hzm-md-pano-hint{ opacity:0; }

/* ===== Ruban défilant (marquee) ===== */
.hzm-md-gal-marquee{ overflow:hidden; }
.hzm-md-mq{ display:flex; flex-direction:column; gap:var(--hzm-md-gap,10px); overflow:hidden; }
.hzm-md-mq-row{ overflow:hidden; }
.hzm-md-mq-track{ display:flex; width:max-content; animation:hzm-md-mqmove var(--mq-dur,30s) linear infinite; }
.hzm-md-mq-rev .hzm-md-mq-track{ animation-direction:reverse; }
.hzm-md-mq-pause:hover .hzm-md-mq-track{ animation-play-state:paused; }
@keyframes hzm-md-mqmove{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.hzm-md-mq-row .hzm-md-gitem{ flex:0 0 auto; width:auto; margin-right:var(--hzm-md-gap,10px); aspect-ratio:auto; }
.hzm-md-mq-row .hzm-md-gitem a, .hzm-md-mq-row .hzm-md-gitem .hzm-md-cell{ display:block; width:auto; height:var(--mq-h,180px); }
.hzm-md-mq-row .hzm-md-gitem img{ display:block; width:auto; height:var(--mq-h,180px); object-fit:cover; }

/* ===== 360° immersif ===== */
.hzm-md-360{ position:relative; overflow:hidden; max-width:100%; margin:0 auto; background:#12101f; cursor:grab; touch-action:none; }
.hzm-md-360:active{ cursor:grabbing; }
.hzm-md-360-canvas{ position:absolute; inset:0; }
.hzm-md-360-canvas canvas{ display:block; width:100%; height:100%; }
.hzm-md-360-hint{ position:absolute; bottom:12px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,.5); color:#fff; padding:6px 15px; border-radius:20px; font:14px Arial,sans-serif; pointer-events:none; z-index:2; transition:opacity .35s ease; }
.hzm-md-360:hover .hzm-md-360-hint{ opacity:0; }

/* ===== Embed ===== */
.hzm-md-embed{ max-width:100%; margin:0 auto; overflow:hidden; }
.hzm-md-embed-ratio{ position:relative; width:100%; height:0; }
.hzm-md-embed-ratio > *, .hzm-md-embed-ratio iframe, .hzm-md-embed-ratio video, .hzm-md-embed-ratio embed, .hzm-md-embed-ratio object{ position:absolute; inset:0; width:100% !important; height:100% !important; border:0; }
.hzm-md-embed-r-16-9{ padding-bottom:56.25%; }
.hzm-md-embed-r-4-3{ padding-bottom:75%; }
.hzm-md-embed-r-1-1{ padding-bottom:100%; }
.hzm-md-embed-r-21-9{ padding-bottom:42.857%; }
.hzm-md-embed iframe{ max-width:100%; }
.hzm-md-embed-fh{ overflow:hidden; }
.hzm-md-embed-fh iframe, .hzm-md-embed-fh > *{ width:100% !important; height:100% !important; border:0; display:block; }

/* ===== Vidéo façade (lecture sur place au clic) ===== */
.hzm-md-vface{ cursor:pointer; }
.hzm-md-vface.is-playing{ cursor:default; }
.hzm-md-vface-inner{ position:relative; }
.hzm-md-vface.hzm-md-vauto .hzm-md-vframe{ aspect-ratio:16/9; }
.hzm-md-vstop{ position:absolute; top:10px; right:10px; z-index:6; width:34px; height:34px; padding:0; border:0; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; font-size:22px; line-height:1; cursor:pointer; display:none; align-items:center; justify-content:center; }
.hzm-md-vface.is-playing .hzm-md-vstop{ display:flex; }

/* ===== Galerie multi-source ===== */
.hzm-md-ms-card{ position:relative; display:block; height:100%; width:100%; overflow:hidden; cursor:pointer; }
.hzm-md-ms-card img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.hzm-md-ms:hover .hzm-md-ms-card img{ transform:scale(1.06); }
.hzm-md-gal-masonry .hzm-md-ms-card, .hzm-md-gal-masonry .hzm-md-ms-card img{ height:auto; }
.hzm-md-ms-noimg{ display:block; width:100%; height:100%; min-height:120px; background:linear-gradient(135deg,#0072FF,#8200F4,#FF6C5F); }
.hzm-md-ms-title{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:var(--ms-cap-pad,22px 12px 10px); color:var(--ms-cap-tc,#fff); font-size:var(--ms-cap-ts,14px); font-weight:600; background:var(--ms-cap-bg,linear-gradient(to top,rgba(0,0,0,.65),transparent)); }
.hzm-md-ms-badge{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:3; display:flex; align-items:center; justify-content:center; color:#fff; }
.hzm-md-ms-play{ width:60px; height:60px; border-radius:50%; background:rgba(0,0,0,.5); backdrop-filter:blur(2px); }
.hzm-md-ms-play .hzm-md-play-ico{ width:0; height:0; border-style:solid; border-width:11px 0 11px 18px; border-color:transparent transparent transparent #fff; margin-left:4px; }
.hzm-md-ms-emb{ width:56px; height:56px; border-radius:14px; background:rgba(0,0,0,.5); font-size:26px; line-height:56px; }
.hzm-md-msclick-popup .hzm-md-ms-card, .hzm-md-msclick-incard .hzm-md-ms-card{ cursor:pointer; }
.hzm-md-ms-live{ position:relative; width:100%; height:100%; }
.hzm-md-ms-live iframe, .hzm-md-ms-live video{ position:absolute; inset:0; width:100% !important; height:100% !important; border:0; }
.hzm-md-ms .hzm-md-vstop{ position:absolute; top:8px; right:8px; z-index:6; width:30px; height:30px; padding:0; border:0; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; font-size:19px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
/* embed dans la lightbox */
.hzm-md-lbx-embed{ width:88vw; max-width:1100px; aspect-ratio:16/9; background:#000; border-radius:6px; overflow:hidden; }
.hzm-md-lbx-embed iframe{ width:100%; height:100%; border:0; display:block; }

/* Multi-source — cartes en ruban défilant */
.hzm-md-mq-row .hzm-md-ms-card{ width:auto; height:var(--mq-h,180px); }
.hzm-md-mq-row .hzm-md-ms-card img{ width:auto; height:100%; }

/* ===== Multi-source : slider héros + vignettes ===== */
.hzm-md-slider{ display:flex; flex-direction:column; gap:12px; }
.hzm-md-slider-right{ flex-direction:row; align-items:stretch; }
.hzm-md-sld-stage{ position:relative; flex:1 1 auto; min-width:0; height:520px; border-radius:10px; overflow:hidden; background:#0d0b1a; }
.hzm-md-sld-hero, .hzm-md-sld-media{ position:absolute; inset:0; width:100%; height:100%; }
.hzm-md-sld-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.hzm-md-sld-vid{ cursor:pointer; }
.hzm-md-sld-emb iframe, .hzm-md-sld-vid iframe, .hzm-md-sld-vid video{ position:absolute; inset:0; width:100% !important; height:100% !important; border:0; }
.hzm-md-sld-cap{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:44px 26px 22px; color:#fff; font-size:22px; font-weight:700; background:linear-gradient(to top,rgba(0,0,0,.7),transparent); pointer-events:none; }
.hzm-md-sld-arw{ position:absolute; top:50%; transform:translateY(-50%); z-index:4; width:44px; height:44px; border:0; border-radius:50%; cursor:pointer; background:rgba(0,0,0,.45); color:#fff; font-size:24px; line-height:1; display:flex; align-items:center; justify-content:center; }
.hzm-md-sld-prev{ left:12px; } .hzm-md-sld-next{ right:12px; }
.hzm-md-sld-thumbs{ display:flex; gap:10px; overflow-x:auto; scrollbar-width:none; padding:2px; }
.hzm-md-sld-thumbs::-webkit-scrollbar{ display:none; }
.hzm-md-slider-right .hzm-md-sld-thumbs{ flex:0 0 160px; flex-direction:column; overflow-x:hidden; overflow-y:auto; }
.hzm-md-sld-th{ flex:0 0 auto; width:132px; height:80px; padding:0; border:2px solid transparent; border-radius:8px; overflow:hidden; cursor:pointer; background:none; opacity:.6; transition:opacity .2s ease, border-color .2s ease; }
.hzm-md-slider-right .hzm-md-sld-th{ width:100%; height:92px; }
.hzm-md-sld-th img{ width:100%; height:100%; object-fit:cover; display:block; }
.hzm-md-sld-th:hover{ opacity:.9; }
.hzm-md-sld-th.is-active{ opacity:1; border-color:#0072FF; }
/* carrousel — hauteur de carte fixe */
.hzm-md-caro-fh .hzm-md-gitem{ aspect-ratio:auto !important; height:var(--ms-caro-h,280px); }

/* Slider — vignettes superposées (à l'intérieur) */
.hzm-md-slider-inside-bottom, .hzm-md-slider-inside-right{ display:block; position:relative; }
.hzm-md-slider-inside-bottom .hzm-md-sld-thumbs, .hzm-md-slider-inside-right .hzm-md-sld-thumbs{ position:absolute; z-index:5; }
.hzm-md-slider-inside-bottom .hzm-md-sld-thumbs{ left:auto; right:20px; bottom:20px; max-width:62%; }
.hzm-md-slider-inside-right .hzm-md-sld-thumbs{ top:50%; right:20px; transform:translateY(-50%); flex-direction:column; overflow-x:hidden; overflow-y:auto; max-height:84%; flex:0 0 auto; }
.hzm-md-slider-inside-right .hzm-md-sld-th{ width:130px; height:80px; }

/* ===== Multi-source : accordéon hover-expand ===== */
.hzm-md-acc{ display:flex; gap:8px; height:var(--acc-h,460px); }
.hzm-md-acc .hzm-md-gitem{ flex:1 1 0; min-width:0; height:100%; margin:0; overflow:hidden; aspect-ratio:auto !important; border-radius:var(--hzm-md-gradius,8px); transition:flex .55s cubic-bezier(.4,0,.2,1); }
.hzm-md-acc .hzm-md-gitem:hover{ flex:var(--acc-grow,3.5) 1 0; }
.hzm-md-acc .hzm-md-ms-card, .hzm-md-acc .hzm-md-ms-card img{ height:100%; }
.hzm-md-acc .hzm-md-ms-title{ white-space:nowrap; }
.hzm-md-ms-sub{ display:block; font-weight:400; font-size:var(--ms-cap-ds,12px); color:var(--ms-cap-dc,inherit); opacity:.9; margin-top:4px; white-space:normal; }
@media (max-width:600px){
	.hzm-md-acc{ flex-direction:column; height:auto; }
	.hzm-md-acc .hzm-md-gitem, .hzm-md-acc .hzm-md-gitem:hover{ flex:none; height:200px; }
}

/* ===== Zones interactives (survol → image + titre + lien) ===== */
.hzm-md-hz{ position:relative; overflow:hidden; width:100%; box-sizing:border-box; border:var(--hz-bd,0) solid var(--hz-bdc,transparent); }
.hzm-md-hz-base{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hzm-md-hz-zones{ position:absolute; inset:0; display:flex; }
.hzm-md-hz-zone{ position:relative; flex:1 1 0; min-width:0; overflow:hidden; text-decoration:none; display:block; }
.hzm-md-hz-zone + .hzm-md-hz-zone{ border-left:1px solid var(--hz-sep,rgba(255,255,255,.18)); }
.hzm-md-hz-img{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transform:scale(1.04); transition:opacity .5s ease, transform .6s ease; }
.hzm-md-hz-zone:hover .hzm-md-hz-img{ opacity:1; transform:scale(1); }
.hzm-md-hz-cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:26px 18px 20px; color:var(--hz-tc,#fff); background:linear-gradient(to top,rgba(0,0,0,.72),transparent); }
.hzm-md-hz-t{ display:block; font-size:var(--hz-ts,20px); font-weight:700; line-height:1.2; }
.hzm-md-hz-s{ display:block; font-size:var(--hz-ss,13px); opacity:.88; margin-top:5px; }
@media (max-width:600px){
	.hzm-md-hz{ height:auto !important; }
	.hzm-md-hz-base{ display:none; }
	.hzm-md-hz-zones{ position:static; flex-direction:column; }
	.hzm-md-hz-zone{ height:180px; }
	.hzm-md-hz-img{ opacity:1; transform:none; }
	.hzm-md-hz-zone + .hzm-md-hz-zone{ border-left:0; border-top:1px solid var(--hz-sep,rgba(255,255,255,.18)); }
}

/* Zones interactives — cadre & effets (mêmes réglages que le type Image) */
.hzm-md-hz-ef-shadow{ box-shadow:0 16px 34px var(--hz-shc,rgba(20,20,60,.34)); }
.hzm-md-hz-ef-shadow3d{ box-shadow:6px 6px 0 var(--hz-shc,#0072FF), 12px 12px 0 rgba(130,36,227,.45); }
.hzm-md-hz-ef-neon{ box-shadow:0 0 var(--hz-shsz,24px) var(--hz-shc,#8224E3), 0 0 calc(var(--hz-shsz,24px)/2) var(--hz-shc,#8224E3); }
.hzm-md-hz-ef-neon.hzm-md-hz-anim-pulse{ animation:hzm-md-hz-neonpulse 1.7s ease-in-out infinite; }
.hzm-md-hz-ef-neon.hzm-md-hz-anim-glow{ animation:hzm-md-hz-neonglow 3.2s ease-in-out infinite; }
@keyframes hzm-md-hz-neonpulse{ 0%,100%{ box-shadow:0 0 calc(var(--hz-shsz,24px)*.4) var(--hz-shc,#8224E3); } 50%{ box-shadow:0 0 var(--hz-shsz,24px) var(--hz-shc,#8224E3),0 0 calc(var(--hz-shsz,24px)*1.6) var(--hz-shc,#8224E3); } }
@keyframes hzm-md-hz-neonglow{ 0%,100%{ box-shadow:0 0 calc(var(--hz-shsz,24px)*.6) var(--hz-shc,#8224E3); } 50%{ box-shadow:0 0 calc(var(--hz-shsz,24px)*1.3) var(--hz-shc,#8224E3); } }
.hzm-md-hz-frame{ display:block; line-height:0; overflow:hidden; }
.hzm-md-hz-frame-anim{ background-size:300% 100% !important; animation:hzm-md-flow 6s linear infinite; }
.hzm-md-hz-frame > .hzm-md-hz{ width:100%; }
.hzm-md-hz-base, .hzm-md-hz-img{ border-radius:0; }

/* Lottie — alignement */
.hzm-md-lwrap{ line-height:0; }
.hzm-md-lal-left{ text-align:left; }
.hzm-md-lal-center{ text-align:center; }
.hzm-md-lal-right{ text-align:right; }

/* Le wrapper externe partage la classe de type hzm-md-lottie : on neutralise
   la mise en forme réservée au lecteur lui-même. */
.hzm-md.hzm-md-lottie{ display:block; max-width:none; width:100%; }

/* Lottie — cadre & effets */
.hzm-md-lbox{ display:inline-block; line-height:0; box-sizing:border-box; max-width:100%;
	border:var(--l-bd,0) solid var(--l-bdc,transparent); border-radius:var(--l-rad,0); }
.hzm-md-lfx-shadow{ box-shadow:0 16px 34px var(--l-shc,rgba(20,20,60,.34)); }
.hzm-md-lfx-shadow3d{ box-shadow:6px 6px 0 var(--l-shc,#0072FF), 12px 12px 0 rgba(130,36,227,.45); }
.hzm-md-lfx-neon{ box-shadow:0 0 var(--l-shsz,24px) var(--l-shc,#8224E3), 0 0 calc(var(--l-shsz,24px)/2) var(--l-shc,#8224E3); }
.hzm-md-lfx-neon.hzm-md-lanim-pulse{ animation:hzm-md-l-neonpulse 1.7s ease-in-out infinite; }
.hzm-md-lfx-neon.hzm-md-lanim-glow{ animation:hzm-md-l-neonglow 3.2s ease-in-out infinite; }
@keyframes hzm-md-l-neonpulse{ 0%,100%{ box-shadow:0 0 calc(var(--l-shsz,24px)*.4) var(--l-shc,#8224E3); } 50%{ box-shadow:0 0 var(--l-shsz,24px) var(--l-shc,#8224E3),0 0 calc(var(--l-shsz,24px)*1.6) var(--l-shc,#8224E3); } }
@keyframes hzm-md-l-neonglow{ 0%,100%{ box-shadow:0 0 calc(var(--l-shsz,24px)*.6) var(--l-shc,#8224E3); } 50%{ box-shadow:0 0 calc(var(--l-shsz,24px)*1.3) var(--l-shc,#8224E3); } }
.hzm-md-lframe{ position:relative; display:inline-block; line-height:0; max-width:100%; box-sizing:border-box; }
/* Le dégradé est peint uniquement sur l'anneau de bordure : l'intérieur reste
   transparent, sinon il masquerait une animation Lottie sans fond. */
.hzm-md-lframe::before{ content:""; position:absolute; inset:0; border-radius:inherit; box-sizing:border-box;
	background:var(--l-grad,linear-gradient(90deg,#0072FF,#8200F4,#FF6C5F)); background-size:300% 100%;
	padding:var(--l-fbd,4px);
	-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
	-webkit-mask-composite:xor;
	mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
	mask-composite:exclude;
	pointer-events:none; }
.hzm-md-lframe-anim::before{ animation:hzm-md-flow 6s linear infinite; }
.hzm-md-llink{ display:inline-block; line-height:0; text-decoration:none; }

/* ===== Points interactifs sur image ===== */
.hzm-md-hswrap{ position:relative; display:block; line-height:0; }
/* Le lien de l'image n'est plus enfant direct de la figure quand des points
   sont posés : on lui rend sa mise en bloc. */
.hzm-md-hswrap > a{ display:block; line-height:0; }
.hzm-md-hs-layer{ position:absolute; inset:0; z-index:5; pointer-events:none; }
.hzm-md-hs{ position:absolute; transform:translate(-50%,-50%); box-sizing:border-box;
	width:var(--hs-size,26px) !important; height:var(--hs-size,26px) !important;
	min-width:0; min-height:0; max-width:none; max-height:none; padding:0; margin:0; display:block;
	pointer-events:auto; cursor:pointer; text-decoration:none; line-height:0; }
.hzm-md-hs-dot{ display:flex; box-sizing:border-box; align-items:center; justify-content:center; width:100%; height:100%; border-radius:50%;
	background:var(--hs-bg,#0072FF); color:var(--hs-ic,#fff); box-shadow:0 2px 10px rgba(20,20,60,.32);
	font-size:calc(var(--hs-size,26px)*.5); font-weight:700; line-height:1; font-family:Arial,Helvetica,sans-serif;
	border:2px solid rgba(255,255,255,.9); transition:transform .25s ease; }
.hzm-md-hs:hover .hzm-md-hs-dot, .hzm-md-hs.is-open .hzm-md-hs-dot{ transform:scale(1.16); }
.hzm-md-hs-plus .hzm-md-hs-dot::before{ content:"+"; font-size:calc(var(--hs-size,26px)*.62); line-height:1; }
.hzm-md-hs-pulse .hzm-md-hs-dot{ animation:hzm-md-hspulse 2s ease-out infinite; }
@keyframes hzm-md-hspulse{
	0%{ box-shadow:0 2px 10px rgba(20,20,60,.32), 0 0 0 0 var(--hs-bg,#0072FF); }
	70%{ box-shadow:0 2px 10px rgba(20,20,60,.32), 0 0 0 14px rgba(0,114,255,0); }
	100%{ box-shadow:0 2px 10px rgba(20,20,60,.32), 0 0 0 0 rgba(0,114,255,0); }
}
.hzm-md-hs-tip{ position:absolute; z-index:6; width:max-content; max-width:230px; padding:9px 12px; border-radius:8px;
	background:var(--hs-tipbg,rgba(16,16,40,.94)); color:var(--hs-tiptc,#fff); font-family:Arial,Helvetica,sans-serif;
	line-height:1.35; text-align:left; opacity:0; visibility:hidden; transform:translateY(4px);
	transition:opacity .22s ease, transform .22s ease, visibility .22s; box-shadow:0 10px 26px rgba(20,20,60,.28); }
.hzm-md-hs-t{ display:block; font-size:13px; font-weight:700; }
.hzm-md-hs-d{ display:block; font-size:12px; font-weight:400; opacity:.9; margin-top:3px; }
.hzm-md-hs-p-top .hzm-md-hs-tip{ bottom:calc(100% + 10px); left:50%; transform:translate(-50%,4px); }
.hzm-md-hs-p-bottom .hzm-md-hs-tip{ top:calc(100% + 10px); left:50%; transform:translate(-50%,-4px); }
.hzm-md-hs-p-left .hzm-md-hs-tip{ right:calc(100% + 10px); top:50%; transform:translate(4px,-50%); }
.hzm-md-hs-p-right .hzm-md-hs-tip{ left:calc(100% + 10px); top:50%; transform:translate(-4px,-50%); }
.hzm-md-hsopen-hover .hzm-md-hs:hover .hzm-md-hs-tip,
.hzm-md-hs:focus .hzm-md-hs-tip,
.hzm-md-hs.is-open .hzm-md-hs-tip{ opacity:1; visibility:visible; }
.hzm-md-hsopen-hover .hzm-md-hs-p-top:hover .hzm-md-hs-tip, .hzm-md-hs-p-top.is-open .hzm-md-hs-tip{ transform:translate(-50%,0); }
.hzm-md-hsopen-hover .hzm-md-hs-p-bottom:hover .hzm-md-hs-tip, .hzm-md-hs-p-bottom.is-open .hzm-md-hs-tip{ transform:translate(-50%,0); }
.hzm-md-hsopen-hover .hzm-md-hs-p-left:hover .hzm-md-hs-tip, .hzm-md-hs-p-left.is-open .hzm-md-hs-tip{ transform:translate(0,-50%); }
.hzm-md-hsopen-hover .hzm-md-hs-p-right:hover .hzm-md-hs-tip, .hzm-md-hs-p-right.is-open .hzm-md-hs-tip{ transform:translate(0,-50%); }
@media (max-width:600px){ .hzm-md-hs-tip{ max-width:160px; } }

/* =============================================================================
   Animation permanente du média

   Les animations existantes ne portaient que sur le halo. Celles-ci animent le
   bloc lui-même, en continu, sans attendre le survol — ce que le module image
   de WPBakery ne propose plus.

   --md-live-dur : durée du cycle.  --md-live-amt : multiplicateur d'ampleur.
   ========================================================================== */

.hzm-md-live {
	--md-live-amt: 1;
	will-change: transform, opacity, filter;
}

.hzm-md-live--pulse {
	animation: hzm-md-live-pulse var(--md-live-dur, 4s) ease-in-out infinite;
}

.hzm-md-live--float {
	animation: hzm-md-live-float var(--md-live-dur, 4s) ease-in-out infinite;
}

.hzm-md-live--sway {
	animation: hzm-md-live-sway var(--md-live-dur, 4s) ease-in-out infinite;
}

.hzm-md-live--kenburns {
	overflow: hidden;
}

/* Le zoom lent porte sur l'image, pas sur le cadre : c'est ce qui le distingue
   d'une simple pulsation — le cadre reste fixe, la vue se resserre. */
.hzm-md-live--kenburns img {
	animation: hzm-md-live-kb var(--md-live-dur, 4s) ease-in-out infinite alternate;
}

.hzm-md-live--spin {
	animation: hzm-md-live-spin calc(var(--md-live-dur, 4s) * 4) linear infinite;
}

.hzm-md-live--beat {
	animation: hzm-md-live-beat var(--md-live-dur, 4s) ease-in-out infinite;
}

.hzm-md-live--breathe {
	animation: hzm-md-live-breathe var(--md-live-dur, 4s) ease-in-out infinite;
}

/* Le reflet passe dans un calque propre, sans toucher au média. */
.hzm-md-live--shine {
	position: relative;
	overflow: hidden;
}

.hzm-md-live--shine::after {
	content: "";
	position: absolute;
	top: -50%;
	left: -60%;
	z-index: 5;
	width: 40%;
	height: 200%;
	pointer-events: none;
	transform: rotate(18deg);
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, .42),
		transparent
	);
	animation: hzm-md-live-shine calc(var(--md-live-dur, 4s) * 1.6) ease-in-out infinite;
}

@keyframes hzm-md-live-pulse {
	0%, 100% {
		transform: scale(1);
	}
	50% {
		transform: scale(calc(1 + .04 * var(--md-live-amt, 1)));
	}
}

@keyframes hzm-md-live-float {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(calc(-10px * var(--md-live-amt, 1)));
	}
}

@keyframes hzm-md-live-sway {
	0%, 100% {
		transform: rotate(calc(-1.4deg * var(--md-live-amt, 1)));
	}
	50% {
		transform: rotate(calc(1.4deg * var(--md-live-amt, 1)));
	}
}

@keyframes hzm-md-live-kb {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(calc(1 + .12 * var(--md-live-amt, 1)));
	}
}

@keyframes hzm-md-live-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

/* Deux battements rapprochés puis une pause : le rythme d'un cœur, plus vivant
   qu'une pulsation régulière. */
@keyframes hzm-md-live-beat {
	0%, 28%, 100% {
		transform: scale(1);
	}
	8% {
		transform: scale(calc(1 + .06 * var(--md-live-amt, 1)));
	}
	16% {
		transform: scale(1);
	}
	22% {
		transform: scale(calc(1 + .035 * var(--md-live-amt, 1)));
	}
}

@keyframes hzm-md-live-breathe {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: calc(1 - .28 * var(--md-live-amt, 1));
	}
}

@keyframes hzm-md-live-shine {
	0% {
		left: -60%;
	}
	60%, 100% {
		left: 130%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hzm-md-live,
	.hzm-md-live img,
	.hzm-md-live--shine::after {
		animation: none !important;
	}
}

/* =============================================================================
   Bord à bord de la fenêtre

   « Pleine largeur » remplit la colonne ; ce mode-ci franchit le conteneur et
   va d'un bord de la fenêtre à l'autre. La technique tient en une ligne : une
   marge négative égale à la moitié de ce qui dépasse de chaque côté.

   « 100vw » compte la barre de défilement, qui provoquerait un défilement
   horizontal parasite. La variable --htm-scrollbar porte sa largeur, mesurée une fois
   par le script ; sans lui, on retombe sur zéro et le rendu reste correct sur
   les systèmes où la barre se superpose au contenu.
   ========================================================================== */

.hzm-md-al-bleed {
	display: block;
	width: calc(100vw - var(--htm-scrollbar, 0px));
	max-width: none;
	margin-left: calc(50% - (100vw - var(--htm-scrollbar, 0px)) / 2);
	margin-right: calc(50% - (100vw - var(--htm-scrollbar, 0px)) / 2);
	text-align: left;
}

/* Chaque type porte sa propre largeur maximale et ses marges de centrage : il
   faut les lever une à une, faute de quoi le média resterait au milieu d'un
   bloc pourtant élargi. La liste couvre les douze types du module, comparateur
   compris. */
.hzm-md-al-bleed .hzm-md-fig,
.hzm-md-al-bleed .hzm-md-imgwrap,
.hzm-md-al-bleed .hzm-md-video,
.hzm-md-al-bleed.hzm-md-video,
.hzm-md-al-bleed .hzm-md-scr-wrap,
.hzm-md-al-bleed .hzm-md-pano-wrap,
.hzm-md-al-bleed .hzm-md-embed,
.hzm-md-al-bleed .hzm-md-stk,
.hzm-md-al-bleed .hzm-md-stk-anim,
.hzm-md-al-bleed .hzm-md-hz,
.hzm-md-al-bleed .hzm-md-lottie,
.hzm-md-al-bleed.hzm-md-lottie,
.hzm-md-al-bleed .hzm-md-gal,
.hzm-md-al-bleed .hzm-md-msgal,
.hzm-md-al-bleed .hzm-md-cmp,
.hzm-md-al-bleed .hzm-md-360 {
	display: block;
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* Une image bord à bord doit couvrir toute la largeur, pas s'arrêter à sa
   taille naturelle. */
.hzm-md-al-bleed .hzm-md-fig img,
.hzm-md-al-bleed .hzm-md-imgwrap img {
	width: 100%;
}

/* Un arrondi n'a plus de sens quand les bords sortent de l'écran. */
.hzm-md-al-bleed .hzm-md-fig,
.hzm-md-al-bleed .hzm-md-imgwrap,
.hzm-md-al-bleed .hzm-md-video,
.hzm-md-al-bleed .hzm-md-cmp {
	border-radius: 0;
}
