/* ==========================================================================
   Barra di navigazione
   ==========================================================================
   Stessa barra di hestia-child (spec 2026-08-04-navbar-unificata), riscritta
   sul markup del tema: niente Bootstrap da vincere, quindi niente regole
   ripetute con .navbar-not-transparent e .hestia_left per pesare di piu'.

   Stati: solida (bianca) ovunque; sulla home, se il Customizer lo chiede,
   trasparente sopra la hero finche' non si scorre di 80px (classe
   .htmb-nav--solida messa da navbar.js). L'altezza non cambia mai.
   ========================================================================== */

:root {
	--htmb-nav-h: 74px;
	--htmb-nav-logo-h: 36px;
	--htmb-nav-voce-pad: 7px;
	--htmb-nav-trans: 220ms;
	--htmb-nav-testo: var(--htmb-ink-2);
}

@media (max-width: 991.98px) {
	:root {
		--htmb-nav-voce-pad: 4px;
		--htmb-nav-logo-h: 32px;
	}
}

@media (max-width: 768.98px) {
	:root {
		--htmb-nav-h: 64px;
		--htmb-nav-logo-h: 30px;
		--htmb-nav-voce-pad: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--htmb-nav-trans: 0ms;
	}
}

/* --- Guscio --------------------------------------------------------------- */

.htmb-nav {
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1000;
	height: var(--htmb-nav-h);
	background-color: rgba(255, 255, 255, 0.98);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	color: var(--htmb-nav-testo);
	transition: background-color var(--htmb-nav-trans) ease, box-shadow var(--htmb-nav-trans) ease, color var(--htmb-nav-trans) ease;
}

/* La barra dell'amministratore di WordPress sta sopra: la nostra scende. */
.admin-bar .htmb-nav {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.htmb-nav-interno {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 3vw, 2.5rem);
	width: min(100% - 2 * var(--htmb-margine), var(--htmb-largo));
	height: 100%;
	margin-inline: auto;
}

/* --- Marchio ---------------------------------------------------------------
   Il testo del marchio prende il colore della barra (currentColor): scuro
   sulla barra bianca, bianco sulla hero. Un solo file, nessun filtro. */

.htmb-nav-marchio {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	color: var(--htmb-ink);
	text-decoration: none;
}

.htmb-nav-marchio:hover {
	color: var(--htmb-ink);
}

.htmb-nav .htmb-logo {
	display: block;
	width: auto;
	height: var(--htmb-nav-logo-h);
}

/* --- Pannello e lista ----------------------------------------------------- */

.htmb-nav-pannello {
	flex: 1 1 auto;
	min-width: 0;
}

.htmb-nav-lista {
	display: flex;
	align-items: center;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
	white-space: nowrap;
}

.htmb-nav-lista > li {
	position: relative;
	display: flex;
	align-items: center;
}

.htmb-nav-lista > li.htmb-nav-utility-inizio {
	margin-left: auto;
}

/* --- Voci ----------------------------------------------------------------- */

.htmb-nav-lista a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 10px var(--htmb-nav-voce-pad);
	color: inherit;
	font-family: var(--htmb-font-ui);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.4;
	text-decoration: none;
	transition: color var(--htmb-nav-trans) ease;
}

.htmb-nav-lista > li > a[aria-current="page"] {
	color: var(--htmb-accento);
}

/* Sulla hero l'accento blu su fondo quasi nero non si legge: la voce
   corrente resta bianca e la dice la linea sotto. */
.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-lista > li > a[aria-current="page"] {
	color: #fff;
}

.htmb-nav-lista a:hover,
.htmb-nav-lista a:focus-visible {
	color: var(--htmb-firma);
}

/* La linea che cresce dal centro: accento sulla voce corrente, firma al
   passaggio. Sui social e sulla lingua niente linea: sotto un'icona non
   significa niente. */
.htmb-nav-lista > li:not(.htmb-nav-social):not(.htmb-nav-lang) > a::before {
	content: "";
	position: absolute;
	right: 50%;
	bottom: 6px;
	left: 50%;
	height: 2px;
	background-color: var(--htmb-firma);
	transition: left var(--htmb-nav-trans) ease, right var(--htmb-nav-trans) ease;
}

