/**
 * Public address selector — scoped to .act-address-selector
 * Cascade: --act-address-selector-* → Automatic.css → neutre (voir .cursor/rules/css-variables-cascade.mdc)
 */

.act-address-selector {
	/* Accent / liens / focus */
	--_color-accent: var(--act-address-selector-accent, var(--action, #2563eb));
	/* Texte général (hors champ) */
	--_color-text: var(--act-address-selector-text, var(--base-ultra-dark, #1a1a1a));
	/* Surfaces blanches (liste, panneau si besoin) */
	--_color-surface: var(--act-address-selector-surface, var(--white, #ffffff));
	--_color-border: var(--act-address-selector-border, var(--base-light, #e5e5e5));
	--_color-muted: var(--act-address-selector-muted, var(--base-mid, #737373));
	/* Libellé champ (maquette Figma ~ #393d47) */
	--_color-label: var(--act-address-selector-label-text, var(--base-dark, #393d47));
	/* Champ : fond et bordure type formulaire */
	--_color-input-bg: var(--act-address-selector-input-bg, var(--white, #ffffff));
	--_color-input-border: var(--act-address-selector-input-border, var(--base-light, #d5d7dd));
	--_color-input-text: var(--act-address-selector-input-text, var(--text-dark, var(--base-ultra-dark, #22252a)));
	/* Icône loupe dans le champ */
	--_color-input-icon: var(--act-address-selector-input-icon, #a3a3a3);
	/* Liste : surbrillance ligne (maquette ~ primary-ultra-light) */
	--_color-option-highlight: var(
		--act-address-selector-option-highlight,
		var(--primary-ultra-light, #e5f0ff)
	);
	/* Rayons */
	--_radius-input: var(--act-address-selector-input-radius, var(--radius-m, 6px));
	--_radius-list: var(--act-address-selector-list-radius, var(--radius-l, 8px));
	--_radius-option: var(--act-address-selector-option-radius, 4px);
	/* Ombres */
	--_shadow-list: var(
		--act-address-selector-list-shadow,
		0 20px 25px -5px rgba(0, 0, 0, 0.08),
		0 0 10px rgba(0, 0, 0, 0.08)
	);
	/* Espacements */
	--_panel-padding: var(--act-address-selector-panel-padding, 1.875rem);
	--_label-gap: var(--act-address-selector-label-gap, 0.75rem);
	--_input-pad-x: var(--act-address-selector-input-padding-x, 1.875rem);
	--_input-pad-y: var(--act-address-selector-input-padding-y, 1.375rem);
	--_input-icon-size: var(--act-address-selector-input-icon-size, 1.25rem);
	--_input-icon-inset: var(--act-address-selector-input-icon-inset, 1.25rem);
	--_input-icon-gap: var(--act-address-selector-input-icon-gap, 0.625rem);
	--_input-min-height: var(--act-address-selector-input-min-height, 4rem);
	--_font-input: var(--act-address-selector-input-font-size, 1.125rem);
	--_font-label: var(--act-address-selector-label-font-size, 1rem);
	--_font-option: var(--act-address-selector-option-font-size, 1rem);
	/* Marge extérieure : haut/bas seulement par défaut (pas de marge latérale) */
	--_margin: var(--act-address-selector-margin, 0);
	/* Sans-serif explicite : évite monospace imposé par certains thèmes sur les champs */
	--_font-family: var(
		--act-address-selector-font-family,
		var(
			--font-family,
			var(--base-font-family, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif)
		)
	);

	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
	margin: var(--_margin);
	font-family: var(--_font-family);
	/* Pile au-dessus du contenu suivant pour que la liste absolue ne soit pas rognée */
	position: relative;
	z-index: var(--act-address-selector-z-index, 100);
	overflow: visible;
}

.act-address-selector *,
.act-address-selector *::before,
.act-address-selector *::after {
	box-sizing: border-box;
}

.act-address-selector__panel {
	min-width: 0;
	padding: var(--_panel-padding);
	background: var(
		--act-address-selector-panel-bg,
		var(--primary-ultra-light, #e8f4fc)
	);
	border-radius: var(--_radius-list);
	/* Ne pas masquer overflow : avec overflow-x hidden, le navigateur peut forcer overflow-y: auto et scrollbar + rogner la liste */
	overflow: visible;
}

.act-address-selector__label {
	display: block;
	margin: 0 0 var(--_label-gap);
	font-family: var(--_font-family);
	font-size: var(--_font-label);
	line-height: 1.35;
	font-weight: 400;
	color: var(--_color-label);
}

.act-address-selector__field-wrap {
	position: relative;
	z-index: 1;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	overflow: visible;
}

.act-address-selector__input-icon {
	position: absolute;
	left: var(--_input-icon-inset);
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--_input-icon-size);
	height: var(--_input-icon-size);
	color: var(--_color-input-icon);
	pointer-events: none;
	line-height: 0;
}

.act-address-selector__input-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.act-address-selector__input {
	display: block;
	width: 100%;
	max-width: 100%;
	/* Les <input> ont une min-width intrinsèque : sans 0, le flex ne rétrécit pas → scrollbar */
	min-width: 0;
	min-height: var(--_input-min-height);
	margin: 0;
	padding: var(--_input-pad-y) var(--_input-pad-x) var(--_input-pad-y)
		calc(var(--_input-icon-inset) + var(--_input-icon-size) + var(--_input-icon-gap));
		/* Nécessaire pour Gravity Forms */
		padding-left: calc(var(--_input-icon-inset) + var(--_input-icon-size) + var(--_input-icon-gap))!important;
	font-family: var(--_font-family);
	font-size: var(--_font-input);
	line-height: 1.5;
	color: var(--_color-input-text);
	background: var(--_color-input-bg);
	border: 1px solid var(--_color-input-border);
	border-radius: var(--_radius-input);
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.act-address-selector__input::placeholder {
	color: var(--_color-muted);
	opacity: 1;
}

.act-address-selector__input:hover {
	border-color: var(--_color-muted);
}

.act-address-selector__input:focus {
	border-color: var(--_color-accent);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--_color-accent) 25%, transparent);
}

.act-address-selector__list {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 4px);
	z-index: var(--act-address-selector-list-z-index, 200);
	margin: 0;
	padding: 0.5rem 0;
	list-style: none;
	background: var(--_color-surface);
	border: 1px solid var(--_color-input-border);
	border-radius: var(--_radius-list);
	box-shadow: var(--_shadow-list);
	/* Hauteur max + défilement vertical ; surcharge : --act-address-selector-list-max-height / --act-address-selector-list-overflow-y */
	max-height: var(--act-address-selector-list-max-height, 16rem);
	overflow-y: var(--act-address-selector-list-overflow-y, auto);
	overflow-x: hidden;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.act-address-selector__option {
	margin: 0 0.5rem;
	padding: 0.5rem;
	cursor: pointer;
	font-family: var(--_font-family);
	color: var(--_color-input-text);
	font-size: var(--_font-option);
	line-height: 1.5;
	border-radius: var(--_radius-option);
	transition: background-color 0.12s ease;
}

.act-address-selector__option-main {
	font-weight: 700;
}

.act-address-selector__option:hover,
.act-address-selector__option.is-active {
	background: var(--_color-option-highlight);
}

/* Même « carte » et même ancrage flottant que la liste de suggestions */
.act-address-selector__not-found {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 4px);
	z-index: var(--act-address-selector-list-z-index, 200);
	margin: 0;
	padding: 0.625rem 0.75rem;
	background: var(--_color-surface);
	border: 1px solid var(--_color-input-border);
	border-radius: var(--_radius-list);
	box-shadow: var(--_shadow-list);
	max-height: var(--act-address-selector-not-found-max-height, 16rem);
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.act-address-selector__not-found[hidden] {
	display: none !important;
}

.act-address-selector__not-found-title {
	margin: 0 0 0.4rem;
	padding: 0;
	font-family: var(--_font-family);
	font-size: var(--_font-option);
	font-weight: 600;
	line-height: 1.4;
	color: var(--act-address-selector-not-found-title-color, var(--_color-input-text));
}

.act-address-selector__not-found-title:empty {
	display: none;
}

.act-address-selector__not-found-help {
	margin: 0;
	padding: 0;
	font-family: var(--_font-family);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--act-address-selector-not-found-help-color, var(--_color-muted));
	white-space: pre-line;
}

.act-address-selector__not-found-help:empty {
	display: none;
}

.act-address-selector__not-found-title:empty + .act-address-selector__not-found-help {
	margin-top: 0;
}

.act-address-selector__status {
	margin: 0.35rem 0 0;
	font-size: 0.875rem;
	color: var(--_color-muted);
}

.act-address-selector__status:empty {
	display: none;
}

/**
 * Gravity Forms (thème 2.x) : le reset `.gform-theme--framework` met `all: unset` sur la plupart des
 * éléments. Le conteneur porte `gform-theme__no-reset--children` (voir template) pour exclure nos nœuds.
 * Les blocs ci-dessous restent utiles si le conteneur GF rogne la liste ou pour harmoniser avec les champs GF.
 */
.gfield_contains_act_address .ginput_container {
	overflow: visible;
}

.gfield_contains_act_address .act-address-selector.act-address-selector--gf {
	--_panel-padding: 0;
	--_margin: 0;
	--_input-min-height: 2.75rem;
	--_input-pad-y: 0.5rem;
	--_input-pad-x: 0.75rem;
	--_font-input: 1rem;
	--_input-icon-size: 1rem;
	--_input-icon-inset: 0.75rem;
	--_input-icon-gap: 0.375rem;
}

.gfield_contains_act_address .act-address-selector.act-address-selector--gf .act-address-selector__panel {
	padding-top: 0;
	padding-bottom: 0;
}

.gfield_contains_act_address .act-address-selector.act-address-selector--gf .act-address-selector__field-wrap {
	width: 100%;
	max-width: 100%;
}

.gfield_contains_act_address .act-address-selector .act-address-selector__input-icon svg {
	width: var(--_input-icon-size);
	height: var(--_input-icon-size);
	max-width: var(--_input-icon-size);
	max-height: var(--_input-icon-size);
}
