/**
 * Amministrazione Trasparente sidebar — Design Comuni Italia / Bootstrap Italia navscroll.
 */

.apsp-at-comuni-nav {
	--apsp-at-menu-active: #0066cc;
	--apsp-at-menu-active-hover: #004d99;
	--apsp-at-menu-text: #262626;
	--apsp-at-menu-muted: #404040;
	--apsp-at-menu-border: #d4d4d4;
	--apsp-at-menu-tree-line: #737373;
	--apsp-at-menu-tree-line-active: #0066cc;
	--apsp-at-tree-spine: 2px;
	--apsp-at-tree-branch: 2px;
	--apsp-at-tree-indent-l2: 0.875rem;
	--apsp-at-tree-indent-l3: 1.625rem;
	--apsp-at-tree-pad-l2: 1rem;
	--apsp-at-tree-pad-l3: 0.875rem;
}

.apsp-at-comuni-nav .menu-link-list {
	margin-bottom: 0;
}

.apsp-at-comuni-nav .apsp-at-menu-panel,
.apsp-at-comuni-nav .apsp-at-menu-panel .accordion-item {
	background: transparent;
	border: 0;
	box-shadow: none;
}

/* Search (hero placement) */
.apsp-at-menu-search .form-control {
	font-size: 0.9375rem;
	border-color: var(--apsp-at-menu-border);
}

.apsp-at-menu-search .form-control:focus:not(:focus-visible) {
	outline: none;
}

.apsp-at-menu-search .form-control:focus-visible {
	border-color: var(--apsp-at-menu-active);
	box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.15);
}

.apsp-at-menu-search--hero {
	max-width: 36rem;
	margin-top: 1rem;
	margin-bottom: 0.25rem;
}

.apsp-at-menu-search--hero .form-label {
	margin-bottom: 0.375rem;
	font-size: 0.9375rem;
	color: var(--apsp-at-menu-text);
}

@media (min-width: 992px) {
	.apsp-at-menu-search--hero {
		margin-bottom: 0.25rem;
	}
}

.apsp-at-menu-list-wrap {
	max-height: min(70vh, 42rem);
	overflow-y: auto;
	overscroll-behavior: contain;
	scroll-behavior: auto;
}

/* —— Link list (pattern .navbar.it-navscroll-wrapper .link-list-wrapper) —— */
.apsp-at-comuni-nav .link-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.apsp-at-comuni-nav .link-list > .nav-item {
	border-bottom: 1px solid var(--apsp-at-menu-border);
}

.apsp-at-comuni-nav .link-list > .nav-item:last-child {
	border-bottom: 0;
}

.apsp-at-comuni-nav .link-list .nav-link,
.apsp-at-comuni-nav .link-list-wrapper ul li a.nav-link {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 0.55em 0.75rem;
	color: var(--apsp-at-menu-text);
	text-decoration: none !important;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.25;
	border: 0;
	border-left: 3px solid transparent;
	border-radius: 0;
	background: transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.apsp-at-comuni-nav .link-list .nav-link span,
.apsp-at-comuni-nav .link-list-wrapper ul li a.nav-link span {
	flex: 1;
	color: inherit;
	text-decoration: none !important;
}

.apsp-at-comuni-nav .link-list .nav-link:hover,
.apsp-at-comuni-nav .link-list .nav-link:focus-visible,
.apsp-at-comuni-nav .link-list-wrapper ul li a.nav-link:hover:not(.disabled),
.apsp-at-comuni-nav .link-list-wrapper ul li a.nav-link:focus-visible {
	color: var(--apsp-at-menu-active);
	background: transparent;
	text-decoration: none !important;
}

.apsp-at-comuni-nav .link-list .nav-link:hover span,
.apsp-at-comuni-nav .link-list .nav-link:focus-visible span,
.apsp-at-comuni-nav .link-list-wrapper ul li a.nav-link:hover:not(.disabled) span {
	color: inherit;
	text-decoration: none !important;
}

/* L1 — sezione aperta nel percorso */
.apsp-at-comuni-nav .link-list > .nav-item.ancestor > .nav-link {
	color: var(--apsp-at-menu-active);
	border-left-color: transparent;
	background: transparent;
	font-weight: 600;
}

/* L1 — voce corrente: barra laterale AGID */
.apsp-at-comuni-nav .link-list > .nav-item.active > .nav-link.active,
.apsp-at-comuni-nav .link-list > .nav-item > .nav-link.active {
	color: var(--apsp-at-menu-active);
	border-left-color: var(--apsp-at-menu-active);
	background: rgba(0, 102, 204, 0.06);
	font-weight: 600;
}

/* Sottoliste annidate (base) */
.apsp-at-comuni-nav .link-list-nested {
	list-style: none;
	background: transparent;
	border-top: 0;
}

.apsp-at-comuni-nav .link-list-nested.is-collapsed {
	display: none !important;
}

/* —— Alberatura AGID: spine verticale + rami orizzontali —— */
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3 {
	position: relative;
	margin-top: 0.25rem;
	margin-bottom: 0.4rem;
	border-left: var(--apsp-at-tree-spine) solid var(--apsp-at-menu-tree-line);
}

.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2 {
	margin-left: var(--apsp-at-tree-indent-l2);
	padding: 0.15rem 0 0.2rem var(--apsp-at-tree-pad-l2);
}

.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3 {
	margin-left: var(--apsp-at-tree-indent-l3);
	padding: 0.1rem 0 0.15rem var(--apsp-at-tree-pad-l3);
}

.apsp-at-comuni-nav .apsp-at-tree-level-2 > .nav-item,
.apsp-at-comuni-nav .apsp-at-tree-level-3 > .nav-item {
	position: relative;
}

/* Ramo orizzontale verso ogni voce (sul link, allineato al centro testo) */
.apsp-at-comuni-nav .apsp-at-tree-level-2 > .nav-item > .nav-link::before,
.apsp-at-comuni-nav .apsp-at-tree-level-3 > .nav-item > .nav-link::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	height: var(--apsp-at-tree-branch);
	background: var(--apsp-at-menu-tree-line);
	pointer-events: none;
	border-radius: 1px;
}