.htmb-nav-lista > li > a[aria-current="page"]::before {
	background-color: var(--htmb-accento);
}

.htmb-nav-lista > li:not(.htmb-nav-social):not(.htmb-nav-lang):hover > a::before,
.htmb-nav-lista > li > a[aria-current="page"]::before {
	right: var(--htmb-nav-voce-pad);
	left: var(--htmb-nav-voce-pad);
}

.htmb-nav-lista > li:not(.htmb-nav-social):hover > a::before {
	background-color: var(--htmb-firma);
}

/* --- Sottomenu ------------------------------------------------------------
   Oggi il menu non ne ha; se ne nasce uno si apre al passaggio e al focus. */

.htmb-nav-lista .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background-color: #fff;
	border: 1px solid var(--htmb-bordo);
	border-radius: 8px;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--htmb-nav-trans) ease, visibility var(--htmb-nav-trans);
}

.htmb-nav-lista > li:hover > .sub-menu,
.htmb-nav-lista > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
}

.htmb-nav-lista .sub-menu a {
	display: block;
	padding: 8px 16px;
	color: var(--htmb-ink-2);
}

/* --- Social --------------------------------------------------------------- */

.htmb-nav-lista > li.htmb-nav-social > a {
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	color: var(--htmb-ink-tenue);
	border-radius: 8px;
	transition: color var(--htmb-nav-trans) ease, transform var(--htmb-nav-trans) ease;
}

.htmb-nav-lista > li.htmb-nav-social > a:hover {
	color: var(--htmb-firma);
	transform: translateY(-1px);
}

.htmb-nav .htmb-icona {
	width: 18px;
	height: 18px;
}

/* Nascosta otticamente sul desktop, visibile nel pannello mobile. */
.htmb-nav-social-etichetta {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

/* --- Lingua (GTranslate) ---------------------------------------------------
   I selettori si ancorano a .htmb-nav-lang e non alla lista: su mobile
   navbar.js sposta la voce nella barra, fuori dalla lista. */

.htmb-nav .htmb-nav-lang {
	flex-shrink: 0;
	height: 20px;
	margin-left: 10px;
	padding-left: 12px;
	border-left: 1px solid var(--htmb-bordo);
	list-style: none;
}

.htmb-nav .htmb-nav-lang .gtranslate_wrapper,
.htmb-nav .htmb-nav-lang div[id^="gt-wrapper-"] {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 20px;
	/* GTranslate stampa nell'head "div[id^=gt-wrapper] { background:
	   rgba(255,255,255,.3); padding: 0 10px }": una pillola grigia attorno
	   alle bandiere. Qui basta la specificita', senza !important. */
	padding: 0;
	background: none;
	line-height: 1;
}

.htmb-nav .htmb-nav-lang a.glink {
	display: inline-flex;
	padding: 0;
	line-height: 0;
	border-radius: 50%;
	opacity: 0.55;
	transition: opacity var(--htmb-nav-trans) ease, transform var(--htmb-nav-trans) ease;
}

.htmb-nav .htmb-nav-lang a.glink::before {
	content: none;
}

.htmb-nav .htmb-nav-lang a.glink:hover {
	opacity: 1;
	transform: scale(1.08);
}

.htmb-nav .htmb-nav-lang a.glink.gt-current-lang {
	opacity: 1;
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--htmb-accento) 60%, transparent);
}

/* GTranslate inietta "a.glink img { margin: 0 5px !important; background:
   white !important }": un !important si batte solo con un altro. Sono gli
   unici due, verificati nel DOM il 2026-08-04. */
.htmb-nav .htmb-nav-lang a.glink img {
	display: block;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 !important;
	background: none !important;
}

/* --- Sulla hero della home --------------------------------------------------- */

.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) {
	background-color: transparent;
	box-shadow: none;
	--htmb-nav-testo: #fff;
}

.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-marchio {
	color: #fff;
}

