.map-card{position:relative;display:block;aspect-ratio:2/1;border-radius:18px;overflow:hidden;background:#E9E4DA;box-shadow:0 6px 18px rgba(18,48,107,.14);outline:none;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease}
.map-card>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s ease}
.map-pin{position:absolute;left:50%;top:50%;width:30px;height:40px;margin:-40px 0 0 -15px;filter:drop-shadow(0 4px 6px rgba(15,42,95,.4));transform-origin:50% 100%;animation:pinbob 2.4s ease-in-out infinite}
.map-cta{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.96);color:var(--navy);font-size:13px;box-shadow:0 4px 12px rgba(15,42,95,.22);transition:background-color .25s ease,color .25s ease,transform .25s cubic-bezier(.2,.7,.2,1)}
.map-cta b{font-weight:800}
.map-cta i{font-style:normal;font-size:15px;line-height:1;transition:transform .25s ease}
.map-attr{position:absolute;right:6px;bottom:4px;padding:1px 5px;border-radius:4px;background:rgba(255,255,255,.8);color:#4B5873;font-size:10px}
.map-card:focus-visible{box-shadow:0 0 0 4px var(--yellow),0 6px 18px rgba(18,48,107,.14)}
@keyframes pinbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (hover:hover){
  .map-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(18,48,107,.2)}
  .map-card:hover>img{transform:scale(1.06);filter:saturate(1.1)}
  .map-card:hover .map-cta{background:var(--navy);color:#fff;transform:translateX(2px)}
  .map-card:hover .map-cta i{transform:translate(2px,-2px)}
}
@media (max-width:760px){
  .campus-side{flex:1 1 100%;max-width:none}
}
@media (prefers-reduced-motion:reduce){.map-pin{animation:none}}
