/*
 * Avis clients Union-Matériaux — interfaces [vendeur] et [client].
 * Tous les sélecteurs sont préfixés par .umac : aucun style global du thème (Divi, Elementor…) n'est modifié.
 * Les composants occupent toute la largeur de leur conteneur ; la largeur extérieure est pilotée par le bloc parent.
 */

.umac {
	--umac-accent: #525323;
	--umac-accent-hover: #383e42;
	--umac-accent-active: #23282b;
	--umac-light-hover: #383e420d;
	--umac-light-active: #383e421f;
	--umac-text: #444444;
	--umac-muted: #5f6368;
	--umac-border: #cccccc;
	--umac-error: #b32d2e;
	--umac-warning-bg: #fcf3e3;
	--umac-warning-border: #b8860b;
	--umac-disabled-bg: #e8e8e1;
	--umac-disabled-text: #4d4d40;
	--umac-disabled-border: #c9c9bd;

	box-sizing: border-box;
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	color: var(--umac-text);
	line-height: 1.5;
	text-align: left;
}

.umac *,
.umac *::before,
.umac *::after {
	box-sizing: border-box;
	/* Aucun arrondi sur les éléments rendus par le plugin, y compris Tom Select. */
	border-radius: 0 !important;
}

.umac [hidden] {
	display: none !important;
}

.umac .umac-label {
	display: block;
	margin: 0 0 6px;
	font-weight: 600;
}

.umac .umac-help {
	margin: 0 0 8px;
	color: var(--umac-muted);
	font-size: 0.9375em;
}

.umac .umac-step {
	margin: 0 0 24px;
}

/* Champs */

.umac .umac-textarea,
.umac .umac-input,
.umac select.umac-select {
	display: block;
	width: 100%;
	max-width: none;
	min-height: 44px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--umac-border);
	background: #ffffff;
	box-shadow: none;
	color: var(--umac-text);
	/* 16 px minimum : évite le zoom automatique sur iOS. */
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
}

.umac .umac-textarea {
	resize: vertical;
}

.umac .umac-textarea:focus,
.umac .umac-input:focus,
.umac select.umac-select:focus {
	outline: 2px solid var(--umac-accent);
	outline-offset: 0;
	border-color: var(--umac-accent);
}

.umac .umac-counter {
	margin: 4px 0 0;
	color: var(--umac-muted);
	font-size: 0.875em;
	text-align: right;
}

.umac .umac-counter.is-limit {
	color: var(--umac-error);
	font-weight: 600;
}

/* Boutons */

.umac .umac-actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 12px 0 0;
}

.umac .umac-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-height: 46px;
	margin: 0;
	padding: 10px 18px;
	border: 1px solid var(--umac-accent);
	background: #ffffff;
	box-shadow: none;
	color: var(--umac-accent);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: normal;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

/* Boutons à fond blanc */
.umac .umac-btn--secondary:hover {
	background: var(--umac-light-hover);
	border-color: var(--umac-accent-hover);
	color: var(--umac-accent-hover);
}

.umac .umac-btn--secondary:active {
	background: var(--umac-light-active);
	border-color: var(--umac-accent-active);
	color: var(--umac-accent-active);
}

/* Boutons à fond #525323 */
.umac .umac-btn--primary {
	background: var(--umac-accent);
	border-color: var(--umac-accent);
	color: #ffffff;
}

.umac .umac-btn--primary:hover {
	background: var(--umac-accent-hover);
	border-color: var(--umac-accent-hover);
	color: #ffffff;
}

.umac .umac-btn--primary:active {
	background: var(--umac-accent-active);
	border-color: var(--umac-accent-active);
	color: #ffffff;
}

/* Focus clavier visible sur fond clair comme sur le bouton plein. */
.umac .umac-btn:focus-visible {
	outline: 3px solid var(--umac-accent-hover);
	outline-offset: 2px;
}

/* Désactivé : couleurs explicites (pas d'opacité) pour garder un contraste lisible. */
.umac .umac-btn[disabled],
.umac .umac-btn[disabled]:hover,
.umac .umac-btn[aria-disabled="true"] {
	background: var(--umac-disabled-bg);
	border-color: var(--umac-disabled-border);
	color: var(--umac-disabled-text);
	cursor: not-allowed;
}

/* États et messages */

.umac .umac-status {
	min-height: 1.5em;
	margin: 8px 0 0;
	font-size: 0.9375em;
}

.umac .umac-status--error {
	color: var(--umac-error);
}

.umac .umac-notice {
	margin: 12px 0;
	padding: 12px 14px;
	border-left: 4px solid var(--umac-accent);
	background: #f6f6f1;
	color: var(--umac-text);
}

.umac .umac-notice--warning {
	border-left-color: var(--umac-warning-border);
	background: var(--umac-warning-bg);
}

.umac .umac-loading {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 12px 0 0;
	color: var(--umac-muted);
}

.umac .umac-spinner {
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 3px solid var(--umac-border);
	border-top-color: var(--umac-accent);
	border-radius: 50% !important; /* Seule exception : indicateur de chargement circulaire. */
	animation: umac-spin 0.8s linear infinite;
}

