/* Interactions Alcea (da/alcea.md, section 5 ; da/brief-dev-wordpress.md).
   Seules transform et opacity sont animées, sauf les couleurs de survol. Aucune animation au chargement. */

/* 1. En-tête collant translucide.
   Le fond et le flou sont portés par ::before, l'ombre par ::after (animée en opacité) :
   l'en-tête lui-même ne crée pas de bloc conteneur, le menu mobile reste fixé à la fenêtre. */
.elementor-location-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	isolation: isolate;
}

.elementor-location-header::before,
.elementor-location-header::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	pointer-events: none;
}

.elementor-location-header::before {
	background: var(--alcea-header-bg);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.elementor-location-header::after {
	box-shadow: var(--alcea-shadow-header);
	opacity: 0;
	transition: opacity var(--alcea-dur-ui) ease-out;
}

.elementor-location-header.is-scrolled::after {
	opacity: 1;
}

/* 2. Navigation principale (code court [alcea_navigation], menu « Navigation principale »). */
.alcea-nav {
	font-family: var(--alcea-font);
}

.alcea-nav__list,
.alcea-nav__list .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.alcea-nav .alcea-nav__list a {
	color: var(--alcea-ink-soft);
	font-size: var(--alcea-fs-ui);
	font-weight: 400;
	line-height: var(--alcea-lh-ui);
	letter-spacing: var(--alcea-ls-ui);
	text-decoration: none;
	transition: color var(--alcea-dur-hover) ease-out;
}

/* Page en cours visible (les ancres de l'accueil, comme Contact, ne sont pas marquées). */
.alcea-nav .alcea-nav__list a:hover,
.alcea-nav .alcea-nav__list a[aria-current="page"]:not([href*="#"]) {
	color: var(--alcea-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
}

/* Espace client : lien discret. */
.alcea-nav .alcea-nav__list .alcea-menu-discret > a {
	font-size: var(--alcea-fs-small);
	color: var(--alcea-ink-soft);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

/* Rejoindre l'équipe : bouton principal en terracotta, texte blanc (5,55:1). */
.alcea-nav .alcea-nav__list .alcea-menu-cta > a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 1rem 2rem;
	border-radius: var(--alcea-radius);
	background: var(--alcea-action);
	color: var(--alcea-on-action);
	font-weight: 500;
	text-decoration: none;
	transition: background-color var(--alcea-dur-hover) ease-out, transform var(--alcea-dur-press) ease-out;
}

.alcea-nav .alcea-nav__list .alcea-menu-cta > a:hover {
	background: var(--alcea-action-hover);
	color: var(--alcea-on-action);
	text-decoration: none;
}

.alcea-nav .alcea-nav__list .alcea-menu-cta > a:active {
	transform: scale(0.97);
}

/* Boutons du menu : remise à zéro de la feuille de Hello Elementor et des boutons du kit. */
.alcea-nav .alcea-nav__toggle,
.alcea-nav .alcea-nav__close {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0.75rem 1rem;
	border: 1px solid var(--alcea-ink);
	border-radius: var(--alcea-radius);
	background: transparent;
	color: var(--alcea-ink);
	font: 500 var(--alcea-fs-ui) / 1 var(--alcea-font);
	letter-spacing: var(--alcea-ls-ui);
	cursor: pointer;
	transition: background-color var(--alcea-dur-hover) ease-out, transform var(--alcea-dur-press) ease-out;
}

.alcea-nav .alcea-nav__toggle:hover,
.alcea-nav .alcea-nav__toggle:focus,
.alcea-nav .alcea-nav__close:hover,
.alcea-nav .alcea-nav__close:focus {
	background: var(--alcea-surface-deep);
	color: var(--alcea-ink);
}

.alcea-nav .alcea-nav__toggle:active,
.alcea-nav .alcea-nav__close:active {
	transform: scale(0.97);
}

.alcea-nav__toggle-icon,
.alcea-nav__toggle-icon::before,
.alcea-nav__toggle-icon::after {
	display: block;
	width: 18px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
}

.alcea-nav__toggle-icon {
	position: relative;
}

.alcea-nav__toggle-icon::before,
.alcea-nav__toggle-icon::after {
	content: "";
	position: absolute;
	left: 0;
}

.alcea-nav__toggle-icon::before { top: -6px; }
.alcea-nav__toggle-icon::after { top: 6px; }

/* 2a. Bureau : navigation en ligne. */
@media (min-width: 1200px) {
	.alcea-nav__toggle,
	.alcea-nav__close,
	.alcea-nav__veil {
		display: none !important;
	}

	.alcea-nav__list {
		display: flex;
		align-items: center;
		gap: var(--alcea-nav-gap);
	}

	.alcea-nav__list > li {
		position: relative;
	}

	.alcea-nav__list > .alcea-menu-discret {
		margin-left: calc(var(--alcea-nav-gap) * 0.5);
	}

	/* 3. Sous-menu : s'ouvre depuis son déclencheur, opacité et scale(0.98 → 1) en 200 ms. */
	.alcea-nav__list .sub-menu {
		position: absolute;
		top: calc(100% + 0.75rem);
		left: -1rem;
		min-width: 18rem;
		padding: 0.5rem;
		border-radius: var(--alcea-radius);
		background: var(--alcea-card);
		box-shadow: var(--alcea-shadow-overlay);
		opacity: 0;
		visibility: hidden;
		transform: scale(0.98);
		transform-origin: top left;
		transition: opacity var(--alcea-dur-ui) ease-out, transform var(--alcea-dur-ui) var(--alcea-ease-out), visibility 0s linear var(--alcea-dur-ui);
	}

	/* Pont invisible entre le déclencheur et le sous-menu, pour le survol. */
	.alcea-nav__list .sub-menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -0.75rem;
		height: 0.75rem;
	}

	.alcea-nav__list > li:hover > .sub-menu,
	.alcea-nav__list > li:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: scale(1);
		transition: opacity var(--alcea-dur-ui) ease-out, transform var(--alcea-dur-ui) var(--alcea-ease-out), visibility 0s;
	}

	.alcea-nav__list .sub-menu a {
		display: block;
		padding: 0.75rem 1rem;
		border-radius: var(--alcea-radius-small);
		line-height: 1.3;
	}

	.alcea-nav__list .sub-menu a:hover {
		background: var(--alcea-surface);
	}
}

