/* =========================================
   WIDGETS DE ELEMENTOR: rejillas que se ajustan al número de tarjetas
   ========================================= */
/* Variables: --usb-cols-d la escribe PHP según las tarjetas; los breakpoints cambian --usb-cols. */
.usb-dyn.usb-dyn.usb-dyn{
  display:flex;flex-wrap:wrap;
  --usb-cols:var(--usb-cols-d,4);--usb-gap:30px;
  column-gap:var(--usb-gap);
}
.usb-dyn.usb-dyn.usb-dyn > *{
  /* Cada tarjeta ocupa 1/N del ancho y las de la última fila se estiran: sin huecos ni tarjetas sueltas */
  flex:1 1 calc((100% - (var(--usb-cols) - 1) * var(--usb-gap)) / var(--usb-cols));
  min-width:0;box-sizing:border-box;
}
.offer-grid.usb-dyn{--usb-gap:30px}
.stats .inner.usb-dyn{--usb-gap:40px;max-width:1000px}
.highlight-grid.usb-dyn{--usb-gap:20px}

@media (max-width:1024px){
  .offer-grid.usb-dyn.usb-dyn{--usb-cols:2;row-gap:50px}
}
@media (max-width:900px){
  .stats .inner.usb-dyn.usb-dyn{--usb-cols:2;--usb-gap:20px}
  .highlight-grid.usb-dyn.usb-dyn{--usb-cols:1}
}
@media (max-width:600px){
  .stats .inner.usb-dyn.usb-dyn{--usb-cols:1}
  .offer-grid.usb-dyn.usb-dyn{--usb-cols:2;--usb-gap:12px;row-gap:34px}
}

/* Elementos que pueden ser enlace o no según lo que se rellene en el widget */
a.event-card,a.news-item,a.partner-item,a.campus-btn,a.h-card{text-decoration:none;color:inherit}
.news-slide h3 a{color:inherit;text-decoration:none}
.news-slide h3 a:hover{text-decoration:underline}
