/* ==========================================================================
   Paradise Home — eventi
   Caricato da inc/enqueue.php quando ph_is_events_context() è vera: pagina
   /eventi/, singolo evento, archivi e viste di The Events Calendar.

   Ordine: token locali · variabili TEC · pagina calendario · riga evento ·
   collegamenti · singolo evento · blocco formatori · viste TEC · responsive.
   ========================================================================== */

:root {
  /* Misure e ombre proprie dell'area eventi, ricavate dal kit del sito originale. */
  --ph-ev-badge: 96px;
  /* Viola scuro dei gradienti eventi: valore verificato sul kit originale (#4e1f72).
     Non esiste fra i token di main.css, che non ha una seconda tinta di viola scuro. */
  --ph-ev-purple-dark: #4e1f72;
  --ph-ev-line: rgba(105, 42, 152, 0.15);
  --ph-ev-soft: rgba(105, 42, 152, 0.05);
  --ph-ev-shadow: 0 4px 14px rgba(105, 42, 152, 0.07);
  --ph-ev-shadow-hover: 0 12px 28px rgba(105, 42, 152, 0.13);
}

/* --------------------------------------------------------------------------
   Variabili di The Events Calendar

   Punto di leva unico: il plugin costruisce tutto il suo CSS su queste custom
   property, quindi rimapparle evita di riscrivere le sue regole a colpi di
   !important. Il selettore include `body` solo per superare la specificità con
   cui TEC le dichiara su .tribe-common.
   -------------------------------------------------------------------------- */

body .tribe-common,
body .tribe-events,
body #tribe-events-pg-template {
  --tec-color-accent-primary: var(--ph-primary);
  --tec-color-accent-primary-hover: var(--ph-primary-light);
  --tec-color-accent-primary-active: var(--ph-primary);
  --tec-color-accent-primary-background: var(--ph-primary-pale);
  --tec-color-accent-secondary: var(--ph-primary-mid);
  --tec-color-accent-secondary-hover: var(--ph-primary-light);
  --tec-color-background-events: transparent;
  --tec-color-text-primary: var(--ph-text);
  --tec-color-text-secondary: var(--ph-text-muted);
  --tec-color-text-event-title: var(--ph-primary);
  --tec-color-text-event-date: var(--ph-primary-mid);
  --tec-color-link-primary: var(--ph-primary);
  --tec-color-link-primary-hover: var(--ph-primary-light);
  --tec-color-link-accent: var(--ph-primary);
  --tec-color-link-accent-hover: var(--ph-primary-light);
  --tec-color-icon-focus: var(--ph-primary);
  --tec-color-icon-active: var(--ph-primary);
  --tec-color-event-icon-hover: var(--ph-primary);
  --tec-color-button-primary: var(--ph-primary);
  --tec-color-button-primary-hover: var(--ph-primary-light);
  --tec-color-cta-background: var(--ph-primary);
  --tec-color-cta-background-hover: var(--ph-primary-light);
  --tec-color-cta-text: var(--ph-white);
  --tec-color-border-secondary: var(--ph-border);
  --tec-color-border-active: var(--ph-primary);
  --tec-font-family-sans-serif: var(--ph-font-body);
  --tec-font-family-base: var(--ph-font-body);
  --tec-color-day-marker-month: var(--ph-primary);
  --tec-color-background-secondary: var(--ph-surface);
  /* La barra delle viste dell'originale non è una scatola: nessun fondo, nessun
     bordo. Passare dalle variabili evita di rincorrere i quattro selettori con
     cui il plugin dipinge quella scatola. */
  --tec-color-background-events-bar: transparent;
  --tec-color-border-events-bar: transparent;
  --tec-color-background-view-selector: transparent;
}

/* --------------------------------------------------------------------------
   Pagina calendario: filtri
   -------------------------------------------------------------------------- */

.eventi-filtri {
  display: flex;
  flex-wrap: wrap;
  gap: 24px 40px;
  padding-block: 32px 0;
}

