/* ============================================================
   LUCANIA IS MORE — L'agenda (Eventi in Basilicata)
   Text-forward editorial agenda: no photos, tags + dates only.
   Builds on styles.css.
   ============================================================ */

body{ --accent:#A91013; }

/* ============================================================
   INTRO BAND — l'agenda (cream, con watermark)
   sits below the fixed navbar (78px)
   ============================================================ */
.ag-intro{ position:relative; overflow:hidden; padding:calc(78px + 70px) 0 38px;
  border-bottom:1px solid var(--line-strong); }
.ag-intro .wm{ position:absolute; right:-2%; top:54%; transform:translateY(-50%);
  font-family:var(--serif); font-style:italic; font-weight:500; line-height:1;
  font-size:min(33vw,440px); color:rgba(28,28,28,.045); letter-spacing:-.03em;
  white-space:nowrap; z-index:1; pointer-events:none; user-select:none; }
.ag-intro .shell{ position:relative; z-index:2; }
.ag-intro .kick{ color:var(--accent); display:inline-flex; align-items:center; gap:13px; }
.ag-intro .kick::before{ content:""; width:32px; height:1px; background:var(--accent); }
.ag-intro h1{ font-family:var(--sans); font-weight:800; font-size:clamp(40px,6vw,92px);
  line-height:.98; letter-spacing:-.022em; margin:24px 0 0; max-width:15ch; text-wrap:balance; }
.ag-intro h1 em{ font-style:italic; color:var(--accent); }
.ag-intro .lede{ font-family:var(--sans); font-size:clamp(16px,1.5vw,18.5px); line-height:1.6;
  color:var(--ink-70); max-width:52ch; margin:30px 0 0; text-wrap:pretty; }
.ag-intro .lede i{ font-style:italic; }
.ag-intro .stats{ display:flex; gap:54px; margin:40px 0 0; }
.ag-intro .intro-top{ display:flex; align-items:center; justify-content:space-between; gap:20px;
  flex-wrap:wrap; }
.ag-segnala{ display:inline-flex; align-items:center; gap:10px; white-space:nowrap; cursor:pointer;
  color:#FFF9E3; background:var(--accent); border:1px solid var(--accent); border-radius:100px;
  font:600 10.5px/1 var(--sans); letter-spacing:.13em; text-transform:uppercase;
  padding:10px 18px 10px 11px; transition:.2s; }
.ag-segnala:hover{ background:var(--ink); border-color:var(--ink); transform:translateY(-2px);
  box-shadow:0 12px 22px -14px rgba(28,28,28,.55); }
.ag-segnala .seg-ic{ display:inline-flex; align-items:center; justify-content:center;
  width:21px; height:21px; border-radius:50%; background:rgba(255,249,227,.22); transition:background .2s; }
.ag-segnala .seg-ic svg{ width:12px; height:12px; stroke:#FFF9E3; fill:none; stroke-width:2.2;
  stroke-linecap:round; }
.ag-intro .stat .n{ font-family:var(--sans); font-weight:700; font-size:40px; line-height:.9; }
.ag-intro .stat .l{ display:block; margin-top:10px; color:var(--ink-55);
  font:500 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; }

/* ============================================================
   CONTROLS — sticky: categorie · provincia · mese · ricerca · vista
   ============================================================ */
.controls{ position:sticky; top:78px; z-index:30; background:var(--cream);
  padding:18px 0 16px; border-bottom:1px solid var(--line-strong); }
.controls .shell{ display:flex; flex-direction:column; gap:14px; }
.controls .row{ display:flex; align-items:center; justify-content:space-between; gap:22px; }
.controls .row.r2{ gap:14px 22px; flex-wrap:wrap; }
.r2-where{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
/* ordine: provincia → raggio → paesi */
.r2-where #prov{ order:1; }
.r2-where #nearPick{ order:2; }
.r2-where #filt{ order:3; }

/* category pills */
.ag-cats{ display:flex; flex-wrap:wrap; gap:8px; }
.ag-cats button{ background:none; border:1px solid var(--line-strong); border-radius:100px;
  color:var(--ink); font:600 11.5px/1 var(--sans); letter-spacing:.1em; text-transform:uppercase;
  padding:11px 18px; transition:.16s; cursor:pointer; display:inline-flex; align-items:center; gap:8px;
  white-space:nowrap; }
.ag-cats button .dot{ width:7px; height:7px; border-radius:50%; background:var(--cat,currentColor); opacity:.95; }
.ag-cats button[data-f="all"] .dot{ display:none; }
.ag-cats button:hover{ border-color:var(--ink); }
.ag-cats button.active{ background:var(--ink); border-color:var(--ink); color:#fff; }
.ag-cats button.active .dot{ opacity:1; }

/* segmented control (provincia) */
.seg{ display:inline-flex; border:1px solid var(--line-strong); border-radius:100px; overflow:hidden; }
.seg{ flex:0 0 auto; }
.seg button{ background:none; border:0; padding:11px 18px; color:var(--ink-55);
  font:600 11px/1 var(--sans); letter-spacing:.13em; text-transform:uppercase; cursor:pointer; transition:.16s;
  white-space:nowrap; }
.seg button + button{ border-left:1px solid var(--line); }
.seg button:hover{ color:var(--ink); }
.seg button.active{ background:var(--accent); color:#fff; }

/* month select chips */
.ag-months{ display:flex; flex-wrap:nowrap; gap:4px; flex:0 0 auto; }
.ag-months button{ background:none; border:0; border-bottom:2px solid transparent;
  color:var(--ink-55); font:600 12px/1 var(--sans); letter-spacing:.1em; text-transform:uppercase;
  padding:9px 8px; cursor:pointer; transition:.16s; white-space:nowrap; }
.ag-months button:hover{ color:var(--ink); }
.ag-months button.active{ color:var(--ink); border-bottom-color:var(--accent); }

.ctrl-right{ display:flex; align-items:center; gap:14px; flex:1 1 320px; justify-content:flex-end; }
.search{ display:flex; align-items:center; gap:10px; border:1px solid var(--line-strong);
  border-radius:100px; padding:10px 18px; min-width:220px; transition:border-color .2s; }
.search:focus-within{ border-color:var(--ink); }
.search svg{ flex:0 0 16px; }
.search svg path, .search svg circle{ stroke:var(--ink-40); }
.search input{ flex:1; background:none; border:0; outline:none; color:var(--ink);
  font-family:var(--sans); font-size:15px; min-width:0; }
.search input::placeholder{ color:var(--ink-40); }
.view{ display:flex; border:1px solid var(--line-strong); border-radius:100px; overflow:hidden; flex:0 0 auto; }
.view button{ width:42px; height:42px; background:none; border:0; display:grid; place-items:center;
  color:var(--ink-55); transition:.16s; cursor:pointer; }
.view button.active{ background:var(--ink); color:#fff; }
.view button:not(.active):hover{ color:var(--ink); }

/* ---- FILTRI (pannello a comparsa: paese · provincia · mese) ---- */
.filt{ position:relative; flex:0 0 auto; }
.filt-btn{ display:inline-flex; align-items:center; gap:9px; background:none;
  border:1px solid var(--line-strong); border-radius:100px; padding:11px 17px;
  color:var(--ink); font:600 11px/1 var(--sans); letter-spacing:.13em; text-transform:uppercase;
  cursor:pointer; transition:.16s; white-space:nowrap; }
.filt-btn svg{ color:var(--ink-55); flex:0 0 auto; transition:color .16s; }
.filt-btn .pin{ color:var(--accent); }
.filt-btn .chev{ color:var(--ink-40); }
.filt-btn:hover{ border-color:var(--ink); }
.filt.on .filt-btn{ background:var(--accent); border-color:var(--accent); color:#FFF9E3; }
.filt.on .filt-btn svg{ color:#FFF9E3; }
.fb-count{ display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 5px;
  border-radius:100px; background:var(--accent); color:#fff; font:700 10px/1 var(--sans); letter-spacing:0; }
.fb-count[hidden]{ display:none; }

.filt-panel{ position:absolute; top:calc(100% + 11px); left:0; z-index:60; width:332px;
  max-height:calc(100vh - 150px); overflow:auto;
  background:var(--cream); border:1px solid var(--line-strong); border-radius:16px;
  box-shadow:0 26px 64px -30px rgba(28,28,28,.5); padding:16px; }
.filt-panel[hidden]{ display:none; }
.fp-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; }
.fp-title{ font:700 14px/1 var(--sans); letter-spacing:.01em; color:var(--ink); white-space:nowrap; }
.fp-clear{ background:none; border:0; color:var(--accent); font:600 10.5px/1 var(--sans);
  letter-spacing:.12em; text-transform:uppercase; cursor:pointer; padding:4px; }
.fp-clear:hover{ color:var(--ink); }
.fp-sec{ padding:15px 0; border-top:1px solid var(--line); }
.fp-sec:last-of-type{ border-bottom:0; }
.fp-lab{ display:block; font:600 10px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-40); margin-bottom:11px; }
.fp-search{ display:flex; align-items:center; gap:9px; border:1px solid var(--line-strong);
  border-radius:11px; padding:10px 13px; transition:border-color .18s; }
.fp-search:focus-within{ border-color:var(--ink); }
.fp-search svg{ color:var(--ink-40); flex:0 0 auto; }
.fp-search input{ flex:1; border:0; background:none; outline:none; min-width:0;
  font-family:var(--sans); font-size:14.5px; color:var(--ink); }
.fp-search input::placeholder{ color:var(--ink-40); }
.fp-apply{ width:100%; margin-top:4px; background:var(--accent); color:#FFF9E3; border:0;
  border-radius:11px; padding:14px; font:600 12px/1 var(--sans); letter-spacing:.1em; text-transform:uppercase;
  cursor:pointer; transition:.16s; }
.fp-apply:hover{ background:var(--ink); }

/* lista paesi nel pannello */
.pp-list{ max-height:210px; overflow:auto; display:flex; flex-direction:column; gap:1px; margin-top:9px;
  margin-right:-6px; padding-right:6px; }
.pp-item{ display:flex; align-items:center; gap:10px; width:100%; background:none; border:0;
  text-align:left; padding:10px 11px; border-radius:9px; cursor:pointer; transition:.13s; }
.pp-item:hover{ background:var(--cream-2); }
.pp-item.active{ background:var(--ink); }
.pp-item.active .ppi-name, .pp-item.active .ppi-n{ color:#FFF9E3; }
.pp-item.active .ppi-prov{ color:#FFF9E3; border-color:rgba(255,249,227,.4); }
.ppi-name{ flex:1; font:500 14.5px/1.15 var(--sans); color:var(--ink); }
.ppi-prov{ font:600 10px/1 var(--sans); letter-spacing:.12em; color:var(--ink-40);
  border:1px solid var(--line-strong); border-radius:100px; padding:4px 7px; }
.ppi-n{ font:600 12px/1 var(--sans); color:var(--ink-40); font-variant-numeric:tabular-nums;
  min-width:18px; text-align:right; }

/* provincia + mese dentro al pannello */
.filt-panel .seg{ display:flex; width:100%; }
.filt-panel .seg button{ flex:1; padding:11px 8px; }
.filt-panel .ag-months{ display:flex; flex-wrap:wrap; gap:7px; }
.filt-panel .ag-months button{ border:1px solid var(--line-strong); border-radius:100px;
  padding:9px 14px; color:var(--ink-55); }
.filt-panel .ag-months button:hover{ border-color:var(--ink); color:var(--ink); }
.filt-panel .ag-months button.active{ background:var(--ink); border-color:var(--ink); color:#fff; }

/* ---- bottom-sheet modal (mobile) : scrim + handle + close ---- */
.sheet-scrim{ position:fixed; inset:0; z-index:110; background:rgba(28,28,28,.45);
  opacity:0; transition:opacity .22s ease; }
.sheet-scrim.show{ opacity:1; }
.sheet-scrim[hidden]{ display:none; }
.sheet-x{ display:none; }
@keyframes sheetUp{ from{ transform:translateY(100%); } to{ transform:translateY(0); } }

@media (max-width:640px){
  .filt-panel{ position:fixed; left:0; right:0; bottom:0; top:auto; width:auto;
    max-height:84vh; overflow:auto; z-index:120; padding-top:28px;
    border-radius:20px 20px 0 0; border-bottom:0;
    box-shadow:0 -18px 50px -18px rgba(28,28,28,.5);
    animation:sheetUp .26s cubic-bezier(.22,.7,.25,1); }
}

/* ---- VICINI A ME (toggle + raggio chilometrico) ----------- */
.near-pick{ display:inline-flex; align-items:center; gap:12px; flex:0 0 auto; flex-wrap:wrap; }
.near-toggle{ display:inline-flex; align-items:center; gap:9px; background:none;
  border:1px solid var(--line-strong); border-radius:100px; padding:11px 17px;
  color:var(--ink); font:600 11px/1 var(--sans); letter-spacing:.13em; text-transform:uppercase;
  cursor:pointer; transition:.16s; white-space:nowrap; }
.near-toggle svg{ color:var(--accent); flex:0 0 auto; transition:color .16s; }
.near-toggle:hover{ border-color:var(--ink); }
.near-toggle.active{ background:var(--accent); border-color:var(--accent); color:#FFF9E3; }
.near-toggle.active svg{ color:#FFF9E3; }
.near-toggle.loading{ opacity:.55; pointer-events:none; }

.radius{ position:relative; display:inline-flex; }
.radius[hidden]{ display:none; }

.radius-trigger{ display:inline-flex; align-items:center; gap:8px; background:none;
  border:1px solid var(--line-strong); border-radius:100px; padding:10px 15px;
  color:var(--ink); cursor:pointer; transition:.16s; white-space:nowrap; }
.radius-trigger:hover{ border-color:var(--ink); }
.radius-trigger[aria-expanded="true"]{ border-color:var(--ink); }
.radius-trigger .rlab{ font:600 10px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-40); }
.radius-trigger .rt-ic{ color:var(--accent); flex:0 0 auto; transition:color .16s; }
.radius-trigger .rt-val{ font:700 12px/1 var(--sans); letter-spacing:.02em; color:var(--ink); }
.radius-trigger .chev{ color:var(--ink-40); transition:transform .18s; }
.radius-trigger[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.radius-trigger.loading{ opacity:.6; pointer-events:none; }
/* stato attivo (posizione attiva) → pillola piena */
.radius.on .radius-trigger{ background:var(--accent); border-color:var(--accent); }
.radius.on .radius-trigger .rt-ic,
.radius.on .radius-trigger .rt-val,
.radius.on .radius-trigger .chev{ color:#FFF9E3; }

/* bottone "usa la mia posizione" dentro al popup */
.rp-locate{ display:flex; align-items:center; justify-content:center; gap:9px; width:100%;
  background:none; border:1px solid var(--line-strong); border-radius:11px; padding:12px;
  color:var(--ink); font:600 11px/1 var(--sans); letter-spacing:.1em; text-transform:uppercase;
  cursor:pointer; transition:.16s; margin-bottom:16px; }
.rp-locate svg{ color:var(--accent); flex:0 0 auto; transition:color .16s; }
.rp-locate:hover{ border-color:var(--ink); }
.rp-locate.active{ background:var(--accent); border-color:var(--accent); color:#FFF9E3; }
.rp-locate.active svg{ color:#FFF9E3; }
.rp-locate.loading{ opacity:.6; pointer-events:none; }

.radius-pop{ position:absolute; top:calc(100% + 11px); right:0; z-index:60; width:288px;
  background:var(--cream); border:1px solid var(--line-strong); border-radius:16px;
  box-shadow:0 26px 64px -30px rgba(28,28,28,.5); padding:18px 18px 16px; }
.radius-pop[hidden]{ display:none; }
.rp-head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:18px; }
.rp-title{ font:700 14px/1 var(--sans); letter-spacing:.01em; color:var(--ink); white-space:nowrap; }
.rp-read{ display:inline-flex; align-items:baseline; gap:3px; color:var(--accent); }
.rp-read b{ font:700 26px/.8 var(--serif, var(--sans)); letter-spacing:-.01em; }
.rp-read i{ font:600 11px/1 var(--sans); font-style:normal; letter-spacing:.04em; color:var(--ink-55); }
.rp-read.all b{ font-size:16px; line-height:1; }

/* slider */
.rp-slider{ margin:0 1px 16px; }
.rp-slider input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:22px;
  background:none; cursor:pointer; display:block; }
.rp-slider input[type=range]::-webkit-slider-runnable-track{ height:6px; border-radius:100px;
  background:linear-gradient(to right, var(--accent) var(--pct,33%), var(--line-strong) var(--pct,33%)); }
.rp-slider input[type=range]::-moz-range-track{ height:6px; border-radius:100px; background:var(--line-strong); }
.rp-slider input[type=range]::-moz-range-progress{ height:6px; border-radius:100px; background:var(--accent); }
.rp-slider input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none;
  width:18px; height:18px; margin-top:-6px; border-radius:50%; background:var(--cream);
  border:2px solid var(--accent); box-shadow:0 2px 6px -1px rgba(28,28,28,.35); transition:transform .12s; }
.rp-slider input[type=range]::-moz-range-thumb{ width:18px; height:18px; border-radius:50%;
  background:var(--cream); border:2px solid var(--accent); box-shadow:0 2px 6px -1px rgba(28,28,28,.35); }
.rp-slider input[type=range]:active::-webkit-slider-thumb{ transform:scale(1.12); }
.rp-slider.all input[type=range]{ opacity:.4; }
.rp-ticks{ display:flex; justify-content:space-between; margin-top:7px; }
.rp-ticks span{ font:600 10px/1 var(--sans); letter-spacing:.04em; color:var(--ink-40); }

/* presets */
.rp-presets{ display:flex; flex-wrap:wrap; gap:7px; }
.rp-presets button{ background:none; border:1px solid var(--line-strong); border-radius:100px;
  color:var(--ink-55); font:600 11px/1 var(--sans); letter-spacing:.04em; padding:9px 13px;
  cursor:pointer; transition:.15s; white-space:nowrap; }
.rp-presets button:hover{ border-color:var(--ink); color:var(--ink); }
.rp-presets button.active{ background:var(--ink); border-color:var(--ink); color:#fff; }
.rp-presets .rp-all{ flex:1 0 100%; text-align:center; }
.rp-presets .rp-all.active{ background:var(--accent); border-color:var(--accent); color:#FFF9E3; }

@media (max-width:640px){
  .radius-pop{ position:fixed; left:0; right:0; bottom:0; top:auto; width:auto;
    max-height:84vh; overflow:auto; z-index:120; padding-top:28px;
    border-radius:20px 20px 0 0; border-bottom:0;
    box-shadow:0 -18px 50px -18px rgba(28,28,28,.5);
    animation:sheetUp .26s cubic-bezier(.22,.7,.25,1); }
  /* grab handle + close, shared by both sheets */
  .filt-panel::before, .radius-pop::before{ content:""; position:absolute; top:10px; left:50%;
    transform:translateX(-50%); width:40px; height:4px; border-radius:100px; background:var(--line-strong); }
  .sheet-x{ display:grid; place-items:center; position:absolute; top:15px; right:15px;
    width:32px; height:32px; border-radius:50%; border:1px solid var(--line-strong);
    background:var(--cream); color:var(--ink-55); font-size:17px; line-height:1; cursor:pointer; z-index:3; }
  .sheet-x:hover{ color:var(--ink); border-color:var(--ink); }
  /* riserva spazio per la X così il readout/titolo non finiscono sotto al pulsante */
  .rp-head, .fp-head{ padding-right:42px; }
  body.sheet-lock{ overflow:hidden; }
}

/* ============================================================
   AGENDA WRAP + MONTH GROUPS
   ============================================================ */
.agenda-wrap{ padding:8px 0 120px; }
.ag-count{ margin:30px 0 6px; color:var(--ink-55);
  font:500 12px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; }
.ag-count b{ color:var(--ink); font-weight:600; }
.past-toggle{ display:inline-flex; align-items:center; gap:8px; background:none;
  border:1px solid var(--line-strong); border-radius:100px; padding:9px 15px;
  color:var(--ink-55); font:600 11px/1 var(--sans); letter-spacing:.13em; text-transform:uppercase;
  cursor:pointer; transition:.16s; white-space:nowrap; flex:0 0 auto; }
.past-toggle svg{ color:var(--accent); flex:0 0 auto; transition:color .16s; }
.past-toggle:hover{ border-color:var(--ink); color:var(--ink); }
.past-toggle.on{ background:var(--accent); border-color:var(--accent); color:#FFF9E3; }
.past-toggle.on svg{ color:#FFF9E3; }
/* il pulsante chiude la riga dei mesi, staccato dall'ultimo mese */
.ag-months .past-toggle{ margin-left:10px; }

.month-group{ margin-top:30px; }
.month-group.hide{ display:none; }
.month-head{ display:flex; align-items:baseline; gap:16px; padding-bottom:16px;
  border-bottom:1px solid var(--line-strong); }
.month-head .mname{ font-family:var(--sans); font-weight:800; font-size:clamp(26px,3vw,38px);
  line-height:1; letter-spacing:-.02em; }
.month-head .myear{ font:500 13px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent); }
.month-head .mcount{ margin-left:auto; color:var(--ink-40);
  font:500 11px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; }

/* ============================================================
   EVENT — shared pieces
   ============================================================ */
.ev{ display:block; color:var(--ink); }
.ev.hide{ display:none !important; }
.ev-date{ display:flex; }
.ev-date .wd{ font:600 11px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-40); }
.ev-date .dd{ font-family:var(--sans); font-weight:700; letter-spacing:-.02em; color:var(--ink);
  font-variant-numeric:tabular-nums; white-space:nowrap; }
.ev-date .mm{ font:600 14px/1 var(--sans); letter-spacing:.15em; text-transform:uppercase;
  color:var(--accent); }
.ev-date .days{ display:contents; }
.ev-date .rsep{ color:var(--ink-40); font-weight:700; }
.ev-date .to{ display:inline-flex; align-items:center; gap:8px; color:var(--accent); }
.ev-date .rsep{ font-family:var(--sans); font-weight:700; color:var(--ink-40); line-height:1; }
.ev-date .to .ar{ display:none; }
.ev-date .to .d2{ font-family:var(--sans); font-weight:700; letter-spacing:-.02em;
  font-variant-numeric:tabular-nums; color:var(--accent); }
.ev-date .to .m2{ font:600 12px/1 var(--sans); font-style:normal; letter-spacing:.16em;
  text-transform:uppercase; color:var(--accent); align-self:flex-end; padding-bottom:5px; }

.ev-tags{ display:flex; flex-direction:column; align-items:flex-start; gap:7px; }
.ev-cat-row, .ev-where-row{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.ev .cat{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  font:600 10.5px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:var(--cat); }
.ev .cat::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--cat); }
.ev-tags .sep{ width:3px; height:3px; border-radius:50%; background:var(--ink-40); }
.ev-tags .place{ white-space:nowrap; color:var(--ink); font:700 14px/1 var(--sans); letter-spacing:.1em; text-transform:uppercase; }
.ev-tags .time{ white-space:nowrap; color:var(--ink-40); font:500 12px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.ev h3{ font-family:var(--sans); font-weight:700; letter-spacing:-.015em; margin:0;
  text-wrap:balance; transition:color .2s; }
.ev:hover h3{ color:var(--accent); }
.ev .desc{ color:var(--ink-55); line-height:1.55; margin:0; text-wrap:pretty; }
body[data-desc="off"] .ev .desc{ display:none; }

.ev .price{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
  font:600 10.5px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-55);
  border:1px solid var(--line-strong); border-radius:100px; padding:7px 12px; }
.ev .price::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--ink-40); }
.ev .price.free{ color:var(--green); border-color:rgba(87,93,70,.45); }
.ev .price.free::before{ background:var(--green); }
.ev .arr{ color:var(--accent); font-size:16px; }

/* category palette — earthy Basilicata tones */
.cat-feste  { --cat:#8C2D2F; }   /* bordeaux — feste, sagre, riti */
.cat-musica { --cat:#A8503A; }   /* terracotta — concerti, cinema, teatro */
.cat-cultura{ --cat:#5B6147; }   /* oliva — mostre, archeologia */
.cat-cammini{ --cat:#3F6B57; }   /* verde bosco — cammini, natura */
.cat-mercati{ --cat:#7A6A4A; }   /* seppia — mercati, fiere */

/* secondary tag — for events that blend categories (a sagra with a concert) */
.ev-tags .also{ white-space:nowrap; font-style:italic; color:var(--ink-40);
  font:italic 500 12.5px/1 var(--serif); letter-spacing:.01em; text-transform:none; }

/* Lucania is More — relationship badge (partner / media / collaborazione) */
.ev .lim{ display:inline-flex; align-items:center; white-space:nowrap;
  background:#1C1C1C; color:#fff; border-radius:100px; padding:5px 11px;
  font:700 9.5px/1 var(--sans); letter-spacing:.13em; text-transform:uppercase; }
.ev-flag{ margin-top:11px; }

/* distance chip — modalità "vicini a me" */
.ev-tags .dist{ display:inline-flex; align-items:center; white-space:nowrap; color:var(--accent);
  font:700 11px/1 var(--sans); letter-spacing:.05em; }
.month-head.near .mname{ white-space:nowrap; }
.month-head.near .myear{ text-transform:none; letter-spacing:.01em; color:var(--ink-40); font-weight:500; }

/* ============================================================
   VARIANT A · AGENDA (default) — editorial diary rows
   ============================================================ */
[data-layout="agenda"] .month-events{ }
[data-layout="agenda"] .ev{ display:grid; grid-template-columns:118px minmax(0,1fr) 150px;
  gap:40px; padding:30px 4px; border-bottom:1px solid var(--line); align-items:start;
  transition:background .18s, padding-left .18s; }
[data-layout="agenda"] .ev:hover{ background:var(--cream-2); padding-left:16px; }
[data-layout="agenda"] .ev-date{ flex-direction:column; gap:6px; padding-top:3px; }
[data-layout="agenda"] .ev-date .wd{ order:1; }
[data-layout="agenda"] .ev-date .dd{ order:2; font-size:52px; line-height:.86; }
[data-layout="agenda"] .ev-date.rng .rsep{ display:none; }
[data-layout="agenda"] .ev-date.rng .dd-end{ order:3; margin-top:3px; }
[data-layout="agenda"] .ev-date.rng .mm{ order:4; }
[data-layout="agenda"] .ev-date .mm{ order:3; }
[data-layout="agenda"] .ev-date .to{ order:4; margin-top:9px; }
[data-layout="agenda"] .ev-date .to .d2{ font-size:52px; line-height:.86; }
[data-layout="agenda"] .ev-date .to .ar{ display:none; }
[data-layout="agenda"] .ev-body .ev-tags{ margin:0 0 13px; }
[data-layout="agenda"] .ev-body h3{ font-size:clamp(22px,2vw,28px); line-height:1.1; }
[data-layout="agenda"] .ev-body .desc{ font-size:15.5px; margin:13px 0 0; max-width:60ch; }
[data-layout="agenda"] .ev-meta{ display:flex; flex-direction:column; align-items:flex-end;
  text-align:right; gap:10px; padding-top:4px; }
[data-layout="agenda"] .ev-meta .dur{ text-align:right; }
[data-layout="agenda"] .ev-meta .arr{ margin-top:auto; opacity:0; transition:.2s; }
[data-layout="agenda"] .ev:hover .ev-meta .arr{ opacity:1; }

/* ============================================================
   VARIANT B · GRIGLIA — text cards (no photos)
   ============================================================ */
[data-layout="grid"] .month-events{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; padding-top:26px; }
[data-layout="grid"] .ev{ position:relative; display:flex; flex-direction:column;
  border:1px solid var(--line-strong); border-radius:16px; padding:26px 26px 22px;
  background:var(--cream); overflow:hidden; transition:border-color .2s, background .2s; }
[data-layout="grid"] .ev::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--cat); }
[data-layout="grid"] .ev:hover{ border-color:var(--ink); background:var(--cream-2); }
[data-layout="grid"] .ev-date{ flex-direction:row; align-items:baseline; gap:8px; margin-bottom:16px; }
[data-layout="grid"] .ev-date .wd{ order:3; align-self:center; }
[data-layout="grid"] .ev-date .dd{ order:1; font-size:34px; line-height:.9; }
[data-layout="grid"] .ev-date .mm{ order:2; }
[data-layout="grid"] .ev-body{ display:flex; flex-direction:column; flex:1; }
[data-layout="grid"] .ev-body .ev-tags{ margin:0 0 11px; }
[data-layout="grid"] .ev-body h3{ font-size:clamp(19px,1.7vw,23px); line-height:1.12; }
[data-layout="grid"] .ev-body .desc{ font-size:14.5px; margin:11px 0 0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
[data-layout="grid"] .ev-meta{ display:flex; align-items:center; gap:14px; margin-top:18px;
  padding-top:16px; border-top:1px solid var(--line); }
[data-layout="grid"] .ev-meta .dur{ margin-left:auto; }
[data-layout="grid"] .ev-meta .arr{ display:none; }
[data-layout="grid"][data-cols="3"] .month-events{ grid-template-columns:repeat(3,1fr); gap:18px; }
[data-layout="grid"][data-cols="3"] .ev-body h3{ font-size:clamp(18px,1.4vw,21px); }

/* ============================================================
   VARIANT C · ELENCO — compact index rows
   ============================================================ */
[data-layout="list"] .month-events{ border-top:1px solid var(--line); margin-top:22px; }
[data-layout="list"] .ev{ display:grid; grid-template-columns:128px minmax(0,1fr) auto;
  gap:28px; padding:17px 4px; border-bottom:1px solid var(--line); align-items:baseline;
  transition:background .16s, padding-left .16s; }
[data-layout="list"] .ev:hover{ background:var(--cream-2); padding-left:12px; }
[data-layout="list"] .ev-date{ flex-direction:row; align-items:baseline; gap:9px; }
[data-layout="list"] .ev-date .wd{ display:none; }
[data-layout="list"] .ev-date .dd{ font-size:30px; line-height:.9; letter-spacing:-.02em; }
[data-layout="list"] .ev-date .mm{ font-size:15px; }
[data-layout="list"] .ev-date .days{ display:inline-flex; align-items:baseline; gap:7px; min-width:82px; }
[data-layout="list"] .ev-date .rsep{ font-size:22px; }
[data-layout="list"] .ev-date .to{ gap:6px; }
[data-layout="list"] .ev-date .to .d2{ font-size:30px; line-height:.9; }
[data-layout="list"] .ev-date .to .ar{ display:none; }
[data-layout="list"] .ev-date .to .m2{ padding-bottom:3px; }
[data-layout="list"] .ev-body .ev-tags{ margin:0 0 7px; }
[data-layout="list"] .ev-body .ev-tags .time{ display:none; }
[data-layout="list"] .ev-body .ev-tags .sep-time{ display:none; }
[data-layout="list"] .ev-body h3{ font-size:clamp(17px,1.5vw,21px); line-height:1.12; }
[data-layout="list"] .ev-body .desc{ display:none; }
[data-layout="list"] .ev-meta{ display:flex; align-items:baseline; gap:16px; white-space:nowrap; }
[data-layout="list"] .ev-meta .dur{ display:none; }
[data-layout="list"] .ev-meta .arr{ color:var(--accent); opacity:0; transition:.2s; }
[data-layout="list"] .ev:hover .ev-meta .arr{ opacity:1; }

/* ============================================================
   EMPTY STATE
   ============================================================ */
.ag-empty{ display:none; padding:80px 0 90px; text-align:center; }
.ag-empty.show{ display:block; }
.ag-empty h3{ font-family:var(--sans); font-weight:700; font-size:30px; margin:0; color:var(--ink); }
.ag-empty p{ color:var(--ink-55); margin:14px 0 0; font-size:16px; }
.ag-empty button{ margin-top:24px; background:none; border:1px solid var(--line-strong); border-radius:100px;
  color:var(--ink); font:600 11.5px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase;
  padding:13px 24px; transition:.18s; cursor:pointer; }
.ag-empty button:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }

/* ============================================================
   CLOSING STRIP — eventi nella newsletter
   NEWSLETTER — la sezione .news (scura) è in styles.css, condivisa
   ============================================================ */
.news{ border-top:1px solid var(--line-strong); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  [data-layout="agenda"] .ev{ grid-template-columns:96px minmax(0,1fr) 150px; gap:28px; }
  [data-layout="agenda"] .ev-date .dd{ font-size:42px; }
  [data-layout="agenda"] .ev-date .to .d2{ font-size:42px; }
}
/* ============================================================
   VARIANT D · CALENDARIO — month grid
   ============================================================ */
#calendar{ display:none; }
body[data-layout="cal"] #agenda{ display:none; }
body[data-layout="cal"] #calendar{ display:block; }

.cal-month{ margin-top:42px; }
.cal-month:first-child{ margin-top:30px; }
.cal-month.hide{ display:none; }
.cal-mhead{ display:flex; align-items:baseline; gap:16px; padding-bottom:16px;
  border-bottom:1px solid var(--line-strong); }
.cal-mhead .mname{ font-family:var(--sans); font-weight:800; font-size:clamp(24px,2.8vw,34px);
  line-height:1; letter-spacing:-.02em; }
.cal-mhead .myear{ font:500 13px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.cal-mhead .mcount{ margin-left:auto; color:var(--ink-40);
  font:500 11px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; }

.cal-wdh{ display:grid; grid-template-columns:repeat(7,1fr); gap:1px; margin-top:18px; }
.cal-wdh span{ padding:0 4px 10px; font:600 10.5px/1 var(--sans); letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-40); }
.cal-wdh span:nth-child(n+6){ color:var(--accent); opacity:.7; } /* weekend tint */

.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); }
.cal-day{ background:var(--cream); min-height:122px; padding:10px 10px 8px; display:flex; flex-direction:column; gap:6px; }
.cal-day.pad{ background:rgba(28,28,28,.022); }
.cal-day.weekend{ background:rgba(244,162,0,.05); }
.cal-day .dn{ font:700 15px/1 var(--sans); letter-spacing:-.01em; color:var(--ink-55);
  font-variant-numeric:tabular-nums; }
.cal-day.has .dn{ color:var(--ink); }
.cal-evs{ display:flex; flex-direction:column; gap:4px; }
.cal-ev{ display:flex; align-items:center; gap:6px; padding:5px 8px; border-radius:7px;
  background:color-mix(in srgb, var(--cat,var(--accent)) 12%, var(--cream));
  border-left:3px solid var(--cat,var(--accent)); transition:.15s; min-width:0; }
.cal-ev:hover{ background:color-mix(in srgb, var(--cat,var(--accent)) 22%, var(--cream)); }
.cal-ev .t{ font:600 11.5px/1.25 var(--sans); letter-spacing:-.005em; color:var(--ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.cal-ev.cont{ opacity:.62; }
.cal-ev.hide{ display:none; }
.cal-ev.cont .t::before{ content:"… "; color:var(--ink-40); }
.cal-day.dim{ opacity:.4; }
.cal-ev.cat-feste  { --cat:#8C2D2F; }
.cal-ev.cat-musica { --cat:#A8503A; }
.cal-ev.cat-cultura{ --cat:#5B6147; }

@media (max-width:860px){
  .controls .row{ flex-wrap:wrap; }
  .ctrl-right{ width:100%; justify-content:space-between; }
  .search{ flex:1; min-width:0; }
}
@media (max-width:760px){
  [data-layout="grid"] .month-events{ grid-template-columns:1fr; }
  [data-layout="grid"][data-cols="3"] .month-events{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  /* ---------- sticky controls: compact + swipeable strips ---------- */
  .controls{ top:78px; padding:12px 0; }
  .controls .shell{ gap:10px; }
  .controls .row{ gap:10px; }

  /* horizontal scroll strips (categorie · dove · mesi) — contained, swipeable */
  .ag-cats, .r2-where, .ag-months{
    flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; min-width:0; max-width:100%;
    -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:1px;
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
    mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
  }
  .ag-cats::-webkit-scrollbar, .r2-where::-webkit-scrollbar, .ag-months::-webkit-scrollbar{ display:none; }
  .ag-cats, .r2-where, .ag-months{ padding-right:var(--pad); }

  .ag-cats{ gap:7px; }
  .ag-cats button{ flex:0 0 auto; padding:9px 14px; font-size:10.5px; letter-spacing:.07em; }

  /* r2 stacks into 3 tidy lines: dove · mesi · ricerca */
  .controls .row.r2{ flex-direction:column; align-items:stretch; gap:11px; }
  .r2-where{ gap:8px; align-items:center; }
  .r2-where > *{ flex:0 0 auto; }
  .filt-btn, .near-toggle, .radius-trigger{ padding:11px 15px; }
  .seg button{ padding:11px 15px; }
  .ag-months{ width:auto; gap:2px; }
  .ag-months button{ flex:0 0 auto; }

  /* ricerca a tutta larghezza · vista nascosta sul telefono */
  .ctrl-right{ flex:0 0 auto; width:100%; gap:10px; }
  .ctrl-right .view{ display:none; }
  .search{ flex:1; min-width:0; padding:11px 16px; }

  /* ---------- intro più snello ---------- */
  .ag-intro{ padding:calc(78px + 30px) 0 28px; }
  .ag-intro .stats{ gap:30px; flex-wrap:wrap; }
  .ag-intro .intro-top{ gap:14px; }
  .ag-segnala{ padding:9px 15px 9px 9px; letter-spacing:.1em; }

  /* ---------- agenda densa (prima ~1 evento a schermo) ---------- */
  .agenda-wrap{ padding-bottom:84px; }
  .ag-count{ margin:20px 0 2px; font-size:11px; }
  .month-group{ margin-top:22px; }
  .month-head{ padding-bottom:12px; }
  .month-head .mname{ font-size:24px; }

  [data-layout="agenda"] .ev{ grid-template-columns:60px minmax(0,1fr); gap:14px; padding:15px 0; }
  [data-layout="agenda"] .ev:hover{ padding-left:0; background:transparent; }
  [data-layout="agenda"] .ev-date{ gap:1px; padding-top:2px; }
  [data-layout="agenda"] .ev-date .wd{ font-size:9px; letter-spacing:.12em; }
  [data-layout="agenda"] .ev-date .dd{ font-size:30px; line-height:.86; }
  [data-layout="agenda"] .ev-date .mm{ font-size:11px; }
  [data-layout="agenda"] .ev-date .to{ display:grid; grid-template-columns:auto auto;
    align-items:baseline; gap:2px 4px; width:60px; margin-top:6px; }
[data-layout="agenda"] .ev-date .to .ar{ display:none; }
[data-layout="agenda"] .ev-date .to .d2{ grid-column:1 / -1; grid-row:1; font-size:30px; line-height:.86; }
[data-layout="agenda"] .ev-date .to .m2{ grid-column:1 / -1; grid-row:2; font-size:10px; padding-bottom:0; }  [data-layout="agenda"] .ev-body .ev-tags{ margin:0 0 6px; gap:6px 8px; }
  [data-layout="agenda"] .ev-body h3{ font-size:17px; line-height:1.18;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  [data-layout="agenda"] .ev-body .desc{ display:none; }
  [data-layout="agenda"] .ev-meta{ grid-column:1 / -1; flex-direction:row; align-items:center;
    justify-content:flex-start; text-align:left; gap:14px; margin-top:9px; }
  [data-layout="agenda"] .ev-meta .dur{ display:none; }
  [data-layout="agenda"] .ev-meta .arr{ display:none; }

  /* tag/chip compatti */
  .ev-tags .place{ font-size:12px; letter-spacing:.06em; }
  .ev-tags .time{ font-size:10.5px; letter-spacing:.06em; }
  .ev .cat{ font-size:9.5px; letter-spacing:.1em; }
  .ev-tags .also{ font-size:11.5px; }
  .ev-tags .dist{ font-size:10.5px; }
  .ev .price{ font-size:9.5px; padding:6px 10px; }

  /* elenco compatto */
  [data-layout="list"] .ev{ grid-template-columns:1fr auto; gap:10px 14px; padding:13px 0; }
  [data-layout="list"] .ev:hover{ padding-left:0; }
  [data-layout="list"] .ev-date{ grid-column:1 / -1; }
}

/* calendar · compact on phones — chips become colored dots */
@media (max-width:680px){
  .cal-day{ min-height:74px; padding:7px 6px; gap:4px; }
  .cal-wdh span{ font-size:9px; letter-spacing:.08em; padding-bottom:8px; }
  .cal-ev{ padding:0; background:none !important; border-left:0; }
  .cal-ev .t{ display:none; }
  .cal-ev::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--cat,var(--accent)); flex:0 0 7px; }
  .cal-evs{ flex-direction:row; flex-wrap:wrap; gap:4px; }
  .cal-ev.cont::before{ opacity:.5; }
}
