/* Tanger Med – Carte des Projets : front public */
.tmpm-root{position:relative;width:100%;overflow:hidden;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;border-radius:8px;min-height:200px;}
.tmpm-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#90a0ab;font-size:15px;}
.tmpm-stage{position:relative;display:flex;align-items:center;justify-content:center;width:100%;}
.tmpm-mapwrap{position:relative;line-height:0;max-width:100%;transform-origin:center center;}
.tmpm-mapwrap.tmpm-in{animation:tmpm-mapIn 1.2s cubic-bezier(.22,.61,.36,1) both, tmpm-breath 16s ease-in-out 1.2s infinite;}
.tmpm-map{display:block;width:auto;height:auto;max-width:100%;max-height:100%;}
.tmpm-zoom{position:absolute;inset:0;will-change:transform;transition:transform .85s cubic-bezier(.6,.02,.2,1);transform-origin:center center;}
.tmpm-dot{position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:5;}
.tmpm-dot .tmpm-core{position:absolute;inset:0;border-radius:50%;transition:box-shadow .35s ease,background .35s ease;}
.tmpm-dot .tmpm-ring{position:absolute;inset:0;border-radius:50%;opacity:0;pointer-events:none;}
.tmpm-dot.tmpm-sel{z-index:12;}

@keyframes tmpm-mapIn{from{opacity:0;transform:scale(1.075);}to{opacity:1;transform:scale(1);}}
@keyframes tmpm-breath{0%,100%{transform:scale(1);}50%{transform:scale(1.014);}}
@keyframes tmpm-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(0);}62%{opacity:1;transform:translate(-50%,-50%) scale(1.28);}100%{opacity:1;transform:translate(-50%,-50%) scale(1);}}
@keyframes tmpm-glow{0%,100%{filter:brightness(1);}50%{filter:brightness(1.18);}}
@keyframes tmpm-ring{0%{opacity:.55;transform:scale(1);}70%{opacity:0;}100%{opacity:0;transform:scale(3);}}
@keyframes tmpm-popin{from{opacity:0;}to{opacity:1;}}

/* Pop-up */
.tmpm-popup{position:absolute;width:260px;max-width:42%;z-index:18;padding:15px 17px;background:#fff;border-radius:14px;
  box-shadow:0 10px 34px rgba(13,34,51,.22),0 2px 6px rgba(13,34,51,.1);border:1px solid rgba(13,34,51,.06);
  transform-origin:center;animation:tmpm-popin .32s cubic-bezier(.2,.8,.3,1.3) both;}
.tmpm-popup .tmpm-pimg{position:relative;width:100%;aspect-ratio:16/10;border-radius:10px;overflow:hidden;margin-bottom:12px;background:#eef3f6;border:1px solid rgba(13,34,51,.06);}
.tmpm-popup .tmpm-pimg img{width:100%;height:100%;object-fit:cover;display:block;}
.tmpm-popup .tmpm-pvideo{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;margin-bottom:12px;background:#000;border:1px solid rgba(13,34,51,.06);}
.tmpm-popup .tmpm-pvideo iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
/* Option 1 : média + vignettes */
.tmpm-popup.tmpm-popup-wide{width:440px;max-width:82vw;}
.tmpm-popup .tmpm-prow{display:grid;grid-template-columns:1.35fr 1fr;gap:10px;margin-bottom:12px;align-items:stretch;}
.tmpm-popup .tmpm-prow .tmpm-pmedia-left{margin-bottom:0;aspect-ratio:auto;min-height:150px;}
.tmpm-popup .tmpm-pstats{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.tmpm-popup .tmpm-pstat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#E8342D;border-radius:10px;padding:8px 6px;min-height:64px;}
.tmpm-popup .tmpm-pstat-ic{width:30px;height:30px;object-fit:contain;background:#fff;border-radius:7px;padding:3px;}
.tmpm-popup .tmpm-pstat-tx{font:800 11.5px/1.25 system-ui;color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.02em;}
/* Diaporama */
.tmpm-popup .tmpm-snav{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#0d2233;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px rgba(13,34,51,.25);z-index:2;}
.tmpm-popup .tmpm-sprev{left:8px;}
.tmpm-popup .tmpm-snext{right:8px;}
.tmpm-popup .tmpm-sdots{position:absolute;left:0;right:0;bottom:7px;display:flex;justify-content:center;gap:5px;z-index:2;}
.tmpm-popup .tmpm-sdot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;}
.tmpm-popup .tmpm-sdot.tmpm-don{background:#fff;}
@keyframes tmpm-sfade{from{opacity:0;}to{opacity:1;}}
@keyframes tmpm-sslide{from{opacity:0;transform:translateX(38px);}to{opacity:1;transform:translateX(0);}}
@keyframes tmpm-szoom{from{opacity:0;transform:scale(1.12);}to{opacity:1;transform:scale(1);}}
.tmpm-popup .tmpm-phead{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.tmpm-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-weight:700;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#fff;}
.tmpm-close{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:7px;background:#eef2f5;color:#5a6b78;font-size:15px;line-height:1;cursor:pointer;flex-shrink:0;transition:background .2s ease,color .2s ease;}
.tmpm-close:hover{background:#e8342d;color:#fff;}
.tmpm-popup .tmpm-ptitle{font-weight:700;font-size:17px;line-height:1.25;color:#0d2233;margin:9px 0 4px;letter-spacing:-.01em;}
.tmpm-popup .tmpm-pdesc{font-weight:400;font-size:13.5px;line-height:1.5;color:#5a6b78;}
.tmpm-arrow{position:absolute;left:50%;width:14px;height:14px;background:#fff;transform:translateX(-50%) rotate(45deg);}
