/* === Stile per Elenco semplice === */
/* === Box corso === */

.coursebox:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

/* === Intestazione === */
.coursebox .coursename {
  margin: 0 0 10px;
  font-size: 1.0em!important;
  font-weight: 400!important;
  line-height: 2.0!important;
}

.coursebox .coursename a {
  color: #005fa3!important;
  text-decoration: none;
}

.coursebox .coursename a:hover {
  text-decoration: underline;
}

/* === Contenuto: Flex immagine + testo === */
.coursebox .content .d-flex {
  display: flex;
  flex-wrap: nowrap;
  gap: 20px;
}

.coursebox .courseimage img {
  width: 380px!important;
  max-width: 420px!important;
  height: auto!important;
  max-height: 100px;
  border-radius: 4px;
  object-fit: cover;
}

/* === Descrizione sommario === */
.coursebox .coursesummary {
  font-size: 0.95em;
  color: #555;
  line-height: 1.5;
}

.coursebox .teachers {
  list-style: none;
  padding: 0;
  margin: 10px 0 0 0;
}

.coursebox .teachers li {
  font-size: 0.9em;
}

.coursebox .teachers a {
  color: #333;
  text-decoration: none;
}

.coursebox .teachers a:hover {
  text-decoration: underline;
}


/* === Stile per Elenco con Sommari === */
/* === Sommario: Elenco corsi con descrizione === */
.course-list-summary {
  display: flex;
  flex-direction: column;
  gap: 2em; /* Spazio extra tra i blocchi corso */
}

.course-list-summary h4 {
  margin: 0;
  font-size: 1.3em;
}

.course-list-summary h4 a {
  color: #005fa3;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.course-list-summary h4 a:hover {
  text-decoration: underline;
  color: #003f73;
}

.course-list-summary .course-summary {
  padding-left: 1.2em;
  border-left: 3px solid #eee;
  margin-top: 0.4em;
  font-size: 0.95em;
  color: #555;
  line-height: 1.6;
}

.course-list-summary .course-summary p {
  margin: 0.3em 0;
}

.course-list-summary .course-summary span {
  color: #333;
}


/* === Stile per Griglia === */
.catalogfilter .course-col {
    display: flex;
    flex-direction: column;
}

.catalogfilter .coursebox.card.h-100 {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.catalogfilter .coursebox .card-body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.catalogfilter .coursebox .card-text {
    flex-grow: 1;
}





.coursebox.card {
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: box-shadow 0.2s ease;
}

.coursebox.card .courseimage img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  border-top-left-radius: 0.375rem;
  border-top-right-radius: 0.375rem;
}

