/* Annuaire des professionnels — les couleurs viennent des variables du thème. */

.gg-ap {
	--gg-ap-vert: var( --gg-vert, #008063 );
	--gg-ap-vert-clair: var( --gg-vert-clair, #4fa066 );
	--gg-ap-fond: var( --gg-fond-vert, #f1f9f1 );
	--gg-ap-bordure: var( --gg-bordure, #d3e4d3 );
	--gg-ap-texte: var( --gg-texte, #555555 );
	color: var( --gg-ap-texte );
}

.gg-ap h1 { color: var( --gg-ap-vert ); margin-bottom: 8px; }
.gg-ap h2 { color: var( --gg-ap-vert ); font-size: 21px; margin: 28px 0 12px; }
.gg-ap-intro { font-size: 16px; line-height: 1.55; margin: 0 0 6px; }
.gg-ap-appel { margin: 0 0 20px; }
.gg-ap-appel a { color: var( --gg-ap-vert ); font-weight: 600; }

/* --- Carte et sélecteur --------------------------------------------------- */

.gg-ap-recherche {
	display: grid;
	grid-template-columns: minmax( 0, 3fr ) minmax( 220px, 2fr );
	gap: 24px;
	align-items: start;
}

.gg-ap-carte { display: block; width: 100%; height: auto; max-width: 620px; }

.gg-ap-dep {
	fill: var( --gg-ap-fond );
	stroke: var( --gg-ap-vert-clair );
	stroke-width: 0.6;
	transition: fill 0.15s;
}
.gg-ap-dep-actif { fill: #bfe0c9; }
.gg-ap-carte a:hover .gg-ap-dep,
.gg-ap-dep-courant { fill: var( --gg-ap-vert ); }
.gg-ap-carte a:focus { outline: none; }
.gg-ap-carte a:focus-visible .gg-ap-dep { fill: var( --gg-ap-vert ); stroke: #2f3e38; stroke-width: 2; }
.gg-ap-encart { fill: none; stroke: var( --gg-ap-bordure ); }

.gg-ap-choix label { display: block; font-weight: 600; margin-bottom: 6px; }
.gg-ap-choix select { width: 100%; max-width: 320px; padding: 8px; }
.gg-ap-selecteur button { margin-top: 8px; }
.gg-ap-js .gg-ap-selecteur button { display: none; }
.gg-ap-legende { font-size: 13px; display: flex; align-items: center; gap: 8px; margin-top: 18px; }
.gg-ap-pastille { display: inline-block; width: 16px; height: 12px; background: #bfe0c9; border: 1px solid var( --gg-ap-vert-clair ); }

/* --- Fiches ---------------------------------------------------------------- */

.gg-ap-liste {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 260px, 1fr ) );
	gap: 16px;
	margin: 12px 0 28px;
}
.gg-ap-liste-premium { grid-template-columns: repeat( auto-fill, minmax( 340px, 1fr ) ); }

.gg-ap-carte-pro {
	display: flex;
	gap: 14px;
	padding: 16px;
	background: #ffffff;
	border: 1px solid var( --gg-ap-bordure );
	border-radius: 8px;
}
.gg-ap-carte-premium {
	border-color: var( --gg-ap-vert-clair );
	box-shadow: 0 2px 8px rgba( 0, 60, 45, 0.1 );
}
.gg-ap-logo { flex: none; width: 96px; height: auto; max-height: 96px; object-fit: contain; }
.gg-ap-corps { min-width: 0; }
.gg-ap-nom { margin: 0 0 4px; font-size: 17px; color: var( --gg-ap-vert ); }
.gg-ap-rubriques { margin: 0; font-size: 13px; }
.gg-ap-zone { margin: 4px 0 8px; font-size: 13px; }
.gg-ap-zone span { font-weight: 600; }
.gg-ap-texte p { margin: 0 0 6px; font-size: 14px; line-height: 1.5; }
.gg-ap-site { margin: 8px 0 0; }
.gg-ap-site a { color: var( --gg-ap-vert ); font-weight: 600; }

/* --- Espace professionnel --------------------------------------------------- */

.gg-ap-message,
.gg-ap-erreurs,
.gg-ap-etat {
	padding: 10px 14px;
	margin: 0 0 16px;
	background: var( --gg-ap-fond );
	border-left: 4px solid var( --gg-ap-vert );
	border-radius: 4px;
}
.gg-ap-erreurs { background: #fcf0f1; border-left-color: #b32d2e; }
.gg-ap-erreurs ul { margin: 0; padding-left: 18px; }
.gg-ap-etat-attente { border-left-color: #dba617; background: #fcf9e8; }
.gg-ap-compte { font-size: 14px; }

.gg-ap-offres,
.gg-ap-deux {
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1fr );
	gap: 20px;
	margin-bottom: 24px;
}
.gg-ap-offre { padding: 16px 18px; border: 1px solid var( --gg-ap-bordure ); border-radius: 8px; }
.gg-ap-offre-premium { border-color: var( --gg-ap-vert-clair ); background: var( --gg-ap-fond ); }
.gg-ap-offre h3 { margin: 0 0 8px; color: var( --gg-ap-vert ); font-size: 17px; }
.gg-ap-offre ul { margin: 0; padding-left: 18px; }

.gg-ap-form p { margin: 0 0 14px; }
.gg-ap-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.gg-ap-form input[type="text"],
.gg-ap-form input[type="email"],
.gg-ap-form input[type="password"],
.gg-ap-form input[type="url"],
.gg-ap-form input[type="search"],
.gg-ap-form select,
.gg-ap-form textarea {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid var( --gg-ap-bordure );
	border-radius: 6px;
	font: inherit;
}
.gg-ap-form fieldset { margin: 0 0 16px; padding: 12px 14px; border: 1px solid var( --gg-ap-bordure ); border-radius: 6px; }
.gg-ap-form legend { font-weight: 600; padding: 0 6px; }
.gg-ap-case { display: flex !important; align-items: flex-start; gap: 6px; font-weight: 400 !important; }
.gg-ap-case input { margin-top: 4px; }
.gg-ap-larges { display: flex; gap: 24px; }

.gg-ap-liste-dep {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 200px, 1fr ) );
	gap: 2px 12px;
	max-height: 280px;
	overflow: auto;
	padding: 8px;
	border: 1px solid var( --gg-ap-bordure );
	border-radius: 6px;
	font-size: 14px;
}
.gg-ap-compteur { display: block; font-size: 12px; margin-top: 4px; }
.gg-ap-compteur.gg-ap-trop { color: #b32d2e; font-weight: 600; }
.gg-ap-verrouille { opacity: 0.6; }
.gg-ap-verrou { font-style: italic; }
.gg-ap-logo-actuel img { max-height: 80px; width: auto; vertical-align: middle; }
.gg-ap-premium { padding: 14px 18px; margin: 0 0 24px; border: 1px solid var( --gg-ap-vert-clair ); border-radius: 8px; background: var( --gg-ap-fond ); }
.gg-ap-premium h2 { margin-top: 0; }

.gg-ap-aide { font-size: 13px; margin: 0 0 10px; }
.gg-ap-facturation small { display: block; font-size: 12px; margin-top: 4px; }

/* Le champ piège : hors écran, jamais visible. */
.gg-ap-piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.gg-ap button {
	padding: 10px 18px;
	background: var( --gg-ap-vert );
	color: #ffffff;
	border: 1px solid var( --gg-ap-vert );
	border-radius: 6px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.gg-ap button:hover,
.gg-ap button:focus-visible { background: #006b53; }
.gg-ap button.gg-ap-secondaire { background: #ffffff; color: var( --gg-ap-vert ); }
.gg-ap button.gg-ap-secondaire:hover { background: var( --gg-ap-fond ); }

@media ( max-width: 760px ) {
	.gg-ap-recherche,
	.gg-ap-offres,
	.gg-ap-deux { grid-template-columns: 1fr; }
	.gg-ap-liste,
	.gg-ap-liste-premium { grid-template-columns: 1fr; }
	.gg-ap-carte-pro { flex-direction: column; }
}
