/* =========================================================
   Dettaglio Servizi – Accordion patologie
   Variabili sovrascrivibili dal tema:
   .dettaglio-servizi { --dsrv-bordo: #ddd; ... }
   ========================================================= */

.dettaglio-servizi {
	--dsrv-bordo: #e2e2e2;
	--dsrv-icona: currentColor;
	--dsrv-spazio: 1rem;
	--dsrv-durata: 260ms;

	display: block;
	width: 100%;
}

.dettaglio-servizi__item {
	border-bottom: 1px solid var(--dsrv-bordo);
}

.dettaglio-servizi__item:first-child {
	border-top: 1px solid var(--dsrv-bordo);
}

/* --- Titolo --- */

.dettaglio-servizi__titolo {
	margin: 0;
	padding: 0;
	font-size: inherit;
	line-height: inherit;
}

.dettaglio-servizi__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dsrv-spazio);
	width: 100%;
	margin: 0;
	padding: var(--dsrv-spazio) 0;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: inherit;
	font: inherit;
	text-align: left;
	text-transform: none;
	cursor: pointer;
	appearance: none;
}

.dettaglio-servizi__trigger:hover,
.dettaglio-servizi__trigger:focus {
	background: none;
	color: inherit;
}

.dettaglio-servizi__trigger:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.dettaglio-servizi__testo {
	flex: 1 1 auto;
}

/* --- Icona + / − --- */

.dettaglio-servizi__icona {
	position: relative;
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	margin-left: auto;
}

.dettaglio-servizi__icona::before,
.dettaglio-servizi__icona::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1em;
	height: 2px;
	background-color: var(--dsrv-icona);
	transform: translate(-50%, -50%);
	transition: transform var(--dsrv-durata) ease, opacity var(--dsrv-durata) ease;
}

/* barra verticale: sparisce quando il pannello è aperto → da + a − */
.dettaglio-servizi__icona::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.dettaglio-servizi__item.is-open .dettaglio-servizi__icona::after {
	transform: translate(-50%, -50%) rotate(0deg);
	opacity: 0;
}

/* --- Descrizione --- */

.dettaglio-servizi__descrizione {
	overflow: hidden;
	height: 0;
	transition: height var(--dsrv-durata) ease;
}

.dettaglio-servizi__descrizione[hidden] {
	display: none;
}

.dettaglio-servizi__item.is-open > .dettaglio-servizi__descrizione {
	height: auto;
}

.dettaglio-servizi__descrizione-inner {
	padding: 0 0 var(--dsrv-spazio);
}

.dettaglio-servizi__descrizione-inner > :first-child {
	margin-top: 0;
}

.dettaglio-servizi__descrizione-inner > :last-child {
	margin-bottom: 0;
}

/* --- Fallback senza JS: tutto visibile --- */

.dettaglio-servizi:not(.dsrv-ready) .dettaglio-servizi__descrizione {
	height: auto;
}

/* --- Preferenze di movimento ridotto --- */

@media (prefers-reduced-motion: reduce) {
	.dettaglio-servizi__descrizione,
	.dettaglio-servizi__icona::before,
	.dettaglio-servizi__icona::after {
		transition: none;
	}
}
