/*
 * nuizibles-front.css — Styles front-end du plugin Nuizibles Annuaire
 * Compatible Hello Elementor / thèmes sans opinion (reset minimal)
 */

/* ============================================================
   VARIABLES
   ============================================================ */
:root {
	--nza-primary: #3858F5;
	--nza-primary-light: #5d78f7;
	--nza-primary-dark: #2440d0;
	--nza-accent: #f77f00;
	--nza-danger: #c0392b;
	--nza-success: #27ae60;
	--nza-warning: #f39c12;
	--nza-gray-100: #f8f9fa;
	--nza-gray-200: #e9ecef;
	--nza-gray-400: #ced4da;
	--nza-gray-600: #6c757d;
	--nza-gray-800: #343a40;
	--nza-radius: 8px;
	--nza-shadow: 0 2px 8px rgba(0,0,0,.10);
	--nza-shadow-hover: 0 4px 16px rgba(0,0,0,.16);
	--nza-transition: .2s ease;
	--nza-font: inherit;
}

/* ============================================================
   RESET GLOBAL — neutralise les marges/paddings du thème sur les titres
   ============================================================ */
.nza-wrap h1, .nza-wrap h2, .nza-wrap h3, .nza-wrap h4, .nza-wrap h5, .nza-wrap h6,
.nza-single h1, .nza-single h2, .nza-single h3, .nza-single h4,
.nza-listing-card h1, .nza-listing-card h2, .nza-listing-card h3,
.nza-auth-modal h1, .nza-auth-modal h2, .nza-auth-modal h3 {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* ============================================================
   LAYOUT
   ============================================================ */
.nza-wrap { font-family: var(--nza-font); }
.nza-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

/* ============================================================
   BOUTONS
   ============================================================ */
.nza-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 10px 20px; border-radius: var(--nza-radius);
	font-weight: 600; font-size: .9rem; text-decoration: none; cursor: pointer;
	border: 2px solid transparent; transition: var(--nza-transition); line-height: 1;
}
.nza-btn--primary  { background: var(--nza-primary);  color: #fff; border-color: var(--nza-primary); }
.nza-btn--primary:hover { background: var(--nza-primary-light); border-color: var(--nza-primary-light); color: #fff; }
.nza-btn--outline  { background: transparent; color: var(--nza-primary); border-color: var(--nza-primary); }
.nza-btn--outline:hover { background: var(--nza-primary); color: #fff; }
.nza-btn--full     { width: 100%; }
.nza-btn--sm       { padding: 6px 14px; font-size: .8rem; }
.nza-btn--lg       { padding: 14px 28px; font-size: 1rem; }

/* ============================================================
   FORMULAIRES
   ============================================================ */
.nza-form .nza-field { margin-bottom: 16px; }
.nza-form label { display: block; font-weight: 600; margin-bottom: 4px; font-size: .875rem; color: var(--nza-gray-800); }
.nza-form input[type=text],
.nza-form input[type=email],
.nza-form input[type=password],
.nza-form input[type=tel],
.nza-form input[type=url],
.nza-form input[type=number],
.nza-form textarea,
.nza-form select {
	width: 100%; padding: 10px 12px;
	border: 1px solid var(--nza-gray-400); border-radius: var(--nza-radius);
	font-size: .9rem; line-height: 1.5; color: var(--nza-gray-800);
	background: #fff; transition: border-color var(--nza-transition);
	box-sizing: border-box;
}
.nza-form input:focus, .nza-form textarea:focus, .nza-form select:focus {
	outline: none; border-color: var(--nza-primary); box-shadow: 0 0 0 3px rgba(56,88,245,.15);
}
.nza-form textarea { resize: vertical; min-height: 100px; }
.nza-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .nza-field-row { grid-template-columns: 1fr; } }
.nza-field--sm { max-width: 150px; }
.nza-field-note { color: var(--nza-gray-600); font-size: .8rem; margin-top: 4px; }
.nza-required { color: var(--nza-danger); }
.nza-input--disabled { background: var(--nza-gray-100); cursor: not-allowed; opacity: .7; }
.nza-field-password { position: relative; }
.nza-field-password input { padding-right: 64px; }
.nza-toggle-password {
	position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
	background: none; border: none; cursor: pointer; color: var(--nza-gray-600); font-size: .8rem;
}
.nza-form-section { background: var(--nza-gray-100); padding: 20px 24px; border-radius: var(--nza-radius); margin-bottom: 20px; }
.nza-form-section__title { font-size: 1rem; margin: 0 0 16px; color: var(--nza-primary-dark); }
.nza-form-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.nza-divider { border: none; border-top: 1px solid var(--nza-gray-200); margin: 20px 0; }

/* Section CS3D (homepage form) */
.nza-search-cs3d .nza-divider { margin: 8px 0; }
.nza-cs3d-toggle { display: block; width: 100%; box-sizing: border-box; text-align: left; border-radius: var(--nza-radius); padding: 8px 12px; font-size: .85rem; font-weight: 500; margin: 0; }
/* Section CS3D (sidebar résultats) */
.nza-sidebar-cs3d { padding: 0; }
.nza-sidebar-cs3d .nza-divider { margin: 4px 0; }
.nza-sidebar-check--checked { background: var(--nza-gray-100); }

/* ============================================================
   NOTICES
   ============================================================ */
.nza-notice {
	padding: 12px 16px; border-radius: var(--nza-radius); margin-bottom: 16px;
	font-size: .9rem; border-left: 4px solid transparent;
}
.nza-notice--success  { background: #d4edda; border-color: var(--nza-success); color: #155724; }
.nza-notice--error    { background: #f8d7da; border-color: var(--nza-danger);  color: #721c24; }
.nza-notice--warning  { background: #fff3cd; border-color: var(--nza-warning); color: #856404; }
.nza-notice--info     { background: #d1ecf1; border-color: #17a2b8; color: #0c5460; }

/* ============================================================
   BADGES & TAGS
   ============================================================ */
.nza-badge { display: inline-block; padding: 2px 8px; border-radius: 99px; font-size: .75rem; font-weight: 700; }
.nza-badge--success { background: var(--nza-success); color: #fff; }
.nza-badge--warning { background: var(--nza-warning); color: #fff; }
.nza-badge--danger  { background: var(--nza-danger);  color: #fff; }
.nza-badge--error   { background: var(--nza-danger);  color: #fff; }
.nza-badge--info    { background: var(--nza-gray-600); color: #fff; }
.nza-tag { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: .75rem; background: var(--nza-gray-200); color: var(--nza-gray-800); margin: 2px; text-decoration: none; }
.nza-tag:hover { background: var(--nza-primary); color: #fff; }
.nza-tag--cat { background: rgba(56,88,245,.12); color: var(--nza-primary-dark); }
.nza-tag-toggle { display: inline-block; padding: 4px 12px; border-radius: 99px; font-size: .8rem; background: var(--nza-gray-200); cursor: pointer; margin: 3px; transition: var(--nza-transition); user-select: none; }
.nza-tag-toggle input { display: none; }
.nza-tag-toggle--active, .nza-tag-toggle:hover { background: var(--nza-primary); color: #fff; }
.nza-verified-badge { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; background: var(--nza-primary); color: #fff; border-radius: 50%; font-size: 11px; font-weight: 700; vertical-align: middle; margin-left: 4px; }

/* ============================================================
   GRILLE DE FICHES
   ============================================================ */
.nza-grid { display: grid; gap: 24px; }
.nza-grid--2cols { grid-template-columns: repeat(2, 1fr); }
.nza-grid--3cols { grid-template-columns: repeat(3, 1fr); }
.nza-grid--4cols { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px)  { .nza-grid--3cols, .nza-grid--4cols { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .nza-grid { grid-template-columns: 1fr; } }

/* ============================================================
   CARTE FICHE (listing card)
   ============================================================ */
.nza-listing-card {
	background: #fff; border: 1px solid var(--nza-gray-200);
	border-radius: var(--nza-radius); overflow: hidden;
	box-shadow: var(--nza-shadow); transition: box-shadow var(--nza-transition), transform var(--nza-transition);
	display: flex; flex-direction: column; position: relative;
}
.nza-listing-card:hover { box-shadow: var(--nza-shadow-hover); transform: translateY(-2px); }
.nza-listing-card--featured { border-color: var(--nza-primary); }

/* Thumb (logo pleine largeur avec bordure blanche intérieure) */
.nza-listing-card__thumb {
	position: relative; height: 200px; flex-shrink: 0;
	background: #fff; border-bottom: 1px solid var(--nza-gray-200);
	display: flex; align-items: center; justify-content: center;
	padding: 16px; overflow: hidden;
}
.nza-listing-card__thumb img {
	max-height: 168px; max-width: calc(100% - 32px);
	object-fit: contain; display: block;
}
.nza-listing-card__thumb-placeholder {
	width: 80px; height: 80px; border-radius: 50%;
	background: var(--nza-primary); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 2.2rem; font-weight: 700;
}

/* Badge Populaire (overlay haut-gauche) */
.nza-card-badge {
	position: absolute; top: 10px; left: 10px;
	font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	padding: 3px 9px; border-radius: 99px;
}
.nza-card-badge--featured { background: var(--nza-primary); color: #fff; }

/* Bouton favori (overlay haut-droit) */
.nza-card-fav {
	position: absolute; top: 8px; right: 8px;
	width: 32px; height: 32px; border-radius: 50%;
	background: #fff; border: 1px solid var(--nza-gray-200);
	box-shadow: 0 1px 4px rgba(0,0,0,.12);
	cursor: pointer; display: flex; align-items: center; justify-content: center;
	color: var(--nza-gray-400); transition: color .15s, transform .15s;
	padding: 0;
}
.nza-card-fav:hover { transform: scale(1.12); color: #e11d48; }
.nza-card-fav--active { color: #e11d48; border-color: #fecdd3; }

/* Corps */
.nza-listing-card__body { padding: 14px 16px; flex: 1; display: flex; flex-direction: column; gap: 7px; }
.nza-listing-card__title { font-size: 1.15rem; font-weight: 700; margin: 0; line-height: 1.3; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.nza-listing-card__title a { color: var(--nza-gray-800); text-decoration: none; }
.nza-listing-card__title a:hover { color: var(--nza-primary); }

/* Badge "Populaire" inline dans le titre */
.nza-card-badge-inline {
	display: inline-block; background: var(--nza-primary); color: #fff;
	font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	padding: 2px 7px; border-radius: 99px; flex-shrink: 0;
}

/* Wrapper notes (NZA + Google côte à côte) */
.nza-listing-card__ratings { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* Badge note (toujours visible) */
.nza-listing-card__rating-badge {
	display: inline-flex; align-items: center; gap: 4px;
	background: var(--nza-gray-100); border: 1px solid var(--nza-gray-200);
	border-radius: 6px; padding: 3px 9px; font-size: .8rem; width: fit-content;
}
.nza-rating-score { font-weight: 700; color: var(--nza-gray-800); }
.nza-rating-star { color: #f0ad4e; }
.nza-rating-sep { color: var(--nza-gray-400); }
.nza-rating-count { color: var(--nza-gray-600); }

/* Badge note Google */
.nza-rating-google {
	display: inline-flex; align-items: center; gap: 4px;
	background: #fff; border: 1px solid #e8eaed;
	border-radius: 6px; padding: 3px 9px; font-size: .8rem; width: fit-content;
}
.nza-google-g { width: 14px; height: 14px; flex-shrink: 0; }

/* Infos de contact */
.nza-card-info { display: flex; align-items: flex-start; gap: 6px; font-size: .8rem; color: var(--nza-gray-700); line-height: 1.4; }
.nza-card-info__icon { flex-shrink: 0; width: 14px; text-align: center; margin-top: 1px; }
.nza-card-info__link { color: var(--nza-primary); text-decoration: none; }
.nza-card-info__link:hover { text-decoration: underline; }
.nza-card-info__text { flex: 1; }
.nza-card-distance { font-weight: 600; color: var(--nza-primary); }

/* Zones d'intervention */
.nza-card-zones { font-size: .75rem; color: var(--nza-gray-500); margin: 0; line-height: 1.5; }

/* Catégories */
.nza-listing-card__cats { display: flex; flex-wrap: wrap; gap: 4px; margin-top: auto; padding-top: 4px; }

/* Footer */
.nza-listing-card__footer {
	padding: 10px 16px; border-top: 1px solid var(--nza-gray-200);
	background: var(--nza-gray-100);
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.nza-listing-card__views { font-size: .8rem; color: var(--nza-gray-600); white-space: nowrap; }
.nza-card-cta { margin-left: auto; white-space: nowrap; }

/* ============================================================
   ÉTOILES
   ============================================================ */
.nza-star--full  { color: #f0ad4e; }
.nza-star--half  { color: #f0ad4e; opacity: .6; }
.nza-star--empty { color: var(--nza-gray-400); }
.nza-stars--lg { font-size: 1.4rem; }
.nza-stars--sm { font-size: .9rem; }

/* Star picker CSS */
.nza-star-picker { display: flex; flex-direction: row-reverse; gap: 4px; }
.nza-star-picker input { display: none; }
.nza-star-picker label { font-size: 2rem; color: var(--nza-gray-400); cursor: pointer; transition: color var(--nza-transition); }
.nza-star-picker label:hover,
.nza-star-picker label:hover ~ label,
.nza-star-picker input:checked ~ label { color: #f0ad4e; }

/* ============================================================
   FORMULAIRE DE RECHERCHE
   ============================================================ */
.nza-search-form { display: flex; flex-direction: column; gap: 12px; }
.nza-search-form__field { position: relative; }
.nza-search-form__field input[type=text] { padding-left: 36px; width: 100%; box-sizing: border-box; }
.nza-search-form__icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.nza-range-slider { width: 100%; accent-color: var(--nza-primary); }
.nza-range-labels { display: flex; justify-content: space-between; font-size: .75rem; color: var(--nza-gray-600); }
.nza-checkbox-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.nza-checkbox-label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: normal; }
.nza-checkbox-label--child { padding-left: 20px; font-size: .875rem; }
.nza-tags-list { display: flex; flex-wrap: wrap; gap: 6px; }
.nza-btn-geolocate { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; font-size: 1.1rem; }

/* ============================================================
   RÉSULTATS DE RECHERCHE — LAYOUT SIDEBAR + MAIN
   ============================================================ */
.nza-results-layout { display: grid; grid-template-columns: 260px 1fr; gap: 28px; }

/* Bouton mobile "Afficher les filtres" (caché sur desktop) */
.nza-mobile-filter-btn {
	display: none; align-items: center; gap: 8px;
	background: #fff; border: 1px solid var(--nza-gray-300); border-radius: var(--nza-radius);
	padding: 9px 16px; font-size: .875rem; font-weight: 600; cursor: pointer;
	color: var(--nza-gray-700); margin-bottom: 16px; width: 100%;
}
.nza-mobile-filter-btn__count {
	background: var(--nza-primary); color: #fff;
	font-size: .7rem; font-weight: 700; padding: 1px 6px; border-radius: 99px;
}

/* Sidebar (desktop) — sticky avec scroll interne si contenu > viewport */
.nza-results-sidebar {
	background: var(--nza-gray-100); border: 1px solid var(--nza-gray-200);
	border-radius: var(--nza-radius); padding: 20px 20px 0; position: sticky; top: 24px;
	max-height: calc(100vh - 40px); overflow-y: scroll;
	/* Scrollbar fine */
	scrollbar-width: thin;
	scrollbar-color: var(--nza-gray-300) transparent;
}
.nza-results-sidebar::-webkit-scrollbar { width: 3px; }
.nza-results-sidebar::-webkit-scrollbar-track { background: transparent; }
.nza-results-sidebar::-webkit-scrollbar-thumb { background: var(--nza-gray-300); border-radius: 99px; }
.nza-results-sidebar::-webkit-scrollbar-thumb:hover { background: var(--nza-gray-500); }

/* ── RESPONSIVE SIDEBAR ──────────────────────────────────────────────────
   Ce bloc doit rester APRÈS la règle desktop ci-dessus : à spécificité
   égale, c'est la dernière règle qui gagne. Placé avant, son position:fixed
   était écrasé par le position:sticky de la version bureau, et le panneau
   de filtres restait déplié en travers de la page sur mobile.
   ──────────────────────────────────────────────────────────────────────── */
@media (max-width: 860px) {
	.nza-results-layout { grid-template-columns: 1fr; }
	.nza-mobile-filter-btn { display: flex; }

	/* La sidebar devient un panneau glissant depuis le bas */
	.nza-results-sidebar {
		position: fixed; bottom: 0; left: 0; right: 0; top: auto;
		z-index: 400; border-radius: var(--nza-radius) var(--nza-radius) 0 0;
		max-height: 85vh; overflow-y: auto;
		transform: translateY(100%); transition: transform .3s ease;
		border: none; border-top: 2px solid var(--nza-primary);
	}
	.nza-results-sidebar.is-open { transform: translateY(0); z-index: 9500; }

	/* Fermé : hors flux, invisible et non cliquable, sous le header */
	.nza-results-sidebar:not(.is-open) {
		visibility: hidden; pointer-events: none; z-index: 1;
	}

	/* Backdrop mobile */
	.nza-sidebar-backdrop {
		display: none; position: fixed; inset: 0;
		background: rgba(0,0,0,.5); z-index: 9400;
	}
	.nza-sidebar-backdrop.is-open { display: block; }

	/* Bouton fermer en haut de la sidebar mobile */
	.nza-sidebar-close {
		display: flex; align-items: center; justify-content: space-between;
		padding: 12px 20px; margin: -20px -20px 16px;
		border-bottom: 1px solid var(--nza-gray-200);
		background: #fff; font-weight: 600; cursor: pointer; border: none; width: calc(100% + 40px);
		font-size: .9rem;
	}
}
@media (min-width: 861px) {
	.nza-sidebar-close { display: none; }
}


/* Boutons — sticky en bas du scroll container de la sidebar */
.nza-sidebar-actions {
	position: sticky; bottom: 0;
	background: var(--nza-gray-100); padding: 16px 0 20px;
	box-shadow: 0 -8px 16px rgba(248,249,250,.96);
	display: flex; flex-direction: column; gap: 8px;
}
.nza-sidebar-section { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--nza-gray-200); }
.nza-sidebar-section:last-of-type { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.nza-sidebar-section__title {
	font-size: .75rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: .06em; color: var(--nza-gray-600); margin: 0 0 10px;
}
.nza-sidebar-check {
	display: flex; align-items: center; gap: 8px;
	padding: 5px 0; cursor: pointer; font-size: .875rem;
	border-bottom: 1px solid var(--nza-gray-200);
}
.nza-sidebar-check:last-child { border-bottom: none; }
.nza-sidebar-check input { margin: 0; accent-color: var(--nza-primary); width: 15px; height: 15px; flex-shrink: 0; cursor: pointer; }
.nza-sidebar-check__name { flex: 1; }
.nza-sidebar-check__count { color: var(--nza-gray-600); font-size: .7rem; background: var(--nza-gray-200); padding: 1px 6px; border-radius: 99px; }
.nza-sidebar-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.nza-sidebar-form .nza-tag-toggle { font-size: .75rem; padding: 3px 8px; }

/* Département select */
.nza-sidebar-select {
	width: 100%; padding: 8px 32px 8px 10px; border: 1px solid var(--nza-gray-300);
	border-radius: var(--nza-radius); background: #fff; font-size: .875rem;
	color: var(--nza-gray-800); cursor: pointer; appearance: none; box-sizing: border-box;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 10px center;
}
.nza-sidebar-select:focus { outline: none; border-color: var(--nza-primary); }

/* Localisation sidebar */
.nza-sidebar-location { display: flex; align-items: center; gap: 6px; }
.nza-sidebar-location__input {
	flex: 1; padding: 8px 10px; border: 1px solid var(--nza-gray-300);
	border-radius: var(--nza-radius); font-size: .875rem; width: 0; min-width: 0; box-sizing: border-box;
}
.nza-sidebar-location__input:focus { outline: none; border-color: var(--nza-primary); }
.nza-btn-geolocate--sidebar {
	flex-shrink: 0; width: 34px; height: 34px; position: static; transform: none;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--nza-gray-300); border-radius: var(--nza-radius);
	background: #fff; cursor: pointer; font-size: 1rem; transition: background .15s;
}
.nza-btn-geolocate--sidebar:hover { background: var(--nza-gray-100); }


/* Menu déroulant tags */
.nza-tags-dropdown-toggle {
	display: flex; align-items: center; justify-content: space-between;
	width: 100%; background: none; border: none; padding: 0; cursor: pointer;
	font-size: .75rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: .06em; color: var(--nza-gray-600); margin: 0 0 10px; text-align: left;
}
.nza-tags-dropdown-toggle:hover { color: var(--nza-gray-800); }
.nza-tags-dropdown-badge {
	background: var(--nza-primary); color: #fff; font-size: .65rem; font-weight: 700;
	padding: 1px 6px; border-radius: 99px; margin-left: 6px; letter-spacing: 0;
}
.nza-tags-dropdown-arrow { margin-left: auto; font-size: .8rem; color: var(--nza-gray-500); }
.nza-tags-dropdown-panel { display: flex; flex-direction: column; }
.nza-tags-dropdown-panel[hidden] { display: none; }

/* Header résultats */
.nza-results__header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.nza-results__count { font-size: .9rem; color: var(--nza-gray-600); }
.nza-results__sort select { padding: 6px 12px; border: 1px solid var(--nza-gray-400); border-radius: var(--nza-radius); font-size: .875rem; }
.nza-results__map { border-radius: var(--nza-radius); overflow: hidden; margin-bottom: 24px; }

/* Auto-complétion */
.nza-autocomplete-list { position: absolute; z-index: 999; background: #fff; border: 1px solid var(--nza-gray-400); border-radius: 0 0 var(--nza-radius) var(--nza-radius); max-height: 200px; overflow-y: auto; width: 100%; list-style: none; margin: 0; padding: 0; }
.nza-autocomplete-list li { padding: 8px 12px; cursor: pointer; font-size: .875rem; }
.nza-autocomplete-list li:hover { background: var(--nza-gray-100); }

/* ============================================================
   CARTE OSM
   ============================================================ */
.nza-map { border-radius: var(--nza-radius); overflow: hidden; z-index: 0; }
.nza-marker { display: block; line-height: 0; filter: drop-shadow(0 2px 3px rgba(60,91,244,.35)); }
.nza-map-popup { min-width: 150px; font-size: .85rem; line-height: 1.4; }
.nza-map-popup__link { color: var(--nza-primary); font-weight: 600; text-decoration: none; }

/* ============================================================
   DASHBOARD
   ============================================================ */
.nza-dashboard__header { display: flex; align-items: center; gap: 16px; padding: 20px; background: var(--nza-gray-100); border-radius: var(--nza-radius); margin-bottom: 24px; }
.nza-dashboard__avatar img { border-radius: 50%; object-fit: cover; }
.nza-dashboard__name { font-size: 1.1rem; font-weight: 700; margin: 0 0 4px; }
.nza-dashboard__company { color: var(--nza-gray-600); font-size: .9rem; }
.nza-dashboard__logout { margin-left: auto; }
.nza-dashboard__tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--nza-gray-200); margin-bottom: 24px; }
.nza-dashboard__tab { padding: 10px 20px; color: var(--nza-gray-600); text-decoration: none; font-weight: 600; border-bottom: 3px solid transparent; margin-bottom: -2px; font-size: .9rem; transition: color var(--nza-transition); display: flex; align-items: center; gap: 6px; }
.nza-dashboard__tab:hover { color: var(--nza-primary); }
.nza-dashboard__tab--active { color: var(--nza-primary); border-color: var(--nza-primary); }
.nza-dashboard__listing-preview { background: var(--nza-gray-100); border-radius: var(--nza-radius); padding: 20px; }
.nza-dashboard__listing-info { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
.nza-dashboard__listing-logo { max-height: 60px; max-width: 100px; object-fit: contain; }
.nza-dashboard__listing-stats { display: flex; gap: 24px; margin-bottom: 16px; }
.nza-stat { text-align: center; }
.nza-stat__value { display: block; font-size: 1.5rem; font-weight: 700; color: var(--nza-primary); }
.nza-stat__label { font-size: .75rem; color: var(--nza-gray-600); }
.nza-dashboard__listing-actions { display: flex; gap: 10px; }
.nza-dashboard__no-listing { text-align: center; padding: 40px 20px; }
.nza-dashboard__no-listing-icon { font-size: 3rem; margin-bottom: 12px; }

/* ============================================================
   CARD AUTH (login / register)
   ============================================================ */
.nza-card { background: #fff; border: 1px solid var(--nza-gray-200); border-radius: var(--nza-radius); padding: 32px; max-width: 480px; margin: 0 auto; box-shadow: var(--nza-shadow); }
.nza-card__title { font-size: 1.3rem; font-weight: 700; margin: 0 0 8px; color: var(--nza-primary-dark); }
.nza-card__subtitle { color: var(--nza-gray-600); font-size: .9rem; margin-bottom: 24px; }
.nza-card__footer { text-align: center; margin-top: 20px; font-size: .875rem; color: var(--nza-gray-600); }

/* ============================================================
   CLAIM
   ============================================================ */
.nza-claim-box { background: var(--nza-gray-100); border: 1px dashed var(--nza-gray-400); border-radius: var(--nza-radius); padding: 20px; margin-top: 24px; }
.nza-claim-box__title { font-size: 1rem; font-weight: 700; margin: 0 0 8px; }
.nza-claim-box__actions { display: flex; gap: 10px; margin-top: 12px; }
.nza-claim-badge { display: flex; align-items: center; gap: 8px; color: var(--nza-success); font-size: .875rem; font-weight: 600; margin-top: 16px; }

/* hCaptcha widget */
.nza-hcaptcha { margin-bottom: 16px; }

/* Page autonome [nuizibles_claim] sans listing_id */
.nza-claim-intro { text-align: center; max-width: 560px; margin: 48px auto; }
.nza-claim-intro__title { font-size: 1.6rem; font-weight: 800; color: #111827; margin: 0 0 14px; }
.nza-claim-intro p { color: var(--nza-gray-600); font-size: 1rem; line-height: 1.6; margin: 0 0 28px; }
.nza-claim-intro .nza-btn { display: inline-flex; }

/* ============================================================
   AVIS
   ============================================================ */
.nza-reviews__header { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; }
.nza-reviews__title { font-size: 1.1rem; font-weight: 700; margin: 0; }
.nza-reviews__avg { display: flex; align-items: center; gap: 8px; }
.nza-reviews__avg-score { font-size: 2rem; font-weight: 700; color: var(--nza-primary); line-height: 1; }
.nza-review-item { border-bottom: 1px solid var(--nza-gray-200); padding: 16px 0; }
.nza-review-item__header { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.nza-review-item__author { font-weight: 700; }
.nza-review-item__date { color: var(--nza-gray-600); font-size: .8rem; margin-left: auto; }
.nza-review-item__content { margin: 0; color: var(--nza-gray-800); font-size: .9rem; line-height: 1.6; }
.nza-review-form-card { background: var(--nza-gray-100); border-radius: var(--nza-radius); padding: 20px; margin-top: 24px; }
.nza-reviews__empty { color: var(--nza-gray-600); font-style: italic; }

/* ============================================================
   GALERIE (formulaire fiche)
   ============================================================ */
.nza-gallery-preview { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.nza-gallery-item { position: relative; }
.nza-gallery-item img { width: 80px; height: 80px; object-fit: cover; border-radius: 4px; border: 1px solid var(--nza-gray-200); }
.nza-gallery-remove { position: absolute; top: 2px; right: 2px; background: rgba(0,0,0,.6); color: #fff; border: none; border-radius: 50%; width: 20px; height: 20px; cursor: pointer; font-size: 12px; display: flex; align-items: center; justify-content: center; line-height: 1; }

/* ============================================================
   PAGINATION
   ============================================================ */
.nza-pagination { display: flex; justify-content: center; align-items: center; gap: 4px; margin-top: 32px; flex-wrap: wrap; }
.nza-pagination__page {
	padding: 8px 14px; border: 1px solid var(--nza-gray-400); border-radius: var(--nza-radius);
	background: #fff; cursor: pointer; font-size: .875rem; transition: var(--nza-transition);
	text-decoration: none; color: var(--nza-gray-800); display: inline-flex; align-items: center; justify-content: center;
}
.nza-pagination__page:hover { background: var(--nza-primary); color: #fff; border-color: var(--nza-primary); }
.nza-pagination__page--active { background: var(--nza-primary); color: #fff; border-color: var(--nza-primary); }
.nza-pagination__dots { padding: 0 4px; color: var(--nza-gray-600); font-size: .875rem; pointer-events: none; }

/* ============================================================
   ICONES SVG INLINE
   ============================================================ */
.nza-icon {
	display: inline-block; width: 16px; height: 16px; vertical-align: middle;
	stroke: currentColor; fill: none; stroke-width: 2;
	stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0;
}

/* ============================================================
   FICHE SINGLE — HEADER
   ============================================================ */
.nza-single { max-width: 1080px; margin: 0 auto; padding: 20px 16px 40px; }

.nza-single__header {
	display: flex; align-items: flex-start; gap: 20px;
	background: #fff; border: 1px solid var(--nza-gray-200);
	border-radius: var(--nza-radius); padding: 24px;
	box-shadow: var(--nza-shadow); margin-bottom: 24px;
}
.nza-single__header-logo {
	flex-shrink: 0; width: 100px; height: 100px;
	background: var(--nza-gray-100); border-radius: var(--nza-radius);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden; border: 1px solid var(--nza-gray-200);
}
.nza-single__header-logo img { max-width: 100%; max-height: 100%; object-fit: contain; padding: 8px; }
.nza-single__logo-placeholder {
	width: 100%; height: 100%; background: var(--nza-primary); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 2.5rem; font-weight: 700;
}
.nza-single__header-info { flex: 1; min-width: 0; }
.nza-single__title { font-size: 1.6rem; font-weight: 800; margin: 0 0 6px; color: var(--nza-gray-800); line-height: 1.2; }
.nza-single__tagline { color: var(--nza-gray-600); font-size: .95rem; margin: 0 0 10px; }
.nza-single__meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 10px; }
.nza-single__rating { display: flex; align-items: center; gap: 6px; font-size: .9rem; }
.nza-single__rating-score { font-weight: 700; color: var(--nza-primary); font-size: 1rem; }
.nza-single__review-count { color: var(--nza-gray-600); font-size: .85rem; }
.nza-single__location { display: flex; align-items: center; gap: 4px; font-size: .9rem; color: var(--nza-gray-600); }
.nza-single__cats { display: flex; flex-wrap: wrap; gap: 6px; }
.nza-single__header-cta { flex-shrink: 0; }
.nza-badge--accent { background: var(--nza-accent); color: #fff; }

@media (max-width: 700px) {
	.nza-single__header { flex-direction: column; align-items: center; text-align: center; }
	.nza-single__header-logo { width: 80px; height: 80px; }
	.nza-single__title { font-size: 1.3rem; }
	.nza-single__meta-row { justify-content: center; }
	.nza-single__cats { justify-content: center; }
	.nza-single__header-cta { width: 100%; }
	.nza-single__header-cta .nza-btn { width: 100%; justify-content: center; }
}

/* ============================================================
   FICHE SINGLE — LAYOUT 2 COLONNES
   ============================================================ */
.nza-single__layout { display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start; }
@media (max-width: 860px) { .nza-single__layout { grid-template-columns: 1fr; } }

/* ============================================================
   FICHE SINGLE — SECTIONS (colonne principale)
   ============================================================ */
.nza-single__section {
	background: var(--nza-gray-100); border: 1px solid var(--nza-gray-200);
	border-radius: var(--nza-radius); padding: 20px 24px; margin-bottom: 20px;
}
.nza-single__section-title {
	font-size: 1rem; font-weight: 700; color: var(--nza-primary-dark);
	margin: 0 0 14px; padding: 0 0 10px;
	display: flex; align-items: center; gap: 8px;
	border-bottom: 2px solid var(--nza-gray-200); line-height: 1.3;
}
.nza-single__section-title .nza-icon { width: 18px; height: 18px; color: var(--nza-primary); }
.nza-single__description { color: var(--nza-gray-800); line-height: 1.7; font-size: 1.05rem; font-weight: 400; }
.nza-single__description p { margin: 0 0 12px; }
.nza-single__description p:last-child { margin-bottom: 0; }
.nza-single__tags { display: flex; flex-wrap: wrap; gap: 6px; }

/* Galerie */
.nza-single__gallery {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px;
}
.nza-single__gallery-item { display: block; border-radius: 6px; overflow: hidden; aspect-ratio: 1; }
.nza-single__gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--nza-transition); }
.nza-single__gallery-item:hover img { transform: scale(1.05); }

/* Vidéo */
.nza-single__video-wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: var(--nza-radius); }
.nza-video-embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }

/* Réseaux sociaux */
.nza-single__socials { display: flex; flex-wrap: wrap; gap: 10px; }
.nza-single__social-link {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 16px; border-radius: var(--nza-radius);
	font-size: .875rem; font-weight: 600; text-decoration: none;
	border: 2px solid var(--nza-gray-300); color: var(--nza-gray-800);
	transition: var(--nza-transition); background: #fff;
}
.nza-single__social-link .nza-icon { width: 18px; height: 18px; }
.nza-single__social-link:hover { color: #fff; border-color: transparent; }
.nza-single__social-link--facebook:hover  { background: #1877f2; }
.nza-single__social-link--instagram:hover { background: #e4405f; }
.nza-single__social-link--linkedin:hover  { background: #0077b5; }
.nza-single__social-link--twitter:hover   { background: #000; }
.nza-single__social-link--youtube:hover   { background: #ff0000; }
.nza-single__social-link svg { stroke: currentColor; fill: none; }
.nza-single__social-link--youtube svg polygon { fill: currentColor; stroke: none; }

/* DL certifications */
.nza-single__dl { display: grid; grid-template-columns: 140px 1fr; gap: 8px 16px; font-size: .9rem; }
.nza-single__dl dt { font-weight: 700; color: var(--nza-gray-600); }
.nza-single__dl dd { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }

/* ============================================================
   FICHE SINGLE — CARDS SIDEBAR
   ============================================================ */
.nza-single__card {
	background: #fff; border: 1px solid var(--nza-gray-200);
	border-radius: var(--nza-radius); padding: 14px 16px;
	box-shadow: var(--nza-shadow); margin-bottom: 16px;
}
.nza-single__card--map { padding: 0; overflow: hidden; }
.nza-single__card--map .nza-single__card-title { padding: 16px 14px 8px; margin: 0; }
.nza-single__card--claim { background: var(--nza-gray-100); border-style: dashed; text-align: center; }
.nza-single__card--owner { background: #f0f8f4; border-color: var(--nza-primary-light); }

.nza-single__card-title {
	font-size: .9rem; font-weight: 700; color: var(--nza-primary-dark);
	margin: 0 0 12px; padding: 0;
	display: flex; align-items: center; gap: 8px;
	line-height: 1.3;
}
.nza-single__card-title .nza-icon { width: 16px; height: 16px; color: var(--nza-primary); }

/* Contact list */
.nza-single__contact-list { list-style: none; margin: 0; padding: 0; }
.nza-single__contact-list li {
	display: flex; align-items: flex-start; gap: 10px;
	padding: 8px 0; border-bottom: 1px solid var(--nza-gray-100); font-size: .875rem;
}
.nza-single__contact-list li:last-child { border-bottom: none; padding-bottom: 0; }
.nza-single__contact-list .nza-icon { flex-shrink: 0; margin-top: 2px; color: var(--nza-primary); }
.nza-single__contact-list a { color: var(--nza-primary); text-decoration: none; font-weight: 600; word-break: break-all; }
.nza-single__contact-list a:hover { text-decoration: underline; }
.nza-single__contact-list address { font-style: normal; color: var(--nza-gray-800); }

/* Map sidebar */
.nza-single__map { height: 280px; width: 100%; display: block; }
.nza-single__map-link { margin: 0; padding: 6px 14px; font-size: .75rem; text-align: left; }

/* Claim texts */
.nza-single__claim-text { font-size: .875rem; color: var(--nza-gray-600); margin: 0 0 12px; }

/* ============================================================
   FICHE SINGLE — SECTION AVIS
   ============================================================ */
.nza-single__reviews { margin-top: 24px; }

/* Retour aux résultats */
.nza-single__back { margin-top: 24px; }
.nza-back-link {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: .875rem; font-weight: 600; color: var(--nza-gray-600);
	text-decoration: none; transition: color .15s;
}
.nza-back-link:hover { color: var(--nza-primary); }
.nza-back-link svg { flex-shrink: 0; transition: transform .15s; }
.nza-back-link:hover svg { transform: translateX(-3px); }

/* ============================================================
   MODAL AUTH (connexion / inscription)
   ============================================================ */
.nza-auth-modal {
	display: none; position: fixed; inset: 0; z-index: 9000;
	align-items: center; justify-content: center; padding: 16px;
}
.nza-auth-modal.is-open { display: flex; }

.nza-auth-modal__backdrop {
	position: absolute; inset: 0; background: rgba(0,0,0,.75);
	cursor: pointer;
}
.nza-auth-modal__panel {
	position: relative; background: #fff; border-radius: 12px;
	padding: 32px 28px; width: 100%; max-width: 420px;
	box-shadow: 0 20px 60px rgba(0,0,0,.25);
	animation: nzaModalIn .22s ease;
}
@keyframes nzaModalIn {
	from { transform: translateY(16px); opacity: 0; }
	to   { transform: translateY(0);    opacity: 1; }
}
.nza-auth-modal__close {
	position: absolute; top: 14px; right: 14px;
	width: 30px; height: 30px; border-radius: 50%;
	background: var(--nza-gray-100); border: none; cursor: pointer;
	font-size: 1rem; line-height: 1; display: flex; align-items: center; justify-content: center;
	color: var(--nza-gray-600); transition: background .15s;
}
.nza-auth-modal__close:hover { background: var(--nza-gray-200); }
.nza-auth-modal__title { font-size: 1.25rem; font-weight: 700; margin: 0 0 4px; }
.nza-auth-modal__subtitle { color: var(--nza-gray-600); font-size: .875rem; margin: 0 0 20px; }
.nza-auth-modal__form .nza-field { margin-bottom: 14px; }
.nza-auth-modal__form label { display: block; font-size: .8rem; font-weight: 600; margin-bottom: 5px; color: var(--nza-gray-700); }
.nza-auth-modal__form input[type=email],
.nza-auth-modal__form input[type=password] {
	width: 100%; padding: 9px 12px; border: 1px solid var(--nza-gray-300);
	border-radius: var(--nza-radius); font-size: .9rem; box-sizing: border-box;
}
.nza-auth-modal__form input:focus { outline: none; border-color: var(--nza-primary); }
.nza-auth-modal__links { display: flex; justify-content: space-between; align-items: center; margin-top: 4px; }
.nza-auth-modal__forgot { font-size: .8rem; color: var(--nza-gray-600); text-decoration: none; }
.nza-auth-modal__forgot:hover { text-decoration: underline; }
.nza-auth-modal__footer { text-align: center; margin-top: 16px; font-size: .875rem; color: var(--nza-gray-600); border-top: 1px solid var(--nza-gray-200); padding-top: 16px; }
.nza-auth-modal__footer a { color: var(--nza-primary); font-weight: 600; text-decoration: none; }
.nza-auth-modal__footer a:hover { text-decoration: underline; }

/* ============================================================
   NAV BUTTONS [nuizibles_nav_buttons]
   ============================================================ */
.nza-nav-buttons {
	display: flex; align-items: center; gap: 8px;
}
.nza-nav-btn {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 16px; border-radius: 6px; font-size: .875rem;
	font-weight: 600; cursor: pointer; text-decoration: none;
	border: none; transition: background .2s, color .2s;
	white-space: nowrap; line-height: 1;
}
.nza-nav-btn--login {
	background: transparent; color: var(--nza-c-login, var(--nza-primary));
	border: 2px solid var(--nza-c-login, var(--nza-primary));
}
.nza-nav-btn--login:hover { background: var(--nza-c-login, var(--nza-primary)); color: #fff; }
.nza-nav-btn--dashboard {
	background: var(--nza-primary); color: #fff;
	border: 2px solid transparent;
}
.nza-nav-btn--dashboard:hover { background: var(--nza-primary-dark); color: #fff; }
.nza-nav-btn--pro {
	background: var(--nza-c-pro, var(--nza-accent)); color: #fff;
	border: 2px solid transparent;
}
.nza-nav-btn--pro:hover { filter: brightness(.88); }

/* Dropdown */
.nza-nav-dropdown { position: relative; }
.nza-nav-dropdown__arrow { transition: transform .2s; margin-left: 2px; }
.nza-nav-btn[aria-expanded="true"] .nza-nav-dropdown__arrow { transform: rotate(180deg); }
.nza-nav-dropdown__panel {
	position: absolute; top: calc(100% + 8px); right: 0;
	background: #fff; border: 1px solid var(--nza-gray-200);
	border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12);
	min-width: 280px; z-index: 9999; overflow: hidden;
}
.nza-nav-dropdown__panel[hidden] { display: none; }
.nza-nav-dropdown__item {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 16px; text-decoration: none; color: inherit;
	border-bottom: 1px solid var(--nza-gray-200); transition: background .15s;
}
.nza-nav-dropdown__item:last-child { border-bottom: none; }
.nza-nav-dropdown__item:hover { background: var(--nza-gray-100); }
.nza-nav-dropdown__item svg { flex-shrink: 0; color: var(--nza-primary); }
.nza-nav-dropdown__item span { display: flex; flex-direction: column; gap: 2px; }
.nza-nav-dropdown__item strong { font-size: .9rem; color: var(--nza-primary-dark); }
.nza-nav-dropdown__item small { font-size: .75rem; color: var(--nza-gray-600); }

/* ============================================================
   UTILITAIRES
   ============================================================ */
.nza-text-muted   { color: var(--nza-gray-600); }
.nza-text-sm      { font-size: .8rem; }
.nza-text-center  { text-align: center; }
.nza-empty        { text-align: center; padding: 48px 24px; color: var(--nza-gray-600); }
.nza-checkbox-label input { margin-right: 6px; }

/* ============================================================
   NOUVEAU FORMULAIRE RECHERCHE — Hero compact
   ============================================================ */

/* Wrapper : fond dépend du contexte (hero Elementor gère le background) */
.nza-search-form--hero {
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
}

/* ── Barre principale ── */
/* overflow: visible est OBLIGATOIRE pour que les dropdowns autocomplete s'affichent */
.nza-search-bar {
	display: flex;
	align-items: stretch;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 4px 24px rgba(0,0,0,.18);
	overflow: visible;
	border: 1px solid rgba(0,0,0,.08);
	min-height: 60px;
}

/* Les coins arrondis sont portés par les enfants extrêmes */
.nza-search-bar__field:first-child { border-radius: 14px 0 0 14px; }
.nza-search-bar__submit            { border-radius: 0 14px 14px 0; }

.nza-search-bar__field {
	display: flex;
	align-items: center;
	flex: 1;
	min-width: 0;
	position: relative;
}

/* Séparateur entre champs via pseudo-élément — invisible dans le DOM */
.nza-search-bar__field--location::before {
	content: '';
	display: block;
	width: 1px;
	height: 28px;
	background: var(--nza-gray-200);
	flex-shrink: 0;
}

.nza-search-bar__field--keyword  { flex: 6; }
.nza-search-bar__field--location { flex: 3.5; }

.nza-search-bar__icon {
	padding: 0 10px 0 16px;
	color: var(--nza-gray-600);
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.nza-search-bar__field input[type="text"] {
	flex: 1;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	padding: 18px 12px 18px 0;
	font-size: 1rem;
	background: transparent;
	min-width: 0;
	color: var(--nza-gray-800);
}

.nza-search-bar__field input[type="text"]::placeholder {
	color: var(--nza-gray-600);
}

.nza-search-bar__sep {
	width: 1px;
	background: var(--nza-gray-200);
	margin: 12px 0;
	flex-shrink: 0;
}

/* Bouton géoloc intégré dans le champ location */
.nza-search-bar__geoloc {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0 14px;
	font-size: 1.1rem;
	display: flex;
	align-items: center;
	color: var(--nza-gray-600);
	transition: color var(--nza-transition);
	flex-shrink: 0;
}

.nza-search-bar__geoloc:hover { color: var(--nza-primary); }

/* Bouton rechercher */
.nza-search-bar__submit {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 28px;
	background: var(--nza-c-search, var(--nza-primary));
	color: #fff;
	border: none;
	cursor: pointer;
	font-weight: 700;
	font-size: .95rem;
	white-space: nowrap;
	transition: filter var(--nza-transition);
	flex-shrink: 0;
	border-radius: 0 14px 14px 0;
}

.nza-search-bar__submit:hover { filter: brightness(1.12); }

/* ── Ligne toggle ── */
.nza-search-advanced-row {
	display: flex;
	align-items: center;
	margin-top: 10px;
	padding: 0 4px;
}

.nza-search-advanced-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	cursor: pointer;
	font-size: .85rem;
	font-weight: 500;
	color: rgba(255,255,255,.88);
	padding: 4px 0;
	transition: color var(--nza-transition);
}

.nza-search-advanced-toggle:hover { color: #fff; }

/* Variante sur fond clair (formulaire standalone) */
.nza-search-form-wrap--light .nza-search-advanced-toggle {
	color: var(--nza-gray-600);
}

.nza-search-advanced-toggle__arrow {
	display: inline-block;
	transition: transform .2s ease;
}

.nza-search-advanced-toggle[aria-expanded="true"] .nza-search-advanced-toggle__arrow {
	transform: rotate(180deg);
}

/* ── Panneau avancé ── */
.nza-search-advanced {
	background: #fff;
	border-radius: 12px;
	padding: 22px 24px 18px;
	margin-top: 10px;
	box-shadow: 0 6px 28px rgba(0,0,0,.16);
	animation: nzaSlideDown .18s ease;
}

@keyframes nzaSlideDown {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}

.nza-search-advanced__grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 28px;
	align-items: start;
}

/* Colonne gauche : type d'intervention + rayon empilés */
.nza-search-advanced__col--left {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.nza-search-advanced__subblock { /* conteneur d'un bloc (cats ou radius) */ }

.nza-search-advanced__label {
	font-weight: 700;
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--nza-gray-600);
	margin: 0 0 10px;
}

/* Tags cloud */
.nza-tags-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.nza-search-advanced__col--tags .nza-tag-toggle {
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	border: 1px solid var(--nza-gray-400);
	border-radius: 20px;
	cursor: pointer;
	font-size: .82rem;
	background: #fff;
	transition: all var(--nza-transition);
	white-space: nowrap;
}

.nza-search-advanced__col--tags .nza-tag-toggle input { display: none; }

.nza-search-advanced__col--tags .nza-tag-toggle--active,
.nza-search-advanced__col--tags .nza-tag-toggle:hover {
	background: var(--nza-primary);
	border-color: var(--nza-primary);
	color: #fff;
}

/* Catégories checkboxes */
.nza-search-advanced__col--cats .nza-checkbox-label {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 5px 0;
	font-size: .875rem;
	cursor: pointer;
	color: var(--nza-gray-800);
}

.nza-search-advanced__col--cats .nza-checkbox-label:hover { color: var(--nza-primary); }

.nza-search-advanced__col--cats .nza-checkbox-label input[type="checkbox"] {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	accent-color: var(--nza-primary);
}

/* Rayon */
.nza-search-advanced__col--radius .nza-search-advanced__label strong {
	color: var(--nza-primary);
	font-size: 1.05em;
}

/* ── Autocomplete adresse (champ localisation) ── */
/* position:absolute obligatoire — sinon il devient un flex-item et crée un artefact visuel */
.nza-autocomplete-list {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid var(--nza-gray-200);
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0,0,0,.14);
	list-style: none;
	margin: 0;
	padding: 4px 0;
	z-index: 9999;
	max-height: 240px;
	overflow-y: auto;
	display: none;
}

.nza-autocomplete-list li {
	padding: 10px 16px;
	cursor: pointer;
	font-size: .875rem;
	color: var(--nza-gray-800);
	line-height: 1.3;
	transition: background var(--nza-transition);
}

.nza-autocomplete-list li:hover { background: var(--nza-gray-100); color: var(--nza-primary); }

/* ── Autocomplete pros ── */
.nza-pros-list {
	position: absolute;
	display: none;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	background: #fff;
	border: 1px solid var(--nza-gray-200);
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0,0,0,.14);
	list-style: none;
	margin: 0;
	padding: 4px 0;
	z-index: 9999;
	max-height: 380px;
	overflow-y: auto;
}

.nza-pros-list li {
	padding: 10px 16px;
	cursor: pointer;
	font-size: .9rem;
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--nza-gray-800);
	transition: background var(--nza-transition);
}

.nza-pros-list li.nza-ac-term::before    { content: '🔍'; font-size: .85rem; flex-shrink: 0; }
.nza-pros-list li.nza-ac-pro::before     { content: '🏢'; font-size: .85rem; flex-shrink: 0; }
.nza-pros-list li.nza-ac-article::before { content: '📄'; font-size: .85rem; flex-shrink: 0; }

/* Filet séparateur avant les articles */
.nza-pros-list li.nza-ac-separator {
	padding: 0; height: 2px; margin: 4px 12px;
	background: var(--nza-gray-400); cursor: default; pointer-events: none;
}
.nza-pros-list li.nza-ac-separator:hover { background: var(--nza-gray-400); }

.nza-pros-list li:not(.nza-ac-separator):hover { background: var(--nza-gray-100); color: var(--nza-primary); }

/* ── Responsive ── */
@media (max-width: 768px) {
	.nza-search-bar {
		flex-direction: column;
		border-radius: 12px;
	}

	.nza-search-bar__field { border-bottom: 1px solid var(--nza-gray-200); }
	.nza-search-bar__field--keyword,
	.nza-search-bar__field--location { flex: initial; }

	.nza-search-bar__sep { display: none; }

	.nza-search-bar__submit {
		border-radius: 0 0 12px 12px;
		justify-content: center;
		padding: 16px;
		width: 100%;
	}

	.nza-search-advanced__grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.nza-search-advanced-toggle { color: var(--nza-gray-600); }
}

@media (max-width: 480px) {
	.nza-search-bar__submit span { display: none; }
}

/* ── Refinements visuels (v1.5.1) ── */

/* Barre plus haute, séparateur vertical style The Canvas */
.nza-search-bar { min-height: 68px; }

.nza-search-bar__sep {
	width: 1px;
	background: linear-gradient(to bottom, transparent, var(--nza-gray-300), transparent);
	margin: 0;
	height: 36px;
	align-self: center;
}

/* Bouton submit — couleur pilotée par var(--nza-c-search) (Réglages → Apparence) */
.nza-search-bar__submit {
	background: var(--nza-c-search, #111);
	padding: 0 32px;
	letter-spacing: .01em;
}
.nza-search-bar__submit:hover { filter: brightness(1.12); }

/* Toggle "Filtres avancés" : noir par défaut (fonds clairs) */
.nza-search-advanced-toggle { color: var(--nza-gray-800) !important; font-weight: 600; }
.nza-search-advanced-toggle:hover { color: #111 !important; }
/* Sur fond sombre : ajouter la classe nza-search-form-wrap--dark au wrapper */
.nza-search-form-wrap--dark .nza-search-advanced-toggle { color: rgba(255,255,255,.88) !important; }
.nza-search-form-wrap--dark .nza-search-advanced-toggle:hover { color: #fff !important; }

/* Géoloc : SVG uniquement, pas d'emoji, pas de bordure (séparateur via ::before du parent) */
.nza-search-bar__geoloc {
	color: var(--nza-gray-600);
	padding: 0 16px;
	height: 36px;
	align-self: center;
}
.nza-search-bar__geoloc:hover { color: var(--nza-primary); background: none; }

/* ── Trending searches ── */
.nza-trending {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 14px;
	padding: 0 2px;
}

.nza-trending__label {
	font-size: .78rem;
	font-weight: 600;
	color: rgba(255,255,255,.65);
	flex-shrink: 0;
	letter-spacing: .02em;
}

.nza-trending__pill {
	display: inline-flex;
	align-items: center;
	padding: 5px 14px;
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 20px;
	font-size: .8rem;
	font-weight: 500;
	color: rgba(255,255,255,.88);
	text-decoration: none;
	background: rgba(255,255,255,.1);
	transition: all var(--nza-transition);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.nza-trending__pill:hover {
	background: rgba(255,255,255,.22);
	border-color: rgba(255,255,255,.6);
	color: #fff;
	text-decoration: none;
}

/* Sur fond clair (classe .nza-search-form-wrap--light sur le wrapper) */
.nza-search-form-wrap--light .nza-trending__label  { color: var(--nza-gray-600); }
.nza-search-form-wrap--light .nza-trending__pill {
	border-color: var(--nza-gray-400);
	color: var(--nza-gray-800);
	background: #fff;
	backdrop-filter: none;
}
.nza-search-form-wrap--light .nza-trending__pill:hover { background: var(--nza-gray-100); color: var(--nza-primary); }

/* ── Section headers style Airbnb (plus grands, pas all-caps) ── */
.nza-search-advanced__label {
	font-weight: 700;
	font-size: .92rem !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	color: var(--nza-gray-800) !important;
	margin: 0 0 14px !important;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--nza-gray-200);
}

/* ── Catégories — cartes style Airbnb ── */
.nza-search-advanced__subblock .nza-cat-card + .nza-cat-card { margin-top: 7px; }

.nza-cat-card {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 10px 13px;
	border: 1.5px solid var(--nza-gray-400);
	border-radius: 10px;
	cursor: pointer;
	font-size: .875rem;
	color: var(--nza-gray-800);
	background: #fff;
	transition: border-color var(--nza-transition), background var(--nza-transition), box-shadow var(--nza-transition);
	user-select: none;
	line-height: 1.2;
}

.nza-cat-card input[type="checkbox"] { display: none; }

.nza-cat-card .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
	color: var(--nza-gray-600);
	flex-shrink: 0;
	transition: color var(--nza-transition);
}

.nza-cat-card:hover {
	border-color: var(--nza-gray-800);
	box-shadow: 0 1px 4px rgba(0,0,0,.08);
}

.nza-cat-card--active {
	border-color: var(--nza-c-filter-bg, var(--nza-gray-800));
	border-width: 2px;
	background: var(--nza-c-filter-bg, var(--nza-gray-100));
	font-weight: 700;
	color: var(--nza-c-filter-text, var(--nza-gray-800));
}

.nza-cat-card--active .dashicons { color: var(--nza-c-filter-text, var(--nza-gray-800)); }

/* ── Tags cloud : pills style Airbnb Amenities ── */
.nza-search-advanced__col--tags .nza-tag-toggle {
	padding: 6px 14px;
	border-radius: 20px;
	font-size: .83rem;
	font-weight: 500;
	border-color: var(--nza-gray-400);
	transition: border-color var(--nza-transition), background var(--nza-transition), color var(--nza-transition);
}

.nza-search-advanced__col--tags .nza-tag-toggle:hover { border-color: var(--nza-gray-800); background: #fff; color: var(--nza-gray-800); }
.nza-search-advanced__col--tags .nza-tag-toggle--active { background: var(--nza-c-filter-bg, var(--nza-gray-800)); border-color: var(--nza-c-filter-bg, var(--nza-gray-800)); color: var(--nza-c-filter-text, #fff); }

/* ── Rayon : valeur bien visible ── */
.nza-search-advanced__col--radius .nza-search-advanced__label strong {
	font-size: 1.15em;
	color: var(--nza-gray-800);
}

/* ── Panneau avancé : padding plus généreux ── */
.nza-search-advanced {
	padding: 26px 28px 22px;
	border-radius: 14px;
}

.nza-search-advanced__grid { gap: 32px; }

/* ── Toggle filtres avancés : bouton pills style toggle ── */
.nza-search-advanced-row { margin-top: 14px; }

.nza-search-advanced-toggle {
	padding: 6px 16px;
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 20px;
	background: rgba(255,255,255,.1);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .01em;
}

.nza-search-advanced-toggle:hover {
	background: rgba(255,255,255,.2);
	border-color: rgba(255,255,255,.5);
}

.nza-search-advanced-toggle[aria-expanded="true"] {
	background: rgba(255,255,255,.2);
}

/* Sur fond clair */
.nza-search-form-wrap--light .nza-search-advanced-toggle {
	border-color: var(--nza-gray-400);
	background: #fff;
	color: var(--nza-gray-800);
	backdrop-filter: none;
}

@media (max-width: 768px) {
	.nza-trending { margin-top: 10px; }
	.nza-trending__label { display: none; }
}

/* Header de catégorie ("page express") — icône à gauche, nom à droite */
.nza-cat-hero {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 0 18px;
	padding: 12px 18px;
	background: #fff;
	border-left: 4px solid var(--nza-cat-color, #e74c3c);
	border-radius: 6px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
}
.nza-cat-hero__img {
	max-width: 50px;
	max-height: 50px;
	width: auto;
	height: auto;
	flex: 0 0 auto;
}
.nza-cat-hero__body {
	min-width: 0;
}
.nza-cat-hero__title {
	margin: 0;
	font-size: 1.6rem;
	line-height: 1.2;
	color: #1a1a1a;
}
.nza-cat-hero__desc {
	margin: 4px 0 0;
	color: #555;
	font-size: .95rem;
}

/* Widget hCaptcha en attente de rendu (fenêtre de connexion fermée) */
.nza-hcaptcha--deferred { display: none; }

/* Bouton « Utiliser ma position » de la barre de recherche : même repère que
   celui du panneau de filtres (émoji cible), au lieu d'une icône de globe. */
.nza-search-bar__geoloc.nza-btn-geolocate--target {
	font-size: 1.15rem; line-height: 1;
	display: flex; align-items: center; justify-content: center;
	background: none; border: none; cursor: pointer;
}
.nza-search-bar__geoloc.nza-btn-geolocate--target:disabled { opacity: .6; cursor: wait; }
.nza-btn-geolocate--sidebar:disabled { opacity: .6; cursor: wait; }

/* ════════════════════════════════════════════════════════════════════════
   CORRECTIFS MOBILE (2.1.2)
   Ce bloc doit rester EN FIN DE FICHIER. Les « Refinements visuels v1.5.1 »
   écrits plus haut n'ont pas de media query : à spécificité égale ils
   gagnent sur tout ce qui les précède, media query comprise. C'est ce qui
   avait vidé le bouton « Rechercher » de sa hauteur sur mobile.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Bouton « Rechercher » de la barre ─────────────────────────────────── */
@media (max-width: 768px) {
	/* La barre passe en colonne : le bouton occupe toute la largeur et doit
	   porter son propre padding vertical, aucune hauteur n'étant déclarée. */
	.nza-search-bar__submit {
		width: 100%;
		min-height: 52px;
		padding: 14px 24px;
		justify-content: center;
		border-radius: 0 0 12px 12px;
	}

	/* Annule le masquage hérité de la version horizontale : sur un bouton
	   pleine largeur, cacher le libellé ET la loupe laissait un bouton sans
	   aucun contenu, donc invisible sur tout écran de moins de 480 px. */
	.nza-search-bar__submit span { display: inline-block; }
	.nza-search-bar__submit .dashicons { display: inline-block; }
}

/* ── Pied du panneau « Filtres avancés » ───────────────────────────────── */
.nza-search-advanced__actions {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--nza-gray-200);
}

.nza-search-advanced__actions .nza-btn {
	min-height: 48px;
	font-size: .95rem;
}

/* ── Survol neutralisé sur écran tactile ───────────────────────────────── */
/* iOS fige le survol sur le dernier élément touché. Ce bloc rend son
   apparence à un élément non sélectionné ; il est placé AVANT les règles
   de sélection, qui l'emportent donc sur un élément coché. */
@media (hover: none) {
	.nza-cat-card:hover {
		border-color: var(--nza-gray-400);
		box-shadow: none;
	}

	.nza-tag-toggle:hover {
		background: var(--nza-gray-200);
		color: inherit;
	}

	.nza-search-advanced__col--tags .nza-tag-toggle:hover {
		background: #fff;
		border-color: var(--nza-gray-400);
		color: var(--nza-gray-800);
	}
}

/* ── État sélectionné ──────────────────────────────────────────────────── */
/* Le survol pesait plus lourd que la sélection (`.col--tags .pill:hover` =
   trois classes contre deux) et la reblanchissait. Sur iOS le survol reste
   collé au dernier élément touché : la sélection n'apparaissait jamais.
   Deux parades : `:has(:checked)` ne dépend plus du JavaScript, et ces
   règles passent en dernier pour l'emporter à poids égal. */

.nza-cat-card.nza-cat-card--active,
.nza-cat-card:has(input[type="checkbox"]:checked) {
	border-color: var(--nza-c-filter-bg, var(--nza-gray-800));
	border-width: 2px;
	background: var(--nza-c-filter-bg, var(--nza-gray-100));
	font-weight: 700;
	color: var(--nza-c-filter-text, var(--nza-gray-800));
	box-shadow: none;
}

.nza-cat-card.nza-cat-card--active .dashicons,
.nza-cat-card:has(input[type="checkbox"]:checked) .dashicons {
	color: var(--nza-c-filter-text, var(--nza-gray-800));
}

.nza-search-advanced__col--tags .nza-tag-toggle.nza-tag-toggle--active,
.nza-search-advanced__col--tags .nza-tag-toggle:has(input[type="checkbox"]:checked),
.nza-tag-toggle.nza-tag-toggle--active,
.nza-tag-toggle:has(input[type="checkbox"]:checked) {
	background: var(--nza-c-filter-bg, var(--nza-gray-800));
	border-color: var(--nza-c-filter-bg, var(--nza-gray-800));
	color: var(--nza-c-filter-text, #fff);
}
