/* Interactive member world map — shared by the landing page (Our Members) and /network.
   Map image: public/images/world-dots.svg (generated with the dotted-map package); pins: config/world_map.php. */
.lp-geo-band{position:relative;overflow:hidden;isolation:isolate;text-align:center;padding:48px 0 44px;
  background:radial-gradient(circle at 50% 45%,#FAFAFE 0%,#ECECFA 45%,#D9DAF4 100%);}
.lp-geo-band::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(255,255,255,.2) 0%,rgba(217,218,244,.3) 70%,rgba(159,161,226,.45) 100%);}
.lp-geo-band > *{position:relative;z-index:1;}
.lp-geo-band .lp-geo-title{color:#14141F;font-size:clamp(26px,3.6vw,38px);margin-bottom:10px;}
.lp-geo-band .lp-members-head{padding:0 16px;}
.lp-geo-band .lp-members-head p{color:#43434F;font-size:15px;max-width:none;margin:0 auto;}
@media(min-width:768px){.lp-geo-band .lp-members-head p{white-space:nowrap;}}

.lp-geo-wrap{padding:22px 16px 6px;}
.lp-geo{position:relative;width:100%;max-width:860px;margin:0 auto;}
/* Dotted map tinted via mask (public/images/world-dots.svg, generated with the dotted-map package). */
.lp-geo-map{position:absolute;inset:0;background:linear-gradient(180deg,#7C7FE6 0%,#4A4DB4 100%);opacity:.55;pointer-events:none;
  -webkit-mask:url('../images/world-dots.svg') center/contain no-repeat;mask:url('../images/world-dots.svg') center/contain no-repeat;
  filter:drop-shadow(0 10px 18px rgba(74,77,180,.18));}
.lp-geo-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;
  filter:drop-shadow(0 0 3px rgba(255,255,255,.9));}
.lp-geo-link{fill:none;stroke:#5457BE;stroke-opacity:.75;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:6 5;
  animation:lpGeoDash 28s linear infinite;transition:stroke .25s,stroke-opacity .25s,stroke-width .25s;}
@keyframes lpGeoDash{to{stroke-dashoffset:-300;}}

/* Beacon pin: white glowing disc, navy core, pulsing ring */
.lp-geo-node{position:absolute;transform:translate(-50%,-50%);z-index:2;}
.lp-geo-node:hover{z-index:5;}
/* Member pin: round photo in a white ring with an indigo halo, plus a pulsing ring */
.lp-beacon{position:relative;display:block;width:34px;height:34px;padding:2px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 2px #6F72D8,0 0 12px 3px rgba(255,255,255,.9),0 4px 12px rgba(74,77,180,.35);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;}
.lp-beacon.is-major{width:40px;height:40px;}
.lp-beacon-photo{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;background:#ECECFA;}
.lp-beacon-ring{position:absolute;inset:-2px;border-radius:50%;border:2px solid #9DA0F5;opacity:0;pointer-events:none;
  animation:lpBeaconPulse 2.8s cubic-bezier(.2,.6,.35,1) infinite;animation-delay:var(--d,0s);}
@keyframes lpBeaconPulse{0%{transform:scale(1);opacity:.9;}70%{transform:scale(1.9);opacity:.15;}100%{transform:scale(2.1);opacity:0;}}
.lp-geo-node:hover .lp-beacon,.lp-beacon:focus-visible{box-shadow:0 0 0 3px #5457BE,0 0 18px 5px rgba(157,160,245,.7),0 6px 16px rgba(74,77,180,.4);}
.lp-geo-node:hover .lp-beacon,.lp-beacon:focus-visible{transform:scale(1.25);}
@media(prefers-reduced-motion:reduce){.lp-beacon-ring,.lp-geo-link{animation:none;}}

/* Hover card */
.lp-geo-tip{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,4px);min-width:170px;max-width:240px;
  padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border:1px solid #fff;
  box-shadow:0 12px 28px -8px rgba(74,77,180,.35);text-align:left;white-space:normal;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;}
.lp-geo-node:hover .lp-geo-tip,.lp-geo-node:focus-within .lp-geo-tip{opacity:1;transform:translate(-50%,0);}
.lp-geo-tip strong{display:block;font-size:12.5px;font-weight:700;color:#14141F;}
.lp-geo-tip em{display:block;font-style:normal;font-size:11px;color:#5457BE;margin-top:1px;}
.lp-geo-tip small{display:block;font-size:10.5px;color:#7B7B88;margin-top:4px;padding-top:4px;border-top:1px solid #E7E7F0;}

/* "View All Members" button under the map */
.lp-geo-more{display:flex;justify-content:center;margin-top:18px;}
.lp-geo-card-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:999px;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#7C7FE6 0%,#5B5EC9 55%,#4A4DB4 100%);box-shadow:0 10px 22px -8px rgba(74,77,180,.6);transition:transform .15s,filter .15s,box-shadow .15s;}
.lp-geo-card-cta:hover{filter:brightness(1.1);box-shadow:0 14px 28px -8px rgba(74,77,180,.7);}
.lp-geo-card-cta span{transition:transform .15s;}
.lp-geo-card-cta:hover span{transform:translateX(3px);}
.lp-geo-card-cta:active{transform:scale(.97);}
@media(max-width:600px){
  .lp-geo-band{padding:36px 0 32px;}
  .lp-geo-wrap{padding:16px 6px 4px;}
  .lp-beacon{width:24px;height:24px;padding:1.5px;}.lp-beacon.is-major{width:28px;height:28px;}
  .lp-geo-tip{min-width:140px;}
}
/* Hover cards for pins near the map edges open inward so they stay on screen. */
.lp-geo-node.tip-end .lp-geo-tip{left:auto;right:-8px;transform:translate(0,4px);}
.lp-geo-node.tip-start .lp-geo-tip{left:-8px;transform:translate(0,4px);}
.lp-geo-node.tip-end:hover .lp-geo-tip,.lp-geo-node.tip-start:hover .lp-geo-tip,
.lp-geo-node.tip-end:focus-within .lp-geo-tip,.lp-geo-node.tip-start:focus-within .lp-geo-tip{transform:translate(0,0);}

/* /network: the map is the page hero, shown as a rounded card like the other page heroes. */
.network-map-hero{margin-bottom:18px;}
.network-map-hero .lp-geo-band{border-radius:24px;padding:20px 0 18px;box-shadow:0 18px 40px -22px rgba(74,77,180,.35);}
.network-map-hero .lp-geo-title{font-size:clamp(26px,3.4vw,40px);line-height:1.15;}
.network-map-hero .lp-geo-wrap{padding-top:6px;padding-bottom:0;}
@media(max-width:600px){.network-map-hero .lp-geo-band{border-radius:18px;padding:26px 0 12px;}}
