/* Il wrapper (.luoghi/.eventi), il container e i titoli di sezione riusano le
   classi del tema (.section-padding, .container, .row, .section-subtitle,
   .section-title) — qui sotto solo ciò che è specifico di questo componente. */

/* .eventi segue quasi sempre una sezione a sfondo bianco (griglia servizi,
   griglia luoghi): senza un cambio di sfondo i 120px+120px di padding delle
   due sezioni si sommano in un vuoto di 240px percepito come un buco nel
   layout. Un tocco di crema (già usato altrove nel sito) crea uno stacco
   visivo netto e permette di ridurre il padding-top senza perdere respiro. */
.eventi.section-padding {
	background-color: #faf8f5;
	padding-top: 70px;
}

.luoghi-head {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 30px;
}

.luoghi-intro {
	font-size: 15px;
	line-height: 1.8;
	color: #666;
	max-width: 640px;
	margin: 0 auto;
}

.luoghi-filter {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-bottom: 30px;
}

.luoghi-filter button {
	background: #f1eeeb;
	border: none;
	padding: 10px 20px;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 13px;
	color: #666;
	cursor: pointer;
	transition: background .2s, color .2s;
}

.luoghi-filter button:hover {
	background: #e6ded4;
}

.luoghi-filter button.active {
	background: #aa8453;
	color: #fff;
}

.luoghi-grid {
	display: flex;
	flex-direction: column;
}

.luogo {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 22px 10px;
	border-top: 1px solid #ececec;
	text-decoration: none;
	color: inherit;
	transition: background .2s;
}

.luoghi-grid > .luogo:last-child {
	border-bottom: 1px solid #ececec;
}

a.luogo:hover {
	background: #faf8f5;
}

.luogo .n {
	flex: 0 0 60px;
	font-family: "Barlow Condensed", sans-serif;
	color: #aa8453;
	font-size: 14px;
	letter-spacing: 1px;
}

.luogo .b {
	flex: 1 1 auto;
	min-width: 0;
}

.luogo .b strong {
	display: block;
	font-family: "Gilda Display", serif;
	font-size: 20px;
	font-weight: 400;
	color: #222;
	margin-bottom: 6px;
}

.luogo .b .tag {
	font-family: "Barlow Condensed", sans-serif;
	font-style: normal;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 12px;
	color: #aa8453;
	margin-left: 8px;
}

.luogo .b .desc {
	display: block;
	font-size: 14px;
	line-height: 1.7;
	color: #666;
	max-width: 640px;
}

.luogo .b .curiosita {
	display: block;
	font-size: 13px;
	line-height: 1.7;
	color: #8a6d3b;
	background: #fbf3e2;
	padding: 10px 14px;
	margin-top: 10px;
	max-width: 640px;
}

.luogo .d {
	flex: 0 0 auto;
	white-space: nowrap;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 13px;
	color: #222;
}

.luogo .badge {
	display: inline-block;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 11px;
	padding: 4px 10px;
	margin-bottom: 8px;
	color: #fff;
	background: #aa8453;
}

