/* =========================================================
   Logo System + chrome globale v1.1
   ========================================================= */

:focus-visible {
	outline: 3px solid rgba(185, 87, 50, 0.46);
	outline-offset: 4px;
}

.site-header--v1 {
	background: rgba(247, 243, 236, 0.98);
	border-bottom: 1px solid rgba(52, 72, 61, 0.13);
	box-shadow: 0 8px 28px rgba(40, 58, 50, 0.035);
	min-height: 82px;
	padding-inline: clamp(1rem, 3vw, 3.25rem);
}

.brand-logo {
	flex: 0 1 265px;
	min-width: 190px;
}

.brand-logo img {
	display: block;
	height: auto;
	max-height: 60px;
	object-fit: contain;
	object-position: left center;
	width: 100%;
}

.site-header--v1 .primary-nav {
	margin-left: auto;
}

.site-header--v1 .primary-nav__list {
	gap: clamp(0.85rem, 1.3vw, 1.45rem);
}

.site-header--v1 .primary-nav a {
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.015em;
}

.site-header--v1 .header-cta {
	font-size: 0.79rem;
	min-height: 42px;
	padding: 0.62rem 0.92rem;
}

.site-header--v1 .sub-menu a {
	font-size: 0.82rem;
	line-height: 1.35;
}

.site-footer--v1 {
	background: var(--forest-dark);
	grid-template-columns: 1fr;
}

.footer-brand--logo {
	align-items: flex-start;
	flex-direction: column;
	gap: 1rem;
}

.footer-brand--logo > a {
	display: block;
	max-width: 300px;
	width: 100%;
}

.footer-brand--logo img {
	height: auto;
	width: 100%;
}

.footer-brand--logo p {
	color: rgba(255, 255, 255, 0.66);
	font-family: var(--serif);
	font-size: 0.93rem;
	line-height: 1.55;
	margin: 0;
	max-width: 330px;
}

.footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-top: 0.6rem;
}

.site-footer--v1 .site-footer__legal {
	align-items: flex-start;
}

@media (min-width: 780px) {
	.site-footer--v1 {
		grid-template-columns: minmax(260px, 1.35fr) repeat(3, minmax(150px, 1fr));
	}
}

@media (min-width: 1180px) {
	.site-header--v1 {
		min-height: 94px;
		padding-inline: clamp(1.75rem, 3.2vw, 4rem);
	}

	.brand-logo {
		flex-basis: 245px;
	}

	.brand-logo img {
		max-height: 64px;
	}
}

@media (max-width: 1179.98px) {
	.site-header--v1 {
		min-height: 74px;
	}

	.brand-logo {
		flex-basis: 220px;
		max-width: calc(100vw - 92px);
	}

	.brand-logo img {
		max-height: 52px;
	}

	.site-header--v1 .primary-nav {
		max-height: calc(100vh - 74px);
		overflow-y: auto;
	}

	.site-header--v1 .primary-nav__list {
		padding: 0.7rem 1.25rem 1.4rem;
	}

	.site-header--v1 .primary-nav a {
		font-size: 0.92rem;
		padding: 0.88rem 0;
	}

	.site-header--v1 .has-submenu .sub-menu a {
		color: var(--muted);
		font-size: 0.84rem;
		padding: 0.7rem 0;
	}
}

@media (max-width: 460px) {
	.site-header--v1 {
		padding-inline: 0.85rem;
	}

	.brand-logo {
		flex-basis: 196px;
		min-width: 0;
	}

	.brand-logo img {
		max-height: 48px;
	}
}

@media (max-width: 1179.98px) {
	body.menu-is-open {
		overflow: hidden;
	}
}


/* =========================================================
   v0.3 — correzioni tecniche staging
   ========================================================= */

/* La barra admin WordPress è fixed: lo sticky header deve restare sotto. */
body.admin-bar .site-header,
body.admin-bar .site-header--v1 {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar .site-header,
    body.admin-bar .site-header--v1 {
        top: 46px;
    }
}

/* Evita che ancore e sezioni finiscano sotto lo sticky header. */
.dc-home-v1 section[id],
#main-content [id] {
    scroll-margin-top: 110px;
}

body.admin-bar .dc-home-v1 section[id],
body.admin-bar #main-content [id] {
    scroll-margin-top: 145px;
}

/* Sicurezza contro elementi decorativi che generano scroll orizzontale. */
html,
body {
    max-width: 100%;
    overflow-x: clip;
}

/* Footer: le colonne possono realmente restringersi senza tagliare il testo. */
.site-footer--v1 > * {
    min-width: 0;
}

.site-footer--v1 p,
.site-footer--v1 a {
    overflow-wrap: anywhere;
}

/* =========================================================
   v0.5 — leggibilità header e footer
   ========================================================= */
.site-header--v1 {
    min-height: 104px;
}

.brand-logo {
    flex: 0 0 320px;
    min-width: 270px;
}

.brand-logo img {
    max-height: 74px;
    width: 100%;
}

.site-header--v1 .primary-nav a {
    font-size: 0.82rem;
}

.site-footer--v1 {
    font-size: 0.9rem;
    line-height: 1.6;
}

.footer-brand--logo > a {
    max-width: 370px;
}

.footer-brand--logo p {
    font-size: 1rem;
    line-height: 1.62;
    max-width: 390px;
}

.site-footer--v1 strong {
    font-size: 0.92rem;
}

.site-footer--v1.no-contact {
    grid-template-columns: 1fr;
}

@media (min-width: 780px) {
    .site-footer--v1.has-contact {
        grid-template-columns: minmax(300px, 1.35fr) repeat(3, minmax(170px, 1fr));
    }
    .site-footer--v1.no-contact {
        grid-template-columns: minmax(320px, 1.4fr) repeat(2, minmax(190px, 1fr));
    }
}

@media (min-width: 1180px) {
    .site-header--v1 {
        min-height: 108px;
    }
    .brand-logo {
        flex-basis: 330px;
    }
    .brand-logo img {
        max-height: 78px;
    }
}

@media (max-width: 1179.98px) {
    .site-header--v1 {
        min-height: 80px;
    }
    .brand-logo {
        flex-basis: 260px;
        max-width: calc(100vw - 92px);
        min-width: 0;
    }
    .brand-logo img {
        max-height: 60px;
    }
}

@media (max-width: 460px) {
    .brand-logo {
        flex-basis: 225px;
    }
    .brand-logo img {
        max-height: 54px;
    }
}
