.epw-project-map{--epw-navy:#062a54;--epw-green:#29934c;font-family:inherit;max-width:100%;background:#fff;border:1px solid #e5ebf0;border-radius:16px;overflow:hidden;box-shadow:0 12px 36px rgba(6,42,84,.08)}
.epw-topbar{padding:17px 20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;background:#fff}
.epw-topbar-title{display:flex;flex-direction:column;gap:2px;color:var(--epw-navy);line-height:1.35}.epw-topbar-title strong{font-size:18px}.epw-count{font-size:13px;color:#64748b}
.epw-filters{display:flex;flex-wrap:wrap;gap:7px}.epw-filters button{font:inherit;font-size:13px;border:1px solid #dce5ed;background:#fff;color:#26435e;padding:8px 12px;border-radius:8px;line-height:1.2;cursor:pointer;transition:.15s ease;min-height:35px}.epw-filters button:hover,.epw-filters button.is-active{background:var(--epw-navy);border-color:var(--epw-navy);color:#fff}
.epw-dot{display:inline-block;width:9px;height:9px;border-radius:100%;margin-right:4px;background:var(--epw-green)}.epw-dot.is-d{background:#557aab}.epw-map-canvas{height:var(--epw-desktop-height,590px);width:100%;background:#fff;z-index:1;position:relative}.epw-project-map--germany .leaflet-container{background:#fff}.epw-project-map--germany .leaflet-image-layer{image-rendering:auto}.epw-project-map--germany .leaflet-marker-pane,.epw-project-map--germany .leaflet-overlay-pane,.epw-project-map--germany .leaflet-popup-pane,.epw-project-map--germany .leaflet-tooltip-pane{pointer-events:auto}.epw-footer-note{font-size:12px;color:#64748b;padding:10px 20px;margin:0!important;background:#fff}
.epw-project-map .leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 10px 30px rgba(6,42,84,.18)}.epw-project-map .leaflet-popup-content{margin:12px 15px;max-height:390px;overflow:auto}.epw-project-map .leaflet-container{font-family:inherit}
.epw-detail-title{font-size:17px!important;font-weight:700!important;color:var(--epw-navy);line-height:1.3;margin:0 0 9px!important;padding:0}.epw-type-label{display:inline-flex;font-size:11px;font-weight:700;color:#fff;background:var(--epw-navy);padding:3px 8px;border-radius:50px;margin:0 0 11px}.epw-label-f{background:var(--epw-green)}.epw-label-d{background:var(--epw-navy)}
.epw-detail-image{width:100%;height:140px;object-fit:cover;border-radius:7px;display:block;margin-bottom:11px}.epw-detail-fields{display:grid;grid-template-columns:85px 1fr;column-gap:10px;row-gap:7px;font-size:12px;line-height:1.45;margin:2px 0 0}.epw-detail-fields dt{font-weight:700;color:#52667a}.epw-detail-fields dd{margin:0;color:#19344e;overflow-wrap:anywhere}.epw-detail-description{font-size:12px;margin:10px 0 0!important;line-height:1.5;color:#42586d}.epw-multi-hint{font-size:12px;font-weight:700;color:var(--epw-navy);margin:0 0 10px!important}.epw-popup-content hr{border:0;border-top:1px solid #e7edf3;margin:13px 0}.epw-mobile-detail{display:none}.epw-map-fallback{padding:20px;color:#813d26;background:#fff8ef}
@media(max-width:650px){.epw-topbar{padding:14px}.epw-map-canvas{height:var(--epw-mobile-height,420px)!important}.epw-filters{width:100%}.epw-filters button{flex:1;padding:8px 5px;font-size:12px}.epw-mobile-detail:not(:empty){display:block;padding:17px;border-top:1px solid #e5ebf0}.epw-mobile-detail .epw-detail+.epw-detail{margin-top:18px;padding-top:18px;border-top:1px solid #e5ebf0}.epw-mobile-detail .epw-detail-image{height:170px}.epw-footer-note{padding:10px 14px}}

.epw-searchbar{display:flex;gap:10px;flex-wrap:wrap;padding:0 20px 15px;background:#fff}.epw-searchbar input,.epw-searchbar select{font:inherit;background:#fff;border:1px solid #dce5ed;border-radius:8px;min-height:40px;padding:9px 12px;color:#062a54;margin:0}.epw-searchbar input{flex:2 1 220px}.epw-searchbar select{flex:1 1 175px}.epw-searchbar input:focus,.epw-searchbar select:focus{outline:2px solid #29934c;outline-offset:1px}@media(max-width:650px){.epw-searchbar{padding:0 14px 14px}.epw-searchbar input,.epw-searchbar select{flex:1 1 100%;width:100%}}

.epw-project-map--germany .epw-map-canvas{box-shadow:inset 0 0 0 1px rgba(6,42,84,.03)}

/* v1.4.4: elegant, responsive interactive location pins and uncluttered labels */
.epw-project-map .epw-pin-wrap{background:transparent;border:0;overflow:visible}
.epw-project-map .epw-pin{--epw-pin:#062a54;position:relative;display:block;width:30px;height:30px;transform:rotate(-45deg);background:linear-gradient(145deg,color-mix(in srgb,var(--epw-pin) 84%,white),var(--epw-pin));border:2.5px solid #fff;border-radius:52% 52% 52% 6%;box-shadow:0 3px 0 rgba(4,30,56,.12),0 6px 14px rgba(6,42,84,.24);transition:filter .16s ease,scale .16s ease}
.epw-project-map .epw-pin--f{--epw-pin:#29934c}
.epw-project-map .epw-pin-dot{display:block;position:absolute;left:9px;top:9px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.08)}
.epw-project-map .epw-pin-count{position:absolute;top:-8px;right:-10px;transform:rotate(45deg);height:19px;min-width:19px;border-radius:20px;background:#fff;color:#062a54;font-size:11px;line-height:19px;text-align:center;font-weight:800;padding:0 3px;border:1px solid #d8e6df;box-shadow:0 2px 7px rgba(6,42,84,.18)}
.epw-project-map .epw-pin-wrap:hover .epw-pin,.epw-project-map .epw-pin-wrap:focus .epw-pin{scale:1.13;filter:brightness(1.09)}
.epw-project-map .epw-pin-wrap:focus-visible{outline:3px solid #1e8cde;outline-offset:4px;border-radius:6px}
.epw-project-map .leaflet-tooltip.epw-map-tooltip{max-width:190px;white-space:normal;text-align:center;line-height:1.35;padding:7px 10px;background:#062a54;border:1px solid rgba(255,255,255,.22);box-shadow:0 6px 18px rgba(6,42,84,.18);border-radius:7px;color:#fff;font-family:inherit;font-size:12px;font-weight:600}
.epw-project-map .leaflet-tooltip-top.epw-map-tooltip:before{border-top-color:#062a54}
.epw-project-map .epw-project-popup .leaflet-popup-content-wrapper{border:1px solid #e0ebe7;border-radius:16px;background:#fff;box-shadow:0 16px 40px rgba(6,42,84,.20)}
.epw-project-map .epw-project-popup .leaflet-popup-content{margin:16px 17px;max-height:min(58vh,420px);overflow:auto}
.epw-project-map .epw-project-popup .leaflet-popup-tip{background:#fff}
.epw-project-map .epw-project-popup .leaflet-popup-close-button{font-size:22px;color:#637889;top:5px;right:7px}
.epw-project-map .epw-detail-title{font-size:18px!important;margin-right:18px!important}
.epw-project-map .epw-detail-fields{font-size:13px;row-gap:9px;grid-template-columns:80px 1fr}
.epw-project-map .epw-type-label{letter-spacing:.015em;margin-bottom:12px}
@media(max-width:650px){.epw-project-map .epw-project-popup .leaflet-popup-content{max-width:240px;margin:13px}.epw-project-map .epw-pin{width:28px;height:28px}}

/* v1.4.5: readable automatic groups and drill-down */
.epw-project-map .epw-pin--cluster{width:42px;height:42px;transform:translateY(2px);border-radius:17px 17px 17px 7px;display:flex;align-items:center;justify-content:center}
.epw-project-map .epw-pin--cluster .epw-pin-dot{display:none}
.epw-project-map .epw-pin--cluster .epw-pin-count{position:static;transform:none;min-width:24px;height:24px;border:0;border-radius:99px;background:#fff;color:#062a54;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.epw-project-map .epw-pin--mixed{background:linear-gradient(135deg,#29934c 0 50%,#062a54 50% 100%)}
.epw-project-map .epw-cluster-title{font-size:17px;line-height:1.3;color:#062a54;margin:0 0 5px;font-weight:700}
.epw-project-map .epw-cluster-hint{font-size:12px;color:#61768a;margin:0 0 12px}
.epw-project-map .epw-cluster-items{max-height:275px;overflow-y:auto;display:flex;flex-direction:column;gap:5px}
.epw-project-map .epw-cluster-item{font:inherit;text-transform:none;letter-spacing:normal;display:flex;align-items:flex-start;text-align:left;gap:9px;min-height:50px;border:1px solid #e1e9ed;border-radius:9px;padding:9px 10px;background:#fff;color:#062a54;cursor:pointer;box-shadow:none;width:100%;line-height:1.35}
.epw-project-map .epw-cluster-item:hover,.epw-project-map .epw-cluster-item:focus-visible{background:#f3f9f4;border-color:#29934c}
.epw-project-map .epw-cluster-item-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.epw-project-map .epw-cluster-item strong{font-size:13px;font-weight:700}
.epw-project-map .epw-cluster-item small{font-size:11px;color:#61768a;line-height:1.35;white-space:normal}
.epw-project-map .epw-cluster-type-dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:4px;background:#062a54}
.epw-project-map .epw-cluster-type-f{background:#29934c}
.epw-project-map .epw-spider-button{font:inherit;font-size:12px;font-weight:700;line-height:1.3;background:#062a54;color:#fff;border:0;border-radius:8px;padding:10px 14px;margin:12px 0 0;cursor:pointer}
.epw-project-map .epw-spider-button:hover{background:#29934c;color:#fff}

/* v1.4.6 compact individual pins, clear project count, tidy popups */
.epw-project-map .epw-topbar-title strong{font-size:19px}
.epw-project-map .epw-count{display:inline-flex;align-self:flex-start;align-items:center;gap:5px;background:#ecf7ef;color:#176735;border:1px solid #c7e9cf;border-radius:99px;padding:5px 11px;font-weight:700;font-size:13px}
.epw-project-map .epw-pin:not(.epw-pin--cluster){width:23px;height:23px;border-width:2px}
.epw-project-map .epw-pin:not(.epw-pin--cluster) .epw-pin-dot{left:7px;top:7px;width:6px;height:6px}
.epw-project-map .epw-pin--cluster{width:31px;height:31px;border-radius:12px 12px 12px 5px;border-width:2px}
.epw-project-map .epw-pin--cluster .epw-pin-count{font-size:11px;min-width:19px;height:19px}
.epw-project-map .epw-project-popup .leaflet-popup-content{margin:13px 12px!important;max-height:min(49vh,340px)!important;overflow-x:hidden!important;overflow-y:auto!important;max-width:calc(100vw - 90px);box-sizing:border-box}
.epw-project-map .epw-project-popup .leaflet-popup-content-wrapper{max-width:calc(100vw - 46px);box-sizing:border-box}
.epw-project-map .epw-cluster-list,.epw-project-map .epw-cluster-items,.epw-project-map .epw-cluster-item{box-sizing:border-box;min-width:0;max-width:100%;overflow-x:hidden}
.epw-project-map .epw-cluster-items{max-height:195px;overflow-y:auto;gap:3px}
.epw-project-map .epw-cluster-item{padding:7px 8px;min-height:40px;white-space:normal;margin:0}
.epw-project-map .epw-cluster-item-body{overflow-wrap:anywhere}
.epw-project-map .epw-cluster-item strong{font-size:12px}
.epw-project-map .epw-cluster-item small{font-size:10px;overflow-wrap:anywhere}
.epw-project-map .epw-spider-button{background:none!important;border:0!important;box-shadow:none!important;color:#062a54!important;font-size:12px!important;text-decoration:underline;text-underline-offset:3px;padding:6px 0!important;margin-top:6px}
.epw-project-map .epw-spider-button:hover{color:#29934c!important}

/* v1.4.9: form controls with sufficient descender space, despite theme defaults */
.epw-project-map .epw-searchbar{align-items:stretch;gap:12px;padding-top:3px;padding-bottom:18px}
.epw-project-map .epw-searchbar input.epw-search,
.epw-project-map .epw-searchbar select.epw-state-filter,
.epw-project-map .epw-searchbar select.epw-status-filter{
  box-sizing:border-box!important;height:50px!important;min-height:50px!important;
  font-size:16px!important;line-height:24px!important;font-weight:400!important;
  padding:11px 16px!important;margin:0!important;border-radius:9px!important;
  letter-spacing:normal!important;text-transform:none!important;
  color:#062a54!important;vertical-align:middle!important;
  background-color:#fff!important;border:1px solid #dce5ed!important;
  box-shadow:none!important;overflow:visible!important;
}
.epw-project-map .epw-searchbar input.epw-search{flex:1.7 1 280px;-webkit-appearance:none;appearance:none}
.epw-project-map .epw-searchbar select.epw-state-filter,
.epw-project-map .epw-searchbar select.epw-status-filter{
  flex:1 1 215px;cursor:pointer;padding-right:36px!important;
  -webkit-appearance:auto;appearance:auto;
}
.epw-project-map .epw-searchbar input.epw-search:focus,
.epw-project-map .epw-searchbar select:focus{outline:2px solid #29934c!important;outline-offset:2px!important}
@media(max-width:650px){
  .epw-project-map .epw-searchbar input.epw-search,
  .epw-project-map .epw-searchbar select.epw-state-filter,
  .epw-project-map .epw-searchbar select.epw-status-filter{flex:1 1 100%;min-width:0;width:100%}
}

/* v1.5.0: precise dots, address-only clusters and zoom controls */
.epw-project-map--germany{position:relative}
.epw-project-map .epw-site-icon{border:0!important;background:transparent!important;overflow:visible!important}
.epw-project-map .epw-site-circle{box-sizing:border-box;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px rgba(6,42,84,.3);font-family:inherit;font-size:12px;font-weight:700;line-height:1;color:#fff;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}
.epw-project-map .epw-site-free{background:#29934c}
.epw-project-map .epw-site-roof{background:#062a54}
.epw-project-map .epw-site-mixed{background:linear-gradient(120deg,#29934c 0 50%,#062a54 50% 100%)}
.epw-project-map .epw-site-icon:hover .epw-site-circle,.epw-project-map .epw-site-icon:focus .epw-site-circle{transform:scale(1.22);box-shadow:0 3px 12px rgba(6,42,84,.42)}
.epw-project-map .epw-zoom-controls{position:absolute;z-index:510;right:16px;top:174px;display:flex;flex-direction:column;gap:4px}
.epw-project-map .epw-zoom-button{width:35px;height:35px;min-height:35px;padding:0;border:1px solid #dce5ed;border-radius:8px;background:#fff;color:#062a54;font:700 22px/1 Arial,sans-serif;box-shadow:0 2px 9px rgba(6,42,84,.12);cursor:pointer}
.epw-project-map .epw-zoom-button:hover{background:#eff8f2;color:#29934c}
@media(max-width:650px){.epw-project-map .epw-zoom-controls{right:10px;top:235px}}

/* v1.5.1: georeferenced vector basemap */
.epw-project-map--germany .leaflet-container{background:linear-gradient(180deg,#cbe8f5 0%,#e8f4f9 35%,#f4f8f8 100%)}
.epw-project-map .epw-sea-label{color:#6486a2;font-size:14px;font-weight:600;letter-spacing:.03em;text-shadow:0 1px 2px #fff;white-space:nowrap;pointer-events:none}


/* v1.5.2: friendlier georeferenced basemap styling */
.epw-project-map--germany .leaflet-container{background:radial-gradient(circle at 50% 30%,#e9f6fb 0%,#d7ecf6 36%,#c6e2ef 65%,#b7d6e7 100%)}
.epw-project-map--germany .epw-map-canvas{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.epw-project-map .epw-sea-label{color:#5c7f9a;font-size:16px;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 10px rgba(255,255,255,.55)}
.epw-project-map .epw-country-label{color:#8aa0ae;font-size:14px;font-weight:600;letter-spacing:.08em;text-shadow:0 1px 0 rgba(255,255,255,.9);white-space:nowrap;pointer-events:none}
.epw-project-map .epw-project-popup .leaflet-popup-content-wrapper{border-color:#dfe8dc}
.epw-project-map .epw-count{background:#edf7eb;border-color:#d0e8c9;color:#176735}


/* v1.5.3: warmer, cleaner, more elegant map design */
.epw-project-map--germany .leaflet-container{
  background:
    radial-gradient(circle at 22% 16%, rgba(255,255,255,.42) 0, rgba(255,255,255,0) 24%),
    radial-gradient(circle at 82% 20%, rgba(255,255,255,.24) 0, rgba(255,255,255,0) 20%),
    linear-gradient(180deg,#d8edf6 0%,#c9e1ed 48%,#b8d5e5 100%);
}
.epw-project-map--germany .epw-map-canvas{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35), inset 0 14px 40px rgba(255,255,255,.14)}
.epw-project-map .epw-sea-label{
  color:#63829b;
  font-size:17px;
  font-weight:700;
  letter-spacing:.01em;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 18px rgba(255,255,255,.55);
}
.epw-project-map .epw-country-label{
  color:#8ea1ad;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 10px rgba(255,255,255,.5);
  opacity:.92;
}
.epw-project-map .epw-site-circle{
  border:2px solid rgba(255,255,255,.95);
  box-shadow:0 3px 10px rgba(6,42,84,.26),0 0 0 1px rgba(255,255,255,.2);
}
.epw-project-map .epw-site-icon:hover .epw-site-circle,.epw-project-map .epw-site-icon:focus .epw-site-circle{
  transform:scale(1.16);
  box-shadow:0 5px 16px rgba(6,42,84,.34),0 0 0 1px rgba(255,255,255,.26);
}
.epw-project-map .epw-zoom-button{
  background:rgba(255,255,255,.96);
  border-color:#d8e1e5;
  box-shadow:0 4px 16px rgba(6,42,84,.14);
}
.epw-project-map .epw-zoom-button:hover{background:#f8fcf8}


/* v1.5.4: image-based georeferenced basemap */
.epw-project-map--germany .leaflet-container{background:#d4e8f2 !important}
.epw-project-map .epw-country-label,.epw-project-map .epw-sea-label{display:none !important}
.epw-project-map .epw-site-circle{box-shadow:0 4px 12px rgba(6,42,84,.28),0 0 0 1px rgba(255,255,255,.18)}

/* 1.5.7: warm geographic relief map */
.epw-project-map--germany .leaflet-container { background: #cbe3f1 !important; }
.epw-project-map .epw-map-canvas { background: #cbe3f1; }
.epw-project-map .leaflet-image-layer.epw-beautiful-background { image-rendering:auto; }