.eventi-filtri__etichetta {
  margin: 0 0 8px;
  font-family: var(--ph-font-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ph-accent-ink);
}

/* Stessa resa della .filter-bar dell'archivio formatori: la classe è condivisa
   ma vive in un foglio contestuale che qui non è caricato. */
.eventi-filtri .filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.eventi-filtri .filter-bar__item {
  display: inline-block;
  padding: 8px 18px;
  border: 1px solid var(--ph-border);
  border-radius: 999px;
  font-family: var(--ph-font-heading);
  font-size: 14px;
  font-weight: 500;
  color: var(--ph-text);
  transition: background-color var(--ph-transition), border-color var(--ph-transition), color var(--ph-transition);
}

.eventi-filtri .filter-bar__item:hover,
.eventi-filtri .filter-bar__item:focus-visible,
.eventi-filtri .filter-bar__item.is-current {
  background: var(--ph-primary);
  border-color: var(--ph-primary);
  color: var(--ph-white);
}

/* --------------------------------------------------------------------------
   Pagina calendario: conteggio, mesi, lista
   -------------------------------------------------------------------------- */

.eventi-conteggio {
  margin: 24px 0 0;
  font-size: 14px;
  color: var(--ph-text-muted);
}

.eventi-mese {
  padding-block: 32px 0;
}

.eventi-mese__titolo {
  margin: 0 0 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ph-ev-line);
  font-size: var(--ph-h4);
  letter-spacing: 0.04em;
  text-transform: capitalize;
}

.eventi-lista {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.eventi-vuoto {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding-block: 48px 24px;
  font-size: 18px;
}

.eventi-vuoto p {
  margin: 0;
  max-width: 46em;
}

.eventi-nota {
  max-width: 46em;
}

.eventi-azioni {
  margin: 0;
  padding-block: 32px 8px;
}

.eventi-azioni__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ph-font-heading);
  font-size: 14px;
  font-weight: 500;
}

.eventi-azioni__icona {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

/* --------------------------------------------------------------------------
   Riga evento
   -------------------------------------------------------------------------- */

.evento-riga {
  display: grid;
  grid-template-columns: var(--ph-ev-badge) 1fr;
  gap: 24px;
  padding: 24px 28px;
  background: var(--ph-white);
  border: 1px solid var(--ph-ev-line);
  border-left: 5px solid var(--ph-primary);
  border-radius: var(--ph-radius-lg);
  box-shadow: var(--ph-ev-shadow);
  transition: transform var(--ph-transition), box-shadow var(--ph-transition);
}

.evento-riga:hover,
.evento-riga:focus-within {
  transform: translateY(-2px);
  box-shadow: var(--ph-ev-shadow-hover);
}

.evento-riga__badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  margin: 0;
  padding: 14px 8px;
  background-image: linear-gradient(135deg, var(--ph-primary) 0%, var(--ph-ev-purple-dark) 100%);
  border-radius: 14px;
  color: var(--ph-white);
  text-align: center;
}

.evento-riga__badge-giorno,
.evento-riga__badge-mese {
  font-family: var(--ph-font-heading);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.evento-riga__badge-numero {
  font-family: var(--ph-font-heading);
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
}

.evento-riga__corpo {
  min-width: 0;
}

.evento-riga__titolo {
  margin: 0 0 10px;
  font-size: var(--ph-h5);
  line-height: 1.3;
}

.evento-riga__titolo a {
  color: inherit;
}

.evento-riga__quando,
.evento-riga__luogo {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 6px;
  font-size: 14px;
}

.evento-riga__quando {
  font-family: var(--ph-font-heading);
  font-weight: 500;
  color: var(--ph-primary);
}

.evento-riga__luogo {
  color: var(--ph-text-muted);
}

.evento-riga__citta::before {
  content: "· ";
}

.evento-riga__icona {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  color: var(--ph-accent-ink);
}

.evento-riga__piede {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 18px;
}

.evento-riga__posti {
  margin: 0;
  padding: 5px 12px;
  background: var(--ph-ev-soft);
  border-radius: 999px;
  font-family: var(--ph-font-heading);
  font-size: 13px;
  font-weight: 500;
  color: var(--ph-primary);
}

.evento-riga__cta {
  margin-left: auto;
}

/* --------------------------------------------------------------------------
   Corso di appartenenza e formatori
   -------------------------------------------------------------------------- */

.evento-collegamenti {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  margin: 10px 0 0;
  font-size: 14px;
  color: var(--ph-text-muted);
}

.evento-collegamenti__voce {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
}

.evento-collegamenti__etichetta {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ph-accent-ink);
}

