/* ============================================================
   Eventi — blocco "Prossimi eventi" (calendario a fasce)
   Page-specific. Usa i token brand di homepage.css (:root).
   ============================================================ */

.ev-section{position:relative}

.ev-intro{
  margin-top:18px;max-width:64ch;
  color:var(--ink-700);font-size:1.04rem;line-height:1.62;
}

/* ---- lista ---- */
.ev-list{margin-top:42px;display:flex;flex-direction:column;gap:16px}

/* separatore di mese (ritmo da calendario) */
.ev-month{
  display:flex;align-items:center;gap:16px;
  margin:18px 2px 6px;
  font-family:var(--font-mono);font-size:.72rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-500);
}
.ev-month:first-child{margin-top:0}
.ev-month::after{content:"";flex:1;height:1px;background:var(--rule)}

/* ---- fascia evento ---- */
.ev-row{
  display:grid;grid-template-columns:108px 1fr auto;align-items:center;
  gap:clamp(20px,3vw,42px);
  background:var(--bg-elevated);border:1px solid var(--rule);
  border-radius:var(--radius-lg);
  padding:22px clamp(22px,2.6vw,32px) 22px clamp(26px,2.8vw,36px);
  box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden;
  transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease);
}
.ev-row::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
  background:var(--green-500);
}
.ev-row:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--green-100)}
.ev-row.past{opacity:.5}
.ev-row.past::before{background:var(--ink-300)}

/* data ben in evidenza */
.ev-date{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;line-height:1;
  padding-right:clamp(18px,2vw,26px);
  border-right:1px solid var(--rule);
}
.ev-dow{
  font-family:var(--font-mono);font-size:.64rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-500);
}
.ev-day{
  font-family:var(--font-display);font-weight:700;
  font-size:2.8rem;color:var(--green-900);margin:3px 0;
}
.ev-mon{
  font-family:var(--font-mono);font-size:.72rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--orange-600);
}

/* corpo */
.ev-body{min-width:0}
.ev-meta{
  font-family:var(--font-mono);font-size:.66rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--green-700);
  margin-bottom:7px;
}
.ev-title{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.12rem,1.55vw,1.34rem);color:var(--ink-900);line-height:1.22;
}
.ev-desc{
  margin-top:8px;color:var(--ink-700);font-size:.97rem;line-height:1.55;max-width:62ch;
}
.ev-note{
  margin-top:12px;display:inline-flex;align-items:center;gap:9px;
  font-size:.87rem;line-height:1.4;color:var(--ink-700);
  background:var(--sand-100);border:1px solid var(--rule-strong);
  border-radius:var(--radius-sm);padding:7px 12px;
}
.ev-note-lab{
  font-family:var(--font-mono);font-size:.58rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--terracotta-700);
  background:var(--orange-100);border-radius:var(--radius-pill);
  padding:3px 8px;flex-shrink:0;
}

/* azioni: fino a 3 CTA */
.ev-actions{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;
  max-width:330px;
}
.ev-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:42px;padding:0 18px;border-radius:var(--radius-pill);
  font-family:var(--font-body);font-weight:600;font-size:.88rem;white-space:nowrap;
  border:1.5px solid var(--green-700);color:var(--green-700);background:transparent;
  cursor:pointer;transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease);
}
.ev-cta:hover{background:var(--green-100);transform:translateY(-2px)}
.ev-cta .arr{transition:transform .25s var(--ease)}
.ev-cta:hover .arr{transform:translateX(3px)}
.ev-cta.primary{background:var(--orange-500);border-color:var(--orange-500);color:#fff}
.ev-cta.primary:hover{background:var(--orange-600);box-shadow:var(--shadow-md)}

/* stato vuoto (se nessun evento in programma) */
.ev-empty{
  margin-top:36px;text-align:center;padding:48px 24px;
  background:var(--bg-elevated);border:1px dashed var(--rule-strong);
  border-radius:var(--radius-lg);color:var(--ink-500);
}

/* ---- responsive ---- */
@media (max-width:880px){
  .ev-row{grid-template-columns:96px 1fr;gap:20px 24px}
  .ev-actions{grid-column:1 / -1;justify-content:flex-start;max-width:none;margin-top:2px}
}
@media (max-width:560px){
  .ev-row{
    grid-template-columns:1fr;gap:12px;
    padding:18px 18px 18px 22px;
  }
  .ev-date{
    flex-direction:row;align-items:baseline;gap:9px;
    border-right:0;border-bottom:1px solid var(--rule);
    padding-right:0;padding-bottom:12px;width:100%;justify-content:flex-start;
  }
  .ev-day{font-size:1.9rem;margin:0}
  .ev-actions{max-width:none}
  .ev-cta{flex:1 1 auto}
}