@keyframes umac-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.umac .umac-spinner {
		animation-duration: 2.4s;
	}
}

.umac .umac-message {
	margin: 12px 0 0;
	padding: 12px 14px;
	border-left: 4px solid var(--umac-warning-border);
	background: var(--umac-warning-bg);
}

.umac .umac-message__title {
	margin: 0 0 4px;
	font-weight: 600;
}

.umac .umac-message__text {
	margin: 0 0 8px;
	font-style: italic;
}

.umac .umac-client__agency {
	margin: 0 0 16px;
	font-size: 1.3em;
	line-height: 1.3;
}

.umac .umac-google-link {
	color: var(--umac-accent);
	font-weight: 700;
	text-decoration: underline;
	word-break: break-word;
}

.umac .umac-google-link:hover {
	color: var(--umac-accent-hover);
}

.umac .umac-google-link:focus-visible {
	outline: 3px solid var(--umac-accent-hover);
	outline-offset: 2px;
}

/* Interface vendeur */

.umac .umac-vendor__result {
	margin: 20px 0 0;
	text-align: center;
}

.umac .umac-qr {
	width: min(100%, 280px);
	margin: 0 auto 12px;
	padding: 0;
	border: 0;
	background: #ffffff;
}

.umac .umac-qr svg {
	display: block;
	width: 100%;
	height: auto;
}

.umac .umac-vendor__link {
	margin: 0 0 8px;
	word-break: break-all;
	font-size: 0.9375em;
}

.umac .umac-vendor__link a {
	color: var(--umac-accent);
}

.umac .umac-manual {
	margin: 12px 0 0;
	text-align: left;
}

/*
 * Sélecteur d'agence (Tom Select + plugin dropdown_input) : une seule bordure fine sur le contrôle,
 * sans dégradé ; la recherche est en tête de la liste ouverte, au-dessus des options.
 */
.umac .ts-wrapper.umac-select {
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}

.umac .ts-wrapper.single .ts-control,
.umac .ts-wrapper.single.input-active .ts-control,
.umac .ts-wrapper.single.dropdown-active .ts-control {
	min-height: 44px;
	padding: 10px 40px 10px 12px;
	border: 1px solid var(--umac-border);
	background: #ffffff;
	background-image: none;
	box-shadow: none;
	color: var(--umac-text);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	cursor: pointer;
}

.umac .ts-wrapper.single .ts-control > .item {
	color: var(--umac-text);
}

.umac .ts-wrapper.single .ts-control input::placeholder,
.umac .ts-wrapper .ts-control .placeholder {
	color: #767676;
}

.umac .ts-wrapper.focus .ts-control {
	border-color: var(--umac-accent);
	outline: 2px solid var(--umac-accent);
	outline-offset: 0;
	box-shadow: none;
}

.umac .ts-wrapper.single .ts-control::after {
	right: 14px;
	border-color: var(--umac-accent) transparent transparent;
}

.umac .ts-wrapper.single.dropdown-active .ts-control::after {
	border-color: transparent transparent var(--umac-accent);
}

.umac .ts-dropdown {
	z-index: 1000;
	margin: 0;
	border: 1px solid var(--umac-border);
	border-top: 0;
	background: #ffffff;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
	color: var(--umac-text);
	font-size: 16px;
}

.umac .ts-dropdown .dropdown-input-wrap {
	padding: 8px;
	border-bottom: 1px solid #e5e5e5;
	background: #ffffff;
}

.umac .ts-dropdown .dropdown-input {
	display: block;
	width: 100%;
	min-height: 40px;
	margin: 0;
	padding: 8px 10px;
	border: 1px solid #aaaaaa;
	background: #ffffff;
	box-shadow: none;
	color: var(--umac-text);
	font-family: inherit;
	font-size: 16px;
}

.umac .ts-dropdown .dropdown-input:focus {
	border-color: var(--umac-accent);
	outline: 2px solid var(--umac-accent);
	outline-offset: 0;
}

.umac .ts-dropdown .ts-dropdown-content {
	max-height: 280px;
}

.umac .ts-dropdown .option,
.umac .ts-dropdown .no-results {
	padding: 10px 12px;
	color: var(--umac-text);
	line-height: 1.4;
}

/* Option survolée ou atteinte au clavier. */
.umac .ts-dropdown .option.active {
	background: var(--umac-light-active);
	color: var(--umac-accent-active);
}

/* Option sélectionnée : fond #525323, texte blanc (comme la page de référence). */
.umac .ts-dropdown .option.selected {
	background: var(--umac-accent);
	color: #ffffff;
}

.umac .ts-dropdown .option.selected.active {
	background: var(--umac-accent-hover);
	color: #ffffff;
}

/* Écrans larges : boutons côte à côte, sans contrainte de largeur sur le composant. */
@media (min-width: 600px) {
	.umac .umac-actions {
		flex-direction: row;
		flex-wrap: wrap;
	}

	.umac.umac-client .umac-actions .umac-btn {
		flex: 1 1 auto;
	}
}

@media print {
	.umac .umac-actions,
	.umac .umac-status {
		display: none;
	}
}
