/* InForma 2.0 — pagina calendario. Si appoggia ai token/componenti di main.css (da caricare prima). */
@layer sections{
  /* ---- Hero ---- */
  .calendar-hero{padding-block:clamp(4.5rem,9vw,7rem) clamp(3rem,6vw,5rem);background:var(--ink)}
  .calendar-hero h1{font-size:var(--t-h1);font-weight:900;line-height:.87;letter-spacing:-.05em;text-transform:uppercase}
  .calendar-hero h1 span{color:var(--lime)}
  .calendar-hero p:not(.eyebrow){max-width:38rem;margin-block:1.25rem 1.5rem;color:var(--text-on-dark-soft);font-size:var(--t-lg)}

  /* ---- Filtri ---- */
  .calendar-section{padding-top:clamp(3rem,6vw,5rem)}
  .filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:1rem;padding:1rem;
    background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}
  .filters label{display:grid;gap:.4rem;min-width:0;font-size:var(--t-sm);font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .filters select{width:100%;min-height:3rem;padding:.6rem 2.5rem .6rem .8rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);
    background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0c0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right .75rem center/1rem no-repeat;
    -webkit-appearance:none;appearance:none;color:var(--ink);font-size:var(--t-base);font-weight:500;letter-spacing:0;text-transform:none;cursor:pointer}
  .filters select[data-active]{border-color:var(--lime-text);box-shadow:inset 0 0 0 1px var(--lime-text)}
  .reset-button{min-height:3rem;padding-inline:.75rem;font-weight:700;text-decoration:underline;text-underline-offset:.2em}
  .filter-note{margin:.75rem .25rem 0;color:var(--fg-mute);font-size:var(--t-sm)}

  /* ---- Prossima lezione + conteggio ---- */
  .next-lesson{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;margin-top:1.25rem;padding:.9rem 1.15rem;
    background:var(--ink);color:#fff;border-radius:var(--r-md)}
  .next-lesson strong{color:var(--lime);font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase}
  .next-lesson span{font-weight:600}
  .results-count{margin:1.25rem 0 .75rem;color:var(--fg-mute);font-size:.85rem;font-weight:700}
  .empty-state{padding:4rem 1rem;text-align:center;background:var(--surface-raised);border-radius:var(--r-md)}
  .empty-state h2{font-size:var(--t-h3);margin-bottom:.5rem}
  .empty-state p{margin-bottom:1.5rem;color:var(--fg-soft)}
  .filter-note a{text-decoration:underline}

  /* ---- Lista per giorno (< 64rem) ---- */
  .calendar-root{display:grid;gap:1rem}
  .cal-list{display:grid;gap:1rem}
  .cal-table{display:none}
  .calendar-day{overflow:hidden;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md)}
  .calendar-day[data-today]{border-color:var(--lime-text);box-shadow:0 0 0 2px var(--lime),var(--shadow-md)}
  .calendar-day-header{display:flex;align-items:baseline;gap:.75rem;padding:1rem;background:var(--ink);color:#fff}
  .calendar-day-header h3{font-size:1.7rem}
  .calendar-day-header .count{margin-left:auto;color:var(--lime);font-size:var(--t-xs);font-weight:800;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
  .today-flag{padding:.2rem .55rem;border-radius:var(--r-pill);background:var(--lime);color:var(--ink);font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .event-card{display:grid;grid-template-columns:6.5rem minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem;border-bottom:1px solid var(--border)}
  .event-card:last-child{border-bottom:0}
  .event-card:hover{box-shadow:inset 4px 0 0 var(--lime)}
  .event-card time{font-size:.9rem;font-weight:800;white-space:nowrap}
  .event-card p,.tt-lesson p{margin-top:.25rem;color:var(--fg-mute);font-size:.8rem}
  .event-card p a,.tt-lesson p a{font-weight:700}
  .event-course{display:inline-flex;align-items:center;gap:.45rem;font-weight:800;line-height:1.2}
  .event-course .icon{color:var(--lime-text)}
  .event-course:hover,.event-card p a:hover,.tt-lesson p a:hover{text-decoration:underline;text-decoration-color:var(--olive);text-underline-offset:.18em}
  .event-band{align-self:start;padding:.3rem .55rem;border:1px solid var(--border);border-radius:var(--r-pill);color:var(--fg-soft);
    font-size:.63rem;font-weight:800;line-height:1;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}

  /* ---- Tabella settimanale (≥ 64rem) ---- */
  .timetable{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--surface-raised);
    border:1px solid var(--border);border-radius:var(--r-lg)}
  .timetable thead th,.timetable thead td{position:sticky;top:var(--sticky-top);z-index:2;padding:1rem 1.1rem;background:var(--ink);color:#fff;
    text-align:left;font-size:1.05rem;font-weight:800;transition:top var(--dur) var(--ease)}
  .timetable thead td{width:5.5rem}
  .timetable thead tr>:first-child{border-top-left-radius:calc(var(--r-lg) - 1px)}
  .timetable thead tr>:last-child{border-top-right-radius:calc(var(--r-lg) - 1px)}
  .timetable thead th[data-today]{color:var(--ink);background:var(--lime)}
  .timetable tbody th{padding:.85rem 1rem;vertical-align:top;text-align:left;font-size:.95rem;font-weight:800;background:#fafbf6;border-top:1px solid var(--line-light-2)}
  .timetable tbody td{padding:.8rem 1rem;vertical-align:top;border-top:1px solid var(--line-light-2);border-left:1px solid var(--line-light-2)}
  .timetable td[data-today]{background:rgba(192,208,0,.08)}
  .timetable tbody tr:not(.tt-break):hover>*{background:#f7f8f2}
  .timetable .tt-break td{padding:.4rem;background:var(--paper);border-left:0;color:var(--fg-mute);text-align:center;
    font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
  .timetable .tt-empty{color:var(--line-light);text-align:center}
  .tt-lesson+.tt-lesson{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed var(--line-light)}
  .tt-lesson .tt-end{font-size:.72rem}
}

@layer responsive{
  @media (min-width:64rem){
    .cal-list{display:none}
    .cal-table{display:block}
  }
  @media (max-width:48rem){
    .filters{grid-template-columns:1fr 1fr}
    .reset-button{grid-column:1/-1}
  }
  @media (max-width:32rem){
    .filters{grid-template-columns:1fr}
    .event-card{grid-template-columns:1fr auto;gap:.2rem .75rem;padding:.9rem 1rem}
    .event-card time{grid-column:1/-1;color:var(--lime-text);font-size:1rem}
    .event-card>div{grid-column:1}
    .event-band{grid-column:2;grid-row:2}
    .calendar-day-header h3{font-size:1.45rem}
    .empty-state{padding:2.5rem 1rem}
  }
}

/* ---- Stampa: griglia settimanale su un foglio, nero su bianco ---- */
@media print{
  @page{size:A4 landscape;margin:1cm}
  .site-header,.site-footer,.mobile-cta,.to-top,.skip-link,.calendar-hero,.filters,.filter-note,.reset-button,
  .next-lesson,.empty-state,.heading-inline>p,noscript,.icon-sprite{display:none}
  html,body{background:#fff;color:#000;padding:0;font-size:10pt}
  .calendar-section{padding:0;background:#fff;color:#000}
  .heading-inline{display:block;margin:0 0 .5rem}
  .h-display{font-size:20pt;margin:0;color:#000}
  .h-display em{color:#000}
  .eyebrow,.results-count{display:none}
  .cal-list{display:none}
  .cal-table{display:block}
  .timetable{border:1px solid #000;border-radius:0;table-layout:auto}
  .timetable thead th,.timetable thead td{position:static;background:#fff;color:#000;border-bottom:2px solid #000;padding:.3rem .4rem;font-size:9pt}
  .timetable thead th[data-today]{background:#fff;color:#000}
  .timetable tbody th,.timetable tbody td{padding:.25rem .4rem;background:#fff;border-color:#999;font-size:8pt}
  .timetable td[data-today]{background:#fff}
  .tt-lesson{break-inside:avoid}
  .tt-lesson p,.event-course{color:#000}
  .event-course .icon{display:none}
  a{color:#000;text-decoration:none}
  tr{break-inside:avoid}
}