.apsp-at-comuni-nav .apsp-at-tree-level-2 > .nav-item > .nav-link::before {
	left: calc(-1 * var(--apsp-at-tree-pad-l2));
	width: calc(var(--apsp-at-tree-pad-l2) - 0.2rem);
}

.apsp-at-comuni-nav .apsp-at-tree-level-3 > .nav-item > .nav-link::before {
	left: calc(-1 * var(--apsp-at-tree-pad-l3));
	width: calc(var(--apsp-at-tree-pad-l3) - 0.15rem);
}

/* Nodo guida sul ramo (punto AGID) */
.apsp-at-comuni-nav .apsp-at-tree-level-2 > .nav-item > .nav-link::after,
.apsp-at-comuni-nav .apsp-at-tree-level-3 > .nav-item > .nav-link::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 5px;
	height: 5px;
	border: var(--apsp-at-tree-branch) solid var(--apsp-at-menu-tree-line);
	border-radius: 50%;
	background: #fff;
	pointer-events: none;
	box-sizing: border-box;
}

.apsp-at-comuni-nav .apsp-at-tree-level-2 > .nav-item > .nav-link::after {
	left: calc(-1 * var(--apsp-at-tree-pad-l2) + 0.15rem);
}

.apsp-at-comuni-nav .apsp-at-tree-level-3 > .nav-item > .nav-link::after {
	left: calc(-1 * var(--apsp-at-tree-pad-l3) + 0.1rem);
	width: 4px;
	height: 4px;
}

/* Percorso attivo: spine e rami in blu Italia */
.apsp-at-comuni-nav .nav-item.ancestor > .link-list-nested.apsp-at-tree-level-2,
.apsp-at-comuni-nav .nav-item.ancestor > .link-list-nested.apsp-at-tree-level-3,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2:has(> .nav-item.active),
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3:has(> .nav-item.active),
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2:has(> .nav-item.ancestor),
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3:has(> .nav-item.ancestor) {
	border-left-color: var(--apsp-at-menu-tree-line-active);
}

.apsp-at-comuni-nav .nav-item.ancestor > .link-list-nested.apsp-at-tree-level-2 > .nav-item > .nav-link::before,
.apsp-at-comuni-nav .nav-item.ancestor > .link-list-nested.apsp-at-tree-level-3 > .nav-item > .nav-link::before,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2 > .nav-item.active > .nav-link::before,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3 > .nav-item.active > .nav-link::before,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2 > .nav-item.ancestor > .nav-link::before,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3 > .nav-item.ancestor > .nav-link::before {
	background: var(--apsp-at-menu-tree-line-active);
}

.apsp-at-comuni-nav .nav-item.ancestor > .link-list-nested.apsp-at-tree-level-2 > .nav-item > .nav-link::after,
.apsp-at-comuni-nav .nav-item.ancestor > .link-list-nested.apsp-at-tree-level-3 > .nav-item > .nav-link::after,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2 > .nav-item.active > .nav-link::after,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3 > .nav-item.active > .nav-link::after,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-2 > .nav-item.ancestor > .nav-link::after,
.apsp-at-comuni-nav .link-list-nested.apsp-at-tree-level-3 > .nav-item.ancestor > .nav-link::after {
	border-color: var(--apsp-at-menu-tree-line-active);
	background: #fff;
}