/* 2b. Mobile et tablette : panneau qui entre et sort par la droite, voile en opacité. */
@media (max-width: 1199.98px) {
	.alcea-nav__panel {
		position: fixed;
		top: var(--wp-admin--admin-bar--height, 0px);
		right: 0;
		bottom: 0;
		z-index: 2;
		display: flex;
		flex-direction: column;
		gap: var(--alcea-space-3);
		width: min(24rem, 88vw);
		padding: var(--alcea-space-3) var(--alcea-margin) var(--alcea-space-5);
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--alcea-surface);
		box-shadow: var(--alcea-shadow-panel);
		visibility: hidden;
		transform: translateX(100%);
		transition: transform var(--alcea-dur-panel) var(--alcea-ease-in), visibility 0s linear var(--alcea-dur-panel);
	}

	.alcea-nav.is-open .alcea-nav__panel {
		visibility: visible;
		transform: translateX(0);
		transition: transform var(--alcea-dur-panel) var(--alcea-ease-out), visibility 0s;
	}

	.alcea-nav__close {
		align-self: flex-end;
	}

	.alcea-nav__veil {
		position: fixed;
		inset: 0;
		z-index: 1;
		background: var(--alcea-veil);
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--alcea-dur-panel) ease-out, visibility 0s linear var(--alcea-dur-panel);
	}

	.alcea-nav.is-open .alcea-nav__veil {
		opacity: 1;
		visibility: visible;
		transition: opacity var(--alcea-dur-panel) ease-out, visibility 0s;
	}

	.alcea-nav__list {
		display: flex;
		flex-direction: column;
	}

	.alcea-nav__list > li {
		border-top: 1px solid var(--alcea-line);
	}

	.alcea-nav__list > li.alcea-menu-discret,
	.alcea-nav__list > li.alcea-menu-cta {
		border-top: 0;
		padding-top: var(--alcea-space-3);
	}

	.alcea-nav .alcea-nav__list a {
		display: block;
		padding: 1rem 0;
		font-size: var(--alcea-fs-body);
	}

	/* Cibles tactiles de 44 px au moins (da/alcea.md, section 5). */
	.alcea-nav .alcea-nav__list .sub-menu a {
		padding: 0.875rem 0 0.875rem 1rem;
		font-size: var(--alcea-fs-ui);
	}

	.alcea-nav .alcea-nav__list .sub-menu {
		padding-bottom: 0.75rem;
	}

	.alcea-nav .alcea-nav__list .alcea-menu-cta > a {
		display: inline-flex;
		padding: 1rem 2rem;
		font-size: var(--alcea-fs-ui);
	}

	.alcea-nav .alcea-nav__list .alcea-menu-discret > a {
		display: inline-block;
		min-height: 44px;
		padding-block: 0.875rem;
	}

	html.alcea-nav-ouverte {
		overflow: hidden;
	}
}

/* 4. Boutons Elementor : survol en 150 ms, pression scale(0.97) en 100 ms, focus de 3 px décalé de 3 px. */
.elementor-button {
	min-height: 48px;
	transition: background-color var(--alcea-dur-hover) ease-out, color var(--alcea-dur-hover) ease-out, border-color var(--alcea-dur-hover) ease-out, transform var(--alcea-dur-press) ease-out;
}

.elementor-button:active {
	transform: scale(0.97);
}

/* Libellé sur deux lignes (petits écrans) : interligne de lecture. */
.elementor-button .elementor-button-text {
	line-height: 1.25;
}

.elementor-button:focus-visible {
	outline: 3px solid var(--alcea-ink);
	outline-offset: 3px;
}

