/* NEO Carte de France 1.1.0 : s'appuie sur les variables du thème neo (--gold, --line) avec valeurs de secours. */
.neo-carte{
	--nc-gold:var(--gold,#d9a94a);
	--nc-gold-hi:#f4d98c;
	--nc-line:var(--line,rgba(217,169,74,.28));
	--nc-dim:rgba(255,255,255,.11);
	--nc-text:inherit;
	margin:32px 0;
	color:inherit;
}
.neo-carte *{box-sizing:border-box}
.neo-carte__head{text-align:center;margin:0 auto 22px;max-width:760px}
.neo-carte__title{margin:0 0 8px}
.neo-carte__intro{margin:0 0 10px;opacity:.85}
.neo-carte__stats{margin:0;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--nc-gold)}

/* Régions */
.neo-carte__regions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 22px}
.neo-carte__chip{
	appearance:none;cursor:pointer;font:inherit;font-size:.82rem;line-height:1;
	padding:9px 14px;border-radius:999px;color:inherit;background:transparent;
	border:1px solid var(--nc-line);transition:background .2s,border-color .2s,color .2s
}
.neo-carte__chip span{opacity:.6;margin-left:4px}
.neo-carte__chip:hover,.neo-carte__chip:focus-visible{border-color:var(--nc-gold);outline:none}
.neo-carte__chip[aria-pressed="true"]{background:var(--nc-gold);border-color:var(--nc-gold);color:#120d04}
.neo-carte__chip[aria-pressed="true"] span{opacity:.75}

/* Mise en page */
.neo-carte__layout{display:grid;gap:24px;grid-template-columns:1fr}
@media (min-width:900px){
	.neo-carte__layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}
	.neo-carte__panel{position:sticky;top:96px;max-height:calc(100vh - 130px);overflow:auto}
}

/* Carte */
.neo-carte__map{position:relative;max-width:640px;width:100%;margin:0 auto}
.neo-carte__svg{display:block;width:100%;height:auto;overflow:visible}
.neo-carte__dot{fill:var(--nc-dim);transition:fill .18s,opacity .18s,transform .18s;transform-box:fill-box;transform-origin:center}
.neo-carte__dot.is-on{fill:var(--nc-gold);opacity:.88;cursor:pointer}
.neo-carte__dot.is-on:focus{outline:none}
.neo-carte__dot.is-on:focus-visible{stroke:var(--nc-gold-hi);stroke-width:2.5}
.neo-carte__dot.is-hover{fill:var(--nc-gold-hi);opacity:1;transform:scale(1.28)}
.neo-carte__dot.is-sel{fill:var(--nc-gold-hi);opacity:1;transform:scale(1.35);filter:drop-shadow(0 0 4px rgba(244,217,140,.7))}
.neo-carte[data-reg-sel] .neo-carte__dot.is-on:not(.is-reg){opacity:.28}
.neo-carte[data-reg-sel] .neo-carte__dot.is-reg{opacity:1}

.neo-carte__tip{
	position:absolute;z-index:3;pointer-events:none;transform:translate(-50%,-135%);
	padding:6px 10px;border-radius:6px;font-size:.8rem;white-space:nowrap;
	background:#0b0907;color:#f4ead2;border:1px solid var(--nc-line);box-shadow:0 4px 14px rgba(0,0,0,.45)
}
.neo-carte__tip[hidden]{display:none}

/* Panneau */
.neo-carte__panel{
	padding:20px 22px;border:1px solid var(--nc-line);border-radius:10px;
	background:rgba(255,255,255,.025);min-height:140px
}
.neo-carte__hint{margin:0;opacity:.75}
.neo-carte__panel h3{margin:0 0 12px;font-size:1.25rem}
.neo-carte__panel h3 span{opacity:.6;font-size:.85em}
.neo-carte__back{margin:0 0 6px}
.neo-carte__back button,.neo-carte__deplist button{
	appearance:none;background:none;border:0;padding:0;font:inherit;color:var(--nc-gold);cursor:pointer;text-align:left
}
.neo-carte__back button{font-size:.85rem}
.neo-carte__back button:hover,.neo-carte__deplist button:hover{text-decoration:underline}
.neo-carte .neo-carte__deplist,.neo-carte .neo-carte__villes,.neo-carte .neo-carte__zone{list-style:none;margin:0;padding:0}
.neo-carte li{list-style:none}
.neo-carte__deplist li{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.neo-carte__deplist li span{opacity:.55;font-size:.85em;margin-left:6px}
.neo-carte__villes{columns:2;column-gap:22px}
@media (max-width:480px){.neo-carte__villes{columns:1}}
.neo-carte__villes>li{break-inside:avoid;padding:6px 0}
.neo-carte__ville,.neo-carte__zone a{color:inherit;text-decoration:none;border-bottom:1px solid var(--nc-line);transition:color .15s,border-color .15s}
.neo-carte__ville:hover,.neo-carte__zone a:hover,.neo-carte__ville:focus-visible{color:var(--nc-gold);border-color:var(--nc-gold)}
.neo-carte .neo-carte__zone{margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid var(--nc-line)}
.neo-carte__zone li{padding:3px 0;font-size:.92rem}
.neo-carte__more{margin-top:4px;font-size:.8rem}
.neo-carte__more summary{cursor:pointer;color:var(--nc-gold);opacity:.85;list-style:none}
.neo-carte__more summary::-webkit-details-marker{display:none}
.neo-carte .neo-carte__more ul{list-style:none;margin:6px 0 4px;padding:0 0 0 10px;border-left:1px solid var(--nc-line)}
.neo-carte__more li{padding:2px 0}
.neo-carte__more a{color:inherit;opacity:.85}

/* Sans JavaScript : toutes les listes restent visibles et crawlables. */
.neo-carte:not(.is-ready) .neo-carte__sec{margin:0 0 22px}
.neo-carte:not(.is-ready) .neo-carte__hint{display:none}
.neo-carte:not(.is-ready) .neo-carte__sec--reg{display:none}
.neo-carte.is-ready .neo-carte__sec{display:none}
.neo-carte.is-ready .neo-carte__sec.is-open{display:block}
.neo-carte.is-ready.has-open .neo-carte__hint{display:none}

@media (prefers-reduced-motion:reduce){
	.neo-carte__dot,.neo-carte__chip{transition:none}
	.neo-carte__dot.is-hover,.neo-carte__dot.is-sel{transform:none}
}
