/* ProLoco IMK v6.4.0 - Map & Places Module Designer */
.proloco-v64-map,.proloco-v64-places{color:var(--plmap-text,var(--plplace-text,#181b1f));font-family:var(--font-body,system-ui,sans-serif)}
.proloco-v64-map *,.proloco-v64-places *{box-sizing:border-box}
.proloco-v64-map svg,.proloco-v64-places svg{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* MAP */
.proloco-v64-map{--plmap-bg:#fff;--plmap-surface:#fff;--plmap-text:#181b1f;--plmap-muted:#5c636b;--plmap-primary:#0e7a60;--plmap-border:#e5e6e1;--plmap-event:#c5523f;--plmap-place:#0e7a60;--plmap-route:#687a2e;--plmap-producer:#b17832;--plmap-radius:22px;--plmap-gap:16px;--plmap-padding:0;--plmap-height:560px;--plmap-height-tablet:500px;--plmap-height-mobile:400px;--plmap-list-height:560px;--plmap-shadow:0 18px 45px rgba(24,27,31,.1);margin:2rem 0;padding:var(--plmap-padding);background:var(--plmap-bg);border-radius:var(--plmap-radius)}
.proloco-v64-map__header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
.proloco-v64-map__heading{max-width:760px}.proloco-v64-map__eyebrow{display:block;margin-bottom:7px;color:var(--plmap-primary);font-size:.72rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.proloco-v64-map__heading h2{margin:0 0 8px;color:var(--plmap-text)}.proloco-v64-map__heading p{margin:0;color:var(--plmap-muted);line-height:1.6}
.proloco-v64-map__locate,.proloco-v64-map__filters button,.proloco-v64-map__views button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid var(--plmap-border);border-radius:999px;background:var(--plmap-surface);color:var(--plmap-text);font:inherit;font-size:.86rem;font-weight:800;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
.proloco-v64-map__locate{padding:10px 16px;white-space:nowrap}.proloco-v64-map__locate:hover,.proloco-v64-map__locate.is-active{transform:translateY(-1px);background:var(--plmap-primary);border-color:var(--plmap-primary);color:#fff;box-shadow:0 10px 24px color-mix(in srgb,var(--plmap-primary) 24%,transparent)}
.proloco-v64-map__toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:10px;border:1px solid var(--plmap-border);border-radius:calc(var(--plmap-radius) - 6px);background:color-mix(in srgb,var(--plmap-surface) 94%,var(--plmap-primary) 6%)}
.proloco-v64-map__search{position:relative;display:flex;align-items:center;min-width:min(280px,100%);flex:1}.proloco-v64-map__search>svg{position:absolute;left:13px;color:var(--plmap-muted);pointer-events:none}.proloco-v64-map__search input{width:100%;min-height:44px;padding:9px 14px 9px 40px;border:1px solid var(--plmap-border);border-radius:999px;background:var(--plmap-surface);color:var(--plmap-text);font:inherit;outline:none}.proloco-v64-map__search input:focus{border-color:var(--plmap-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--plmap-primary) 15%,transparent)}
.proloco-v64-map__filters,.proloco-v64-map__views{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.proloco-v64-map__filters button,.proloco-v64-map__views button{min-height:38px;padding:8px 12px}.proloco-v64-map__filters button.is-active,.proloco-v64-map__filters button:hover,.proloco-v64-map__views button.is-active,.proloco-v64-map__views button:hover{background:var(--plmap-primary);border-color:var(--plmap-primary);color:#fff}.proloco-v64-map__views{margin-left:auto}.proloco-v64-map__views button{width:40px;padding:8px}.proloco-v64-map__views button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.proloco-v64-map__radius{display:flex;align-items:center;gap:7px;color:var(--plmap-text);font-size:.82rem;font-weight:800}.proloco-v64-map__radius select{min-height:38px;padding:7px 28px 7px 11px;border:1px solid var(--plmap-border);border-radius:999px;background:var(--plmap-surface);color:var(--plmap-text);font:inherit;font-weight:750}
.proloco-v64-map__status{min-height:1.35rem;margin:4px 2px 10px;color:var(--plmap-muted);font-size:.88rem}
.proloco-v64-map__layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:var(--plmap-gap);align-items:stretch}.proloco-v64-map--split-left .proloco-v64-map__canvas{order:2}.proloco-v64-map--split-left .proloco-v64-map__list{order:1}.proloco-v64-map--split-bottom .proloco-v64-map__layout{grid-template-columns:1fr}.proloco-v64-map--split-bottom .proloco-v64-map__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;overflow:visible}
.proloco-v64-map__canvas{width:100%;height:var(--plmap-height);min-height:280px;border:1px solid var(--plmap-border);border-radius:var(--plmap-radius);overflow:hidden;background:#eef4ef;box-shadow:var(--plmap-shadow)}
.proloco-v64-map__list{display:flex;flex-direction:column;gap:10px;max-height:var(--plmap-list-height);overflow:auto;padding:1px 4px 1px 1px;scrollbar-width:thin;scrollbar-color:var(--plmap-border) transparent}.proloco-v64-map--view-map .proloco-v64-map__layout{grid-template-columns:1fr}.proloco-v64-map--view-map .proloco-v64-map__list{display:none}.proloco-v64-map--view-list .proloco-v64-map__layout{grid-template-columns:1fr}.proloco-v64-map--view-list .proloco-v64-map__canvas{display:none}.proloco-v64-map--view-list .proloco-v64-map__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;overflow:visible}
.proloco-v64-map-card{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;padding:10px;border:1px solid var(--plmap-border);border-radius:calc(var(--plmap-radius) - 5px);background:var(--plmap-surface);box-shadow:0 10px 28px rgba(24,27,31,.06);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.proloco-v64-map-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--plmap-primary) 38%,var(--plmap-border));box-shadow:0 16px 34px rgba(24,27,31,.1)}
.proloco-v64-map-card__media,.proloco-v64-map-card__placeholder{display:grid;width:82px;height:82px;place-items:center;overflow:hidden;border-radius:calc(var(--plmap-radius) - 9px);background:color-mix(in srgb,var(--plmap-primary) 12%,var(--plmap-surface));color:var(--plmap-primary)}.proloco-v64-map-card__media img{width:100%;height:100%;object-fit:cover}.proloco-v64-map-card__placeholder svg{width:28px;height:28px}
.proloco-v64-map-card__body{min-width:0}.proloco-v64-map-card__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.proloco-v64-map-card__type{display:inline-flex;align-items:center;gap:5px;color:var(--plmap-primary);font-size:.69rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.proloco-v64-map-card__type svg{width:14px;height:14px}.proloco-v64-map-card__type--evento{color:var(--plmap-event)}.proloco-v64-map-card__type--luogo{color:var(--plmap-place)}.proloco-v64-map-card__type--itinerario{color:var(--plmap-route)}.proloco-v64-map-card__type--produttore{color:var(--plmap-producer)}.proloco-v64-map-card__distance{color:var(--plmap-muted);font-size:.72rem;font-weight:800;white-space:nowrap}.proloco-v64-map-card h3{margin:5px 0 4px;color:var(--plmap-text);font-size:1rem;line-height:1.25}.proloco-v64-map-card h3 a{color:inherit;text-decoration:none}.proloco-v64-map-card__meta,.proloco-v64-map-card__excerpt{margin:3px 0;color:var(--plmap-muted);font-size:.82rem;line-height:1.4}.proloco-v64-map-card__meta{font-weight:750}.proloco-v64-map-card__links{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.proloco-v64-map-card__links a{display:inline-flex;align-items:center;gap:5px;color:var(--plmap-primary);font-size:.76rem;font-weight:850;text-decoration:none}.proloco-v64-map-card__links svg{width:14px;height:14px}
.proloco-v64-map--list-compact .proloco-v64-map-card{grid-template-columns:48px minmax(0,1fr);padding:8px}.proloco-v64-map--list-compact .proloco-v64-map-card__media,.proloco-v64-map--list-compact .proloco-v64-map-card__placeholder{width:48px;height:48px;border-radius:12px}.proloco-v64-map--list-compact .proloco-v64-map-card__excerpt,.proloco-v64-map--list-compact .proloco-v64-map-card__links,.proloco-v64-map--list-compact .proloco-v64-map-card__meta{display:none}.proloco-v64-map--list-compact .proloco-v64-map-card h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proloco-v64-popup{min-width:180px;color:var(--plmap-text)}.proloco-v64-popup>img{display:block;width:100%;height:100px;object-fit:cover;margin-bottom:9px;border-radius:10px}.proloco-v64-popup>strong{display:block;margin:6px 0;font-size:1rem}.proloco-v64-popup p{margin:4px 0;color:var(--plmap-muted)}.proloco-v64-popup>div{display:flex;gap:7px;margin-top:8px}.proloco-v64-popup a{color:var(--plmap-primary);font-weight:800;text-decoration:none}
.proloco-v64-marker-wrap{background:transparent;border:0}.proloco-v64-marker{--marker-color:var(--plmap-primary);display:grid;place-items:center;background:var(--marker-color);color:#fff;box-shadow:0 7px 18px rgba(24,27,31,.28)}.proloco-v64-marker svg{width:19px;height:19px}.proloco-v64-marker--evento{--marker-color:var(--plmap-event)}.proloco-v64-marker--luogo{--marker-color:var(--plmap-place)}.proloco-v64-marker--itinerario{--marker-color:var(--plmap-route)}.proloco-v64-marker--produttore{--marker-color:var(--plmap-producer)}.proloco-v64-marker--pin{width:40px;height:40px;border:3px solid #fff;border-radius:50% 50% 50% 10%;transform:rotate(-45deg)}.proloco-v64-marker--pin svg{transform:rotate(45deg)}.proloco-v64-marker--circle{width:40px;height:40px;border:3px solid #fff;border-radius:50%}.proloco-v64-marker--minimal{width:28px;height:28px;border:2px solid #fff;border-radius:50%;box-shadow:0 5px 12px rgba(24,27,31,.25)}.proloco-v64-marker--minimal svg{width:14px;height:14px}
.proloco-v64-map--tiles-grayscale .leaflet-tile-pane{filter:grayscale(1) contrast(.95)}.proloco-v64-map--tiles-warm .leaflet-tile-pane{filter:sepia(.16) saturate(.85) hue-rotate(345deg)}.proloco-v64-map--tiles-contrast .leaflet-tile-pane{filter:saturate(.7) contrast(1.12)}
.proloco-v64-map__empty{grid-column:1/-1;padding:22px;border:1px dashed var(--plmap-border);border-radius:calc(var(--plmap-radius) - 5px);background:var(--plmap-surface);color:var(--plmap-muted);text-align:center}
.proloco-v64-map--minimal .proloco-v64-map__toolbar{padding:0;border:0;background:transparent}.proloco-v64-map--minimal .proloco-v64-map__canvas,.proloco-v64-map--minimal .proloco-v64-map-card{box-shadow:none}.proloco-v64-map--soft{background:color-mix(in srgb,var(--plmap-primary) 6%,var(--plmap-bg));padding:max(var(--plmap-padding),20px)}.proloco-v64-map--outline .proloco-v64-map__canvas,.proloco-v64-map--outline .proloco-v64-map-card{box-shadow:none;border-width:2px}.proloco-v64-map--dark{--plmap-bg:#151b20;--plmap-surface:#1d252b;--plmap-text:#f5f7f6;--plmap-muted:#b8c1bd;--plmap-border:#344047;background:var(--plmap-bg);padding:max(var(--plmap-padding),20px)}

/* PLACES */
.proloco-v64-places{--plplace-bg:#fff;--plplace-surface:#fff;--plplace-text:#181b1f;--plplace-muted:#5c636b;--plplace-primary:#0e7a60;--plplace-border:#e5e6e1;--plplace-radius:18px;--plplace-padding:20px;--plplace-gap:24px;--plplace-image-height:230px;--plplace-cols-desktop:3;--plplace-cols-tablet:2;--plplace-cols-mobile:1;--plplace-shadow:0 16px 38px rgba(24,27,31,.09);margin:1.5rem 0;padding:0;background:var(--plplace-bg);color:var(--plplace-text)}
.proloco-v64-places__toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px;padding:10px;border:1px solid var(--plplace-border);border-radius:calc(var(--plplace-radius) - 4px);background:color-mix(in srgb,var(--plplace-surface) 94%,var(--plplace-primary) 6%)}.proloco-v64-places__search{position:relative;display:flex;align-items:center;min-width:min(300px,100%);flex:1}.proloco-v64-places__search>svg{position:absolute;left:13px;color:var(--plplace-muted)}.proloco-v64-places__search input,.proloco-v64-places__select select{width:100%;min-height:43px;padding:9px 14px;border:1px solid var(--plplace-border);border-radius:999px;background:var(--plplace-surface);color:var(--plplace-text);font:inherit;outline:none}.proloco-v64-places__search input{padding-left:40px}.proloco-v64-places__search input:focus,.proloco-v64-places__select select:focus{border-color:var(--plplace-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--plplace-primary) 15%,transparent)}.proloco-v64-places__select{min-width:190px}.proloco-v64-places__views{display:flex;gap:6px;margin-left:auto}.proloco-v64-places__views button{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--plplace-border);border-radius:50%;background:var(--plplace-surface);color:var(--plplace-text);cursor:pointer}.proloco-v64-places__views button:hover,.proloco-v64-places__views button.is-active{background:var(--plplace-primary);border-color:var(--plplace-primary);color:#fff}.proloco-v64-places__views button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.proloco-v64-places__grid{display:grid;grid-template-columns:repeat(var(--plplace-cols-desktop),minmax(0,1fr));gap:var(--plplace-gap)}.proloco-v64-place{position:relative;display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--plplace-border);border-radius:var(--plplace-radius);background:var(--plplace-surface);box-shadow:var(--plplace-shadow);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.proloco-v64-place:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--plplace-primary) 34%,var(--plplace-border));box-shadow:0 22px 46px rgba(24,27,31,.13)}.proloco-v64-places--equal .proloco-v64-place{height:100%}
.proloco-v64-place__media{position:relative;display:block;overflow:hidden;background:color-mix(in srgb,var(--plplace-primary) 10%,var(--plplace-surface));aspect-ratio:16/10}.proloco-v64-places--ratio-16-9 .proloco-v64-place__media{aspect-ratio:16/9}.proloco-v64-places--ratio-4-3 .proloco-v64-place__media{aspect-ratio:4/3}.proloco-v64-places--ratio-1-1 .proloco-v64-place__media{aspect-ratio:1/1}.proloco-v64-places--ratio-custom .proloco-v64-place__media{height:var(--plplace-image-height);aspect-ratio:auto}.proloco-v64-place__media img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.proloco-v64-place:hover .proloco-v64-place__media img{transform:scale(1.035)}.proloco-v64-place__placeholder{display:grid;width:100%;height:100%;min-height:180px;place-items:center;color:var(--plplace-primary)}.proloco-v64-place__placeholder svg{width:42px;height:42px}
.proloco-v64-place__body{display:flex;min-width:0;flex:1;flex-direction:column;padding:var(--plplace-padding)}.proloco-v64-place__category{margin-bottom:8px;color:var(--plplace-primary);font-size:.7rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.proloco-v64-place h3{margin:0 0 10px;color:var(--plplace-text);font-size:1.25rem;line-height:1.2}.proloco-v64-place h3 a{color:inherit;text-decoration:none}.proloco-v64-place__excerpt{margin:0 0 14px;color:var(--plplace-muted);line-height:1.55}.proloco-v64-place__meta{display:grid;gap:7px;margin:0 0 16px}.proloco-v64-place__meta>span{display:flex;align-items:flex-start;gap:7px;color:var(--plplace-muted);font-size:.84rem;font-weight:650}.proloco-v64-place__meta svg{flex:0 0 auto;margin-top:2px;color:var(--plplace-primary)}.proloco-v64-place__button{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;color:var(--plplace-primary);font-size:.88rem;font-weight:850;text-decoration:none}.proloco-v64-place__button svg{transition:transform .18s ease}.proloco-v64-place__button:hover svg{transform:translateX(4px)}
.proloco-v64-places--view-list .proloco-v64-places__grid,.proloco-v64-places--view-compact .proloco-v64-places__grid{grid-template-columns:1fr}.proloco-v64-places--view-list .proloco-v64-place{display:grid;grid-template-columns:minmax(220px,34%) minmax(0,1fr)}.proloco-v64-places--view-list .proloco-v64-place__media{height:100%;min-height:240px;aspect-ratio:auto}.proloco-v64-places--view-list .proloco-v64-place__body{justify-content:center}
.proloco-v64-places--view-overlay .proloco-v64-place{min-height:360px;background:#18201d;color:#fff}.proloco-v64-places--view-overlay .proloco-v64-place__media{position:absolute;inset:0;height:100%;aspect-ratio:auto}.proloco-v64-places--view-overlay .proloco-v64-place__media:after{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,14,12,.08) 20%,rgba(8,14,12,.88) 100%);content:""}.proloco-v64-places--view-overlay .proloco-v64-place__body{position:relative;z-index:1;justify-content:flex-end;margin-top:auto;padding:28px;color:#fff}.proloco-v64-places--view-overlay .proloco-v64-place h3,.proloco-v64-places--view-overlay .proloco-v64-place h3 a{color:#fff}.proloco-v64-places--view-overlay .proloco-v64-place__excerpt,.proloco-v64-places--view-overlay .proloco-v64-place__meta>span{color:rgba(255,255,255,.78)}.proloco-v64-places--view-overlay .proloco-v64-place__category,.proloco-v64-places--view-overlay .proloco-v64-place__button,.proloco-v64-places--view-overlay .proloco-v64-place__meta svg{color:#fff}
.proloco-v64-places--view-compact .proloco-v64-place{display:grid;grid-template-columns:92px minmax(0,1fr);box-shadow:none}.proloco-v64-places--view-compact .proloco-v64-place__media{height:100%;min-height:92px;aspect-ratio:auto}.proloco-v64-places--view-compact .proloco-v64-place__body{justify-content:center;padding:14px}.proloco-v64-places--view-compact .proloco-v64-place__category{margin-bottom:4px;font-size:.64rem}.proloco-v64-places--view-compact .proloco-v64-place h3{margin:0;font-size:1rem}.proloco-v64-places--view-compact .proloco-v64-place__excerpt,.proloco-v64-places--view-compact .proloco-v64-place__meta,.proloco-v64-places--view-compact .proloco-v64-place__button{display:none}
.proloco-v64-places__empty{padding:34px;border:1px dashed var(--plplace-border);border-radius:var(--plplace-radius);background:var(--plplace-surface);color:var(--plplace-muted);text-align:center}
.proloco-v64-places--minimal .proloco-v64-places__toolbar{padding:0;border:0;background:transparent}.proloco-v64-places--minimal .proloco-v64-place{box-shadow:none}.proloco-v64-places--soft{padding:20px;border-radius:calc(var(--plplace-radius) + 4px);background:color-mix(in srgb,var(--plplace-primary) 6%,var(--plplace-bg))}.proloco-v64-places--outline .proloco-v64-place{border-width:2px;box-shadow:none}.proloco-v64-places--dark{--plplace-bg:#151b20;--plplace-surface:#1d252b;--plplace-text:#f5f7f6;--plplace-muted:#b8c1bd;--plplace-border:#344047;padding:20px;border-radius:calc(var(--plplace-radius) + 4px);background:var(--plplace-bg)}

@media(max-width:980px){
  .proloco-v64-map__layout{grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr)}.proloco-v64-map__canvas{height:var(--plmap-height-tablet)}.proloco-v64-map--split-bottom .proloco-v64-map__list,.proloco-v64-map--view-list .proloco-v64-map__list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proloco-v64-places__grid{grid-template-columns:repeat(var(--plplace-cols-tablet),minmax(0,1fr))}
}
@media(max-width:720px){
  .proloco-v64-map{margin:1.25rem 0}.proloco-v64-map__header{display:block}.proloco-v64-map__locate{margin-top:14px}.proloco-v64-map__toolbar{align-items:stretch}.proloco-v64-map__search{min-width:100%}.proloco-v64-map__filters{width:100%;flex-wrap:nowrap;overflow:auto;padding-bottom:2px}.proloco-v64-map__filters button{flex:0 0 auto}.proloco-v64-map__views{margin-left:0}.proloco-v64-map__layout{grid-template-columns:1fr}.proloco-v64-map__canvas{height:var(--plmap-height-mobile)}.proloco-v64-map__list{max-height:none;overflow:visible}.proloco-v64-map--split-left .proloco-v64-map__canvas,.proloco-v64-map--split-left .proloco-v64-map__list{order:initial}.proloco-v64-map--split-bottom .proloco-v64-map__list,.proloco-v64-map--view-list .proloco-v64-map__list{grid-template-columns:1fr}.proloco-v64-map-card{grid-template-columns:70px minmax(0,1fr)}.proloco-v64-map-card__media,.proloco-v64-map-card__placeholder{width:70px;height:70px}.proloco-v64-map-card__excerpt{display:none}
  .proloco-v64-places__toolbar{align-items:stretch}.proloco-v64-places__search,.proloco-v64-places__select{min-width:100%}.proloco-v64-places__views{margin-left:0}.proloco-v64-places__grid{grid-template-columns:repeat(var(--plplace-cols-mobile),minmax(0,1fr))}.proloco-v64-places--view-list .proloco-v64-place{grid-template-columns:1fr}.proloco-v64-places--view-list .proloco-v64-place__media{min-height:200px}.proloco-v64-places--view-overlay .proloco-v64-place{min-height:320px}
}
@media(max-width:440px){.proloco-v64-map__filters button span,.proloco-v64-map__locate span{font-size:.78rem}.proloco-v64-map__radius>span{display:none}.proloco-v64-map-card__links{display:none}.proloco-v64-places__views button{width:38px;height:38px}}
@media(prefers-reduced-motion:reduce){.proloco-v64-map *,.proloco-v64-places *{scroll-behavior:auto!important;transition:none!important}}