.alcea-sur-sapin .elementor-button:focus-visible {
	outline-color: var(--alcea-surface);
}

/* Lien de texte : souligné de 1 px décalé de 3 px, 2 px au survol. */
.elementor-widget-text-editor a,
.alcea-lien a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--alcea-dur-hover) ease-out;
}

.elementor-widget-text-editor a:hover,
.alcea-lien a:hover {
	text-decoration-thickness: 2px;
}

/* Carte cliquable : fond carte, sans ombre ; bordure au survol, scale(0.985) à la pression ; lien étendu. */
.alcea-carte {
	position: relative;
	border: 1px solid transparent;
	border-radius: var(--alcea-radius);
	background: var(--alcea-card);
	transition: border-color var(--alcea-dur-hover) ease-out, transform var(--alcea-dur-press) ease-out;
}

.alcea-carte:hover {
	border-color: var(--alcea-line);
}

.alcea-carte:active {
	transform: scale(0.985);
}

.alcea-carte a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.alcea-carte:has(a:focus-visible) {
	outline: 3px solid var(--alcea-ink);
	outline-offset: 3px;
}

.alcea-carte a:focus-visible {
	outline: none;
}

/* Champs de formulaire : fond carte, limite visible en encre adoucie (jamais un filet seul). */
.elementor-field-group .elementor-field:not(.elementor-select-wrapper) {
	transition: border-color var(--alcea-dur-hover) ease-out;
}

/* Focus visible sur les champs (RGAA 10.7) : la feuille du formulaire d'Elementor retire le contour. */
.elementor-form .elementor-field-group .elementor-field:focus-visible {
	outline: 3px solid var(--alcea-ink);
	outline-offset: 3px;
	box-shadow: none;
}

/* Formulaire de démonstration : mention sous le bouton et message affiché à l'envoi (aucune transmission). */
.alcea-form-retour {
	flex-basis: 100%;
	margin: var(--alcea-space-2) 0 0;
	padding: 0.75rem 1rem;
	border-left: 3px solid var(--alcea-ink);
	background: var(--alcea-card);
	color: var(--alcea-ink);
	font-size: var(--alcea-fs-small);
	line-height: var(--alcea-lh-small);
}

/* Boutons pleins : bordure transparente de 1 px, pour la même hauteur que les boutons à contour (1 px).
   Les boutons à contour posent leur bordure dans Elementor, avec une spécificité supérieure. */
.elementor-widget-button .elementor-button {
	border: 1px solid transparent;
}

/* 5. Accessibilité : préférences du système. */
@media (prefers-reduced-motion: reduce) {
	.elementor-button:active,
	.alcea-nav .alcea-nav__toggle:active,
	.alcea-nav .alcea-nav__close:active,
	.alcea-nav .alcea-nav__list .alcea-menu-cta > a:active,
	.alcea-carte:active {
		transform: none;
	}

	.alcea-nav__list .sub-menu,
	.alcea-nav__list > li:hover > .sub-menu,
	.alcea-nav__list > li:focus-within > .sub-menu {
		transform: none;
		transition: opacity var(--alcea-dur-fade) linear, visibility 0s linear var(--alcea-dur-fade);
	}

	.alcea-nav__list > li:hover > .sub-menu,
	.alcea-nav__list > li:focus-within > .sub-menu {
		transition: opacity var(--alcea-dur-fade) linear, visibility 0s;
	}

	.alcea-nav__veil,
	.alcea-nav.is-open .alcea-nav__veil,
	.elementor-location-header::after {
		transition-duration: var(--alcea-dur-fade);
	}
}

/* Panneau mobile en mouvement réduit : fondu en opacité, sans translation. Limité au mobile :
   sur ordinateur, le panneau est la navigation en ligne et doit rester visible. */
@media (prefers-reduced-motion: reduce) and (max-width: 1199.98px) {
	.alcea-nav__panel,
	.alcea-nav.is-open .alcea-nav__panel {
		transform: none !important;
	}

	.alcea-nav__panel {
		opacity: 0;
		transition: opacity var(--alcea-dur-fade) linear, visibility 0s linear var(--alcea-dur-fade) !important;
	}

	.alcea-nav.is-open .alcea-nav__panel {
		opacity: 1;
		transition: opacity var(--alcea-dur-fade) linear, visibility 0s !important;
	}
}

@media (prefers-reduced-transparency: reduce) {
	.elementor-location-header::before {
		background: var(--alcea-surface);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

@media (prefers-contrast: more) {
	.elementor-location-header::before {
		background: var(--alcea-surface);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.elementor-location-header::after {
		box-shadow: none;
		border-bottom: 1px solid var(--alcea-ink);
		opacity: 1;
	}

	.alcea-carte,
	.alcea-carte:hover,
	.alcea-emplacement,
	.elementor-field-group .elementor-field {
		border: 1px solid var(--alcea-ink) !important;
	}
}

@media (prefers-contrast: more) and (max-width: 1199.98px) {
	.alcea-nav__panel {
		border-left: 1px solid var(--alcea-ink);
	}
}
