/* Carte des subdivisions et interrégions : jetons de affep-identite.css. Effets de survol sobres, sans animation. */
.affep-carte-internat {
	--aci-repos: #DCEAED;
	--aci-trait: #BCD0D5;
	--aci-groupe: #A6D0D8;
	--aci-territoire: #E8F3F5;
	--aci-fil: var(--affep-thread, #2D8496);
	--aci-action: var(--affep-action, #167677);
	--aci-encre: var(--affep-ink, #18303D);
	color: var(--aci-encre);
	display: grid;
	font-family: Inter, sans-serif;
	font-size: 16px;
	gap: 40px;
	grid-template-columns: minmax(0, 1fr) 360px;
	line-height: 1.5;
}
.affep-carte-internat *, .affep-carte-internat *::before, .affep-carte-internat *::after { box-sizing: border-box; }
.affep-carte-internat h3, .affep-carte-internat p, .affep-carte-internat ul { margin: 0; padding: 0; }
.affep-carte-internat li { list-style: none; }

/* La carte */
.affep-carte-internat .aci-carte { min-width: 0; }
.affep-carte-internat .aci-svg { display: block; height: auto; overflow: visible; width: 100%; }
.affep-carte-internat .aci-territoires path { fill: transparent; stroke: none; }
.affep-carte-internat .aci-limites { fill: none; pointer-events: none; stroke: var(--aci-fil); stroke-dasharray: 1 7; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.6; vector-effect: non-scaling-stroke; }
.affep-carte-internat .aci-sub { cursor: pointer; outline: none; text-decoration: none; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.affep-carte-internat .aci-sub path { fill: var(--aci-repos); stroke: var(--aci-trait); stroke-width: 1; transition: fill .12s linear; vector-effect: non-scaling-stroke; }
.affep-carte-internat .aci-nom { fill: var(--aci-encre); font-family: Inter, sans-serif; font-size: 15px; font-weight: 600; pointer-events: none; text-anchor: middle; }
.affep-carte-internat .aci-nom-om { text-anchor: start; }
.affep-carte-internat .aci-zone { fill: transparent; }
.affep-carte-internat .aci-nom[data-sub="saint-etienne"] { font-size: 13px; }
.affep-carte-internat .aci-nom[data-sub="montpellier"], .affep-carte-internat .aci-nom[data-sub="besancon"] { font-size: 14px; }
.affep-carte-internat .aci-cadre { fill: #FFF; stroke: var(--aci-fil); stroke-dasharray: 1 7; stroke-linecap: round; stroke-width: 2.6; vector-effect: non-scaling-stroke; }

/* Interrégion active */
.affep-carte-internat .aci-territoires path.est-active { fill: var(--aci-territoire); stroke: none; }
.affep-carte-internat .aci-sub.est-groupe path { fill: var(--aci-groupe); stroke: var(--aci-fil); }
.affep-carte-internat .aci-sub.est-groupe .aci-cadre { fill: var(--aci-territoire); }
.affep-carte-internat .aci-sub.est-choisie path { fill: var(--aci-action); stroke: var(--aci-action); }
.affep-carte-internat .aci-nom.est-groupe { paint-order: stroke; stroke: #FFF; stroke-linejoin: round; stroke-width: 3px; }
.affep-carte-internat .aci-nom.est-choisie { fill: #FFF; paint-order: stroke; stroke: var(--aci-action); stroke-linejoin: round; stroke-width: 3px; }
.affep-carte-internat .aci-nom-om.est-choisie { fill: var(--aci-encre); stroke: none; }
.affep-carte-internat .aci-sub.est-choisie .aci-cadre { stroke: var(--aci-action); stroke-dasharray: none; }
.affep-carte-internat .aci-sub:focus-visible path { stroke: var(--aci-encre); stroke-width: 3; }

.affep-carte-internat .aci-legende { align-items: center; color: var(--affep-muted, #576A74); display: flex; font-size: 14px; gap: 10px; margin-top: 12px; }
.affep-carte-internat .aci-legende span { border-top: 3px dotted var(--aci-fil); display: block; width: 36px; }

/* État et liste */
.affep-carte-internat .aci-cote { min-width: 0; }
.affep-carte-internat .aci-etat { background: var(--affep-tint, #F4F8F7); border: 1px solid var(--affep-line, #DCE5E7); border-left: 4px solid var(--aci-fil); border-radius: 8px; margin-bottom: 20px; min-height: 104px; padding: 14px 16px; }
.affep-carte-internat .aci-etat-titre { color: var(--affep-navy-dark, #0C2A3C); font-family: Manrope, sans-serif; font-size: 18px; font-weight: 700; line-height: 1.3; }
.affep-carte-internat .aci-etat-detail { font-size: 15px; margin-top: 2px; }
.affep-carte-internat .aci-bouton { align-items: center; background: var(--aci-action); border-radius: 8px; color: #FFF; display: inline-flex; font-size: 15px; font-weight: 600; margin-top: 10px; min-height: 44px; padding: 8px 14px; text-decoration: none; }
.affep-carte-internat .aci-bouton:hover, .affep-carte-internat .aci-bouton:focus { background: var(--affep-action-hover, #0F5859); color: #FFF; text-decoration: none; }

.affep-carte-internat .aci-ir { border-top: 1px solid var(--affep-line, #DCE5E7); padding: 10px 12px; }
.affep-carte-internat .aci-ir.est-active { background: var(--aci-territoire); box-shadow: inset 3px 0 0 var(--aci-fil); }
.affep-carte-internat .aci-ir h3 { align-items: baseline; color: var(--affep-navy-dark, #0C2A3C); display: flex; font-family: Manrope, sans-serif; font-size: 16px; font-weight: 700; gap: 8px; justify-content: space-between; line-height: 1.35; }
.affep-carte-internat .aci-ir h3 span { color: var(--affep-muted, #576A74); font-family: Inter, sans-serif; font-size: 13px; font-weight: 400; white-space: nowrap; }
.affep-carte-internat .aci-ir ul { display: flex; flex-wrap: wrap; gap: 0 14px; margin-top: 2px; }
.affep-carte-internat .aci-ir a { color: var(--aci-action); display: inline-block; font-size: 15px; padding: 2px 0; text-decoration: underline; text-underline-offset: 2px; }
.affep-carte-internat .aci-ir a:hover, .affep-carte-internat .aci-ir a.est-choisie { color: var(--affep-action-hover, #0F5859); font-weight: 600; }
.affep-carte-internat a:focus-visible { outline: 3px solid var(--aci-action); outline-offset: 2px; }

@media (max-width: 1100px) {
	.affep-carte-internat { gap: 16px; grid-template-columns: minmax(0, 1fr); }
	.affep-carte-internat .aci-carte { justify-self: center; max-width: 700px; width: 100%; }
	.affep-carte-internat .aci-etat { margin-bottom: 16px; min-height: 0; }
	.affep-carte-internat .aci-ir a { padding: 7px 0; }
	.affep-carte-internat .aci-ir ul { gap: 0 18px; }
}
/* Téléphone à l'horizontale : la carte et le panneau restent côte à côte. */
@media (max-height: 500px) and (min-width: 601px) {
	.affep-carte-internat { align-items: start; gap: 24px; grid-template-columns: minmax(0, 1fr) 280px; }
	.affep-carte-internat .aci-etat { position: sticky; top: 72px; z-index: 2; }
}
/* Sur les petites cartes, seuls les noms de l'interrégion choisie s'affichent, agrandis. */
@media (max-width: 600px), (max-height: 500px) {
	.affep-carte-internat .aci-nom { display: none; }
	.affep-carte-internat .aci-nom.est-groupe { display: block; paint-order: stroke; stroke: #FFF; stroke-linejoin: round; stroke-width: 4px; transform: scale(1.6); transform-box: fill-box; transform-origin: center; }
	.affep-carte-internat .aci-nom.est-groupe.est-choisie { stroke: var(--aci-action); }
	.affep-carte-internat .aci-nom-om.est-groupe, .affep-carte-internat .aci-nom-om.est-groupe.est-choisie { stroke: #FFF; transform-origin: left center; }
	/* Noms agrandis : Rhône-Alpes Auvergne et Sud sont trop serrées pour garder leur place. */
	.affep-carte-internat .aci-nom[data-sub="lyon"] { translate: 0 21px; }
	.affep-carte-internat .aci-nom[data-sub="clermont-ferrand"] { translate: 10px 0; }
	.affep-carte-internat .aci-nom[data-sub="saint-etienne"] { translate: 16px -4px; }
	.affep-carte-internat .aci-nom[data-sub="marseille"] { translate: -3px 34px; }
	.affep-carte-internat .aci-nom[data-sub="nice"] { translate: 13px -23px; }
	.affep-carte-internat .aci-nom[data-sub="strasbourg"] { translate: -14px -8px; }
	.affep-carte-internat .aci-nom[data-sub="montpellier"] { translate: 12px -4px; }
	.affep-carte-internat .aci-limites, .affep-carte-internat .aci-cadre { stroke-dasharray: 1 5; stroke-width: 2.2; }
}
@media (prefers-reduced-motion: reduce) {
	.affep-carte-internat .aci-sub path { transition: none; }
}
