/* K Events Map — tutto sotto .kevm, nessuna regola globale. */
.kevm{
  --kevm-accent:#E3203A; --kevm-ink:#14161C; --kevm-land:#F3F4F7;
  --kevm-card:#FFFFFF; --kevm-text:#14161C; --kevm-muted:#5B6271; --kevm-line:#D6DAE1;
  --kevm-shadow:0 10px 30px rgba(20,22,28,.14);
  --kevm-display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --kevm-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  display:flex;flex-direction:column;gap:14px;color:var(--kevm-text);font-size:15px;line-height:1.45;
}
.kevm[data-kevm-theme="dark"]{--kevm-card:#191E29;--kevm-text:#EEF0F4;--kevm-muted:#8C94A5;--kevm-line:#2A3140;--kevm-shadow:0 10px 30px rgba(0,0,0,.5)}
.kevm *,.kevm *::before,.kevm *::after{box-sizing:border-box}
.kevm-heading{margin:0;font-family:var(--kevm-display);text-transform:uppercase}

.kevm-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.kevm-chips::-webkit-scrollbar{display:none}
.kevm-chip{flex:0 0 auto;border:1px solid var(--kevm-line);background:var(--kevm-card);color:var(--kevm-text);font-weight:500;font-size:13px;line-height:1;font-family:inherit;padding:8px 13px;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.kevm button.kevm-chip,
.kevm button.kevm-chip:hover,
.kevm button.kevm-chip:focus,
.kevm button.kevm-chip:focus-visible,
.kevm button.kevm-chip:active{
  border-radius:var(--kevm-chip-radius,999px)!important;overflow:hidden;position:relative;appearance:none;-webkit-appearance:none;background-clip:padding-box;
}
.kevm button.kevm-chip::before,
.kevm button.kevm-chip::after{border-radius:inherit}
.kevm-chip[aria-pressed="true"]{background:var(--kevm-ink);color:var(--kevm-land);border-color:var(--kevm-ink)}

.kevm-stage{display:grid;grid-template-columns:minmax(0,1fr) var(--kevm-list,340px);gap:var(--kevm-gap,16px)}
.kevm--nolist .kevm-stage{grid-template-columns:minmax(0,1fr)}
.kevm-map{position:relative;height:var(--kevm-h,620px);border-radius:var(--kevm-radius,14px);overflow:hidden;border:1px solid var(--kevm-line);background:var(--kevm-land)}
.kevm-fit{position:absolute;right:10px;top:84px;z-index:2;width:29px;height:29px;display:grid;place-items:center;border:0;border-radius:4px;background:#fff;color:#333;box-shadow:0 0 0 2px rgba(0,0,0,.1);cursor:pointer}

/* pin a goccia con il giorno del mese.
   Il bottone resta trasparente: il tema colora button:hover con un rettangolo. */
.kevm button.kevm-pin,
.kevm button.kevm-pin:hover,
.kevm button.kevm-pin:focus,
.kevm button.kevm-pin:focus-visible,
.kevm button.kevm-pin:active{
  position:relative;border:0;padding:0;margin:0;background:transparent!important;background-color:transparent!important;
  box-shadow:none!important;outline:none;color:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;line-height:1;transition:transform .18s ease;transform-origin:50% 100%;
}
.kevm-pin__head{
  position:relative;display:grid;place-items:center;width:var(--kevm-pin,38px);min-width:var(--kevm-pin,38px);height:var(--kevm-pin,38px);padding:0;
  border-radius:50% 50% 50% calc(var(--kevm-pin,38px) * .1);transform:rotate(-45deg);background:var(--kevm-ink);color:var(--kevm-land);
  filter:drop-shadow(0 7px 8px rgba(20,22,28,.38));transition:background .18s ease,filter .18s ease,color .18s ease;
}
.kevm-pin__head::after{
  content:"";position:absolute;inset:-7px;border-radius:inherit;background:var(--kevm-accent);
  opacity:0;z-index:-1;filter:blur(7px);transition:opacity .18s ease;pointer-events:none;
}
.kevm-pin__head b{transform:rotate(45deg);font-family:var(--kevm-display);font-weight:800;font-size:calc(var(--kevm-pin,38px) * .45);line-height:1}
.kevm-pin:hover,.kevm-pin.is-on,.kevm-pin:focus-visible{transform:translateY(-4px) scale(1.08);z-index:3}
.kevm-pin:hover .kevm-pin__head,
.kevm-pin.is-on .kevm-pin__head,
.kevm-pin:focus-visible .kevm-pin__head{background:var(--kevm-accent);color:#fff;filter:drop-shadow(0 10px 10px rgba(20,22,28,.45))}
.kevm-pin:hover .kevm-pin__head::after,
.kevm-pin.is-on .kevm-pin__head::after,
.kevm-pin:focus-visible .kevm-pin__head::after{opacity:.7}
.kevm-pin__count{position:absolute;top:-6px;right:-8px;background:var(--kevm-accent);color:#fff;font:600 10px/1 var(--kevm-mono);padding:3px 5px;border-radius:9px}
.kevm-pin__pulse{position:absolute;left:50%;bottom:-7px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--kevm-accent);animation:kevm-pulse 1.6s ease-out infinite;pointer-events:none;z-index:-1}
@keyframes kevm-pulse{0%{transform:scale(.6);opacity:.55}100%{transform:scale(4.2);opacity:0}}
.kevm-pin--cluster .kevm-pin__head{border-radius:50%;transform:none;background:var(--kevm-card);color:var(--kevm-text);border:2px solid var(--kevm-ink)}
.kevm-pin--cluster .kevm-pin__head b{transform:none}
.kevm-pin--cluster:hover .kevm-pin__head,
.kevm-pin--cluster.is-on .kevm-pin__head,
.kevm-pin--cluster:focus-visible .kevm-pin__head{background:var(--kevm-accent);color:#fff;border-color:var(--kevm-accent)}
.kevm-card:focus-visible,.kevm-chip:focus-visible{outline:2px solid var(--kevm-accent);outline-offset:2px}

/* contenuto evento */
.kevm-ev__img{display:block;width:calc(100% + 28px);max-width:none;margin:-14px -14px 10px;aspect-ratio:16/9;object-fit:cover;border-radius:12px 12px 0 0}
.kevm-ev__day{font-family:var(--kevm-mono);font-weight:500;font-size:12px;line-height:1.3;letter-spacing:.02em;color:var(--kevm-accent)}
.kevm-ev__title{font-family:var(--kevm-display);font-weight:800;font-size:22px;line-height:1;text-transform:uppercase;margin:4px 0 6px}
.kevm-ev__desc{margin:0 0 8px;color:var(--kevm-muted);font-size:13.5px}
.kevm-ev__meta{display:grid;gap:3px;margin:0;font-size:13px}
.kevm-ev__meta div{display:flex;gap:8px}
.kevm-ev__meta dt{flex:0 0 62px;color:var(--kevm-muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding-top:2px}
.kevm-ev__meta dd{margin:0;min-width:0}
.kevm-ev__link{display:inline-block;margin-top:10px;font-weight:600;font-size:13px;color:var(--kevm-text);text-decoration:none;border-bottom:2px solid var(--kevm-accent)}
.kevm-ev__more{margin:8px 0 0;font-size:12px;color:var(--kevm-muted)}
.kevm-mono{font-family:var(--kevm-mono);font-size:12.5px;font-variant-numeric:tabular-nums}
.kevm-muted{color:var(--kevm-muted)}
.kevm-nogeo{display:inline-block;margin-top:8px;font:500 10.5px var(--kevm-mono);color:var(--kevm-muted);border:1px dashed var(--kevm-line);border-radius:6px;padding:2px 6px}

/* popup MapLibre ristilizzato */
.kevm-popup .maplibregl-popup-content{padding:14px;border-radius:12px;box-shadow:0 10px 30px rgba(20,22,28,.18);background:#fff;color:#14161C;font-size:15px;line-height:1.45;overflow:hidden}
.kevm-popup--dark .maplibregl-popup-content{background:#191E29;color:#EEF0F4}
.kevm-popup--dark .maplibregl-popup-tip{border-top-color:#191E29}
.kevm-popup--dark .kevm-ev__link{color:#EEF0F4}
.kevm-popup .maplibregl-popup-close-button{font-size:18px;padding:2px 8px;color:inherit;z-index:1}

/* elenco: colonna su desktop */
.kevm-list{display:flex;flex-direction:column;gap:10px;max-height:var(--kevm-h,620px);overflow-y:auto}
.kevm-list[hidden]{display:none!important}
.kevm-card{background:var(--kevm-card);border:1px solid var(--kevm-line);border-radius:var(--kevm-card-radius,12px);padding:14px;cursor:pointer;transition:border-color .15s}
.kevm-card.is-on{border-color:var(--kevm-accent);box-shadow:inset 3px 0 0 var(--kevm-accent)}
.kevm-card .kevm-ev__title{font-size:20px}

/* mobile: una colonna, carosello appoggiato sul fondo della mappa.
   !important batte i selettori di Elementor (larghezza elenco e gap), che altrimenti restano a due colonne. */
@media (max-width:860px){
  .kevm-stage{grid-template-columns:minmax(0,1fr)!important;gap:0!important}
  .kevm-map,.kevm-list{grid-area:1/1}
  .kevm-map{height:var(--kevm-mh,72vh)!important;min-height:280px;border-radius:12px}
  .kevm-list{align-self:end;z-index:3;flex-direction:row;max-height:none;margin:0;padding:0 12px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x;pointer-events:none}
  .kevm-list::-webkit-scrollbar{display:none}
  .kevm-list>*{pointer-events:auto}
  .kevm-card{flex:0 0 86%;max-width:340px;scroll-snap-align:center;box-shadow:var(--kevm-shadow)}
  .kevm-card .kevm-ev__desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .kevm-map .maplibregl-ctrl-bottom-right,.kevm-map .maplibregl-ctrl-bottom-left{bottom:var(--kevm-dock,128px)}
  .kevm-fit{top:auto;bottom:var(--kevm-dock,128px)}
}
/* Stessa disposizione se è stretto il widget (anteprima Elementor o colonna), non solo la finestra. */
.kevm.is-narrow .kevm-stage{grid-template-columns:minmax(0,1fr)!important;gap:0!important}
.kevm.is-narrow .kevm-map,.kevm.is-narrow .kevm-list{grid-area:1/1}
.kevm.is-narrow .kevm-map{min-height:280px}
.kevm.is-narrow .kevm-list{align-self:end;z-index:3;flex-direction:row;max-height:none;margin:0;padding:0 12px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x;pointer-events:none}
.kevm.is-narrow .kevm-list>*{pointer-events:auto}
.kevm.is-narrow .kevm-card{flex:0 0 86%;max-width:340px;scroll-snap-align:center;box-shadow:var(--kevm-shadow)}
.kevm.is-narrow .kevm-card .kevm-ev__desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kevm.is-narrow .kevm-map .maplibregl-ctrl-bottom-right,.kevm.is-narrow .kevm-map .maplibregl-ctrl-bottom-left{bottom:var(--kevm-dock,128px)}
.kevm.is-narrow .kevm-fit{top:auto;bottom:var(--kevm-dock,128px)}

/* Scheda evento: mappa a tutta larghezza e didascalia del luogo sotto, anche su mobile. */
.kevm.kevm--place .kevm-chips{display:none}
.kevm.kevm--place .kevm-stage,
.kevm.kevm--place.is-narrow .kevm-stage{grid-template-columns:minmax(0,1fr)!important;gap:var(--kevm-gap,12px)!important}
.kevm.kevm--place .kevm-map,
.kevm.kevm--place .kevm-list,
.kevm.kevm--place.is-narrow .kevm-map,
.kevm.kevm--place.is-narrow .kevm-list{grid-area:auto}
.kevm.kevm--place .kevm-map,
.kevm.kevm--place.is-narrow .kevm-map{height:var(--kevm-h,420px)!important;min-height:220px}
.kevm.kevm--place .kevm-list,
.kevm.kevm--place.is-narrow .kevm-list{align-self:stretch;z-index:1;flex-direction:column;max-height:none;margin:0;padding:0;overflow:visible;pointer-events:auto;touch-action:auto}
.kevm.kevm--place .kevm-card,
.kevm.kevm--place.is-narrow .kevm-card{flex:none;max-width:none;width:100%;cursor:default}
.kevm.kevm--place .kevm-map .maplibregl-ctrl-bottom-right,
.kevm.kevm--place .kevm-map .maplibregl-ctrl-bottom-left,
.kevm.kevm--place.is-narrow .kevm-map .maplibregl-ctrl-bottom-right,
.kevm.kevm--place.is-narrow .kevm-map .maplibregl-ctrl-bottom-left{bottom:0}
.kevm.kevm--place .kevm-fit,
.kevm.kevm--place.is-narrow .kevm-fit{top:84px;bottom:auto}
@media (max-width:860px){
  .kevm.kevm--place .kevm-stage{gap:var(--kevm-gap,12px)!important}
  .kevm.kevm--place .kevm-map,.kevm.kevm--place .kevm-list{grid-area:auto}
  .kevm.kevm--place .kevm-map{height:var(--kevm-mh,var(--kevm-h,320px))!important}
  .kevm.kevm--place .kevm-list{align-self:stretch;flex-direction:column;margin:0;padding:0;overflow:visible;pointer-events:auto}
  .kevm.kevm--place .kevm-card{flex:none;max-width:none}
  .kevm.kevm--place .kevm-fit{top:84px;bottom:auto}
}
@media (prefers-reduced-motion:reduce){.kevm-pin,.kevm-card,.kevm-chip{transition:none}.kevm-pin__pulse{animation:none;display:none}}