.evento-collegamenti__link {
  font-family: var(--ph-font-heading);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: var(--ph-primary-pale);
  text-underline-offset: 3px;
}

.evento-collegamenti__link:hover,
.evento-collegamenti__link:focus-visible {
  text-decoration-color: currentColor;
}

.evento-collegamenti__sep {
  margin-left: -4px;
}

/* --------------------------------------------------------------------------
   Singolo evento

   Il markup arriva dall'override tribe-events/single-event.php, iniettato da TEC
   al posto di the_content() dentro page.php: il contenitore è già .entry-content.
   -------------------------------------------------------------------------- */

.evento-single {
  padding-block: 8px 24px;
}

.evento-single__titolo {
  margin: 0 0 24px;
  font-size: clamp(28px, 4.5vw, var(--ph-h1));
  letter-spacing: -0.01em;
}

.evento-single__back {
  margin: 0 0 16px;
}

.evento-single__back a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ph-font-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: transform var(--ph-transition);
}

.evento-single__back a::before {
  content: "«";
  font-size: 16px;
}

.evento-single__back a:hover {
  transform: translateX(-3px);
}

.evento-single__schedule {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 0 28px;
  padding: 20px 26px;
  background-image: linear-gradient(135deg, var(--ph-primary) 0%, var(--ph-ev-purple-dark) 100%);
  border-radius: var(--ph-radius-lg);
  box-shadow: 0 10px 24px rgba(105, 42, 152, 0.22);
  font-family: var(--ph-font-heading);
  font-size: 16px;
  font-weight: 600;
  color: var(--ph-white);
}

.evento-single__schedule a {
  color: var(--ph-white);
  text-decoration: underline;
}

.evento-single__schedule-icona {
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
}

.evento-single__costo {
  margin-left: auto;
  padding: 4px 12px;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  font-size: 14px;
}

.evento-single__media {
  margin: 0 0 28px;
}

.evento-single__media img {
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  border-radius: var(--ph-radius-lg);
  box-shadow: 0 12px 32px rgba(105, 42, 152, 0.13);
}

.evento-single__content {
  padding-block: 0 8px;
}

/* Scheda dati -------------------------------------------------------------- */

.evento-meta {
  margin: 40px 0;
  padding: 32px;
  background-image: linear-gradient(135deg, rgba(105, 42, 152, 0.04) 0%, rgba(105, 42, 152, 0.07) 100%);
  border: 1px solid var(--ph-ev-line);
  border-radius: var(--ph-radius-lg);
}

.evento-meta__titolo {
  margin: 0 0 24px;
  font-size: var(--ph-h5);
}

.evento-meta__lista {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  margin: 0;
}

.evento-meta__voce {
  min-width: 0;
}

.evento-meta__etichetta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ph-primary);
  font-family: var(--ph-font-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ph-primary);
}

.evento-meta__icona {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
}

.evento-meta__valore {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  font-size: 15px;
  color: var(--ph-text);
}

.evento-meta__orario,
.evento-meta__indirizzo,
.evento-meta__nota {
  font-size: 13.5px;
  color: var(--ph-text-muted);
}

/* Iscrizione --------------------------------------------------------------- */

.evento-iscrizione {
  margin: 40px 0 0;
  padding: 32px;
  background: var(--ph-surface);
  border-radius: var(--ph-radius-lg);
}

.evento-iscrizione__titolo {
  margin: 0 0 10px;
  font-size: var(--ph-h5);
}

