/* Implantations */
.presence::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 80% at 70% 50%, rgba(30, 100, 16, .3), transparent 70%); }
.presence__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.presence--compact { padding-block: clamp(2rem, 4vw, 3.5rem); }
.presence__facts { display: grid; gap: 1rem; margin-top: 2rem; font-size: .92rem; }
.presence__facts li { display: flex; align-items: center; gap: .9rem; }
.presence__facts strong { font-family: var(--font-display); font-size: 1.7rem; font-weight: 500; margin-right: .2rem; }
.presence__facts .icon-ring { width: 46px; height: 46px; }

.map { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: start; }
.map__svg { width: 100%; height: auto; overflow: visible; }
.map__svg text { font-family: var(--font-display); paint-order: stroke; stroke: rgba(12, 8, 4, .8); stroke-width: 4px; }
.map__link { stroke-dasharray: 2.2 2.2; animation: dash 9s linear infinite; opacity: .85; }
.map__halo { transform-box: fill-box; transform-origin: center; animation: halo 3.2s var(--ease) infinite; }
.map__node:nth-of-type(2n) .map__halo { animation-delay: -1.4s; }
.map__node { cursor: pointer; }
.map__node:hover text, .map__node.is-active text, .map__node:focus-visible text { fill: var(--color-brand-light); }
.map__node:hover circle:nth-child(2), .map__node.is-active circle:nth-child(2), .map__node.is-hot circle:nth-child(2) { fill: #fff; r: 9px; }
.map__node:focus-visible { outline: none; }
.map__node:focus-visible circle:nth-child(2) { stroke: #fff; stroke-width: 3; }
.map__legend { display: grid; gap: .1rem; padding: .6rem; border: 1px solid var(--color-border-dark); border-radius: var(--radius-sm); background: rgba(12, 8, 4, .5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-size: .8rem; }
.map__legend a { display: flex; align-items: center; gap: .6rem; padding: .4rem .7rem; border-radius: 6px; transition: background-color var(--dur-fast), color var(--dur-fast); }
.map__legend a::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--color-brand-light); box-shadow: 0 0 0 3px rgba(255, 255, 255, .2); }
.map__legend a:hover, .map__legend a[aria-current], .map__legend a.is-hot { background: rgba(255, 255, 255, .14); color: var(--color-brand-light); }

.territory-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(.75rem, 1.4vw, 1.25rem); }
.territory-tile { display: grid; gap: .8rem; align-content: start; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding-bottom: 1.1rem; perspective: 1000px; }
.territory-tile .t-card { border-radius: var(--radius-md) var(--radius-md) 0 0; box-shadow: none; }
.territory-tile > p { padding-inline: 1rem; font-size: .88rem; color: var(--color-muted); }
.territory-tile__lead { display: flex; align-items: center; gap: .4rem; font-size: .8rem !important; color: var(--color-accent) !important; }

.local { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.local .placeholder-note { margin-top: 1.25rem; }
.contact-card { display: grid; gap: 1rem; padding: clamp(1.4rem, 2.5vw, 2rem); background: var(--color-ivory); border: 1px solid var(--color-border); border-radius: var(--radius-lg); position: sticky; top: calc(var(--header-h) + 1.5rem); }
.contact-card h2 { font-family: var(--font-body); font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--color-accent); }
.contact-card h2:not(:first-child) { margin-top: .75rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.contact-card__lead { display: flex; align-items: center; gap: 1rem; }
.contact-card__lead strong { font-family: var(--font-display); font-weight: 500; font-size: 1.2rem; }
.avatar { display: block; width: 68px; height: 68px; border-radius: 50%; overflow: hidden; flex: none; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }
.avatar--empty { display: grid; place-items: center; background: var(--color-sand); color: var(--color-green); }
.contact-list { display: grid; gap: .7rem; font-size: .92rem; }
.contact-list li { display: flex; gap: .7rem; align-items: flex-start; }
.contact-list .icon { color: var(--color-brand-deep); margin-top: .2rem; }
.contact-list a:hover { color: var(--color-accent); text-decoration: underline; }

@media (max-width: 1200px) { .territory-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1024px) {
  .presence__grid, .local { grid-template-columns: minmax(0, 1fr); }
  .contact-card { position: static; }
  .map { grid-template-columns: minmax(0, 1fr); }
  .map__legend { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; scrollbar-width: none; }
}
@media (max-width: 768px) {
  /* Mobile : liste en lignes (vignette + nom + flèche), comme sur la maquette */
  .territory-list { grid-template-columns: minmax(0, 1fr); gap: .7rem; }
  .territory-tile { grid-template-columns: 96px minmax(0, 1fr); gap: 0 .25rem; padding-bottom: 0; align-items: center; overflow: hidden; }
  .territory-tile .t-card { grid-row: span 2; height: 100%; min-height: 86px; aspect-ratio: auto; border-radius: 0; overflow: visible; background: none; color: var(--color-text); transform: none !important; }
  .territory-tile .t-card::after { display: none; }
  .territory-tile .t-card__img { position: absolute; inset: 0; width: 96px; }
  .territory-tile .t-card__body { position: absolute; left: 96px; top: 0; width: calc(100vw - 2 * var(--gutter) - 96px); padding: .8rem 1rem; transform: none; }
  .territory-tile .t-card__body > .icon { display: none; }
  .territory-tile .t-card__region { color: var(--color-muted); }
  .territory-tile > p { display: none; }
  .map__svg text { font-size: 26px; }
}
