/* ==========================================================================
   Maison Satab — En-tête et pied de page natifs
   Chargé uniquement lorsque le Theme Builder d'Elementor ne les remplace pas.
   ========================================================================== */

/* --------------------------------------------------------------------------
   En-tête
   -------------------------------------------------------------------------- */
.site-header {
	position: relative;
	z-index: 100;
	background: var(--mst-color-canvas);
	border-bottom: 1px solid transparent;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mst-space-sm);
	min-height: var(--mst-header-height);
}

.site-header__brand .custom-logo-link {
	display: block;
}

.site-header__brand .custom-logo {
	max-height: 52px;
	width: auto;
}

.site-title {
	font-family: var(--mst-font-display);
	font-size: 1.5rem;
	letter-spacing: 0.02em;
	margin: 0;
}

.site-description {
	font-size: 0.75rem;
	letter-spacing: var(--mst-letter-spacing-wide);
	text-transform: uppercase;
	color: var(--mst-color-ink-soft);
	margin-top: var(--mst-space-3xs);
}

/* Navigation */
.site-header__nav {
	display: flex;
	align-items: center;
	gap: var(--mst-space-md);
}

.menu--primary {
	display: flex;
	align-items: center;
	gap: var(--mst-space-md);
}

.menu--primary a {
	display: inline-block;
	font-size: 0.75rem;
	letter-spacing: var(--mst-letter-spacing-wide);
	text-transform: uppercase;
	padding-block: 0.5rem;
	border-bottom: 1px solid transparent;
}

.menu--primary a:hover,
.menu--primary .current-menu-item > a,
.menu--primary .current-menu-ancestor > a {
	border-bottom-color: currentColor;
}

/* Sous-menus */
.menu--primary .menu-item-has-children {
	position: relative;
}

.menu--primary .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	padding: var(--mst-space-xs) 0;
	background: var(--mst-color-surface);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--mst-transition), visibility var(--mst-transition);
}

.menu--primary .menu-item-has-children:hover > .sub-menu,
.menu--primary .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
}

.menu--primary .sub-menu a {
	display: block;
	padding: 0.5rem var(--mst-space-xs);
	border: 0;
}

.site-header__extranet {
	font-size: 0.75rem;
	letter-spacing: var(--mst-letter-spacing-wide);
	text-transform: uppercase;
	padding: 0.65rem 1.25rem;
	border: 1px solid var(--mst-color-ink);
	transition: background-color var(--mst-transition), color var(--mst-transition);
}

.site-header__extranet:hover {
	background: var(--mst-color-ink);
	color: var(--mst-color-canvas);
}

/* Bouton menu mobile */
.nav-toggle {
	display: none;
	width: 32px;
	height: 32px;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
	margin-left: auto;
}

.nav-toggle__bar {
	display: block;
	width: 100%;
	height: 1px;
	background: var(--mst-color-ink);
	transition: transform var(--mst-transition), opacity var(--mst-transition);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:first-child {
	transform: translateY(4px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:last-child {
	transform: translateY(-4px) rotate(-45deg);
}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */
@media (max-width: 1023px) {

	.nav-toggle {
		display: flex;
	}

	.site-header__nav {
		position: fixed;
		inset: var(--mst-header-height) 0 0 0;
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: var(--mst-space-md);
		padding: var(--mst-space-lg) var(--mst-gutter);
		background: var(--mst-color-canvas);
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--mst-transition), visibility var(--mst-transition);
	}

	.site-header__nav.is-open {
		opacity: 1;
		visibility: visible;
	}

	.admin-bar .site-header__nav {
		top: calc(var(--mst-header-height) + 46px);
	}

	.menu--primary {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--mst-space-sm);
		width: 100%;
	}

	.menu--primary > li {
		width: 100%;
	}

	.menu--primary a {
		font-size: 0.875rem;
	}

	.menu--primary .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		min-width: 0;
		padding: var(--mst-space-2xs) 0 0 var(--mst-space-xs);
		background: transparent;
	}

	body.has-menu-open {
		overflow: hidden;
	}
}

/* --------------------------------------------------------------------------
   Pied de page
   -------------------------------------------------------------------------- */
.site-footer {
	flex-shrink: 0;
	margin-top: var(--mst-space-2xl);
	padding-block: var(--mst-space-lg);
	border-top: 1px solid var(--mst-color-line);
	font-size: 0.8125rem;
}

.has-no-footer-widgets .site-footer {
	padding-block: var(--mst-space-md);
}

.site-footer__widgets {
	display: grid;
	gap: var(--mst-space-lg);
	padding-bottom: var(--mst-space-lg);
}

@media (min-width: 768px) {
	.site-footer__widgets {
		grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	}
}

.widget__title {
	font-family: var(--mst-font-body);
	font-size: 0.75rem;
	letter-spacing: var(--mst-letter-spacing-wide);
	text-transform: uppercase;
	margin-bottom: var(--mst-space-xs);
}

.widget ul {
	list-style: none;
	padding: 0;
}

.widget li + li {
	margin-top: var(--mst-space-3xs);
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--mst-space-xs);
	color: var(--mst-color-ink-soft);
}

.menu--legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mst-space-sm);
}

.menu--legal a:hover {
	color: var(--mst-color-ink);
}

.site-footer__credit {
	margin: 0;
}