.evento-iscrizione__testo {
  max-width: 46em;
  margin: 0 0 20px;
  font-size: 15px;
}

.evento-iscrizione__azioni {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.evento-iscrizione__whatsapp .icon {
  width: 18px;
  height: 18px;
}

/* Navigazione fra eventi --------------------------------------------------- */

.evento-single__nav {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--ph-border);
}

.evento-single__nav-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: space-between;
  margin: 0;
  padding: 0;
  list-style: none;
}

.evento-single__nav-voce {
  flex: 1 1 240px;
  font-size: 15px;
}

.evento-single__nav-voce--next {
  text-align: right;
}

.evento-single__nav-etichetta {
  display: block;
  font-family: var(--ph-font-heading);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ph-accent-ink);
}

/* --------------------------------------------------------------------------
   Blocco "Chi conduce"

   Le stesse regole esistono in formatore.css, che in contesto eventi non viene
   caricato: qui servono perché il blocco è iniettato nella pagina dell'evento.
   -------------------------------------------------------------------------- */

.event-formatori {
  margin: 40px 0;
  padding: 28px;
  background: var(--ph-surface);
  border-radius: var(--ph-radius-lg);
}

.event-formatori__title {
  margin: 0 0 20px;
  font-size: var(--ph-h5);
}

.event-formatori__list {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.event-formatori__link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px;
  background: var(--ph-white);
  border-radius: var(--ph-radius);
  transition: transform var(--ph-transition), box-shadow var(--ph-transition);
}

.event-formatori__link:hover,
.event-formatori__link:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--ph-shadow-card);
}

.event-formatori__avatar {
  flex: 0 0 auto;
}

.event-formatori__img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
}

.event-formatori__testo {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.event-formatori__nome {
  font-family: var(--ph-font-heading);
  font-weight: 600;
  color: var(--ph-primary);
}

.event-formatori__ruolo {
  font-size: 13px;
  color: var(--ph-text-muted);
}

/* --------------------------------------------------------------------------
   Viste native di The Events Calendar (lista, mese)

   Solo l'indispensabile: contenitore allineato al tema, riga della lista con la
   stessa veste della riga del calendario redazionale, tipografia del brand.
   -------------------------------------------------------------------------- */

#tribe-events-pg-template,
.tribe-events-view {
  max-width: var(--ph-container);
  margin-inline: auto;
  padding: 24px var(--ph-gutter) 64px;
}

#tribe-events-pg-template .tribe-events-view {
  max-width: 100%;
  padding: 0;
}

/* Su /eventi/ la vista è già dentro il `.container` del tema, che dà larghezza
   massima e margini laterali. Restano i 24px di rientro che il blocco TEC aveva
   sull'originale (`padding: 24px var(--ph-pad-x)`, con --ph-pad-x: 24px): sono
   quelli che tengono le schede leggermente più strette del titolo di pagina. */
.page--eventi .tribe-events-view {
  max-width: 100%;
  padding-inline: 24px;
  padding-top: 8px;
  padding-bottom: 32px;
}

body .tribe-events.tribe-events-view .tribe-common-l-container,
body .tribe-events.tribe-events-view .tribe-events-l-container {
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.tribe-common h1,
.tribe-common h2,
.tribe-common h3,
.tribe-common h4 {
  font-family: var(--ph-font-heading);
}

/* --------------------------------------------------------------------------
   Vista lista — la pagina /eventi/

   Il markup è quello del plugin, reso da templates/page-eventi.php: qui c'è il
   vestito che sull'originale stava nel Custom CSS del kit Elementor. I fogli di
   TEC vengono accodati a mano dal template, quindi arrivano DOPO questo file:
   ogni regola che deve vincere porta il prefisso `body`, che basta a superare la
   specificità di una singola classe senza ricorrere a !important.

   Misure prese dallo screenshot dell'originale a 1440px: scheda bianca con
   raggio grande e nessuna barretta laterale, badge della data 100x64 in alto a
   sinistra, data sopra il titolo in maiuscoletto viola, titolo viola 22px,
   luogo con il nome in grassetto, descrizione intera sotto.
   -------------------------------------------------------------------------- */

body .tribe-events-calendar-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin: 0;
  padding: 0;
}