.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-lista > li > a::before {
	background-color: #fff;
}

.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-lista > li.htmb-nav-social > a {
	color: rgba(255, 255, 255, 0.85);
}

.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-lang {
	border-left-color: rgba(255, 255, 255, 0.25);
}

.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-barrette span {
	background-color: #fff;
}

/* --- Bottone del menu (solo mobile) ----------------------------------------- */

.htmb-nav-bottone {
	display: none;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 8px;
	cursor: pointer;
}

.htmb-nav-barrette {
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 22px;
}

.htmb-nav-barrette span {
	display: block;
	height: 2px;
	background-color: var(--htmb-ink);
	transition: transform var(--htmb-nav-trans) ease, opacity var(--htmb-nav-trans) ease;
}

/* Aperto: le barre diventano una X. */
.htmb-nav-bottone[aria-expanded="true"] .htmb-nav-barrette span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.htmb-nav-bottone[aria-expanded="true"] .htmb-nav-barrette span:nth-child(2) {
	opacity: 0;
}

.htmb-nav-bottone[aria-expanded="true"] .htmb-nav-barrette span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* --- Fascia compatta 769-991px ---------------------------------------------- */

@media (min-width: 769px) and (max-width: 991.98px) {
	.htmb-nav-interno {
		gap: 1rem;
	}

	.htmb-nav-lista > li > a {
		padding: 8px var(--htmb-nav-voce-pad);
	}

	.htmb-nav-lista > li.htmb-nav-social > a {
		width: 32px;
		height: 32px;
	}

	.htmb-nav .htmb-nav-lang {
		margin-left: 6px;
		padding-left: 8px;
	}
}

/* --- Pannello sotto i 769px -------------------------------------------------
   In barra restano marchio, bandiere e bottone. Le bandiere non entrano nel
   pannello: la lingua si sceglie prima di leggere, non dopo aver aperto un
   menu. */

@media (max-width: 768.98px) {
	.htmb-nav-interno {
		gap: 12px;
	}

	.htmb-nav-marchio {
		margin-right: auto;
	}

	.htmb-nav-bottone {
		display: flex;
		order: 3;
	}

	.htmb-nav .htmb-nav-lang--in-barra {
		order: 2;
		display: inline-flex;
		align-items: center;
		margin: 0;
		padding: 0;
		border: 0;
	}

	.htmb-nav-pannello {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		max-height: calc(100vh - var(--htmb-nav-h));
		overflow-y: auto;
		background-color: #fff;
		box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
		/* Chiuso: fuori dal flusso e fuori dal Tab. */
		display: none;
	}

	.htmb-nav--aperta .htmb-nav-pannello {
		display: block;
	}

	.htmb-nav-lista {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 8px 0 16px;
		white-space: normal;
	}

	.htmb-nav-lista > li {
		display: block;
	}

	/* Nel pannello bianco il testo e' scuro anche in cima alla home. */
	.htmb-nav-lista a,
	.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-lista a {
		display: flex;
		width: 100%;
		min-height: 44px;
		padding: 12px var(--htmb-nav-voce-pad);
		color: var(--htmb-ink-2);
	}

	.htmb-nav-lista > li > a::before {
		content: none;
	}

	.htmb-nav-lista > li.htmb-nav-social > a,
	.htmb-nav-su-hero .htmb-nav:not(.htmb-nav--solida) .htmb-nav-lista > li.htmb-nav-social > a {
		justify-content: flex-start;
		gap: 0.75rem;
		width: 100%;
		height: auto;
		padding: 12px var(--htmb-nav-voce-pad);
		color: var(--htmb-ink-tenue);
	}

	.htmb-nav-social-etichetta {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		overflow: visible;
		clip: auto;
		clip-path: none;
	}

	.htmb-nav-lista > li.htmb-nav-utility-inizio {
		margin: 8px 0 0;
		padding-top: 8px;
		border-top: 1px solid var(--htmb-bordo);
	}

	.htmb-nav-lista .sub-menu {
		position: static;
		min-width: 0;
		padding: 0 0 0 16px;
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
	}
}
