/* Post List — stili di base.
   Le classi degli snippet originali sono conservate perche' il CSS
   gia' presente nel tema continui ad applicarsi. */

.cdb-post-list { margin: 0 0 2em; }
.cdb-post-list__heading { margin: 0 0 .8em; }
.cdb-post-list__empty { font-style: italic; opacity: .8; }

/* --- elenco essenziale ---
   Divi e alcuni stili di tema rendono gli <li> inline o affiancati:
   qui li riportiamo esplicitamente uno sotto l'altro. */
.cdb-post-list--compact .title_list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: block;
	columns: initial;
}
.cdb-post-list--compact .title_list > li {
	display: block;
	width: 100%;
	float: none;
	clear: both;
	margin: 0 0 var(--cdb-pl-gap, 16px);
	padding: 0;
}
.cdb-post-list--compact .title_list > li:last-child { margin-bottom: 0; }
.cdb-post-list--compact .post-item {
	display: flex;
	align-items: center;
	gap: var(--cdb-pl-gap, 12px);
	height: auto;
	min-height: 0;
}
.cdb-post-list--compact .post-item img { flex: 0 0 auto; }
.cdb-post-list--compact .cdb-post-list__body { flex: 1 1 auto; min-width: 0; }
.cdb-post-list--compact .cdb-post-list__title { display: block; }
.cdb-post-list--compact .cdb-post-list__meta { margin: 4px 0 0; }
.cdb-post-list--compact .cdb-post-list__excerpt { margin: 6px 0 0; }

/* --- righe con immagine a lato --- */
.custom-post-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: block;
	columns: initial;
}
.custom-post-list > li { display: block; width: 100%; float: none; clear: both; }
.custom-post-list li {
	margin-bottom: 20px;
	padding: 10px;
	border-bottom: 1px solid #ccc;
	overflow: hidden;
}
.custom-post-list li:last-child { border-bottom: none; }
.custom-post-list img {
	float: left;
	width: 200px;
	height: auto;
	margin-right: 15px;
}
.custom-post-list .content { overflow: hidden; }
.cdb-post-list--list .cdb-post-list__title { margin: 0 0 10px; font-size: 18px; }
.cdb-post-list--list .cdb-post-list__meta { display: block; margin-bottom: 10px; color: #666; }

/* --- riquadri --- */
.cdb-post-list--card .cdb-post-list__items { display: grid; gap: 20px; }
.cdb-post-list--card .post-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	background-color: #fff;
	box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
	margin-bottom: 20px;
}
.cdb-post-list--card .post-image { width: 100%; height: auto; }
.cdb-post-list--card .post-item-content { width: 100%; padding: 20px; text-align: left; }
.cdb-post-list--card .cdb-post-list__title { font-size: 24px; color: #333; }

/* --- contenuto in evidenza --- */
.cdb-post-list--hero .cdb-post-list__hero-image { width: 100%; height: auto; display: block; }
.cdb-post-list--hero .post-item-content { padding: 20px 0; }

/* --- colonne --- */
.cdb-post-list--cols-2 .cdb-post-list__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cdb-post-list--cols-3 .cdb-post-list__items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cdb-post-list--cols-4 .cdb-post-list__items { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cdb-post-list--cols-5 .cdb-post-list__items { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.cdb-post-list--cols-6 .cdb-post-list__items { grid-template-columns: repeat(6, minmax(0, 1fr)); }

/* --- scorrimento --- */
.cdb-post-list__slider { position: relative; overflow: hidden; }
.cdb-post-list__slide {
	display: none;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	background-color: #000;
	min-height: 400px;
	padding: 10%;
}
.cdb-post-list__slide.is-active { display: block; }
.cdb-post-list__slide-link { color: inherit; text-decoration: none; display: block; }
.cdb-post-list__slider .prev,
.cdb-post-list__slider .next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(0, 0, 0, .5);
	color: #fff;
	border: 0;
	cursor: pointer;
	font-size: 24px;
	line-height: 1;
	padding: 8px 14px;
}
.cdb-post-list__slider .prev { left: 10px; }
.cdb-post-list__slider .next { right: 10px; }

/* --- paginazione --- */
.cdb-post-list__pagination { margin-top: 1.5em; text-align: center; }
.cdb-post-list__pages {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
}
.cdb-post-list__pages a,
.cdb-post-list__pages span {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid #ddd;
	border-radius: 4px;
	text-decoration: none;
}
.cdb-post-list__pages .current {
	background: #333;
	color: #fff;
	border-color: #333;
}
.cdb-post-list__pagination-info { margin-top: .6em; font-size: .9em; color: #666; }

/* --- tag --- */
.post-tags { list-style: none; padding: 0; }
.post-tags li { display: inline; margin-right: 8px; }
.post-tags li a {
	background: #f0f0f0;
	color: #333;
	padding: 5px 10px;
	text-decoration: none;
	border-radius: 5px;
}

@media (max-width: 768px) {
	.custom-post-list img { float: none; width: 100%; margin: 0 0 10px; }
	.custom-post-list .content { width: 100%; }
	.cdb-post-list--card .post-item-content { padding: 10px; }
	.cdb-post-list__items { grid-template-columns: 1fr !important; }
}

/* --- forma e misura dell'immagine ---
   La misura arriva dalla variabile --cdb-pl-thumb impostata sul
   contenitore; senza di essa vale la dimensione nativa del file. */
.cdb-post-list img[class*="wp-post-image"],
.cdb-post-list .post-image,
.cdb-post-list__hero-image {
	width: var(--cdb-pl-thumb, auto);
	height: auto;
}

.cdb-post-list--thumb-rounded img[class*="wp-post-image"],
.cdb-post-list--thumb-rounded .post-image {
	border-radius: 8px;
}

.cdb-post-list--thumb-circle img[class*="wp-post-image"],
.cdb-post-list--thumb-circle .post-image {
	border-radius: 50%;
	aspect-ratio: var(--cdb-pl-thumb-ratio, 1);
	object-fit: cover;
}

/* Proporzione forzata anche senza forma circolare. */
.cdb-post-list img[class*="wp-post-image"],
.cdb-post-list .post-image {
	aspect-ratio: var(--cdb-pl-thumb-ratio, auto);
	object-fit: cover;
}

/* Spaziatura fra gli elementi, regolabile dal modulo. */
.cdb-post-list__items { row-gap: var(--cdb-pl-gap, 20px); }
.cdb-post-list__series { font-weight: 600; }

/* Occhiello sopra il titolo. */
.cdb-post-list__eyebrow {
	display: block;
	margin-bottom: .3em;
	font-size: .7em;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .75;
}
.cdb-post-list__post-title-wrap .cdb-post-list__post-title { margin-top: 0; }

/* Intestazione autonoma del modulo che unisce titolo ed elenco. */
.cdb-post-list__standalone-heading { margin: 0 0 .6em; }