/* I separatori di mese restano quelli del plugin: sull'originale sono la stessa
   riga grigia con il filo orizzontale, e ricolorarli li allontanerebbe. Serve
   solo il respiro sopra, che il gap della lista da solo non dà. */
body .tribe-events-calendar-list__month-separator {
  margin: 20px 0 0;
}

body .tribe-events-calendar-list__month-separator:first-child {
  margin-top: 0;
}

/* Scheda evento ------------------------------------------------------------ */

/* Il plugin dà alla riga margini laterali negativi (`--tec-grid-gutter-half-negative`)
   e padding alle colonne, con selettori a tre e quattro classi: la scheda uscirebbe
   più larga della lista e con il testo rientrato. Le due regole qui sotto contano una
   classe in più delle sue. */
body .tribe-events.tribe-events-view .tribe-events-calendar-list__event-row {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
  flex-wrap: nowrap;
  margin: 0;
  padding: 26px 30px;
  background: var(--ph-white);
  border: 1px solid var(--ph-ev-line);
  border-radius: var(--ph-radius-lg);
  box-shadow: var(--ph-ev-shadow);
  transition: box-shadow var(--ph-transition);
}

body .tribe-events.tribe-events-view .tribe-events-calendar-list__event-row:hover,
body .tribe-events.tribe-events-view .tribe-events-calendar-list__event-row:focus-within {
  box-shadow: var(--ph-ev-shadow-hover);
}

body .tribe-events.tribe-events-view .tribe-events-calendar-list__event-row > .tribe-common-g-col {
  padding-left: 0;
  padding-right: 0;
}

/* Badge della data --------------------------------------------------------- */

body .tribe-events-calendar-list__event-date-tag {
  width: 110px;
  max-width: 110px;
  flex: none;
  padding: 0;
  text-align: center;
}

body .tribe-events-calendar-list__event-date-tag-datetime {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100px;
  padding: 11px 8px;
  background-image: linear-gradient(135deg, var(--ph-primary) 0%, var(--ph-ev-purple-dark) 100%);
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(105, 42, 152, 0.25);
  color: var(--ph-white);
}

/* La tipografia del plugin è dichiarata su `.tribe-common .tribe-common-h5`, due
   classi: per vincere serve una classe in più, non !important. Da qui in avanti
   le regole di colore e di carattere portano `body .tribe-common`. */
body .tribe-common .tribe-events-calendar-list__event-date-tag-weekday {
  margin: 0;
  font-family: var(--ph-font-heading);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--ph-white);
}

body .tribe-common .tribe-events-calendar-list__event-date-tag-daynum,
body .tribe-common .tribe-events-calendar-list__event-date-tag-daynum a {
  margin: 2px 0 0;
  font-family: var(--ph-font-heading);
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  color: var(--ph-white);
}

/* Corpo della scheda: si annulla la griglia interna del plugin, che teneva il
   testo a cinque ottavi di larghezza per fare posto a un'immagine che sull'originale
   non c'è. Anche qui i selettori del plugin hanno tre classi. */
body .tribe-events.tribe-events-view .tribe-events-calendar-list__event-wrapper,
body .tribe-events.tribe-events-view .tribe-events-calendar-list__event,
body .tribe-events.tribe-events-view .tribe-events-calendar-list__event-details {
  display: block;
  width: 100%;
  max-width: 100%;
  flex: none;
  margin: 0;
  padding: 0;
}

/* Data sopra il titolo: nel markup del plugin viene dopo, come sull'originale,
   dove l'inversione la faceva il CSS. */
body .tribe-events-calendar-list__event-header {
  display: flex;
  flex-direction: column;
}

body .tribe-events-calendar-list__event-datetime-wrapper {
  order: -1;
  margin: 0;
}