/* Tipografia per livello */
.apsp-at-comuni-nav .apsp-at-tree-item-level-2 > .nav-link {
	position: relative;
	padding: 0.5em 0.65rem 0.5em 0.55rem;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--apsp-at-menu-muted);
	border-left: 0;
}

.apsp-at-comuni-nav .apsp-at-tree-item-level-3 > .nav-link {
	position: relative;
	padding: 0.45em 0.6rem 0.45em 0.45rem;
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--apsp-at-menu-muted);
	border-left: 0;
}

.apsp-at-comuni-nav .link-list-nested .nav-link,
.apsp-at-comuni-nav .link-list-nested .nav-item .nav-link {
	position: relative;
	border-left: 0;
}

.apsp-at-comuni-nav .link-list-nested .nav-item.ancestor > .nav-link {
	color: var(--apsp-at-menu-active);
	font-weight: 600;
}

.apsp-at-comuni-nav .apsp-at-tree-item-level-2.active > .nav-link.active,
.apsp-at-comuni-nav .apsp-at-tree-item-level-3.active > .nav-link.active,
.apsp-at-comuni-nav .link-list-nested .nav-item.active > .nav-link.active,
.apsp-at-comuni-nav .link-list-nested .nav-link.active {
	color: var(--apsp-at-menu-active);
	font-weight: 600;
	background: rgba(0, 102, 204, 0.08);
	border-left: 3px solid var(--apsp-at-menu-active);
	padding-left: calc(0.55rem - 3px);
}

.apsp-at-comuni-nav .apsp-at-tree-item-level-3.active > .nav-link.active {
	padding-left: calc(0.45rem - 3px);
}

.apsp-at-comuni-nav .link-list-nested .nav-link:hover,
.apsp-at-comuni-nav .link-list-nested .nav-link:focus-visible {
	color: var(--apsp-at-menu-active);
}

/* L1 con figli aperti: leggero rientro visivo sotto la sezione */
.apsp-at-comuni-nav .link-list > .nav-item.ancestor.has-children > .link-list-nested.apsp-at-tree-level-2 {
	background: linear-gradient(
		90deg,
		rgba(0, 102, 204, 0.04) 0,
		rgba(0, 102, 204, 0.04) var(--apsp-at-tree-indent-l2),
		transparent var(--apsp-at-tree-indent-l2)
	);
}

/* Search: hidden items */
.apsp-at-comuni-nav .nav-item.is-hidden,
.apsp-at-comuni-nav .link-list-nested.is-hidden {
	display: none !important;
}

/* Accordion titolo — Blu Italia, non verde Comuni */
.apsp-at-comuni-nav .accordion-header .accordion-button,
.apsp-at-comuni-nav .accordion-header .accordion-button:not(.collapsed),
.apsp-at-comuni-nav .accordion-header .accordion-button:hover,
.apsp-at-comuni-nav .accordion-header .accordion-button:focus {
	color: var(--apsp-at-menu-active) !important;
	background-color: transparent !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

.apsp-at-comuni-nav .accordion-header .accordion-button .icon {
	fill: var(--apsp-at-menu-active) !important;
	color: var(--apsp-at-menu-active) !important;
}

/* Override hardcoded #007a52 in bootstrap-italia-comuni */
.apsp-at-comuni-nav.navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active,
.apsp-at-comuni-nav .navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active,
aside .apsp-at-comuni-nav .navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active {
	border-left-color: var(--apsp-at-menu-active) !important;
	background: rgba(0, 102, 204, 0.06) !important;
}

.apsp-at-comuni-nav .navbar.it-navscroll-wrapper .link-list-wrapper ul li a.active span,
.apsp-at-comuni-nav .navbar.it-navscroll-wrapper .link-list-wrapper ul li ul li a.active span {
	color: var(--apsp-at-menu-active) !important;
	text-decoration: none !important;
}

.apsp-at-comuni-nav .navbar.it-navscroll-wrapper .link-list-wrapper ul li ul li a.active {
	border-left: 3px solid var(--apsp-at-menu-active) !important;
	font-weight: 600 !important;
}

@media (prefers-reduced-motion: reduce) {
	.apsp-at-comuni-nav .link-list .nav-link {
		transition: none;
	}
}
