/*
Theme Name: Annuaire du solaire
Template: blocksy
Description: Thème de l'Annuaire du solaire (TECSOL) — enfant de Blocksy. Les fiches, listes et recherches lisent la base Pimcore.
Version: 1.0.0
Author: France Édition
Text Domain: annuaire-solaire
*/

/* ==========================================================================
   1. Jetons de design
   ========================================================================== */

:root {
	--as-vert: #196e3c;          /* couleur principale (liens, boutons) — contraste AA sur blanc */
	--as-vert-fonce: #0e4a27;
	--as-vert-nuit: #082d18;
	--as-vert-vif: #138900;      /* vert du logo, accents */
	--as-vert-clair: #e9f4ec;
	--as-vert-pale: #f4f9f5;
	--as-soleil: #fdc810;        /* jaune du logo */
	--as-soleil-fonce: #e0ac00;
	--as-soleil-clair: #fff7d6;
	--as-texte: #18231d;
	--as-texte-doux: #55635a;
	--as-bord: #dbe4dd;
	--as-fond: #f6f8f6;
	--as-blanc: #fff;
	--as-erreur: #b42318;

	--as-rayon: 14px;
	--as-rayon-petit: 8px;
	--as-ombre: 0 1px 2px rgba(8, 45, 24, .05), 0 6px 20px rgba(8, 45, 24, .07);
	--as-ombre-forte: 0 12px 34px rgba(8, 45, 24, .14);
	--as-police: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--as-police-titre: 'Outfit', 'Inter', system-ui, sans-serif;
	--as-largeur: 1240px;
	--as-marge: clamp(16px, 4vw, 32px);

	/* Raccord avec les variables Blocksy (pages WordPress classiques) */
	--theme-font-family: var(--as-police);
	--theme-text-color: var(--as-texte);
	--theme-headings-color: var(--as-texte);
	--theme-heading-color: var(--as-texte);
	--theme-link-initial-color: var(--as-vert);
	--theme-link-hover-color: var(--as-vert-fonce);
	--theme-palette-color-1: var(--as-vert);
	--theme-palette-color-2: var(--as-vert-fonce);
	--theme-button-background-initial-color: var(--as-vert);
	--theme-button-background-hover-color: var(--as-vert-fonce);
	--theme-button-border-radius: 999px;
	--theme-border-color: var(--as-bord);
	--theme-form-field-border-radius: var(--as-rayon-petit);
	--theme-form-field-border-focus-color: var(--as-vert);
	--theme-normal-container-max-width: var(--as-largeur);
}

/* ==========================================================================
   2. Base
   ========================================================================== */

body.annuaire-solaire {
	font-family: var(--as-police);
	font-size: 16px;
	line-height: 1.6;
	color: var(--as-texte);
	background: var(--as-blanc);
	-webkit-font-smoothing: antialiased;
}

body.annuaire-solaire :is(h1, h2, h3, h4, .as-titre-section, .as-marque__nom) {
	font-family: var(--as-police-titre);
	letter-spacing: -0.01em;
	color: var(--as-texte);
}

body.annuaire-solaire a { color: var(--as-vert); text-underline-offset: 3px; }
body.annuaire-solaire a:hover { color: var(--as-vert-fonce); }
body.annuaire-solaire :focus-visible { outline: 3px solid var(--as-soleil); outline-offset: 2px; border-radius: 4px; }

.as-icone { flex: none; vertical-align: -3px; }

.as-conteneur {
	width: 100%;
	max-width: var(--as-largeur);
	margin: 0 auto;
	padding: 0 var(--as-marge);
	box-sizing: border-box;
}

.skip-link:focus {
	position: fixed; top: 8px; left: 8px; z-index: 1000;
	clip: auto; width: auto; height: auto;
	padding: 10px 16px; background: var(--as-blanc); color: var(--as-vert-fonce);
	border-radius: var(--as-rayon-petit); box-shadow: var(--as-ombre-forte);
}

/* ==========================================================================
   3. Boutons, puces, compteurs
   ========================================================================== */

.as-bouton {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 20px;
	font: 600 15px/1.2 var(--as-police);
	color: var(--as-blanc) !important; background: var(--as-vert);
	border: 2px solid var(--as-vert); border-radius: 999px;
	text-decoration: none; cursor: pointer;
	transition: background .18s, border-color .18s, transform .18s, box-shadow .18s;
}
.as-bouton:hover { background: var(--as-vert-fonce); border-color: var(--as-vert-fonce); transform: translateY(-1px); box-shadow: var(--as-ombre); }
.as-bouton--soleil { color: var(--as-vert-nuit) !important; background: var(--as-soleil); border-color: var(--as-soleil); }
.as-bouton--soleil:hover { background: var(--as-soleil-fonce); border-color: var(--as-soleil-fonce); }
.as-bouton--contour { color: var(--as-vert) !important; background: var(--as-blanc); border-color: var(--as-bord); }
.as-bouton--contour:hover { color: var(--as-vert-fonce) !important; background: var(--as-vert-pale); border-color: var(--as-vert); }
.as-bouton--contour-clair { color: var(--as-blanc) !important; background: transparent; border-color: rgba(255, 255, 255, .6); }
.as-bouton--contour-clair:hover { background: rgba(255, 255, 255, .12); border-color: var(--as-blanc); }

.as-bouton-icone {
	display: inline-grid; place-items: center;
	width: 44px; height: 44px; padding: 0;
	color: var(--as-vert-fonce); background: var(--as-vert-pale);
	border: 1px solid var(--as-bord); border-radius: 50%; cursor: pointer;
}
.as-bouton-icone:hover { background: var(--as-vert-clair); }

.as-compteur {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 28px; height: 22px; padding: 0 7px;
	font: 600 12px/1 var(--as-police); color: var(--as-vert-fonce);
	background: var(--as-vert-clair); border-radius: 999px;
}

