/* Trovabando — single post
   Variabili in cima: allineale alla palette del tema. */

.tb-single {
	--tb-accent: #00a651;        /* verde CTA Trovabando */
	--tb-heading: #14697e;       /* teal titoli */
	--tb-text: #2b2f33;
	--tb-muted: #6b7480;
	--tb-border: #e3e8ec;
	--tb-bg-soft: #f4f8fa;
	--tb-radius: 12px;
	--tb-max: 1180px;

	color: var(--tb-text);
}

.tb-single__inner,
.tb-single__metabar,
.tb-single__layout,
.tb-author,
.tb-related {
	max-width: var(--tb-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
}

/* --- Hero --- */
.tb-single__hero {
	background: var(--tb-bg-soft);
	padding: 48px 0 40px;
	text-align: center;
}
.tb-single__cats,
.tb-single__tags {
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--tb-muted);
}
.tb-single__cats a,
.tb-single__tags a {
	color: var(--tb-heading);
	text-decoration: none;
}
.tb-single__title {
	color: var(--tb-heading);
	font-size: clamp(1.7rem, 3.6vw, 2.5rem);
	line-height: 1.2;
	margin: 12px auto;
	max-width: 22ch;
}

.tb-single__thumb {
	max-width: var(--tb-max);
	margin: -24px auto 0;
	padding: 0 20px;
}
.tb-single__thumb img {
	width: 100%;
	height: auto;
	border-radius: var(--tb-radius);
	display: block;
}

/* --- Meta bar --- */
.tb-single__metabar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	align-items: center;
	justify-content: space-between;
	padding-top: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--tb-border);
	margin-bottom: 32px;
}
.tb-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.9rem;
	color: var(--tb-muted);
}
.tb-single__meta a {
	color: var(--tb-heading);
	text-decoration: none;
	font-weight: 600;
}
.tb-single__share {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.85rem;
	color: var(--tb-muted);
}
.tb-share__link {
	color: var(--tb-heading);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.85rem;
}
.tb-share__link:hover { color: var(--tb-accent); }

/* --- Layout a due colonne --- */
.tb-single__layout {
	display: grid;
	grid-template-columns: 320px minmax(0, 1fr);
	gap: 48px;
	align-items: start;
	padding-bottom: 56px;
}
.tb-single__sidebar {
	position: sticky;
	top: 96px; /* regola in base all'altezza dell'header fisso */
	display: grid;
	gap: 20px;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
}

/* --- Scheda bando --- */
.tb-bando-box {
	background: var(--tb-bg-soft);
	border: 1px solid var(--tb-border);
	border-radius: var(--tb-radius);
	padding: 20px;
}
.tb-bando-box__title {
	font-size: 1rem;
	color: var(--tb-heading);
	margin: 0 0 12px;
}
.tb-bando-box dl {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 14px;
	font-size: 0.88rem;
}
.tb-bando-box dt { color: var(--tb-muted); font-weight: 600; }
.tb-bando-box dd { margin: 0; }
.tb-bando-box__decreto {
	display: inline-block;
	margin-top: 14px;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--tb-accent);
	text-decoration: none;
}
.tb-badge {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 700;
}
.tb-badge.is-open     { background: #dff5e8; color: #077a3d; }
.tb-badge.is-upcoming { background: #fff4d6; color: #8a6400; }
.tb-badge.is-closed   { background: #fde3e3; color: #a12525; }

/* --- Indice (TOC) --- */
.tb-toc {
	background: #fff;
	border: 1px solid var(--tb-border);
	border-radius: var(--tb-radius);
	padding: 16px 20px;
}
.tb-toc summary {
	font-weight: 700;
	color: var(--tb-heading);
	cursor: pointer;
	list-style: none;
}
.tb-toc summary::-webkit-details-marker { display: none; }
.tb-toc summary::after {
	content: "▾";
	float: right;
	transition: transform 0.2s;
}
.tb-toc[open] summary::after { transform: rotate(180deg); }
.tb-toc__nav ul {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.tb-toc__item--h3 { padding-left: 16px; }
.tb-toc__item a {
	color: var(--tb-text);
	text-decoration: none;
	font-size: 0.9rem;
	line-height: 1.4;
	display: block;
	border-left: 2px solid transparent;
	padding-left: 10px;
	margin-left: -12px;
}
.tb-toc__item a:hover { color: var(--tb-accent); }
.tb-toc__item a.is-active {
	color: var(--tb-heading);
	font-weight: 700;
	border-left-color: var(--tb-accent);
}

/* --- Contenuto --- */
.tb-single__content h2 {
	color: var(--tb-heading);
	scroll-margin-top: 110px;
}
.tb-single__content h3 { scroll-margin-top: 110px; }

.tb-single__cta {
	margin-top: 48px;
	padding: 28px;
	background: var(--tb-bg-soft);
	border-radius: var(--tb-radius);
	text-align: center;
}
.tb-btn {
	display: inline-block;
	margin-top: 8px;
	background: var(--tb-accent);
	color: #fff;
	font-weight: 700;
	padding: 12px 32px;
	border-radius: 999px;
	text-decoration: none;
}
.tb-btn:hover { filter: brightness(1.08); color: #fff; }

/* --- Autore --- */
.tb-author {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	background: var(--tb-bg-soft);
	border-radius: var(--tb-radius);
	padding: 28px;
	margin-bottom: 56px;
}
.tb-author__avatar { border-radius: 50%; flex-shrink: 0; }
.tb-author__name {
	font-size: 1.15rem;
	color: var(--tb-heading);
	margin: 0 0 8px;
}
.tb-author__bio p { font-size: 0.95rem; margin: 0 0 10px; }

/* --- Correlati --- */
.tb-related { padding-bottom: 64px; }
.tb-related__title { color: var(--tb-heading); margin-bottom: 24px; }
.tb-related__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.tb-card__thumb img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: var(--tb-radius);
	display: block;
}
.tb-card__cats {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--tb-muted);
	margin: 12px 0 4px;
}
.tb-card__title {
	font-size: 1rem;
	line-height: 1.35;
	margin: 0 0 6px;
}
.tb-card__title a { color: var(--tb-text); text-decoration: none; }
.tb-card__title a:hover { color: var(--tb-heading); }
.tb-card__meta { font-size: 0.8rem; color: var(--tb-muted); margin: 0; }

/* --- Responsive --- */
@media (max-width: 991px) {
	.tb-single__layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.tb-single__sidebar {
		position: static;
		max-height: none;
		overflow: visible;
	}
	.tb-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.tb-related__grid { grid-template-columns: 1fr; }
	.tb-author { flex-direction: column; }
}