.coursebox.card .card-body {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.coursebox.card .card-title {
  font-size: 1.1rem;
  font-weight: 600;
}

.coursebox.card .card-text {
  font-size: 0.95rem;
  color: #555;
  margin-top: 0.5rem;
}

.coursebox.card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.catalogfilter .row {
  margin-bottom: 0 !important;
}



.catalogfilter.catalogfilter-grid .coursebox.card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.catalogfilter.catalogfilter-grid .card-body {
    flex-grow: 1;
}




/* Contenitore griglia */
/*
.catalogfilter.catalogfilter-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: space-between; 
}
*/

/* Ogni box corso nella griglia */
.catalogfilter.catalogfilter-grid .coursebox {
  flex: 0 0 calc(33.333% - 14px); /* 3 colonne con gap */
  box-sizing: border-box;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 10px;
  background-color: #fff;
  transition: box-shadow 0.2s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Hover su card */
.catalogfilter.catalogfilter-grid .coursebox:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

/* Immagine del corso */
.catalogfilter.catalogfilter-grid .courseimage {
  width: 100%;
  max-height: 160px!important;
  overflow: hidden;
  border-radius: 4px;
  margin-bottom: 10px;
}

.catalogfilter.catalogfilter-grid .courseimage img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* mantiene proporzioni e copre */
  display: block;
}

/* Titolo corso */
.catalogfilter.catalogfilter-grid h5.card-title {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 10px;
  color: #005fa3;
}

.catalogfilter.catalogfilter-grid h5.card-title a {
  text-decoration: none;
  color: inherit;
}

.catalogfilter.catalogfilter-grid h5.card-title a:hover {
  text-decoration: underline;
}

/* Sommario */
.catalogfilter.catalogfilter-grid .card-text {
  font-size: 0.95em;
  color: #555;
  line-height: 1.4;
  flex-grow: 1;
  margin-top: 0;
  margin-bottom: 0;
}

/* Tag */
.catalogfilter.catalogfilter-grid .course-tags {
  margin-top: 10px;
  text-align: right;
}

.catalogfilter.catalogfilter-grid .course-tags .badge {
  font-size: 0.75em;
  background-color: #0d6efd;
  color: #fff;
  padding: 0.3em 0.6em;
  border-radius: 0.35rem;
  margin-left: 4px;
}

/* Responsive: 2 colonne su tablet */
@media screen and (max-width: 992px) {
  .catalogfilter.catalogfilter-grid .coursebox {
    flex: 0 0 calc(50% - 10px);
  }
}

/* Responsive: 1 colonna su mobile */
@media screen and (max-width: 600px) {
  .catalogfilter.catalogfilter-grid .coursebox {
    flex: 0 0 100%;
  }
}






.catalogfilter-grid .coursebox {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.catalogfilter-grid .card-body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.catalogfilter-grid .card-title {
    flex-shrink: 0;
}

.catalogfilter-grid .card-text {
    flex-grow: 1;
}

.catalogfilter-grid .courseimage img {
    width: 100%;
    height: 180px; /* o altra altezza fissa */ 
    object-fit: cover;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
}









.catalog-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.catalog-grid .course-tile {
  flex: 0 0 30%;
  border: 1px solid #ddd;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.catalog-grid .course-tile:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transform: translateY(-3px);
}

.catalog-grid .tile-title a {
  font-weight: 600;
  color: #005fa3;
  text-decoration: none;
}

.catalog-grid .tile-title a:hover {
  text-decoration: underline;
}

.tagfilter-select {
    margin-bottom: 15px;
    width: 100%;
    max-width: 500px;
    padding: 8px;
    font-size: 1em;
}

.catalogfilter select {
    margin: 10px 5px;
    padding: 6px;
    max-width: 300px;
}

.catalogfilter .coursebox {
    margin-bottom: 15px;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 6px;
}
/*
.catalogfilter .filter-group {
    margin-bottom: 20px;
}

.catalogfilter .filter-group label {
    font-weight: 600;
    display: block;
    margin-bottom: 5px;
    color: #333;
}

.catalogfilter select {
    display: block;
    width: 100%;
    max-width: 400px;
    padding: 8px 12px;
    font-size: 1rem;
    border-radius: 4px;
    border: 1px solid #ccc;
    background: #fff;
    appearance: none;
}
*/

/* ========== Filter section (Bootstrap style) ========== */
.filter-bar {
  margin-bottom: 30px;
}

.catalogfilter .form-label {
  font-weight: 600;
  margin-bottom: 5px;
  display: block;
  color: #333;
}

.catalogfilter .form-select {
  padding: 0.5rem 0.75rem;
  border-radius: 0.375rem;
  border: 1px solid #ccc;
  width: 100%;
  font-size: 1rem;
  background-color: #fff;
  appearance: none;
}

.tagfilter-select[multiple] {
  height: auto;
  min-height: 90px;
}


/* Gruppo filtri — per allineare in alto e mettere i titoli in grassetto */
.catalogfilter .filter-bar .filter-group {
  /* garantisce che gruppi diversi stiano in alto, non centrati verticalmente o “flip” */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.catalogfilter .filter-bar label.form-label {
  font-weight: 700; /* grassetto */
  margin-bottom: 5px;
}

.catalogfilter .filter-bar .form-select,
.catalogfilter .filter-bar .tagfilter-select {
  /* allineamento orizzontale */
  margin-top: 0; /* se c’è spazio indesiderato sopra */
}

/* Nel caso in cui il filter-bar sia una row, assicurati che le colonne siano allineate in alto */
.filter-bar.row .col-md-6 {
  display: flex;
  flex-direction: column;
}

.filter-bar.row .col-md-6 > label {
  /* assicura che il label sia subito sopra la select */
  margin-bottom: 4px;
}




/* === Responsive Filter Bar === */

.catalogfilter .filter-group label {
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
  color: #333;
}

.catalogfilter select {
  display: block;
  width: 100%;
  padding: 8px 12px;
  font-size: 1rem;
  border-radius: 4px;
  border: 1px solid #ccc;
  background: #fff;
  appearance: none;
}

/* === Responsive grid for courses === */
/*
.catalogfilter.catalogfilter-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
*/
.catalogfilter.catalogfilter-grid .coursebox {
  flex: 1 1 calc(33.333% - 20px);
  box-sizing: border-box;
}

@media screen and (max-width: 992px) {
  .catalogfilter.catalogfilter-grid .coursebox {
    flex: 1 1 calc(50% - 20px);
  }
}

@media screen and (max-width: 600px) {
  .catalogfilter.catalogfilter-grid .coursebox {
    flex: 1 1 100%;
  }
}

/* === List mode responsive tweaks === */
.catalogfilter.catalogfilter-list .coursebox .d-flex {
  flex-direction: row;
  flex-wrap: wrap;
}

@media screen and (max-width: 768px) {
  .catalogfilter.catalogfilter-list .coursebox .d-flex {
    flex-direction: column;
  }

  .coursebox .courseimage img {
    width: 100%!important;
    max-width: 100%!important;
  }
}

.course-tags {
  z-index: 10;
  text-align: right;
}

.course-tags .badge {
  font-size: 0.75em;
  background-color: #0d6efd;
  color: #fff;
  padding: 0.4em 0.6em;
  border-radius: 0.35rem;
}

select option {
  padding-right: 1.5em;
}

.tag-badge.selected {
    background-color: #198754 !important; /* Bootstrap bg-success */
    color: #fff;
    cursor: pointer;
}

.tag-badges {
    max-height: 200px;
    overflow-y: auto;
    padding: 10px;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
}

.tag-badge {
    cursor: pointer;
    user-select: none;
    transition: background-color 0.3s ease;
}

.tag-badge:hover {
    opacity: 0.8;
}



/*
.coursebox {
  position: relative; 
}

.coursebox {
  display: flex;
  flex-direction: column;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 15px;
  margin-bottom: 25px; // Spaziatura maggiore tra i corsi
  background: #fff;
  transition: box-shadow 0.2s ease;
}
*/

.coursebox {
    margin-bottom: 20px;
    padding: 10px;
    border: 1px solid #eee;
    border-radius: 8px;
    background-color: #fff;
}

.coursebox img {
    max-width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 5px;
}

/*
.catalog-grid .tile-image img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}

.catalog-grid .tile-title {
  padding: 10px;
}
*/

.catalog-grid .tile-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.catalog-grid .tile-title {
    font-weight: bold;
    padding: 10px 0;
}

.catalogfilter-summary .course-summarybox {
    border-bottom: 1px solid #ddd;
    margin-bottom: 20px;
    padding-bottom: 10px;
}

.tag-badge.bg-secondary {
  background-color: #6c757d !important; /* Colore personalizzato, più scuro */
}

.course-tags-block {
    display: flex;
    flex-direction: column;
}

.category-line {
    width: 100%;
}

.tag-line {
    width: 100%;
}

.card-body {
    flex-grow: 1;
    justify-content: flex-start;
}
/*
.card-text {
    margin-top: 0;
    margin-bottom: 0;
}
*/

.text-justify {
  text-align: justify;
}



.catalogfilter .fa-paypal {
    color: #003087;
}
.catalogfilter .fa-credit-card {
    color: #0d6efd;
}