body .tribe-common .tribe-events-calendar-list__event-datetime {
  font-family: var(--ph-font-heading);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--ph-primary);
}

body .tribe-common .tribe-events-calendar-list__event-title {
  margin: 3px 0 12px;
  font-family: var(--ph-font-heading);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
}

body .tribe-common .tribe-events-calendar-list__event-title-link {
  border-bottom: 0;
  color: var(--ph-primary);
  text-decoration: none;
}

body .tribe-common .tribe-events-calendar-list__event-title-link:hover,
body .tribe-common .tribe-events-calendar-list__event-title-link:focus-visible {
  color: var(--ph-ev-purple-dark);
}

body .tribe-common .tribe-events-calendar-list__event-venue {
  margin: 0;
  font-family: var(--ph-font-body);
  font-size: 14.5px;
  font-style: normal;
  line-height: 1.6;
  color: var(--ph-text);
}

body .tribe-common .tribe-events-calendar-list__event-venue-title,
body .tribe-common .tribe-events-calendar-list__event-venue-address {
  color: var(--ph-text);
}

body .tribe-common .tribe-events-calendar-list__event-venue-title {
  font-weight: 700;
}

body .tribe-events-calendar-list__event-description {
  margin-top: 14px;
}

body .tribe-common .tribe-events-calendar-list__event-description p {
  margin: 0;
  font-family: var(--ph-font-body);
  font-size: 14.5px;
  line-height: 1.7;
  color: #444444;
}

/* --------------------------------------------------------------------------
   Barra delle viste e barra superiore

   Sull'originale la barra ha soltanto il selettore delle viste, allineato a
   destra: la ricerca per parola chiave non c'è (il widget del plugin la
   spegneva). Sotto, la riga con le frecce, il pulsante «Oggi» e l'intervallo di
   date in viola grande.
   -------------------------------------------------------------------------- */

/* Il plugin dichiara la ricerca con tre classi
   (`.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-search`): per
   spegnerla servono quattro selezioni, e `body` più le due classi del contenitore
   della vista bastano. */
body .tribe-events.tribe-events-view .tribe-events-c-events-bar__search-button,
body .tribe-events.tribe-events-view .tribe-events-c-events-bar__search-container,
body .tribe-events.tribe-events-view .tribe-events-c-search {
  display: none;
}

/* Sull'originale il selettore delle viste sta sulla stessa riga delle frecce, di
   «Oggi» e dell'intervallo di date, all'estremo destro. Nel markup del plugin viene
   prima, in una riga sua: lo si riporta in quota sovrapponendolo alla barra
   superiore, che è esattamente dove l'originale lo mostra. */
body .tribe-events.tribe-events-view .tribe-events-header {
  position: relative;
}

body .tribe-events.tribe-events-view .tribe-events-header__events-bar {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  width: auto;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

body .tribe-events.tribe-events-view .tribe-events-c-events-bar__views {
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
}

body .tribe-events-c-top-bar {
  margin: 0 0 8px;
  padding: 0;
}

body .tribe-common .tribe-events-c-top-bar__datepicker-button {
  font-family: var(--ph-font-heading);
  font-size: 22px;
  font-weight: 600;
  color: var(--ph-primary);
}

body .tribe-common .tribe-events-c-top-bar__today-button {
  padding: 6px 15px;
  border: 1px solid var(--ph-border);
  border-radius: 8px;
  background: var(--ph-white);
  font-family: var(--ph-font-heading);
  font-size: 12px;
  font-weight: 500;
  color: var(--ph-primary);
}

body .tribe-common .tribe-events-c-top-bar__today-button:hover,
body .tribe-common .tribe-events-c-top-bar__today-button:focus-visible {
  border-color: var(--ph-primary);
  background: var(--ph-primary);
  color: var(--ph-white);
}

body .tribe-events-c-top-bar__nav-link svg path,
body .tribe-events-c-nav__prev-icon-svg path,
body .tribe-events-c-nav__next-icon-svg path {
  fill: var(--ph-primary);
}

/* --------------------------------------------------------------------------
   Navigazione in coda alla lista e menu «Iscriviti al calendario»
   -------------------------------------------------------------------------- */

body .tribe-events-c-nav {
  margin: 32px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--ph-border);
}

