/* ============================================================
   ACTION IN LINE — Calendario + Evento (parti dinamiche in PHP)
   Caricato dal child theme quando serve (shortcode [ail_calendario]
   e template single-evento.php). Usa i token di brand.css.
   arancio=bambini · blu=adulti · gradiente=mix (aperto a tutti/hockey)
   ============================================================ */

/* accent per evento — usato da dot, bordi e badge */
.ev-bambini { --ev:var(--primitive-orange); --ev-soft:color-mix(in srgb, var(--primitive-orange) 16%, transparent); }
.ev-adulti  { --ev:var(--primitive-blue);   --ev-soft:color-mix(in srgb, var(--primitive-blue) 16%, transparent); }
.ev-mix     { --ev:var(--primitive-orange); --ev-soft:color-mix(in srgb, var(--primitive-orange) 13%, transparent); }
.ev-dot--mix { background:linear-gradient(45deg, var(--primitive-orange), var(--primitive-blue)) !important; }

.ail-wrap { max-width:var(--layout-max-width); margin:0 auto; padding:0 var(--layout-container); }

/* ---------------- TOOLBAR (vista + navigazione) ---------------- */
.cal-toolbar { display:flex; align-items:center; justify-content:space-between; gap:var(--spacing-lg);
  flex-wrap:wrap; margin-bottom:var(--spacing-xl); }
.cal-nav { display:flex; align-items:center; gap:var(--spacing-md); }
.cal-nav__btn { width:42px; height:42px; flex:0 0 auto; border-radius:var(--radius-md);
  border:1px solid var(--color-border-strong); background:var(--color-bg-secondary);
  color:var(--color-text-primary); font-size:20px; line-height:1; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  transition:border-color var(--duration-fast) var(--ease-snap), background var(--duration-fast), transform var(--duration-fast); }
.cal-nav__btn:hover { border-color:var(--accent); background:var(--color-bg-surface); }
.cal-nav__btn:active { transform:scale(0.94); }
.cal-nav__title { font-family:var(--font-display); font-size:var(--text-2xl); letter-spacing:var(--tracking-display);
  color:var(--color-text-primary); line-height:1; min-width:240px; text-align:center; text-transform:uppercase; }
.cal-today { font-size:13px; font-weight:600; color:var(--color-text-secondary); background:none;
  border:none; cursor:pointer; padding:6px 4px; text-decoration:underline; text-underline-offset:3px; }
.cal-today:hover { color:var(--accent); }
.viewtoggle { display:inline-flex; padding:4px; border-radius:var(--radius-full);
  border:1px solid var(--color-border-default); background:var(--color-bg-secondary); }
.viewtoggle__btn { border:none; background:none; cursor:pointer; padding:9px 20px; border-radius:var(--radius-full);
  font-size:14px; font-weight:600; color:var(--color-text-secondary);
  transition:color var(--duration-fast), background var(--duration-fast); }
.viewtoggle__btn.is-active { color:#fff; background:linear-gradient(45deg, var(--primitive-orange), var(--primitive-blue)); }
.viewtoggle__btn:not(.is-active):hover { color:var(--primitive-orange); background:color-mix(in srgb,var(--primitive-orange) 10%,transparent); }

/* ---------------- LEGENDA ---------------- */
.cal-legend { display:flex; flex-wrap:wrap; align-items:center; gap:var(--spacing-lg);
  margin-bottom:var(--spacing-lg); font-size:13px; color:var(--color-text-secondary); }
.legend__item { display:inline-flex; align-items:center; gap:8px; }
.legend__dot { width:11px; height:11px; border-radius:50%; flex:0 0 auto; }

/* ---------------- GRIGLIA MESE ---------------- */
.cal-grid { border:1px solid var(--color-border-default); border-radius:var(--radius-lg); overflow:hidden;
  background:var(--color-bg-secondary); }
.cal-weekhead { display:grid; grid-template-columns:repeat(7,1fr); background:var(--ail-900); }
.cal-weekhead span { padding:12px 14px; font-size:11px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--color-text-secondary); border-bottom:1px solid var(--color-border-default); }
.cal-weeks { display:grid; grid-template-columns:repeat(7,1fr); grid-auto-rows:minmax(118px,auto); }
.cal-cell { border-right:1px solid var(--color-border-default); border-bottom:1px solid var(--color-border-default);
  padding:8px; min-width:0; display:flex; flex-direction:column; gap:6px; }
