body.promotions-map-is-open{overflow:hidden}.promotions-map-modal{position:fixed;z-index:1000;inset:0;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.68);backdrop-filter:blur(7px)}.promotions-map-modal.is-open{display:flex}.promotions-map-dialog{position:relative;width:min(1180px,100%);height:min(760px,calc(100svh - 48px));overflow:hidden;border:1px solid rgba(255,255,255,.6);border-radius:25px;background:#fff;box-shadow:0 30px 90px rgba(15,23,42,.38)}.promotions-map-dialog>header{position:absolute;z-index:500;top:14px;right:14px;left:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #dfe7ec;border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 9px 25px rgba(15,23,42,.13);backdrop-filter:blur(14px)}.promotions-map-dialog>header>div{display:flex;align-items:center;gap:10px}.promotions-map-dialog>header>div>span{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:#fff0e7;color:#e45e12}.promotions-map-dialog h2,.promotions-map-dialog p{margin:0}.promotions-map-dialog h2{color:#203b4d;font-size:15px}.promotions-map-dialog p{margin-top:2px;color:#788995;font-size:9px}.promotions-map-dialog>header>button{display:grid;width:39px;height:39px;place-items:center;border:1px solid #dfe6eb;border-radius:11px;background:#fff;color:#526573;cursor:pointer}.promotions-map-canvas{width:100%;height:100%;background:#e9f1f3}.promotions-map-empty{position:absolute;z-index:450;top:50%;left:50%;display:grid;min-width:270px;place-items:center;padding:24px;border:1px solid #dce5ea;border-radius:18px;background:#fff;box-shadow:0 16px 38px rgba(15,23,42,.15);transform:translate(-50%,-50%);text-align:center}.promotions-map-empty>span{color:#e45e12;font-size:39px}.promotions-map-empty b{margin-top:7px;color:#344d5e;font-size:12px}.promotions-map-empty small{margin-top:4px;color:#81909b;font-size:9px}.promotions-map-pin{border:0!important;background:transparent!important}.promotions-map-pin>span{position:relative;display:block;width:52px;height:52px;border:3px solid #fff;border-radius:50% 50% 50% 10px;background:linear-gradient(145deg,#ff7b31,#e65100);box-shadow:0 9px 20px rgba(151,59,9,.4);transform:rotate(-45deg);transition:transform .18s}.promotions-map-pin:hover>span{transform:rotate(-45deg) scale(1.1)}.promotions-map-pin>span.is-featured{background:linear-gradient(145deg,#f8c84a,#d99000);box-shadow:0 9px 22px rgba(151,103,0,.45)}.promotions-map-pin img{position:absolute;top:50%;left:50%;width:36px;height:36px;box-sizing:border-box;padding:3px;border-radius:50%;background:#fff;object-fit:contain;transform:translate(-50%,-50%) rotate(45deg)}.leaflet-popup-content-wrapper:has(.promotions-map-card){overflow:hidden;border:1px solid #dce5ea;border-radius:18px;box-shadow:0 18px 42px rgba(15,23,42,.22)}.leaflet-popup-content:has(.promotions-map-card){width:auto!important;margin:0}.promotions-map-card{width:290px;direction:rtl;font-family:Cairo,sans-serif}.promotions-map-card-cover{display:block;width:100%;height:112px;object-fit:cover;background:#edf2f4}.promotions-map-card>div{padding:12px}.promotions-map-card>div>div{display:flex;align-items:center;gap:9px}.promotions-map-card>div>div>img{width:43px;height:43px;flex:none;object-fit:contain;border:1px solid #e2e8ec;border-radius:12px;background:#fff}.promotions-map-card span{min-width:0}.promotions-map-card b,.promotions-map-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.promotions-map-card b{color:#243f51;font-size:12px}.promotions-map-card small{margin-top:2px;color:#7b8b96;font-size:8px}.promotions-map-card p{display:-webkit-box;overflow:hidden;margin:9px 0;color:#637784;font-size:9px;line-height:1.7;-webkit-box-orient:vertical;-webkit-line-clamp:2}.promotions-map-card a{display:flex;height:37px;align-items:center;justify-content:center;border-radius:10px;background:#087f72;color:#fff;font-size:9px;font-weight:900;text-decoration:none}.promotions-map-dialog .leaflet-top{top:84px}.promotions-map-dialog .leaflet-control-attribution{font-size:8px}
@media(max-width:700px){.promotions-map-modal{padding:0}.promotions-map-dialog{width:100%;height:100svh;border:0;border-radius:0}.promotions-map-dialog>header{top:9px;right:9px;left:9px;padding:8px}.promotions-map-dialog h2{font-size:12px}.promotions-map-dialog>header>div>span{width:35px;height:35px}.promotions-map-dialog>header>button{width:35px;height:35px}.promotions-map-dialog .leaflet-top{top:73px}.promotions-map-card{width:250px}.promotions-map-card-cover{height:95px}}

/* Stronger, better-balanced advertiser card inside map popups. */
.promotions-map-dialog .leaflet-popup-content-wrapper:has(.promotions-map-card){overflow:hidden;border:0;border-radius:22px;background:#fff;box-shadow:0 22px 55px rgba(24,51,68,.26),0 0 0 1px rgba(255,255,255,.9)}
.promotions-map-dialog .leaflet-popup-content:has(.promotions-map-card){margin:0!important}
.promotions-map-dialog .promotions-map-card{position:relative;width:310px;overflow:hidden;background:linear-gradient(180deg,#fff 0,#f8fbfb 100%);color:#243f51}
.promotions-map-dialog .promotions-map-card::after{content:"";position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,#087f72,#20b69e,#ff7a2f)}
.promotions-map-dialog .promotions-map-card-cover{display:block;width:100%;height:138px;object-fit:cover;background:#edf2f4}
.promotions-map-dialog .promotions-map-card>div{position:relative;padding:15px 16px 16px}
.promotions-map-dialog .promotions-map-card>div>div{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:11px;margin-top:-31px;padding:7px 8px 8px;border:1px solid #e0e9e8;border-radius:17px;background:rgba(255,255,255,.96);box-shadow:0 10px 25px rgba(25,67,62,.1);backdrop-filter:blur(10px)}
.promotions-map-dialog .promotions-map-card>div>div>img{width:52px;height:52px;box-sizing:border-box;padding:4px;border:2px solid #fff;border-radius:15px;background:#f5f8f8;box-shadow:0 3px 10px rgba(25,53,66,.13);object-fit:contain}
.promotions-map-dialog .promotions-map-card span{display:grid;min-width:0;gap:3px;text-align:start}
.promotions-map-dialog .promotions-map-card b{overflow:hidden;color:#203c4c;font-size:13px;font-weight:950;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}
.promotions-map-dialog .promotions-map-card small{overflow:hidden;color:#748793;font-size:8px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.promotions-map-dialog .promotions-map-card p{display:-webkit-box;min-height:37px;overflow:hidden;margin:12px 2px;color:#5f7480;font-size:9px;font-weight:700;line-height:1.95;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.promotions-map-dialog .leaflet-container .promotions-map-card a{display:flex;height:43px;align-items:center;justify-content:center;border:0;border-radius:13px;background:linear-gradient(135deg,#087f72,#079486);color:#fff!important;font-size:10px;font-weight:950;text-decoration:none;box-shadow:0 9px 19px rgba(8,127,114,.22);transition:transform .18s,box-shadow .18s}
.promotions-map-dialog .leaflet-container .promotions-map-card a:hover{color:#fff!important;box-shadow:0 12px 24px rgba(8,127,114,.3);transform:translateY(-1px)}
.promotions-map-dialog .leaflet-popup-close-button{top:8px!important;right:auto!important;left:8px!important;width:30px!important;height:30px!important;border-radius:9px!important;background:rgba(20,43,54,.76)!important;color:#fff!important;font-size:20px!important;line-height:28px!important}
@media(max-width:700px){.promotions-map-dialog .promotions-map-card{width:270px}.promotions-map-dialog .promotions-map-card-cover{height:118px}.promotions-map-dialog .promotions-map-card>div{padding:13px}.promotions-map-dialog .promotions-map-card>div>div{grid-template-columns:48px minmax(0,1fr);margin-top:-27px}.promotions-map-dialog .promotions-map-card>div>div>img{width:46px;height:46px}.promotions-map-dialog .promotions-map-card p{margin-block:10px}.promotions-map-dialog .leaflet-container .promotions-map-card a{height:40px}}

/* Fixed modal frame: header, flexible map body, and footer. */
.promotions-map-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.promotions-map-dialog>header{position:relative;z-index:500;top:auto;right:auto;left:auto;margin:0;padding:13px 16px;border:0;border-bottom:1px solid #e2e9ed;border-radius:0;background:rgba(255,255,255,.98);box-shadow:0 8px 22px rgba(15,23,42,.08)}
.promotions-map-body{position:relative;min-height:0;overflow:hidden;background:#e9f1f3}
.promotions-map-body .promotions-map-canvas{position:absolute;inset:0;width:100%;height:100%}
.promotions-map-footer{position:relative;z-index:500;display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:15px;box-sizing:border-box;padding:10px 16px;border-top:1px solid #e1e8ec;background:rgba(255,255,255,.98);box-shadow:0 -8px 22px rgba(15,23,42,.07)}
.promotions-map-footer>div{display:flex;align-items:center;gap:9px}.promotions-map-footer>div>span{display:grid;width:37px;height:37px;place-items:center;border-radius:11px;background:#e9f7f4;color:#087f72;font-size:20px}.promotions-map-footer p,.promotions-map-footer b,.promotions-map-footer small{display:block;margin:0}.promotions-map-footer b{color:#294653;font-size:10px}.promotions-map-footer small{margin-top:2px;color:#81909a;font-size:8px}.promotions-map-footer>button{min-width:120px;height:39px;border:0;border-radius:11px;background:#087f72;color:#fff;font:900 9px Cairo,sans-serif;cursor:pointer}
.promotions-map-dialog .leaflet-top{top:10px}
@media(max-width:700px){.promotions-map-dialog>header{margin:0;padding:9px 10px}.promotions-map-footer{min-height:55px;padding:7px 10px}.promotions-map-footer>div>span{width:34px;height:34px}.promotions-map-footer>button{min-width:92px;height:36px}.promotions-map-footer small{display:none}.promotions-map-dialog .leaflet-top{top:10px}}

/* Cluster nearby advertiser balloons to keep dense map areas readable. */
.promotions-map-cluster{border:0!important;background:transparent!important}.promotions-map-cluster>span{position:relative;display:grid;width:56px;height:56px;place-content:center;border:4px solid #fff;border-radius:50% 50% 50% 12px;background:linear-gradient(145deg,#087f72,#10a58f);color:#fff;box-shadow:0 10px 24px rgba(8,91,80,.38);transform:rotate(-45deg);text-align:center}.promotions-map-cluster>span:before{content:"";position:absolute;inset:-9px;border:2px solid rgba(8,127,114,.2);border-radius:50%;animation:promotions-cluster-pulse 2.2s ease-in-out infinite}.promotions-map-cluster b,.promotions-map-cluster small{display:block;transform:rotate(45deg);line-height:1}.promotions-map-cluster b{font-size:17px;font-weight:950}.promotions-map-cluster small{margin-top:4px;font-size:7px;font-weight:900}.promotions-map-cluster:hover>span{background:linear-gradient(145deg,#ff7a2f,#e85b0a);box-shadow:0 12px 27px rgba(185,67,5,.4)}@keyframes promotions-cluster-pulse{0%,100%{opacity:.35;transform:scale(.88)}50%{opacity:.8;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.promotions-map-cluster>span:before{animation:none}}
/* Modal location control and footer statistics. */
.promotions-map-dialog>header>nav{display:flex;align-items:center;gap:7px}.promotions-map-dialog>header>nav button{display:flex;height:39px;align-items:center;justify-content:center;gap:5px;padding:0 11px;border:1px solid #dce5ea;border-radius:11px;background:#fff;color:#526573;font-family:Cairo,sans-serif;cursor:pointer}.promotions-map-dialog>header>nav button>span{font-size:20px}.promotions-map-dialog>header>nav button>b{font-size:9px}.promotions-map-dialog>header>nav button[data-promotions-map-close]{width:39px;padding:0}.promotions-map-dialog>header>nav button[data-promotions-map-locate]{border-color:#bfe6dc;background:#effaf7;color:#087f72}.promotions-map-dialog>header>nav button.is-active{border-color:#087f72;background:#087f72;color:#fff}.promotions-map-dialog>header>nav button.is-loading span{animation:promotions-locate-spin .8s linear infinite}.promotions-map-dialog>header>nav button:disabled{cursor:wait;opacity:.7}@keyframes promotions-locate-spin{to{transform:rotate(360deg)}}
.promotions-map-footer .promotions-map-stats{display:flex;align-items:stretch;gap:8px}.promotions-map-stats article{display:grid;min-width:125px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:7px;padding:6px 9px;border:1px solid #e2e9ed;border-radius:11px;background:#f8fafb}.promotions-map-stats article>span{display:grid;width:32px;height:32px;place-items:center;border-radius:9px;background:#e9f7f4;color:#087f72;font-size:18px}.promotions-map-stats article:nth-child(2)>span{background:#fff6db;color:#c78300}.promotions-map-stats article:nth-child(3)>span{background:#eef3ff;color:#3568b8}.promotions-map-stats p{min-width:0}.promotions-map-stats small,.promotions-map-stats b{display:block}.promotions-map-stats small{overflow:hidden;color:#7d8d98;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.promotions-map-stats b{margin-top:1px;color:#294653;font-size:12px}.promotions-user-location{border:0!important;background:transparent!important}.promotions-user-location>span{position:relative;display:grid;width:36px;height:36px;place-items:center;border:4px solid #fff;border-radius:50%;background:#1677ff;box-shadow:0 7px 18px rgba(22,119,255,.4)}.promotions-user-location>span:before{content:"";position:absolute;inset:-11px;border-radius:50%;background:rgba(22,119,255,.16);animation:promotions-user-pulse 1.8s ease-out infinite}.promotions-user-location i{position:relative;width:10px;height:10px;border-radius:50%;background:#fff}@keyframes promotions-user-pulse{0%{opacity:.8;transform:scale(.55)}100%{opacity:0;transform:scale(1.35)}}
@media(max-width:700px){.promotions-map-dialog>header>nav button[data-promotions-map-locate]{width:36px;padding:0}.promotions-map-dialog>header>nav button[data-promotions-map-locate] b{display:none}.promotions-map-footer .promotions-map-stats{min-width:0;flex:1;gap:4px}.promotions-map-stats article{min-width:0;flex:1;grid-template-columns:25px minmax(0,1fr);gap:4px;padding:4px}.promotions-map-stats article>span{width:24px;height:24px;font-size:15px}.promotions-map-stats small{font-size:6px}.promotions-map-stats b{font-size:10px}.promotions-map-footer>button{min-width:72px;padding-inline:7px;font-size:8px}}
