/* Header/Footer fissi (markup in header.php/footer.php), copiati dal sito
   originale (4yourlife-theme: assets/css/header.css + footer.css + cta-buttons.css),
   con le custom property del tema originale sostituite dai valori letterali
   corrispondenti (tema-libero non ha il sistema "Impostazioni Tema" dinamico). */

:root {
	--nav-menu-duration: 0.3s;

	/* Margine laterale dell'header (sx/dx): unico punto da modificare per
	   cambiarlo. L'header NON usa .nma-container (a differenza del footer e
	   degli Strip sotto) - resta volutamente piu' largo del container del
	   sito, a piena larghezza viewport, con solo questo margine fisso ai
	   due lati invece del clamp+centratura di .nma-container. */
	--site-header-side-margin: 40px;
}

/* Container: il FOOTER riusa .nma-container (assets/css/base.css di NMA Page
   Blocks, gia' caricato dal Template a blocchi) - resta alla stessa
   larghezza degli Strip sotto, anche se cambi max-width/gutter in
   Impostazioni Tema. L'HEADER invece no, vedi --site-header-side-margin
   sopra e .site-header__inner sotto. */

/* Scroll animato per le ancore del menu in header_2 (landing page). */
.has-smooth-scroll {
	scroll-behavior: smooth;
}

/* ===== Header ===== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	padding-block: 16px;
	padding-inline: var(--site-header-side-margin);
	background-color: #1c1c1c;
	color: #ffffff;
}

.site-header__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 16px;
}

.site-header__logo {
	display: inline-flex;
	line-height: 0;
}

.site-header__nav-center {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

/* Variante header_2 (landing page): niente CTA in terza colonna, voci menu
   allineate a destra invece che centrate. */
.site-header__nav-center--end {
	justify-content: flex-end;
}

.site-header__nav-toggle {
	display: none;
	position: relative;
	width: 28px;
	height: 28px;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
}

.site-header__nav-toggle-bar,
.site-header__nav-toggle-bar::before,
.site-header__nav-toggle-bar::after {
	position: absolute;
	left: 50%;
	width: 20px;
	height: 2px;
	background: currentColor;
	transform: translateX(-50%);
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.site-header__nav-toggle-bar {
	top: 50%;
	transform: translate(-50%, -50%);
}

.site-header__nav-toggle-bar::before {
	content: "";
	top: -8px;
}

.site-header__nav-toggle-bar::after {
	content: "";
	top: 8px;
}

.site-header__nav-toggle[aria-expanded="true"] .site-header__nav-toggle-bar {
	background: transparent;
}

.site-header__nav-toggle[aria-expanded="true"] .site-header__nav-toggle-bar::before {
	top: 0;
	transform: translateX(-50%) rotate(45deg);
}

.site-header__nav-toggle[aria-expanded="true"] .site-header__nav-toggle-bar::after {
	top: 0;
	transform: translateX(-50%) rotate(-45deg);
}

.site-header__nav-list {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	column-gap: 40px;
	font-size: 1rem;
	white-space: nowrap;
}

.site-header__nav-list a {
	color: inherit;
	text-decoration: none;
	font-weight: 700;
}

.site-header__nav-list a::first-letter {
	text-transform: uppercase;
}

.site-header__nav-list a:hover {
	color: #ffcc02;
}

.site-header__nav-list .site-header__nav-cta a:hover {
	color: #1c1c1c;
}

.site-header__nav-list .current-menu-item > a {
	color: #ffcc02;
}

/* Le voci non vanno mai a capo (nowrap sopra): appena non ci stanno piu' su
   una riga, nav-responsive.js misura l'overflow reale (a qualunque larghezza,
   non un breakpoint fisso) e aggiunge questa classe -> si passa a hamburger +
   tendina verticale. */
.site-header__nav-center.is-overflowing .site-header__nav-toggle {
	display: block;
}

.site-header__nav-center.is-overflowing {
	justify-content: flex-end;
}

.site-header__nav-center.is-overflowing .site-header__nav {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
}

/* display:none (non visibility:hidden - provato, lascia uno spazio vuoto
   riservato al posto del CTA e l'hamburger finisce "prima" del bordo destro
   vero dell'header, non ci arriva mai): l'hamburger deve prendersi tutto lo
   spazio liberato dal CTA e arrivare al bordo destro reale. Il conseguente
   allargamento di .site-header__nav-center non e' il problema del doppio
   scatto durante il resize - quello e' risolto con l'isteresi in
   nav-responsive.js (checkOverflow()), non qui. */
.site-header__nav-center.is-overflowing ~ .site-header__cta {
	display: none;
}

.site-header__nav-cta {
	display: none;
}

.site-header__nav-center.is-overflowing .site-header__nav-cta {
	display: list-item;
	margin-top: 10px;
	color: #1c1c1c;
}

.site-header__nav-center.is-overflowing .site-header__nav {
	pointer-events: none;
}

.site-header__nav-center.is-overflowing .site-header__nav-toggle[aria-expanded="true"] ~ .site-header__nav {
	pointer-events: auto;
}

.site-header__nav-center.is-overflowing .site-header__nav-list {
	flex-direction: column;
	align-items: center;
	gap: 24px;
	background-color: #1c1c1c;
	padding: 24px;
	white-space: normal;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--nav-menu-duration) ease, visibility 0s linear var(--nav-menu-duration);
}