.cal-cell:nth-child(7n) { border-right:none; }
.cal-cell--out { background:color-mix(in srgb, var(--ail-900) 55%, transparent); }
.cal-cell--out .cal-cell__n { color:var(--color-text-disabled); }
.cal-cell__n { font-size:13px; font-weight:700; color:var(--color-text-secondary);
  width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; }
.cal-cell--today .cal-cell__n { background:linear-gradient(45deg, var(--primitive-orange), var(--primitive-blue)); color:#fff; }
.cal-cell__events { display:flex; flex-direction:column; gap:5px; min-width:0; }
.cal-chip { display:flex; align-items:center; gap:7px; text-align:left; width:100%;
  padding:5px 8px; border-radius:7px; border:1px solid var(--color-border-default);
  background:var(--color-bg-surface); cursor:pointer; text-decoration:none; min-width:0;
  transition:border-color var(--duration-fast) var(--ease-snap), transform var(--duration-fast), background var(--duration-fast); }
.cal-chip:hover { border-color:var(--ev); background:var(--ev-soft); transform:translateX(2px); }
.cal-chip__dot { width:8px; height:8px; border-radius:50%; background:var(--ev); flex:0 0 auto; }
.cal-chip__time { font-size:11px; font-weight:700; color:var(--ev); flex:0 0 auto; font-variant-numeric:tabular-nums; }
.cal-chip__t { font-size:12px; font-weight:600; color:var(--color-text-primary);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }

/* ---------------- VISTA ELENCO ---------------- */
.cal-list { display:flex; flex-direction:column; gap:var(--spacing-2xl); }
.listmonth__head { display:flex; align-items:baseline; gap:var(--spacing-md); margin-bottom:var(--spacing-md);
  padding-bottom:var(--spacing-sm); border-bottom:1px solid var(--color-border-default); }
.listmonth__title { font-family:var(--font-display); font-size:var(--text-2xl); letter-spacing:var(--tracking-display);
  color:var(--color-text-primary); text-transform:uppercase; line-height:1; }
.listmonth__count { font-size:13px; color:var(--color-text-secondary); }
.listmonth__items { display:flex; flex-direction:column; gap:var(--spacing-md); }
.evrow { display:grid; grid-template-columns:84px 1fr auto; align-items:center; gap:var(--spacing-lg);
  padding:var(--spacing-lg); border:1px solid var(--color-border-default); border-left:3px solid var(--ev);
  border-radius:var(--radius-lg); background:var(--color-bg-secondary); text-decoration:none;
  transition:transform var(--duration-normal) var(--ease-snap), border-color var(--duration-normal), box-shadow var(--duration-normal); }
.evrow:hover { transform:translateY(-2px); border-color:var(--ev); box-shadow:var(--shadow-lg); }
.evdate { display:flex; flex-direction:column; align-items:center; justify-content:center;
  border-right:1px solid var(--color-border-default); padding-right:var(--spacing-lg); }
.evdate__d { font-family:var(--font-display); font-size:var(--text-3xl); line-height:1; color:var(--color-text-primary); }
.evdate__m { font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--ev); margin-top:4px; }
.evdate__wd { font-size:11px; color:var(--color-text-secondary); margin-top:2px; text-transform:capitalize; }
.evrow__body { min-width:0; }
.evrow__meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:7px; }
.evrow__title { font-family:var(--font-display); font-size:var(--text-xl); letter-spacing:var(--tracking-display);
  color:var(--color-text-primary); line-height:1.08; margin:0 0 6px; }
.evrow__sub { font-size:14px; line-height:1.5; color:var(--color-text-secondary); margin:0;
  display:flex; flex-wrap:wrap; gap:6px 16px; }
.evrow__sub b { color:var(--color-text-primary); font-weight:600; }
.evrow__go { font-family:var(--font-display); font-size:22px; color:var(--ev); padding-left:var(--spacing-md);
  transition:transform var(--duration-fast) var(--ease-snap); }