.as-puces { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.as-puce {
	display: inline-flex; align-items: baseline; gap: 6px;
	padding: 6px 13px; font-size: 14px; line-height: 1.3;
	color: var(--as-vert-fonce) !important; background: var(--as-vert-pale);
	border: 1px solid var(--as-bord); border-radius: 999px; text-decoration: none;
	transition: background .15s, border-color .15s;
}
a.as-puce:hover { background: var(--as-vert-clair); border-color: var(--as-vert); }
.as-puce small { color: var(--as-texte-doux); font-size: 12px; }
.as-puce--forte { color: var(--as-vert-nuit) !important; background: var(--as-soleil-clair); border-color: #f4dd7a; font-weight: 600; }
a.as-puce--forte:hover { background: #ffefad; border-color: var(--as-soleil-fonce); }
.as-puce--texte { color: var(--as-texte-doux) !important; background: var(--as-blanc); }

.as-badge {
	display: inline-block; padding: 3px 10px;
	font: 700 11px/1.4 var(--as-police); text-transform: uppercase; letter-spacing: .06em;
	border-radius: 999px;
}
.as-badge--une { color: var(--as-vert-nuit); background: var(--as-soleil); }

.as-alerte {
	padding: 16px 20px; color: var(--as-texte);
	background: var(--as-soleil-clair); border: 1px solid #f4dd7a;
	border-radius: var(--as-rayon-petit);
}
.as-alerte--erreur { background: #fdecea; border-color: var(--as-erreur); }
.as-succes { padding: 24px; background: var(--as-vert-clair); border-radius: var(--as-rayon); text-align: center; }

body.annuaire-solaire .as-titre-section { margin: 48px 0 20px; font-size: clamp(24px, 3vw, 30px); font-weight: 700; }
body.annuaire-solaire .as-titre-petit {
	margin: 0 0 12px; font: 700 13px/1.3 var(--as-police);
	text-transform: uppercase; letter-spacing: .08em; color: var(--as-texte-doux);
}
.as-surtitre { margin: 0 0 6px; font: 600 13px/1.3 var(--as-police); text-transform: uppercase; letter-spacing: .1em; color: var(--as-vert-vif); }

/* ==========================================================================
   4. En-tête du site
   ========================================================================== */

.as-entete-site { position: relative; z-index: 50; }

.as-bandeau-haut { color: rgba(255, 255, 255, .9); background: var(--as-vert-nuit); font-size: 13px; }
.as-bandeau-haut .as-conteneur { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.as-bandeau-haut__accroche { margin: 0; }
.as-bandeau-haut__contacts { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; }
.as-bandeau-haut a { display: inline-flex; align-items: center; gap: 6px; color: inherit !important; text-decoration: none; }
.as-bandeau-haut a:hover { color: var(--as-soleil) !important; }
.as-bandeau-haut svg { width: 15px; height: 15px; }

.as-barre-principale {
	position: sticky; top: 0;
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid var(--as-bord);
	transition: box-shadow .2s;
}
@supports (backdrop-filter: blur(8px)) { .as-barre-principale { background: rgba(255, 255, 255, .88); backdrop-filter: blur(10px); } }
.as-barre-principale.est-decolle { box-shadow: 0 6px 24px rgba(8, 45, 24, .1); }
.as-barre-principale > .as-conteneur { display: flex; align-items: center; gap: 24px; min-height: 76px; }

.as-marque { display: flex; align-items: center; gap: 14px; text-decoration: none; flex: none; }
.as-marque__logo { width: auto; height: 34px; }
body.annuaire-solaire .as-marque__nom {
	padding-left: 14px; border-left: 2px solid var(--as-bord);
	font-size: 19px; font-weight: 800; line-height: 1.05; color: var(--as-vert-fonce);
	max-width: 7.5em;
}

.as-menu { margin-left: auto; }
.as-menu__liste { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.as-menu__liste > li { position: relative; }
.as-menu__liste > li > a {
	display: block; padding: 10px 12px;
	font-size: 15px; font-weight: 500; color: var(--as-texte) !important; text-decoration: none;
	border-radius: var(--as-rayon-petit); white-space: nowrap;
}
.as-menu__liste > li > a:hover,
.as-menu__liste > li.current-menu-item > a,
.as-menu__liste > li.current-menu-ancestor > a { color: var(--as-vert) !important; background: var(--as-vert-pale); }
.as-menu__liste > .menu-item-has-children > a::after {
	content: ''; display: inline-block; width: 7px; height: 7px; margin-left: 8px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: translateY(-3px) rotate(45deg); opacity: .6;
}
.as-menu .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 300px; margin: 0; padding: 8px;
	list-style: none; background: var(--as-blanc); border: 1px solid var(--as-bord);
	border-radius: var(--as-rayon); box-shadow: var(--as-ombre-forte);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: .18s;
}
.as-menu li:hover > .sub-menu,
.as-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.as-menu .sub-menu a { display: block; padding: 8px 12px; font-size: 14px; color: var(--as-texte) !important; text-decoration: none; border-radius: 6px; }
.as-menu .sub-menu a:hover { color: var(--as-vert) !important; background: var(--as-vert-pale); }

.as-actions { display: flex; align-items: center; gap: 10px; flex: none; }
.as-burger { display: none; }
.as-burger__traits, .as-burger__traits::before, .as-burger__traits::after {
	display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; content: ''; transition: .2s;
}
.as-burger__traits { position: relative; }
.as-burger__traits::before { position: absolute; top: -6px; }
.as-burger__traits::after { position: absolute; top: 6px; }
.as-burger[aria-expanded="true"] .as-burger__traits { background: transparent; }
.as-burger[aria-expanded="true"] .as-burger__traits::before { top: 0; transform: rotate(45deg); }
.as-burger[aria-expanded="true"] .as-burger__traits::after { top: 0; transform: rotate(-45deg); }

.as-panneau-recherche { padding: 16px 0 20px; background: var(--as-vert-pale); border-top: 1px solid var(--as-bord); }

.as-panneau-mobile {
	padding: 20px var(--as-marge) 28px;
	background: var(--as-blanc); border-bottom: 1px solid var(--as-bord); box-shadow: var(--as-ombre-forte);
}
.as-panneau-mobile > .as-bouton { width: 100%; margin-top: 16px; box-sizing: border-box; }
.as-menu-mobile { margin: 16px 0 0; padding: 0; list-style: none; }
.as-menu-mobile li { position: relative; border-bottom: 1px solid var(--as-bord); }
.as-menu-mobile a { display: block; padding: 13px 48px 13px 0; font-weight: 500; color: var(--as-texte) !important; text-decoration: none; }
.as-menu-mobile .sub-menu { margin: 0 0 10px; padding: 0 0 0 14px; list-style: none; }
.as-menu-mobile .sub-menu li { border: 0; }
.as-menu-mobile .sub-menu a { padding: 7px 0; font-weight: 400; font-size: 15px; }
.as-sous-menu-bouton {
	position: absolute; top: 4px; right: 0; width: 44px; height: 44px;
	background: none; border: 0; cursor: pointer; color: var(--as-vert);
}
.as-sous-menu-bouton::before {
	content: ''; position: absolute; top: 17px; left: 18px; width: 8px; height: 8px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s;
}
.as-sous-menu-bouton[aria-expanded="true"]::before { transform: translateY(4px) rotate(-135deg); }
.as-panneau-mobile__contacts { display: grid; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; font-size: 15px; }
.as-panneau-mobile__contacts a { display: inline-flex; gap: 10px; align-items: center; text-decoration: none; }

@media (max-width: 1380px) {
	.as-menu__liste > li > a { padding: 10px 7px; font-size: 14px; }
	.as-menu__liste > li.menu-item-home { display: none; } /* le logo ramène déjà à l'accueil */
	.as-barre-principale > .as-conteneur { gap: 14px; }
	.as-actions .as-bouton { padding: 8px 14px; font-size: 14px; }
	.as-sauf-portable { display: none; }
	body.annuaire-solaire .as-marque__nom { font-size: 17px; }
}
@media (max-width: 1180px) {
	.as-menu, .as-bandeau-haut__accroche, .as-actions__inscription { display: none; }
	.as-burger { display: inline-grid; }
	.as-actions { margin-left: auto; }
	.as-bandeau-haut__contacts { width: 100%; justify-content: space-between; gap: 12px; }
}
@media (min-width: 1181px) { .as-panneau-mobile { display: none !important; } }
@media (max-width: 600px) {
	.as-bandeau-haut__contacts li:nth-child(n+3) { display: none; }
	.as-marque__logo { height: 26px; }
	body.annuaire-solaire .as-marque__nom { font-size: 16px; padding-left: 10px; }
	.as-barre-principale > .as-conteneur { min-height: 64px; gap: 12px; }
}

/* ==========================================================================
   5. Recherche et suggestions
   ========================================================================== */

.as-recherche {
	position: relative; display: flex; align-items: center;
	max-width: 760px; padding: 6px 6px 6px 18px;
	background: var(--as-blanc); border: 1px solid var(--as-bord); border-radius: 999px;
	box-shadow: var(--as-ombre); transition: border-color .15s, box-shadow .15s;
}
.as-recherche:focus-within { border-color: var(--as-vert); box-shadow: 0 0 0 4px rgba(25, 110, 60, .14), var(--as-ombre); }
.as-recherche > .as-icone { color: var(--as-texte-doux); }
body.annuaire-solaire .as-recherche input[type="search"] {
	flex: 1; min-width: 0; height: 46px; margin: 0; padding: 0 12px;
	font: 400 16px/1 var(--as-police); color: var(--as-texte);
	background: transparent; border: 0; box-shadow: none; outline: 0;
}
.as-recherche input[type="search"]:focus-visible { outline: 0; }
.as-recherche button[type="submit"] {
	flex: none; height: 46px; padding: 0 22px;
	font: 600 15px/1 var(--as-police); color: var(--as-blanc); background: var(--as-vert);
	border: 0; border-radius: 999px; cursor: pointer; transition: background .15s;
}
.as-recherche button[type="submit"]:hover { background: var(--as-vert-fonce); }
.as-recherche.est-en-cours > .as-icone { animation: as-tourne 1s linear infinite; }
@keyframes as-tourne { to { transform: rotate(360deg); } }

.as-recherche--hero { max-width: 720px; padding: 8px 8px 8px 22px; box-shadow: 0 18px 40px rgba(0, 0, 0, .22); border: 0; }
body.annuaire-solaire .as-recherche--hero input[type="search"] { height: 52px; font-size: 17px; }
.as-recherche--hero button[type="submit"] { height: 52px; padding: 0 28px; color: var(--as-vert-nuit); background: var(--as-soleil); }
.as-recherche--hero button[type="submit"]:hover { background: var(--as-soleil-fonce); }
.as-recherche--entete, .as-recherche--page { max-width: none; }
.as-recherche--page { margin-top: 20px; }

.as-suggestions {
	position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 60;
	max-height: min(70vh, 520px); overflow-y: auto; padding: 8px;
	text-align: left; background: var(--as-blanc); border: 1px solid var(--as-bord);
	border-radius: var(--as-rayon); box-shadow: var(--as-ombre-forte);
}
.as-suggestions[hidden] { display: none; }
.as-suggestions__groupe + .as-suggestions__groupe { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--as-bord); }
.as-suggestions__titre { margin: 6px 10px 4px; font: 700 11px/1.3 var(--as-police); text-transform: uppercase; letter-spacing: .1em; color: var(--as-texte-doux); }
.as-suggestions a {
	display: flex; align-items: center; gap: 12px; padding: 8px 10px;
	color: var(--as-texte) !important; text-decoration: none; border-radius: var(--as-rayon-petit);
}
.as-suggestions a:hover, .as-suggestions a.est-actif { background: var(--as-vert-pale); }
.as-suggestions a img { width: 40px; height: 40px; object-fit: contain; background: var(--as-blanc); border: 1px solid var(--as-bord); border-radius: 6px; }
.as-suggestions a span { display: flex; flex-direction: column; font-weight: 500; line-height: 1.3; }
.as-suggestions a small { font-size: 12px; font-weight: 400; color: var(--as-texte-doux); }
.as-suggestions a.as-suggestions__tout { margin-top: 6px; justify-content: center; font-weight: 600; color: var(--as-vert) !important; background: var(--as-vert-pale); }
.as-suggestions__vide { margin: 10px; color: var(--as-texte-doux); }

@media (max-width: 600px) {
	.as-recherche { padding-left: 14px; }
	.as-recherche button[type="submit"] { padding: 0 16px; }
	.as-recherche--hero button[type="submit"] { width: 52px; padding: 0; font-size: 0; }
	.as-recherche--hero button[type="submit"]::before { content: '→'; font-size: 22px; }
}

/* ==========================================================================
   6. Bandeau d'accueil (hero)
   ========================================================================== */

.as-hero {
	position: relative; z-index: 5; /* pas d'overflow:hidden : les suggestions de recherche débordent du bandeau */
	padding: clamp(48px, 8vw, 96px) 0 clamp(52px, 8vw, 88px);
	color: var(--as-blanc);
	background:
		radial-gradient(circle at 88% 12%, rgba(253, 200, 16, .55) 0, rgba(253, 200, 16, .18) 14%, transparent 34%),
		radial-gradient(circle at 10% 110%, rgba(19, 137, 0, .45) 0, transparent 45%),
		linear-gradient(135deg, var(--as-vert-fonce) 0%, var(--as-vert-nuit) 100%);
}
.as-hero::after {
	/* rayons du soleil du logo, en filigrane */
	content: ''; position: absolute; top: 0; right: 0; width: min(380px, 60vw); height: 380px; pointer-events: none;
	background: repeating-radial-gradient(circle at 100% 0, transparent 0 46px, rgba(253, 200, 16, .16) 46px 70px);
	-webkit-mask-image: linear-gradient(225deg, #000 30%, transparent 75%); mask-image: linear-gradient(225deg, #000 30%, transparent 75%);
}
.as-hero .as-conteneur { position: relative; z-index: 1; }
.as-hero__surtitre {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 6px 14px;
	font: 600 13px/1 var(--as-police); text-transform: uppercase; letter-spacing: .1em;
	color: var(--as-soleil); background: rgba(253, 200, 16, .12); border: 1px solid rgba(253, 200, 16, .35); border-radius: 999px;
}
body.annuaire-solaire .as-hero__titre {
	max-width: 14em; margin: 0 0 16px;
	font-size: clamp(34px, 5.4vw, 60px); font-weight: 800; line-height: 1.04; color: var(--as-blanc);
}
.as-hero__titre span { color: var(--as-soleil); }
.as-hero__texte { max-width: 640px; margin: 0 0 30px; font-size: clamp(16px, 1.6vw, 19px); color: rgba(255, 255, 255, .85); }
.as-hero__texte p { margin: 0 0 .6em; }
.as-hero__liens { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 22px 0 0; font-size: 15px; }
body.annuaire-solaire .as-hero__liens a { color: var(--as-blanc); text-decoration: underline; text-decoration-color: rgba(253, 200, 16, .7); text-decoration-thickness: 2px; }
body.annuaire-solaire .as-hero__liens a:hover { color: var(--as-soleil); }

.as-hero--domaine {
	padding: 40px 0 56px;
	background:
		linear-gradient(90deg, rgba(8, 45, 24, .94) 0%, rgba(8, 45, 24, .82) 45%, rgba(8, 45, 24, .35) 100%),
		var(--as-hero-image, none) center / cover no-repeat,
		var(--as-vert-fonce);
}
.as-hero--domaine::after { display: none; }
.as-hero--domaine .as-ariane ol { margin-bottom: 26px; }
body.annuaire-solaire .as-hero--domaine .as-ariane :is(a, span),
.as-hero--domaine .as-ariane li::after { color: rgba(255, 255, 255, .85); }

/* ==========================================================================
   7. Mise en page des pages d'annuaire
   ========================================================================== */

.as-page { padding: clamp(24px, 4vw, 44px) 0 72px; background: var(--as-blanc); }
.as-page--barre .as-conteneur { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 48px; align-items: start; }
.as-principal { min-width: 0; }
.as-barre { position: sticky; top: 100px; display: grid; gap: 20px; }
@media (max-width: 1000px) {
	.as-page--barre .as-conteneur { grid-template-columns: minmax(0, 1fr); }
	.as-barre { position: static; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

/* Widgets de la colonne (couverture de l'annuaire papier, Plein Soleil…) */
.as-barre .widget, .as-barre > .ct-widget {
	padding: 20px; text-align: center; font-size: 15px;
	background: var(--as-fond); border: 1px solid var(--as-bord); border-radius: var(--as-rayon);
}
.as-barre .widget [style] { margin-top: 0 !important; }
.as-barre .widget img { height: auto; max-width: 100%; border-radius: 6px; box-shadow: var(--as-ombre); }
.as-barre .widget hr { margin: 18px 0; border: 0; border-top: 1px solid var(--as-bord); }
.as-barre .widget br + br { display: none; }
body.annuaire-solaire .as-barre .widget .bouton_savoir_plus a {
	display: inline-flex; margin-top: 10px; padding: 9px 16px; color: var(--as-vert-nuit);
	background: var(--as-soleil); border-radius: 999px; text-decoration: none;
}

.as-ariane ol { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 22px; padding: 0; list-style: none; font-size: 14px; color: var(--as-texte-doux); }
.as-ariane li:not(:last-child)::after { content: '/'; margin-left: 6px; color: #b5c2b9; }
body.annuaire-solaire .as-ariane a { color: var(--as-texte-doux); text-decoration: none; }
body.annuaire-solaire .as-ariane a:hover { color: var(--as-vert); text-decoration: underline; }
.as-ariane [aria-current] { color: var(--as-texte); }

.as-entete-liste { margin-bottom: 24px; }
body.annuaire-solaire .as-entete-liste h1 { margin: 0 0 8px; font-size: clamp(28px, 4vw, 42px); font-weight: 800; line-height: 1.1; }
.as-entete-liste__compte { margin: 0; color: var(--as-texte-doux); }
.as-entete-liste__compte strong { color: var(--as-vert); font-size: 1.1em; }

.as-filtres {
	display: flex; flex-wrap: wrap; gap: 12px 16px; margin-bottom: 28px; padding: 16px;
	background: var(--as-fond); border: 1px solid var(--as-bord); border-radius: var(--as-rayon);
}
.as-select { display: flex; flex-direction: column; gap: 4px; flex: 1 1 240px; margin: 0; }
.as-select label { font: 600 12px/1.2 var(--as-police); text-transform: uppercase; letter-spacing: .06em; color: var(--as-texte-doux); }
body.annuaire-solaire .as-select select {
	width: 100%; height: 46px; padding: 0 40px 0 14px; font: 500 15px var(--as-police); color: var(--as-texte);
	background: var(--as-blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23196e3c' stroke-width='2'/%3E%3C/svg%3E") right 14px center no-repeat;
	border: 1px solid var(--as-bord); border-radius: var(--as-rayon-petit); appearance: none; cursor: pointer;
}
.as-select select:focus { border-color: var(--as-vert); outline: 0; box-shadow: 0 0 0 3px rgba(25, 110, 60, .15); }
.as-select noscript button { margin-top: 6px; }

.as-texte-seo { margin-top: 40px; padding-top: 24px; font-size: 15px; color: var(--as-texte-doux); border-top: 1px solid var(--as-bord); }

/* Publicités */
.as-pub { position: relative; margin: 0 0 28px; text-align: center; }
.as-pub__mention { display: block; margin-bottom: 6px; font: 600 11px/1 var(--as-police); text-transform: uppercase; letter-spacing: .12em; color: #7c8880; text-align: left; }
.as-pub img { display: block; width: 100%; height: auto; border: 1px solid var(--as-bord); border-radius: var(--as-rayon-petit); }
.as-pub--250 { margin: 0; }
.as-pub--250 .as-pub__mention { text-align: center; }
.as-pub--250 img { max-width: 250px; margin: 0 auto; }

/* ==========================================================================
   8. Cartes fournisseurs
   ========================================================================== */

.as-liste { display: grid; gap: 16px; margin-bottom: 28px; }
.as-liste--simple { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }

.as-carte {
	position: relative; display: flex; gap: 22px; align-items: flex-start;
	padding: 22px; background: var(--as-blanc);
	border: 1px solid var(--as-bord); border-radius: var(--as-rayon);
	transition: border-color .18s, box-shadow .18s, transform .18s;
}
.as-carte:hover { border-color: #b9cfbf; box-shadow: var(--as-ombre); transform: translateY(-2px); }
.as-carte:focus-within { border-color: var(--as-vert); }
.as-carte__logo {
	flex: none; display: grid; place-items: center; width: 150px; height: 104px; padding: 10px; box-sizing: border-box;
	background: var(--as-blanc); border: 1px solid var(--as-bord); border-radius: var(--as-rayon-petit);
}
.as-carte__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.as-carte__corps { flex: 1; min-width: 0; display: flex; flex-direction: column; }
body.annuaire-solaire .as-carte__titre { margin: 0 0 4px; font-size: 19px; font-weight: 700; line-height: 1.25; }
body.annuaire-solaire .as-carte__titre a { color: var(--as-texte); text-decoration: none; }
.as-carte__titre a::after { content: ''; position: absolute; inset: 0; border-radius: inherit; } /* toute la carte est cliquable */
body.annuaire-solaire .as-carte__titre a:hover { color: var(--as-vert); }
.as-carte__lieu { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: 14px; color: var(--as-texte-doux); }
.as-carte__lieu svg { width: 15px; height: 15px; color: var(--as-vert-vif); }
.as-carte__extrait { margin: 0 0 10px; color: #3a463f; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.as-carte__adresse { margin: 0 0 10px; font-size: 14px; line-height: 1.5; color: var(--as-texte-doux); }
.as-carte__plus { position: relative; z-index: 1; align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; text-decoration: none; }
.as-carte__plus svg { width: 16px; height: 16px; transition: transform .18s; }
.as-carte:hover .as-carte__plus svg { transform: translateX(3px); }

.as-carte--complete { overflow: hidden; }
.as-carte--simple { flex-direction: column; gap: 0; padding: 18px; background: var(--as-fond); }
.as-carte--simple .as-carte__corps { height: 100%; }
body.annuaire-solaire .as-carte--simple .as-carte__titre { font-size: 16px; }
.as-carte--simple .as-carte__plus { margin-top: auto; }
.as-carte--une { background: linear-gradient(135deg, var(--as-soleil-clair), var(--as-blanc) 60%); border-color: #f1d36b; }
.as-carte--une .as-badge { position: absolute; top: 0; left: 22px; border-radius: 0 0 8px 8px; }

@media (max-width: 600px) {
	.as-carte { flex-direction: column; gap: 14px; padding: 18px; }
	.as-carte__logo { width: 120px; height: 84px; }
}

/* ==========================================================================
   9. Accueil : domaines
   ========================================================================== */

.as-accueil .as-pub--940 { margin-top: 4px; }
.as-domaines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 860px) { .as-domaines { grid-template-columns: minmax(0, 1fr); } }

.as-domaine {
	display: flex; flex-direction: column; overflow: hidden;
	background: var(--as-blanc); border: 1px solid var(--as-bord); border-radius: calc(var(--as-rayon) + 4px);
	box-shadow: var(--as-ombre);
}
.as-domaine__image { aspect-ratio: 16 / 7; overflow: hidden; background: var(--as-vert-clair); }
.as-domaine__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.as-domaine:hover .as-domaine__image img { transform: scale(1.03); }
.as-domaine__corps { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
body.annuaire-solaire .as-domaine__titre { margin: 0 0 14px; font-size: 24px; font-weight: 800; }
body.annuaire-solaire .as-domaine__titre a { color: var(--as-vert-fonce); text-decoration: none; }
body.annuaire-solaire .as-domaine__titre a:hover { color: var(--as-vert); }

.as-thematiques { margin: 0 0 16px; padding: 0; list-style: none; }
.as-thematiques li + li { border-top: 1px solid #edf2ee; }
body.annuaire-solaire .as-thematiques a {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 9px 8px; margin: 0 -8px; font-weight: 500; color: var(--as-texte); text-decoration: none;
	border-radius: var(--as-rayon-petit); transition: background .15s, color .15s;
}
body.annuaire-solaire .as-thematiques a:hover { color: var(--as-vert); background: var(--as-vert-pale); }
.as-thematiques a:hover .as-compteur { color: var(--as-vert-nuit); background: var(--as-soleil); }

.as-mots-domaine { margin-top: auto; padding-top: 4px; }
.as-mots-domaine summary {
	display: inline-flex; align-items: center; gap: 8px; padding: 8px 0;
	font-weight: 600; font-size: 14px; color: var(--as-vert); cursor: pointer; list-style: none;
}
.as-mots-domaine summary::-webkit-details-marker { display: none; }
.as-mots-domaine summary::before {
	content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(-45deg); transition: transform .2s;
}
.as-mots-domaine[open] summary::before { transform: rotate(45deg); }
.as-mots-domaine .as-puces { padding: 8px 0 2px; }
.as-mots-domaine .as-puce { font-size: 13px; padding: 5px 11px; }

.as-texte-page { margin-bottom: 8px; }

.as-appel {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
	margin-top: 56px; padding: clamp(28px, 4vw, 44px);
	color: var(--as-blanc); border-radius: calc(var(--as-rayon) + 6px);
	background: radial-gradient(circle at 100% 0, rgba(253, 200, 16, .35), transparent 40%), linear-gradient(135deg, var(--as-vert), var(--as-vert-fonce));
}
.as-appel > div:first-child { flex: 1 1 420px; }
body.annuaire-solaire .as-appel h2 { margin: 0 0 8px; color: var(--as-blanc); font-size: clamp(22px, 3vw, 30px); }
.as-appel p { margin: 0; color: rgba(255, 255, 255, .88); }
.as-appel__boutons { display: flex; flex-wrap: wrap; gap: 12px; }

/* Page domaine */
.as-tuiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
body.annuaire-solaire .as-tuile {
	position: relative; display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 20px 52px 20px 20px;
	color: var(--as-texte); text-decoration: none; box-sizing: border-box;
	background: var(--as-blanc); border: 1px solid var(--as-bord); border-radius: var(--as-rayon); transition: .18s;
}
.as-tuile:hover { border-color: var(--as-vert); box-shadow: var(--as-ombre); transform: translateY(-2px); }
.as-tuile__nom { font: 700 17px/1.3 var(--as-police-titre); }
.as-tuile__compte { font-size: 14px; color: var(--as-texte-doux); }
.as-tuile .as-icone { position: absolute; right: 18px; top: 50%; margin-top: -9px; color: var(--as-vert); }
body.annuaire-solaire .as-domaine-page .as-titre-section:first-child { margin-top: 0; }

/* Page mots clés */
.as-colonnes-mots { columns: 3 280px; column-gap: 28px; }
.as-bloc-mots { break-inside: avoid; margin-bottom: 28px; padding: 22px; background: var(--as-fond); border: 1px solid var(--as-bord); border-radius: var(--as-rayon); }
body.annuaire-solaire .as-bloc-mots h2 { margin: 0 0 12px; font-size: 20px; }
body.annuaire-solaire .as-bloc-mots h2 a { color: var(--as-vert-fonce); text-decoration: none; }
.as-bloc-mots ul { margin: 0; padding: 0; list-style: none; }
.as-bloc-mots li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--as-bord); }
.as-bloc-mots li:last-child { border: 0; }
body.annuaire-solaire .as-bloc-mots li a { text-decoration: none; color: var(--as-texte); }
body.annuaire-solaire .as-bloc-mots li a:hover { color: var(--as-vert); text-decoration: underline; }

/* Liste alphabétique */
.as-alphabet { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 28px; }
body.annuaire-solaire .as-alphabet a {
	display: grid; place-items: center; width: 40px; height: 40px;
	font: 700 15px/1 var(--as-police-titre); color: var(--as-vert-fonce); text-decoration: none;
	background: var(--as-fond); border: 1px solid var(--as-bord); border-radius: var(--as-rayon-petit); transition: .15s;
}
.as-alphabet a:hover { background: var(--as-vert-clair); border-color: var(--as-vert); }
body.annuaire-solaire .as-alphabet a[aria-current] { color: var(--as-vert-nuit); background: var(--as-soleil); border-color: var(--as-soleil); }

/* Résultats de recherche */
.as-resultats__groupes { display: grid; gap: 20px; margin: 8px 0 8px; padding: 20px; background: var(--as-fond); border-radius: var(--as-rayon); }

/* Page introuvable / vide */
.as-vide { max-width: 640px; margin: 20px auto; text-align: center; }
.as-vide .as-recherche { margin: 24px auto; }
.as-vide__code svg { width: 56px; height: 56px; color: var(--as-soleil); }

/* ==========================================================================
   10. Fiche fournisseur
   ========================================================================== */

.as-fiche__entete {
	display: flex; gap: 32px; align-items: center; margin-bottom: 32px; padding: clamp(22px, 3vw, 34px);
	background: linear-gradient(135deg, var(--as-vert-pale) 0%, var(--as-blanc) 70%);
	border: 1px solid var(--as-bord); border-radius: calc(var(--as-rayon) + 6px);
}
.as-fiche__logo {
	flex: none; display: grid; place-items: center; width: 220px; height: 160px; padding: 16px; box-sizing: border-box;
	background: var(--as-blanc); border: 1px solid var(--as-bord); border-radius: var(--as-rayon); box-shadow: var(--as-ombre);
}
.as-fiche__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.as-fiche__identite { min-width: 0; }
.as-fiche__themes-principaux { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
body.annuaire-solaire .as-fiche__nom { margin: 0 0 8px; font-size: clamp(28px, 4vw, 44px); font-weight: 800; line-height: 1.08; overflow-wrap: anywhere; }
.as-fiche__lieu { display: flex; align-items: center; gap: 6px; margin: 0 0 18px; color: var(--as-texte-doux); }
.as-fiche__lieu svg { color: var(--as-vert-vif); }
.as-fiche__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.as-fiche__grille { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }
.as-fiche__coordonnees { position: sticky; top: 100px; display: grid; gap: 16px; }
@media (max-width: 1000px) {
	.as-fiche__grille { grid-template-columns: minmax(0, 1fr); }
	.as-fiche__coordonnees { position: static; }
}
@media (max-width: 700px) {
	.as-fiche__entete { flex-direction: column; align-items: flex-start; gap: 20px; }
	.as-fiche__logo { width: 180px; height: 128px; }
	.as-fiche__actions .as-bouton { flex: 1 1 auto; }
}

.as-onglets { margin-bottom: 36px; }
.as-onglets__liste {
	display: flex; gap: 4px; margin-bottom: 24px; padding: 5px; overflow-x: auto;
	background: var(--as-fond); border: 1px solid var(--as-bord); border-radius: 999px; scrollbar-width: none;
}
.as-onglets__liste [role="tab"] {
	flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 20px;
	font: 600 15px/1 var(--as-police); color: var(--as-texte-doux); background: transparent;
	border: 0; border-radius: 999px; cursor: pointer; transition: .15s;
}
.as-onglets__liste [role="tab"]:hover { color: var(--as-vert); background: transparent; }
.as-onglets__liste [role="tab"][aria-selected="true"] { color: var(--as-blanc); background: var(--as-vert); box-shadow: var(--as-ombre); }
.as-onglets__liste [role="tab"][aria-selected="true"] .as-compteur { color: var(--as-vert-nuit); background: var(--as-soleil); }
html:not(.as-js) .as-onglets__panneau + .as-onglets__panneau { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--as-bord); }

.as-texte-fiche { font-size: 17px; line-height: 1.7; color: #26332b; }
body.annuaire-solaire .as-texte-fiche h3 { margin: 28px 0 10px; font-size: 20px; font-weight: 700; color: var(--as-vert-fonce); }
.as-texte-fiche p { margin: 0 0 1em; }
.as-texte-fiche ul { padding-left: 1.3em; }
.as-texte-fiche__special { margin-top: 28px; padding: 20px 22px; background: var(--as-soleil-clair); border-radius: var(--as-rayon); }
.as-photo-unique { margin: 28px 0 0; }
.as-photo-unique img { width: 100%; height: auto; border-radius: var(--as-rayon); }

.as-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.as-galerie a { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: var(--as-fond); border-radius: var(--as-rayon-petit); }
.as-galerie img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.as-galerie a:hover img { transform: scale(1.05); }
.as-galerie span { display: block; margin-top: 6px; font-size: 14px; color: var(--as-texte-doux); }

.as-documents { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
body.annuaire-solaire .as-documents a {
	display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px;
	color: var(--as-texte); text-decoration: none;
	background: var(--as-blanc); border: 1px solid var(--as-bord); border-radius: var(--as-rayon); transition: .15s;
}
.as-documents a:hover { border-color: var(--as-vert); background: var(--as-vert-pale); }
.as-documents svg { width: 26px; height: 26px; color: var(--as-vert); }
.as-documents span { display: flex; flex-direction: column; gap: 4px; }
.as-documents small { color: var(--as-texte-doux); font-size: 14px; }

.as-video + .as-video { margin-top: 32px; }
.as-video__cadre { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #000; border-radius: var(--as-rayon); }
.as-video__cadre iframe { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; }
.as-actus { margin: 0; padding: 0; list-style: none; }
.as-actus li { padding: 14px 0; border-bottom: 1px solid var(--as-bord); }
.as-actus a { font-weight: 600; }
.as-actus p { margin: 4px 0 0; font-size: 15px; color: var(--as-texte-doux); }

.as-fiche__section { margin-bottom: 28px; }

.as-carte-coordonnees {
	padding: 24px; background: var(--as-blanc);
	position: relative; overflow: hidden; border: 1px solid var(--as-bord); border-radius: calc(var(--as-rayon) + 4px); box-shadow: var(--as-ombre);
}
.as-coord__nom { margin: 0 0 6px; font: 700 18px/1.3 var(--as-police-titre); }
.as-carte-coordonnees address { margin: 0 0 16px; font-style: normal; line-height: 1.55; color: #36423b; }
.as-coord__liste { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 14px; margin: 0; padding-top: 16px; border-top: 1px solid var(--as-bord); font-size: 15px; }
.as-coord__liste dt { font-weight: 600; color: var(--as-texte-doux); }
.as-coord__liste dd { margin: 0; overflow-wrap: anywhere; }
.as-coord__autre { margin: 16px 0 0; padding-top: 14px; font-size: 15px; border-top: 1px solid var(--as-bord); }
.as-reseaux { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 16px 0 0; list-style: none; border-top: 1px solid var(--as-bord); }
body.annuaire-solaire .as-reseau {
	display: grid; place-items: center; width: 40px; height: 40px;
	color: var(--as-vert-fonce); background: var(--as-vert-pale); border-radius: 50%; transition: .15s;
}
body.annuaire-solaire .as-reseau:hover { color: var(--as-blanc); background: var(--as-vert); }
.as-fiche__maj { margin: 0; font-size: 14px; }
.as-fiche__maj a { display: inline-flex; align-items: center; gap: 6px; }
.as-fiche__ref { margin: -8px 0 0; font-size: 11px; color: #7c8880; }

.as-encart-complete {
	margin-top: 12px; padding: 26px; border-radius: var(--as-rayon);
	background: radial-gradient(circle at 100% 0, rgba(253, 200, 16, .28), transparent 45%), var(--as-vert-pale);
	border: 1px dashed #a9c8b2;
}
body.annuaire-solaire .as-encart-complete h2 { margin: 0 0 8px; font-size: 20px; }
.as-encart-complete p { margin: 0 0 16px; color: var(--as-texte-doux); }

/* Visionneuse */
.as-visionneuse { width: min(1100px, 94vw); max-height: 92vh; padding: 0; overflow: visible; background: transparent; border: 0; }
.as-visionneuse::backdrop { background: rgba(5, 20, 11, .88); }
.as-visionneuse figure { margin: 0; text-align: center; }
.as-visionneuse img { max-width: 100%; max-height: 82vh; border-radius: var(--as-rayon-petit); }
.as-visionneuse figcaption { margin-top: 10px; color: #fff; }
.as-visionneuse button { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; font-size: 30px; line-height: 1; color: #fff; background: rgba(255, 255, 255, .14); border: 0; border-radius: 50%; cursor: pointer; }
.as-visionneuse button:hover { background: rgba(255, 255, 255, .28); }
.as-visionneuse button[hidden] { display: none; }
.as-visionneuse__fermer { top: -56px; right: 0; }
.as-visionneuse__nav--prec { left: -64px; top: 45%; }
.as-visionneuse__nav--suiv { right: -64px; top: 45%; }
@media (max-width: 1240px) { .as-visionneuse__nav--prec { left: 6px; } .as-visionneuse__nav--suiv { right: 6px; } }

/* ==========================================================================
   11. Formulaires (mise à jour de fiche, Forminator)
   ========================================================================== */

.as-formulaire { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; max-width: 820px; margin-top: 20px; }
.as-champ { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; border: 0; }
.as-champ[hidden] { display: none; }
.as-champ--large { grid-column: 1 / -1; }
.as-champ label, .as-champ legend { font-weight: 600; font-size: 15px; }
.as-champ small { font-weight: 400; color: var(--as-texte-doux); }
body.annuaire-solaire .as-champ :is(input, select) { height: 48px; padding: 0 14px; font: 16px var(--as-police); border: 1px solid var(--as-bord); border-radius: var(--as-rayon-petit); background: var(--as-blanc); }
.as-champ input:focus, .as-champ select:focus { border-color: var(--as-vert); outline: 0; box-shadow: 0 0 0 3px rgba(25, 110, 60, .15); }
.as-maj-mots { padding: 18px; background: var(--as-fond); border-radius: var(--as-rayon); }
.as-maj-mots [data-as-maj-liste] { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px 16px; margin-top: 10px; }
.as-case { display: flex; gap: 10px; align-items: center; font-weight: 400 !important; cursor: pointer; }
body.annuaire-solaire .as-case input { width: 18px; height: 18px; accent-color: var(--as-vert); }
.as-formulaire__pied { grid-column: 1 / -1; }
.as-formulaire__pied p { margin: 14px 0 0; font-size: 15px; color: var(--as-texte-doux); }
@media (max-width: 640px) { .as-formulaire { grid-template-columns: minmax(0, 1fr); } }

/* Forminator : harmonisation avec la charte */
body.annuaire-solaire .forminator-ui.forminator-custom-form .forminator-button-submit {
	min-height: 48px; padding: 0 28px !important; font-weight: 600 !important;
	background: var(--as-vert) !important; border-radius: 999px !important; box-shadow: none !important;
}
body.annuaire-solaire .forminator-ui.forminator-custom-form .forminator-button-submit:hover { background: var(--as-vert-fonce) !important; }
body.annuaire-solaire .forminator-ui.forminator-custom-form .forminator-input,
body.annuaire-solaire .forminator-ui.forminator-custom-form .forminator-textarea { border-radius: var(--as-rayon-petit) !important; }

/* ==========================================================================
   12. Pages WordPress (mentions, partenaires, manifestations…)
   ========================================================================== */

body.annuaire-solaire .entry-content { font-size: 17px; line-height: 1.7; }
body.annuaire-solaire .entry-content :is(h2, h3) { color: var(--as-vert-fonce); }
body.annuaire-solaire .entry-content img { border-radius: var(--as-rayon-petit); }
body.annuaire-solaire .entry-content table { border-collapse: collapse; }
body.annuaire-solaire .entry-content :is(td, th) { padding: 10px; border-color: var(--as-bord); }
body.annuaire-solaire .page-title { font-weight: 800; }
/* Anciennes classes de Customify encore présentes dans certains contenus */
body.annuaire-solaire .entry-content .bouton_savoir_plus a,
body.annuaire-solaire .entry-content .bouton_savoir_plus2 a {
	display: inline-flex; padding: 10px 20px; color: var(--as-blanc); background: var(--as-vert); border-radius: 999px; text-decoration: none;
}

/* ==========================================================================
   13. Pied de page
   ========================================================================== */

.as-pied {
	position: relative; overflow: hidden; color: rgba(255, 255, 255, .78); font-size: 15px;
	background: radial-gradient(circle at 100% 0, rgba(253, 200, 16, .16), transparent 32%), var(--as-vert-nuit);
}
.as-pied__grille { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 40px; padding-top: 64px; padding-bottom: 48px; }
.as-pied__nom { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 800 24px/1.1 var(--as-police-titre); color: var(--as-blanc); }
.as-pied__nom svg { width: 28px; height: 28px; color: var(--as-soleil); }
.as-pied__marque p { margin: 0 0 20px; }
.as-pied__titre { margin: 4px 0 14px; font: 700 13px/1.3 var(--as-police); text-transform: uppercase; letter-spacing: .1em; color: var(--as-soleil); }
.as-pied ul { margin: 0; padding: 0; list-style: none; }
.as-pied li { margin-bottom: 9px; }
body.annuaire-solaire .as-pied a { color: rgba(255, 255, 255, .85); text-decoration: none; }
body.annuaire-solaire .as-pied a:hover { color: var(--as-blanc); text-decoration: underline; }
body.annuaire-solaire .as-pied .as-bouton--soleil { color: var(--as-vert-nuit) !important; }
.as-pied .as-bouton--soleil:hover { text-decoration: none !important; }
.as-pied__contacts a { display: inline-flex; align-items: center; gap: 10px; }
.as-pied__contacts svg { width: 17px; height: 17px; color: var(--as-soleil); }
.as-pied__bas { border-top: 1px solid rgba(255, 255, 255, .12); font-size: 14px; }
.as-pied__bas .as-conteneur { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-top: 20px; padding-bottom: 24px; }
.as-pied__bas p { margin: 0; }
@media (max-width: 1000px) { .as-pied__grille { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .as-pied__grille { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 44px; } }

/* ==========================================================================
   14. Accessibilité, impression
   ========================================================================== */

[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
	.as-entete-site, .as-pied, .as-barre, .as-pub, .as-filtres, .as-recherche, .as-fiche__actions, .as-encart-complete { display: none !important; }
	.as-page--barre .as-conteneur, .as-fiche__grille { display: block; }
	.as-onglets__panneau[hidden] { display: block !important; }
}

/* Pages construites avec Nimble Builder (manifestations) : recadrées dans la largeur du site */
body.annuaire-solaire .sektion-wrapper[data-sek-level="location"] {
	max-width: var(--as-largeur); margin: 0 auto; padding: clamp(24px, 4vw, 44px) var(--as-marge) 64px; box-sizing: border-box;
}
body.annuaire-solaire .sektion-wrapper :is(h1, h2) { font-family: var(--as-police-titre); }

/* ==========================================================================
   15. Pages de contenu : organismes partenaires, manifestations
   ========================================================================== */

.as-entete-contenu {
	padding: 36px 0 40px;
	background: radial-gradient(circle at 100% 0, rgba(253, 200, 16, .22), transparent 38%), linear-gradient(135deg, var(--as-vert-pale), #fff 75%);
	border-bottom: 1px solid var(--as-bord);
}
body.annuaire-solaire .as-entete-contenu h1 { margin: 0; font-size: clamp(30px, 4.4vw, 48px); font-weight: 800; line-height: 1.08; color: var(--as-vert-nuit); }
.as-entete-contenu .as-surtitre { display: flex; align-items: center; gap: 6px; }
.as-entete-contenu__corps { display: flex; align-items: center; gap: 28px; }
.as-entete-contenu__logo {
	flex: none; display: grid; place-items: center; width: 220px; height: 140px; padding: 16px; box-sizing: border-box;
	background: #fff; border: 1px solid var(--as-bord); border-radius: var(--as-rayon); box-shadow: var(--as-ombre);
}
.as-entete-contenu__logo figure { margin: 0 !important; }
.as-entete-contenu__logo img { width: auto !important; max-width: 100% !important; max-height: 106px !important; height: auto !important; object-fit: contain; border-radius: 0 !important; }
@media (max-width: 640px) {
	.as-entete-contenu__corps { flex-direction: column; align-items: flex-start; gap: 18px; }
	.as-entete-contenu__logo { width: 180px; height: 116px; }
}

.as-contenu-grille { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
.as-contenu-barre { position: sticky; top: 100px; display: grid; gap: 18px; }
@media (max-width: 1000px) {
	.as-contenu-grille { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.as-contenu-barre { position: static; }
}

/* Texte des pages partenaires : lecture confortable, rythme régulier */
body.annuaire-solaire .as-contenu { max-width: 760px; font-size: 17px; line-height: 1.75; color: #26332b; }
body.annuaire-solaire .as-contenu > * { margin-top: 0; margin-bottom: 1.1em; }
body.annuaire-solaire .as-contenu :is(h2, h3, h4) {
	margin: 1.9em 0 .6em; font-family: var(--as-police-titre); font-weight: 700; line-height: 1.25;
	color: var(--as-vert-fonce); text-transform: none;
}
body.annuaire-solaire .as-contenu h2 { font-size: 26px; }
body.annuaire-solaire .as-contenu h3 { font-size: 22px; }
body.annuaire-solaire .as-contenu h4 { font-size: 19px; }
body.annuaire-solaire .as-contenu :is(h2, h3, h4) strong { font-weight: inherit; }
body.annuaire-solaire .as-contenu :is(h2, h3, h4):first-child { margin-top: 0; }
body.annuaire-solaire .as-contenu ul { padding: 0; list-style: none; }
body.annuaire-solaire .as-contenu ul li { position: relative; margin-bottom: .5em; padding-left: 26px; }
body.annuaire-solaire .as-contenu ul li::before {
	content: ''; position: absolute; left: 4px; top: .62em; width: 9px; height: 9px;
	background: var(--as-soleil); border-radius: 50%; box-shadow: 0 0 0 3px var(--as-soleil-clair);
}
body.annuaire-solaire .as-contenu figure { margin: 1.6em 0; }
body.annuaire-solaire .as-contenu img { height: auto; max-width: 100%; border-radius: var(--as-rayon-petit); }
body.annuaire-solaire .as-contenu .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin: 1.6em 0; }
body.annuaire-solaire .as-contenu .wp-block-button__link {
	display: inline-flex; align-items: center; min-height: 46px; padding: 10px 22px; box-sizing: border-box;
	font: 600 15px/1.2 var(--as-police); color: #fff; background: var(--as-vert); border: 0; border-radius: 999px; text-decoration: none;
	transition: background .18s, transform .18s;
}
body.annuaire-solaire .as-contenu .wp-block-button__link:hover { background: var(--as-vert-fonce); transform: translateY(-1px); }
body.annuaire-solaire .as-contenu a:not(.wp-block-button__link) { overflow-wrap: anywhere; }

.as-carte-liens { padding: 22px; background: var(--as-fond); border: 1px solid var(--as-bord); border-radius: var(--as-rayon); }
.as-carte-liens ul { margin: 0; padding: 0; list-style: none; }
.as-carte-liens li + li { border-top: 1px solid var(--as-bord); }
body.annuaire-solaire .as-carte-liens a { display: block; padding: 8px 0; font-size: 15px; color: var(--as-texte); text-decoration: none; }
body.annuaire-solaire .as-carte-liens a:hover { color: var(--as-vert); }
.as-carte-appel { padding: 22px; color: rgba(255, 255, 255, .9); background: linear-gradient(135deg, var(--as-vert), var(--as-vert-fonce)); border-radius: var(--as-rayon); }
.as-carte-appel p { margin: 0 0 14px; font-size: 15px; }
.as-carte-appel strong { color: #fff; }
.as-recherche--compacte { padding: 4px 4px 4px 12px; border: 0; }
body.annuaire-solaire .as-recherche--compacte input[type="search"] { height: 40px; font-size: 15px; padding: 0 8px; }
.as-recherche--compacte button[type="submit"] { width: 40px; height: 40px; padding: 0; font-size: 0; color: var(--as-vert-nuit); background: var(--as-soleil); }
.as-recherche--compacte button[type="submit"]::before { content: '→'; font-size: 18px; }
.as-recherche--compacte button[type="submit"]:hover { background: var(--as-soleil-fonce); }

/* Grille des organismes partenaires */
.as-partenaires { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
body.annuaire-solaire .as-partenaire {
	position: relative; display: flex; flex-direction: column; height: 100%; box-sizing: border-box; overflow: hidden;
	color: var(--as-texte); text-decoration: none; background: #fff;
	border: 1px solid var(--as-bord); border-radius: var(--as-rayon); transition: .18s;
}
.as-partenaire:hover { border-color: var(--as-vert); box-shadow: var(--as-ombre); transform: translateY(-3px); }
.as-partenaire__logo { display: grid; place-items: center; height: 140px; padding: 20px; background: #fff; border-bottom: 1px solid #edf2ee; }
.as-partenaire__logo img { max-width: 100%; max-height: 100px; object-fit: contain; }
.as-partenaire__logo svg { width: 48px; height: 48px; color: var(--as-soleil); }
.as-partenaire__nom { padding: 16px 48px 18px 18px; font: 700 17px/1.3 var(--as-police-titre); }
.as-partenaire > .as-icone { position: absolute; right: 16px; bottom: 20px; color: var(--as-vert); transition: transform .18s; }
.as-partenaire:hover > .as-icone { transform: translateX(3px); }

/* Manifestations */
.as-evenements { display: grid; gap: 16px; max-width: 980px; }
body.annuaire-solaire .as-evenements__pays {
	display: flex; align-items: center; gap: 14px; margin: 26px 0 2px; font-size: 22px; font-weight: 800; color: var(--as-vert-fonce);
}
.as-evenements__pays::after { content: ''; flex: 1; height: 1px; background: var(--as-bord); }
.as-evenements__pays:first-child { margin-top: 0; }
.as-evenement {
	display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 28px; align-items: center;
	position: relative; overflow: hidden; padding: 24px; background: #fff; border: 1px solid var(--as-bord);
	border-radius: var(--as-rayon); transition: border-color .18s, box-shadow .18s;
}
.as-evenement:hover { box-shadow: var(--as-ombre); }
.as-evenement--sans-logo { grid-template-columns: minmax(0, 1fr); }
.as-evenement__logo { display: grid; place-items: center; height: 120px; padding: 12px; background: #fff; border: 1px solid #edf2ee; border-radius: var(--as-rayon-petit); }
.as-evenement__logo a { display: contents; }
.as-evenement__logo img { width: auto !important; max-width: 100%; max-height: 96px; height: auto; object-fit: contain; }
body.annuaire-solaire .as-evenement__titre { margin: 0 0 8px; font-size: 21px; font-weight: 800; line-height: 1.2; color: var(--as-texte); }
.as-evenement__texte { font-size: 16px; line-height: 1.65; color: #36423b; }
.as-evenement__texte p { margin: 0 0 .5em; }
.as-evenement__texte p:last-child { margin-bottom: 0; }
.as-evenement__texte h4 { margin: .4em 0; font-size: 17px; }
.as-evenement__texte strong { color: var(--as-texte); }
.as-evenement__texte a { overflow-wrap: anywhere; font-weight: 600; }
@media (max-width: 640px) {
	.as-evenement { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 18px; }
	.as-evenement__logo { height: 96px; justify-self: start; width: 200px; box-sizing: border-box; }
	.as-evenement__logo img { max-height: 70px; }
}

/* ==========================================================================
   16. Pages à formulaire (Forminator)
   ========================================================================== */

.as-contenu-grille--formulaire { grid-template-columns: minmax(0, 1fr) 340px; }
.as-formulaire-infos {
	padding: 26px; font-size: 16px;
	background: radial-gradient(circle at 100% 0, rgba(253, 200, 16, .25), transparent 45%), var(--as-vert-pale);
	border: 1px solid var(--as-bord); border-radius: var(--as-rayon);
}
body.annuaire-solaire .as-formulaire-infos .as-contenu { font-size: 16px; line-height: 1.65; }
body.annuaire-solaire .as-formulaire-infos .has-text-align-center { text-align: left; }
body.annuaire-solaire .as-formulaire-infos .wp-block-buttons { justify-content: flex-start !important; }
body.annuaire-solaire .as-formulaire-infos .wp-block-button__link { color: var(--as-vert-nuit); background: var(--as-soleil); }
body.annuaire-solaire .as-formulaire-infos .wp-block-button__link:hover { background: var(--as-soleil-fonce); }
body.annuaire-solaire .as-formulaire-infos h2, body.annuaire-solaire .as-formulaire-infos h3 { font-size: 20px; padding: 0; border: 0; }

.as-carte-formulaire {
	padding: clamp(20px, 3vw, 36px); background: #fff;
	position: relative; overflow: hidden; border: 1px solid var(--as-bord); border-radius: calc(var(--as-rayon) + 4px); box-shadow: var(--as-ombre);
}
.as-mentions { margin-top: 20px; font-size: 14px; line-height: 1.6; color: var(--as-texte-doux); }
.as-mentions p { margin: 0 0 .5em; }

/* Champs Forminator (thème « flat ») aux couleurs du site */
body.annuaire-solaire .forminator-ui.forminator-design--flat { font-family: var(--as-police) !important; max-width: none; }
body.annuaire-solaire .forminator-design--flat .forminator-row { margin-bottom: 18px !important; }
body.annuaire-solaire .forminator-design--flat .forminator-label {
	margin-bottom: 6px !important; font: 600 14px/1.4 var(--as-police) !important; color: var(--as-texte) !important;
}
body.annuaire-solaire .forminator-design--flat .forminator-required { color: var(--as-erreur) !important; }
body.annuaire-solaire .forminator-design--flat :is(.forminator-input, .forminator-textarea, .forminator-select2 + .select2 .select2-selection) {
	min-height: 48px; padding: 10px 14px !important; font: 400 16px/1.4 var(--as-police) !important; color: var(--as-texte) !important;
	background: #fff !important; border: 1px solid var(--as-bord) !important; border-radius: var(--as-rayon-petit) !important; box-shadow: none !important;
}
body.annuaire-solaire .forminator-design--flat :is(.forminator-input, .forminator-textarea):hover { border-color: #b9cfbf !important; }
body.annuaire-solaire .forminator-design--flat :is(.forminator-input, .forminator-textarea):focus {
	border-color: var(--as-vert) !important; box-shadow: 0 0 0 3px rgba(25, 110, 60, .15) !important;
}
body.annuaire-solaire .forminator-design--flat .forminator-description { margin-top: 5px !important; font-size: 13px !important; color: var(--as-texte-doux) !important; }
body.annuaire-solaire .forminator-design--flat .forminator-subtitle {
	margin: 18px 0 4px !important; padding: 16px 18px !important; font: 700 17px/1.4 var(--as-police-titre) !important;
	color: var(--as-vert-nuit) !important; background: var(--as-soleil-clair) !important; border-radius: var(--as-rayon-petit);
}
/* Groupes de cases (domaines → thématiques) en cartes, options sur deux colonnes */
body.annuaire-solaire .forminator-design--flat .forminator-field-checkbox .forminator-field {
	padding: 16px 18px; background: var(--as-fond); border: 1px solid var(--as-bord); border-radius: var(--as-rayon);
	display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px 18px;
}
body.annuaire-solaire .forminator-design--flat .forminator-field-checkbox .forminator-label {
	grid-column: 1 / -1; margin-bottom: 6px !important; font: 700 13px/1.3 var(--as-police) !important;
	letter-spacing: .08em; text-transform: uppercase; color: var(--as-vert) !important;
}
body.annuaire-solaire .forminator-design--flat .forminator-field-checkbox .forminator-description { grid-column: 1 / -1; }
body.annuaire-solaire .forminator-design--flat .forminator-checkbox { margin: 0 !important; padding: 7px 0 !important; align-items: flex-start; }
body.annuaire-solaire .forminator-design--flat .forminator-checkbox-label { font-size: 15px !important; line-height: 1.4 !important; color: var(--as-texte) !important; }
body.annuaire-solaire .forminator-design--flat .forminator-checkbox .forminator-checkbox-box {
	flex: none; width: 20px !important; height: 20px !important; margin-top: 1px;
	background: #fff !important; border: 2px solid #9fb3a6 !important; border-radius: 5px !important;
}
body.annuaire-solaire .forminator-design--flat .forminator-checkbox input:checked + .forminator-checkbox-box {
	background: var(--as-vert) !important; border-color: var(--as-vert) !important; color: #fff !important;
}
body.annuaire-solaire .forminator-design--flat .forminator-checkbox:hover .forminator-checkbox-label { color: var(--as-vert) !important; }
body.annuaire-solaire .forminator-ui.forminator-custom-form.forminator-design--flat .forminator-button-submit {
	min-height: 52px; padding: 0 34px !important; font: 700 16px/1 var(--as-police) !important;
	color: var(--as-vert-nuit) !important; background: var(--as-soleil) !important; border-radius: 999px !important; box-shadow: none !important;
}
body.annuaire-solaire .forminator-ui.forminator-custom-form.forminator-design--flat .forminator-button-submit:hover { background: var(--as-soleil-fonce) !important; }
body.annuaire-solaire .forminator-design--flat .forminator-response-message { border-radius: var(--as-rayon-petit) !important; }
@media (max-width: 1000px) {
	.as-contenu-grille--formulaire { grid-template-columns: minmax(0, 1fr); }
	.as-contenu-grille--formulaire .as-formulaire-infos { order: -1; position: static; }
}
/* Téléphone : on laisse Forminator placer drapeau et indicatif, seul le cadre est harmonisé */
body.annuaire-solaire .forminator-design--flat .forminator-field-phone .iti input.forminator-input { padding-left: 98px !important; }
.as-contenu-grille--empile { grid-template-columns: minmax(0, 1fr); max-width: 900px; gap: 28px; }
body.annuaire-solaire .as-formulaire-intro { max-width: none; padding: 28px; background: var(--as-vert-pale); border: 1px solid var(--as-bord); border-radius: var(--as-rayon); }
body.annuaire-solaire .as-formulaire-intro .wp-block-columns { display: flex; flex-wrap: wrap; gap: 24px; }
body.annuaire-solaire .as-formulaire-intro .wp-block-column { flex: 1 1 220px; text-align: center; }
body.annuaire-solaire .as-formulaire-intro .wp-block-buttons { justify-content: center !important; margin: 0 0 14px; }
body.annuaire-solaire .as-formulaire-intro .wp-block-button__link { color: var(--as-vert-nuit); background: var(--as-soleil); }
body.annuaire-solaire .as-formulaire-intro .wp-block-button__link:hover { background: var(--as-soleil-fonce); }
body.annuaire-solaire .as-formulaire-intro img { max-height: 260px; width: auto; box-shadow: var(--as-ombre); }
body.annuaire-solaire .as-formulaire-intro > :last-child { margin-bottom: 0; }

/* ==========================================================================
   17. Signature visuelle : les arcs du soleil tecsol
   Remplace les liserés colorés : trois arcs concentriques (repris du logo) dans
   l'angle supérieur droit des cartes, discrets au repos, jaunes au survol.
   ========================================================================== */

:root {
	--as-arcs: radial-gradient(circle at 100% 0,
		var(--as-soleil) 0 15px, transparent 15.5px 25px,
		var(--as-soleil) 25.5px 31px, transparent 31.5px 41px,
		var(--as-soleil) 41.5px 47px, transparent 47.5px);
}

:is(.as-carte--complete, .as-evenement, .as-carte-coordonnees, .as-carte-formulaire, .as-tuile)::after {
	content: ''; position: absolute; top: 0; right: 0; width: 48px; height: 48px; pointer-events: none;
	background: var(--as-arcs); opacity: .32; transform-origin: 100% 0;
	transition: opacity .25s, transform .35s cubic-bezier(.2, .8, .2, 1);
}
:is(.as-carte--complete, .as-evenement, .as-tuile):hover::after { opacity: 1; transform: scale(1.12); }
.as-carte-coordonnees::after, .as-carte-formulaire::after { width: 48px; height: 48px; opacity: .9; }
.as-carte--une::after { opacity: .9; }
/* la tuile garde sa flèche, déplacée sous l'angle décoré */
.as-tuile { overflow: hidden; }

/* Cartes : profondeur douce plutôt que bordure accentuée */
.as-carte--complete, .as-evenement {
	border-color: #e2e9e4; border-radius: calc(var(--as-rayon) + 4px);
	box-shadow: 0 1px 2px rgba(8, 45, 24, .04), 0 4px 14px rgba(8, 45, 24, .05);
}
.as-carte--complete:hover, .as-evenement:hover { border-color: #cfdcd3; box-shadow: var(--as-ombre-forte); }
.as-carte--complete .as-carte__corps, .as-evenement__corps { padding-right: 34px; }

/* Intertitres des pages de contenu : petit soleil levant (centre en bas à gauche, comme le logo) */
body.annuaire-solaire .as-contenu h3 { display: flex; align-items: baseline; gap: 12px; }
body.annuaire-solaire .as-contenu h3::before {
	content: ''; flex: none; width: 18px; height: 18px; transform: translateY(1px);
	background: radial-gradient(circle at 0 100%,
		var(--as-soleil) 0 6px, transparent 6.5px 9px,
		var(--as-soleil) 9.5px 12px, transparent 12.5px 15px,
		var(--as-soleil) 15.5px 18px, transparent 18.5px);
}
/* Bandeau « cochez les cases » du formulaire : même soleil, en tête */
body.annuaire-solaire .forminator-design--flat .forminator-subtitle { position: relative; padding-left: 50px !important; }
body.annuaire-solaire .forminator-design--flat .forminator-subtitle::before {
	content: ''; position: absolute; left: 18px; top: 50%; width: 20px; height: 20px; margin-top: -10px;
	background: radial-gradient(circle at 0 100%, var(--as-soleil-fonce) 0 6px, transparent 6.5px 10px, var(--as-soleil-fonce) 10.5px 13px, transparent 13.5px 17px, var(--as-soleil-fonce) 17.5px 20px, transparent 20.5px);
}
@media (prefers-reduced-motion: reduce) { :is(.as-carte--complete, .as-evenement, .as-tuile):hover::after { transform: none; } }
