/* Villa Palmview — kaartmodule (v171) */
.pv-map{position:relative;background:#eef0ec;overflow:hidden;isolation:isolate}
.pv-map .maplibregl-canvas{outline:none}
.pv-map .maplibregl-ctrl-attrib{font-size:10px;background:rgba(255,253,249,.75)}
.pv-map .maplibregl-ctrl-attrib a{color:#5a5f5b}
.pv-map .maplibregl-ctrl-group{border-radius:10px;box-shadow:0 4px 14px rgba(0,0,0,.10)}
.pv-map .maplibregl-ctrl-logo{display:none!important}
.pv-map .maplibregl-cooperative-gesture-screen{font-family:inherit;font-size:.9rem;border-radius:inherit}
.pv-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-decoration:none;color:#2C2620;font-weight:600;background:#eef0ec}
/* villa-marker */
.pv-pin{position:relative;width:22px;height:22px}
.pv-pin::before{content:"";position:absolute;inset:0;border-radius:50%;background:#4F7263;box-shadow:0 0 0 3px #fff,0 6px 16px rgba(0,0,0,.18)}
.pv-pin::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1.5px solid #4F7263;opacity:0;animation:pvPulse 2.6s ease-out infinite}
@keyframes pvPulse{0%{transform:scale(.4);opacity:.7}100%{transform:scale(1.15);opacity:0}}
@media (prefers-reduced-motion:reduce){.pv-pin::after{animation:none}}
.pv-pin-label{position:absolute;left:30px;top:-6px;white-space:nowrap;background:#fff;color:#2C2620;padding:6px 12px;border-radius:999px;font-family:Fraunces,Georgia,serif;font-size:15px;line-height:1.2;box-shadow:0 4px 14px rgba(0,0,0,.10)}
/* dorpen */
.pv-dot{appearance:none;width:14px;height:14px;padding:0;border-radius:50%;background:#fff;border:2px solid #4F7263;box-shadow:0 3px 10px rgba(0,0,0,.14);cursor:pointer;transition:transform .15s,background .15s}
.pv-dot:hover,.pv-dot.is-on{background:#4F7263;transform:scale(1.25)}
.pv-dot:focus-visible{outline:2px solid #2C2620;outline-offset:2px}
.pv-pop .maplibregl-popup-content{font-family:inherit;font-size:.85rem;padding:6px 12px;border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.12);color:#2C2620}
.pv-pop .maplibregl-popup-tip{display:none}
.dorp-map .pv-map{height:clamp(280px,42vh,440px);border-radius:12px}
/* ligging (homepage) */
.loc-map.pv-map{background:#eef0ec}
.pv-navlinks{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0;justify-content:flex-end}
.pv-navlinks a{font-size:.82rem;text-decoration:none;color:#2C2620;padding:8px 14px;border-radius:999px;border:1px solid rgba(44,38,32,.18);transition:transform .15s,box-shadow .15s}
.pv-navlinks a:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.08)}
/* route */
.pv-airport{width:10px;height:10px;border-radius:50%;background:#A8998A;box-shadow:0 0 0 3px #fff}
.pv-route{position:relative;margin-top:34px;border-radius:18px;overflow:hidden;background:#fff}
.pv-route .pv-map{height:clamp(340px,52vh,540px)}
.pv-route-card{position:absolute;left:18px;top:18px;z-index:2;background:rgba(255,253,249,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;padding:20px 22px;width:min(320px,calc(100% - 36px));box-shadow:0 10px 30px rgba(0,0,0,.12);color:#2C2620}
.pv-route-card h3{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:1.35rem;margin:0 0 6px;color:#2C2620}
.pv-route-card p{margin:0 0 14px;font-size:.85rem;line-height:1.5;color:#5a5f5b}
.pv-seg{display:flex;gap:8px}
.pv-seg button{flex:1;font:inherit;font-size:.82rem;padding:9px 10px;border-radius:10px;border:1px solid rgba(44,38,32,.18);background:#fff;color:#2C2620;cursor:pointer}
.pv-seg button[aria-pressed=true]{background:#4F7263;color:#fff;border-color:#4F7263}
.pv-route-card .pv-navlinks{justify-content:flex-start;margin-top:12px}
.pv-route-card .pv-navlinks a{background:#4F7263;color:#fff;border-color:#4F7263}
@media (max-width:640px){
  .pv-route-card{position:static;width:auto;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .pv-route .pv-map{height:min(60vh,420px)}
}