.evrow:hover .evrow__go { transform:translateX(4px); }
.evbadge { display:inline-flex; align-items:center; gap:7px; padding:4px 11px; border-radius:var(--radius-full);
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.evbadge--cat { color:var(--ev); border:1px solid color-mix(in srgb, var(--ev) 50%, transparent); background:var(--ev-soft); }
.evbadge--cat .evbadge__dot { width:7px; height:7px; border-radius:50%; background:var(--ev); }
.evbadge--type { color:var(--color-text-secondary); border:1px solid var(--color-border-strong); }
.cal-empty { padding:var(--spacing-3xl); text-align:center; color:var(--color-text-secondary);
  border:1px dashed var(--color-border-strong); border-radius:var(--radius-lg); }

/* ---------------- PAGINA EVENTO (single-evento.php) ---------------- */
.ev-hero { position:relative; padding:var(--spacing-4xl) 0 var(--spacing-2xl); background:var(--ail-850);
  border-bottom:1px solid var(--color-border-default); overflow:hidden; }
.ev-hero__scrim { position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 80% at 100% 0%, var(--ev-soft), transparent 55%); }
.ev-hero .ail-wrap { position:relative; z-index:1; }
.crumbs { font-size:13px; color:var(--color-text-secondary); margin-bottom:var(--spacing-lg); display:flex; gap:8px; flex-wrap:wrap; }
.crumbs a { color:var(--color-text-secondary); text-decoration:none; }
.crumbs a:hover { color:var(--accent); }
.ev-hero-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:var(--spacing-md); }
.ev-hero-meta .evbadge--type { color:rgba(255,255,255,.9); border-color:rgba(255,255,255,.4); }
.ev-hero__title { font-family:var(--font-display); font-size:clamp(40px,6vw,72px); line-height:1.05;
  letter-spacing:var(--tracking-display); color:#fff; text-transform:uppercase; margin:0 0 var(--spacing-md); }
.ev-hero-date { font-size:clamp(15px,1.4vw,18px); font-weight:600; color:#fff; }

.ev-main { padding:var(--spacing-3xl) 0; }
.ev-layout { display:grid; grid-template-columns:1fr 360px; gap:var(--spacing-3xl); align-items:start; }
.ev-lead { font-size:clamp(19px,1.7vw,23px); line-height:1.55; color:var(--color-text-primary); margin:0 0 var(--spacing-lg); }
.ev-body p { font-size:17px; line-height:1.75; color:var(--color-text-secondary); margin:0 0 var(--spacing-md); }
.ev-section-h { font-family:var(--font-body); font-size:13px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--color-text-primary); margin:var(--spacing-2xl) 0 var(--spacing-md); }
.ev-know { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--spacing-sm); }
.ev-know li { display:flex; align-items:flex-start; gap:12px; font-size:16px; line-height:1.55; color:var(--color-text-secondary); }
.ev-know li::before { content:''; flex:0 0 auto; width:8px; height:8px; margin-top:8px; border-radius:50%; background:var(--ev); }
.ev-card { position:sticky; top:92px; border:1px solid var(--color-border-default);
  border-top:3px solid var(--ev); border-radius:var(--radius-lg); background:var(--color-bg-secondary);
  padding:var(--spacing-xl); display:flex; flex-direction:column; gap:var(--spacing-lg); }
.ev-fact { display:flex; flex-direction:column; gap:4px; }
.ev-fact__label { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ev); }
.ev-fact__value { font-size:16px; line-height:1.4; color:var(--color-text-primary); font-weight:600; }
.ev-fact__value--big { font-family:var(--font-display); font-size:var(--text-xl); letter-spacing:var(--tracking-display);
  font-weight:400; line-height:1.1; }
.ev-divider { border:none; border-top:1px solid var(--color-border-default); margin:0; }
.ev-maps { display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin-top:4px;
  font-size:14px; font-weight:600; color:var(--ev); text-decoration:none;
  padding:8px 14px; border-radius:var(--radius-full); border:1px solid color-mix(in srgb, var(--ev) 50%, transparent);
  background:var(--ev-soft); transition:transform var(--duration-fast) var(--ease-snap), border-color var(--duration-fast); }
.ev-maps:hover { transform:translateY(-1px); border-color:var(--ev); }
.ev-card .ail-btn { width:100%; justify-content:center; }

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:960px){ .ev-layout { grid-template-columns:1fr; } .ev-card { position:static; } }
@media (max-width:860px){
  .cal-toolbar { flex-direction:column; align-items:stretch; }
  .cal-nav { justify-content:space-between; }
  .cal-nav__title { min-width:0; flex:1; font-size:var(--text-xl); }
  .viewtoggle { align-self:center; }
}
@media (max-width:720px){
  .cal-weeks { grid-auto-rows:minmax(64px,auto); }
  .cal-chip { padding:0; border:none; background:none; }
  .cal-chip:hover { background:none; transform:none; }
  .cal-chip__time, .cal-chip__t { display:none; }
  .cal-chip__dot { width:9px; height:9px; }
  .cal-cell__events { flex-direction:row; flex-wrap:wrap; gap:4px; }
  .cal-weekhead span { padding:9px 6px; text-align:center; }
  .evrow { grid-template-columns:64px 1fr; }
  .evrow__go { display:none; }
}