.site-header__nav-center.is-overflowing .site-header__nav-toggle[aria-expanded="true"] ~ .site-header__nav .site-header__nav-list {
	opacity: 1;
	visibility: visible;
	transition: opacity var(--nav-menu-duration) ease, visibility 0s linear 0s;
}

.site-header__nav-center.is-measuring .site-header__nav-list {
	transition: none !important;
}

/* ===== Footer ===== */

.site-footer {
	width: 100%;
	padding-top: 40px;
	padding-inline: 40px;
	background-color: #1c1c1c;
	color: #ffffff;
}

.site-footer__logo {
	margin: 0 0 30px;
}

.site-footer__row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	row-gap: 32px;
	column-gap: 64px;
}

.footer-menu {
	grid-column: 1;
	grid-row: 1;
}

.footer-menu__list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu__list a {
	color: inherit;
	text-decoration: none;
}

.site-footer__company {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
	width: 100%;
	max-width: 640px;
}

/* footer_2 (landing page): niente menu, il blocco dati aziendali prende il
   posto a sinistra dove normalmente c'e' il menu footer. */
.site-footer__row--single {
	grid-template-columns: 1fr;
}

.site-footer__row--single .site-footer__company {
	grid-column: 1;
	justify-self: start;
}

@media (max-width: 959.98px) {
	.site-footer__row {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
	}

	.footer-menu {
		grid-column: 1;
		grid-row: 1;
	}

	.site-footer__company {
		grid-column: 1;
		grid-row: 2;
		justify-self: stretch;
		max-width: none;
	}
}

.site-footer__company-title {
	color: #ffcc02;
	font-size: 1rem;
	margin: 0 0 20px;
}

.site-footer__company-cols {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.site-footer__company-cols p {
	flex: 1 1 200px;
	margin: 0;
	text-align: left;
	line-height: 1.6;
	font-size: 0.875rem;
}

.site-footer__company-cols a {
	color: inherit;
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 32px;
	padding: 24px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.site-footer__legal-btn {
	display: inline-block;
	border: 1px solid #ffcc02;
	border-radius: 999px;
	color: #ffffff;
	background: transparent;
	padding: 8px 20px;
	font-size: 15px;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.site-footer__legal-btn:hover,
.site-footer__legal-btn:focus-visible {
	background: #ffcc02;
	color: #1c1c1c;
}

.site-footer__social {
	display: flex;
	gap: 12px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: #ffffff;
}

@media (max-width: 599.98px) {
	.site-footer__bottom {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.site-footer__legal {
		justify-content: center;
	}
}

/* ===== Bottone CTA (solo la variante usata da header/footer) ===== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 700;
	text-decoration: none;
	padding: calc(0.667em + 2px) calc(1.333em + 2px);
	border: 0;
	border-radius: 0;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, filter 0.15s ease, opacity 0.15s ease;
}

.btn--primary {
	background-color: #ffcc02;
	color: #1c1c1c;
}

.btn--primary:hover {
	filter: brightness(0.92);
}