body .tribe-events-c-nav__list {
  align-items: center;
}

body .tribe-common .tribe-events-c-nav__prev,
body .tribe-common .tribe-events-c-nav__next {
  font-family: var(--ph-font-body);
  font-size: 15px;
  color: var(--ph-text);
}

body .tribe-common .tribe-events-c-nav__prev:hover,
body .tribe-common .tribe-events-c-nav__next:hover {
  color: var(--ph-primary);
}

body .tribe-events-c-subscribe-dropdown__container {
  margin: 20px 0 0;
}

body .tribe-common .tribe-events-c-subscribe-dropdown__button {
  padding: 10px 18px;
  border: 1px solid var(--ph-primary);
  border-radius: 8px;
  background: var(--ph-white);
  box-shadow: var(--ph-ev-shadow);
}

body .tribe-common .tribe-events-c-subscribe-dropdown__button-text {
  font-family: var(--ph-font-heading);
  font-size: 13px;
  font-weight: 600;
  color: var(--ph-primary);
}

body .tribe-events-c-subscribe-dropdown__button-icon path {
  fill: var(--ph-primary);
}

/* Vista mese */

.tribe-events-calendar-month__day-cell,
.tribe-events-calendar-month__header-column {
  border-color: var(--ph-border);
}

.tribe-events-calendar-month__header-column-title {
  font-family: var(--ph-font-heading);
  color: var(--ph-primary);
}

.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date {
  color: var(--ph-primary);
}

.tribe-events-calendar-month__calendar-event-title-link,
.tribe-events-calendar-month__multiday-event-bar-title {
  font-family: var(--ph-font-heading);
  color: var(--ph-primary);
}

.tribe-events-calendar-month__multiday-event-bar-inner {
  background-color: var(--ph-primary-pale);
}

.tribe-events-calendar-month__day-cell--selected {
  background-color: var(--ph-primary);
}

/* Pulsanti e selettore vista del plugin */

.tribe-events .tribe-common-c-btn,
.tribe-events button.tribe-events-c-view-selector__button {
  font-family: var(--ph-font-heading);
  color: var(--ph-primary);
}

.tribe-events-c-view-selector__list-item-link:hover,
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link {
  color: var(--ph-primary);
}

.tribe-events-c-subscribe-dropdown__button {
  font-family: var(--ph-font-heading);
}

/* --------------------------------------------------------------------------
   Adattamenti
   -------------------------------------------------------------------------- */

@media (max-width: 991px) {
  :root {
    --ph-ev-badge: 78px;
  }

  .evento-riga {
    gap: 18px;
    padding: 20px 22px;
    border-radius: 14px;
  }

  .evento-riga__badge-numero {
    font-size: 27px;
  }

  .evento-meta,
  .evento-iscrizione {
    padding: 24px;
  }

  .evento-single__nav-voce--next {
    text-align: left;
  }
}

@media (max-width: 600px) {
  .evento-riga {
    grid-template-columns: 1fr;
  }

  .evento-riga__badge {
    flex-direction: row;
    gap: 8px;
    justify-content: flex-start;
    padding: 8px 14px;
    width: fit-content;
  }

  .evento-riga__badge-numero {
    font-size: 20px;
  }

  .evento-riga__cta {
    margin-left: 0;
    width: 100%;
  }

  .eventi-filtri {
    gap: 20px;
  }

  .evento-single__schedule {
    padding: 16px 18px;
    font-size: 15px;
  }

  .evento-single__costo {
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .evento-riga,
  .event-formatori__link,
  .evento-single__back a {
    transition: none;
  }

  .evento-riga:hover,
  .evento-riga:focus-within,
  .event-formatori__link:hover,
  .event-formatori__link:focus-visible,
  .evento-single__back a:hover {
    transform: none;
  }
}