.luogo .badge.is-esperienza { background: #6b8e5a; }
.luogo .badge.is-offerta { background: #c0392b; }
.luogo .badge.is-storia { background: #4a4a68; }

/* --- Eventi: calendario settimanale --- */

.ibg-cal-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 24px;
}

.ibg-cal-tab {
	border: 1px solid #ddd;
	background: #fff;
	color: #666;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 13px;
	padding: 8px 18px;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}

.ibg-cal-tab:hover {
	border-color: #aa8453;
}

.ibg-cal-tab.is-active {
	background: #aa8453;
	border-color: #aa8453;
	color: #fff;
}

.ibg-cal-nav {
	display: flex;
	gap: 10px;
	margin-bottom: 20px;
}

.ibg-cal-nav select {
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 14px;
	color: #222;
	border: 1px solid #ddd;
	background: #fff;
	padding: 8px 12px;
}

.ibg-cal-week {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 30px;
}

.ibg-cal-week-nav {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border: 1px solid #ddd;
	background: #fff;
	color: #aa8453;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background .2s;
}

.ibg-cal-week-nav:hover {
	background: #faf8f5;
}

.ibg-cal-days {
	flex: 1 1 auto;
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 8px;
}

.ibg-cal-day {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 12px 4px;
	border: 1px solid #ececec;
	background: #fff;
	cursor: pointer;
	transition: background .2s, border-color .2s;
}

.ibg-cal-day:hover {
	border-color: #aa8453;
}

.ibg-cal-day.is-today {
	border-color: #aa8453;
}

.ibg-cal-day.is-selected {
	background: #aa8453;
	border-color: #aa8453;
}

.ibg-cal-day.is-selected .ibg-cal-day-name,
.ibg-cal-day.is-selected .ibg-cal-day-num {
	color: #fff;
}

.ibg-cal-day-name {
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 11px;
	color: #999;
}

.ibg-cal-day-num {
	font-family: "Gilda Display", serif;
	font-size: 20px;
	color: #222;
}

.ibg-cal-dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: #aa8453;
}

.ibg-cal-day.is-selected .ibg-cal-dot {
	background: #fff;
}

.ibg-cal-events-label {
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 2px;
	font-size: 14px;
	color: #aa8453;
	margin: 0 0 14px;
}

.ibg-cal-empty {
	font-size: 15px;
	color: #888;
}

.ibg-cal-event {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 14px;
	margin-bottom: 12px;
	background: #faf8f5;
	border-left: 3px solid #aa8453;
	transition: background .2s;
}

.ibg-cal-event:hover {
	background: #f2ece2;
}

.ibg-cal-event-thumb {
	flex: 0 0 100px;
	width: 100px;
	height: 70px;
	overflow: hidden;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ibg-cal-event-thumb img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

.ibg-cal-event-body {
	flex: 1 1 auto;
	min-width: 0;
}

.ibg-cal-event-type {
	display: inline-block;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 11px;
	color: #aa8453;
	margin-bottom: 4px;
}

.ibg-cal-event strong {
	display: block;
	font-family: "Gilda Display", serif;
	font-size: 18px;
	font-weight: 400;
	color: #222;
}

.ibg-cal-event-meta {
	display: block;
	font-size: 13px;
	color: #888;
	margin-top: 2px;
}

.ibg-cal-event-btn {
	flex: 0 0 auto;
	display: inline-block;
	padding: 10px 20px;
	background: #aa8453;
	color: #fff;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 12px;
	text-decoration: none;
	white-space: nowrap;
	transition: background .2s;
}

.ibg-cal-event-btn:hover {
	background: #8f6c3f;
	color: #fff;
}

@media (max-width: 600px) {
	.ibg-cal-event { flex-wrap: wrap; }
	.ibg-cal-event-btn { flex: 1 1 100%; text-align: center; }
}

.ibg-cal-nodate-title {
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 2px;
	font-size: 14px;
	color: #aa8453;
	margin: 40px 0 16px;
	padding-top: 20px;
	border-top: 1px solid #ececec;
}

.ibg-cal-nodate-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

@media (max-width: 767px) {
	.luogo { flex-wrap: wrap; gap: 6px 16px; }
	.luogo .n { flex: 0 0 auto; }
	.luogo .d { flex: 0 0 100%; margin-top: 4px; }
	.ibg-cal-days { grid-template-columns: repeat(7, 1fr); gap: 4px; }
	.ibg-cal-day { padding: 8px 2px; }
	.ibg-cal-day-num { font-size: 16px; }
	.ibg-cal-nodate-grid { grid-template-columns: 1fr; }
}

/* --- Deep-dive: galleria e video sulla pagina di approfondimento luogo --- */

.ibg-deepdive-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 20px 0 40px;
}

.ibg-deepdive-gallery figure {
	margin: 0;
}

.ibg-deepdive-gallery img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}

.ibg-deepdive-gallery figcaption {
	font-size: 12px;
	color: #888;
	margin-top: 8px;
	line-height: 1.5;
}

.ibg-deepdive-gallery figcaption .credit {
	display: block;
	font-style: italic;
	color: #aaa;
}

.ibg-deepdive-video {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	margin: 20px 0 40px;
	background: #000;
}

.ibg-deepdive-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 767px) {
	.ibg-deepdive-gallery {
		grid-template-columns: 1fr;
	}
}

/* .btn-form1-submit del tema ha padding:0 e nessun text-align: senza queste
   regole il testo resta incollato al bordo sinistro del bottone. */
.ibg-deepdive-cta {
	padding: 0 24px;
	text-align: center;
}

/* --- Pagina singolo evento: barra Data/Orario/Prezzo + box dettagli --- */

.ibg-evento-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 1px;
	background: #ececec;
	margin-bottom: 40px;
}

.ibg-evento-bar__item {
	flex: 1 1 200px;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 24px;
	background: #fff;
}

.ibg-evento-bar__item--price {
	background: #faf1ec;
}

.ibg-evento-bar__item .flaticon-calendar,
.ibg-evento-bar__item .flaticon-clock,
.ibg-evento-bar__item .flaticon-credit-card {
	font-size: 26px;
	color: #aa8453;
}

.ibg-evento-bar__item--price .flaticon-credit-card {
	color: #b5563b;
}

.ibg-evento-bar__item em {
	display: block;
	font-style: normal;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 11px;
	color: #999;
}

.ibg-evento-bar__item strong {
	display: block;
	font-family: "Gilda Display", serif;
	font-size: 17px;
	font-weight: 400;
	color: #222;
}

.ibg-evento-bar__item--price strong {
	color: #b5563b;
}

.ibg-evento-map {
	position: relative;
	width: 100%;
	padding-top: 65%;
	margin-bottom: 24px;
	background: #eee;
}

.ibg-evento-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ibg-evento-details__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ibg-evento-details__list li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-top: 1px solid #ececec;
}

.ibg-evento-details__list li:first-child {
	border-top: none;
}

.ibg-evento-details__list [class^="flaticon-"] {
	font-size: 20px;
	color: #aa8453;
	flex: 0 0 auto;
}

.ibg-evento-details__list li > span:last-child {
	display: flex;
	flex-direction: column;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 11px;
	color: #999;
}

.ibg-evento-details__list strong {
	font-family: "Gilda Display", serif;
	text-transform: none;
	letter-spacing: 0;
	font-size: 15px;
	color: #222;
	margin-top: 2px;
}

.ibg-evento-details {
	margin-bottom: 24px;
}

@media (max-width: 767px) {
	.ibg-evento-bar { flex-direction: column; }
}

/* --- Homepage: "Eventi in programma" (lista + card in evidenza) --- */

.ibg-home-eventi__grid {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 40px;
	align-items: start;
}

.ibg-home-eventi__list .ibg-cal-event {
	margin-bottom: 14px;
}

.ibg-home-eventi__note {
	font-size: 15px;
	color: #888;
	margin-bottom: 20px;
}

.ibg-home-eventi__all {
	display: inline-block;
	padding: 0 24px;
	margin-top: 6px;
}

.ibg-home-eventi__featured {
	background: #faf8f5;
	overflow: hidden;
}

.ibg-home-eventi__featured-img {
	position: relative;
	height: 220px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	background-color: #fff;
}

.ibg-home-eventi__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	background: #aa8453;
	color: #fff;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 11px;
	padding: 6px 14px;
}

.ibg-home-eventi__featured-body {
	padding: 26px;
}

.ibg-home-eventi__featured-body h4 {
	font-family: "Gilda Display", serif;
	font-size: 24px;
	font-weight: 400;
	color: #222;
	margin: 0 0 10px;
}

.ibg-home-eventi__featured-date {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: #888;
	margin: 0 0 20px;
}

.ibg-home-eventi__featured-date .flaticon-calendar {
	color: #aa8453;
}

.ibg-home-eventi__featured-meta {
	display: flex;
	gap: 1px;
	background: #ececec;
	margin-bottom: 20px;
}

.ibg-home-eventi__featured-meta div {
	flex: 1 1 0;
	background: #fff;
	padding: 14px 16px;
}

.ibg-home-eventi__featured-meta em {
	display: block;
	font-style: normal;
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 11px;
	color: #999;
}

.ibg-home-eventi__featured-meta strong {
	display: block;
	font-family: "Gilda Display", serif;
	font-size: 15px;
	font-weight: 400;
	color: #222;
	margin-top: 2px;
}

.ibg-home-eventi__featured-cta {
	display: block;
	padding: 0 24px;
	text-align: center;
}

@media (max-width: 991px) {
	.ibg-home-eventi__grid {
		grid-template-columns: 1fr;
	}
}
