/* Carte des territoires d’intervention (V2) — chargée uniquement par territoires-intervention.html.
   Jetons : brand-tokens.md — rouge #E10613 (sélection, action), sombre #0E2433, neutres #FAFAFA / #546E7A. */
.tm-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* page Territoires : en-tête resserré pour que recherche et carte arrivent dans le premier écran */
#territoires-map{padding-top:36px}
@media (min-width:1024px){#territoires-map{padding-top:32px}}
.tm-layout{display:grid;gap:20px;margin-top:0;grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "search" "map" "details" "list"}
.tm-intro{grid-area:intro;min-width:0;margin:0;padding:0}
.tm-intro .fl-lead{margin-top:14px}
.tm-search{grid-area:search;scroll-margin-top:96px}
.tm-mapcol{grid-area:map;min-width:0}
.tm-detailscol{grid-area:details;min-width:0}
.tm-listcol{grid-area:list;min-width:0}
@media (min-width:1024px){
  .tm-layout{grid-template-columns:400px minmax(0,1fr);grid-template-rows:auto auto 1fr auto;grid-template-areas:"intro map" "search map" "details map" "list list";align-items:start;column-gap:28px}
  .tm-intro .fl-h2{font-size:34px}
  .tm-mapcol{position:sticky;top:132px}
}
.tm-card{background:#fff;border:1px solid #CFD8DC;border-radius:16px;padding:20px}
.tm-h{margin:0;font:800 22px/1.2 var(--font-titre);letter-spacing:-.02em;color:#0E2433}
.tm-h3{margin:0 0 12px;font:700 19px/1.25 var(--font-titre);color:#0E2433}
.tm-help{margin:8px 0 0;font-size:14px;line-height:1.55;color:#546E7A}
/* recherche */
.tm-search form{display:grid;gap:12px;margin-top:14px}
.tm-field{display:flex;gap:8px}
.tm-field input{flex:1;min-width:0;min-height:48px;padding:0 14px;border:1.5px solid #CFD8DC;border-radius:12px;background:#FAFAFA;font:inherit;font-size:16px;color:#0E2433}
.tm-field button{flex:none;width:auto;display:inline-flex;align-items:center;justify-content:center;line-height:1;min-height:48px;min-width:48px;padding:0 16px;border:0;border-radius:12px;font:600 15px var(--font-titre)}
.tm-suggest{list-style:none;margin:0;padding:0;border:1px solid #CFD8DC;border-radius:12px;overflow:hidden;background:#fff}
.tm-suggest:empty{display:none}
.tm-suggest li+li{border-top:1px solid #ECEFF1}
.tm-option{display:block;width:100%;min-height:48px;padding:9px 14px;border:0;background:#fff;text-align:left;font:inherit;color:#0E2433;cursor:pointer}
.tm-option:hover,.tm-option:focus-visible{background:#ECEFF1}
.tm-option__name{display:block;font-weight:600;font-size:15px}
.tm-option__meta{display:block;font-size:13.5px;color:#546E7A}
.tm-result{margin-top:4px;padding:14px 16px;border-left:4px solid #0E2433;border-radius:8px;background:#FAFAFA}
.tm-result.is-served{border-left-color:#E10613}
.tm-result__main{margin:0;font-weight:600;font-size:15.5px;color:#0E2433}
.tm-result__meta{margin:6px 0 0;font-size:13.5px;color:#546E7A}
.tm-result__contact{margin:8px 0 0;font-size:14.5px}
/* carte */
.tm-map{position:relative;scroll-margin-top:88px;border:1px solid #CFD8DC;border-radius:16px;background:#F5F7F8;overflow:hidden}
.tm-canvas{height:600px;touch-action:pan-y}
.tm-canvas:focus-visible{outline:3px solid #0E2433;outline-offset:-3px}
.tm-canvas svg{display:block;width:100%;height:100%;cursor:grab}
.tm-canvas svg.is-dragging{cursor:grabbing}
.tm-toolbar{position:absolute;top:12px;right:12px;z-index:2;display:flex;flex-direction:column;gap:6px}
.tm-tool{min-width:44px;min-height:44px;padding:0 8px;border:1px solid #CFD8DC;border-radius:10px;background:#fff;color:#0E2433;font:700 16px var(--font-titre);cursor:pointer;box-shadow:0 2px 6px rgba(14,36,51,.08)}
.tm-hint{position:absolute;left:12px;bottom:10px;margin:0;font-size:12.5px;color:#546E7A;background:rgba(255,255,255,.85);padding:2px 8px;border-radius:6px}
.tm-country{fill:#fff;stroke:#90A4AE;stroke-width:1.2;vector-effect:non-scaling-stroke}
.tm-region{fill:none;stroke:#B0BEC5;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}
.tm-region-label{fill:#546E7A;font-family:var(--font-corps);font-weight:600;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}
/* enveloppes : une seule teinte opaque, les chevauchements ne s’additionnent pas */
.tm-zone{fill:#C5CBCF;cursor:pointer}
.tm-zone:hover{fill:#B4BCC1}
.tm-zone:focus-visible{outline:none;fill:#A9B2B8}
.tm-outline{fill:none;stroke:rgba(14,36,51,.5);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}
.tm-selected{fill:rgba(225,6,19,.16);stroke:#E10613;stroke-width:2.5;vector-effect:non-scaling-stroke;pointer-events:none}
.tm-you{fill:none;stroke:#E10613;stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}
.tm-zone-label{fill:#0E2433;font-family:var(--font-corps);font-weight:700;text-anchor:middle;paint-order:stroke;stroke:rgba(255,255,255,.92);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.tm-map .is-hidden,.tm-map .is-collided{display:none}
.tm-below{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;margin-top:12px}
.tm-legend{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:0;padding:0;font-size:13.5px;color:#546E7A}
.tm-legend li{display:inline-flex;align-items:center;gap:8px}
.tm-sw{display:inline-block;width:22px;height:14px;border-radius:3px}
.tm-sw--zone{background:#C5CBCF;border:1px solid rgba(14,36,51,.5)}
.tm-sw--sel{background:rgba(225,6,19,.16);border:2px solid #E10613}
.tm-sw--you{border:2px dashed #E10613}
.tm-filters{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;border:0;margin:0;padding:0}
.tm-filters legend{float:left;margin-right:6px;font-size:13.5px;font-weight:600;color:#546E7A}
.tm-filter{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14.5px;color:#0E2433;cursor:pointer}
.tm-filter input{width:20px;height:20px}
/* détail */
.tm-detailscol .tm-card:focus{outline:none}
.tm-detailscol .tm-card:focus-visible{outline:3px solid #0E2433;outline-offset:2px}
.tm-kicker{margin:0 0 6px;font:700 12px/1 var(--font-titre);letter-spacing:.12em;text-transform:uppercase;color:#C4062F}
.tm-title{margin:0 0 12px;font:800 19px/1.25 var(--font-titre);color:#0E2433}
.tm-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:15px}
.tm-dl dt{color:#546E7A}
.tm-dl dd{margin:0;color:#0E2433}
.tm-tags{display:flex;flex-wrap:wrap;gap:6px}
.tm-tag{font-size:13px;padding:2px 10px;border:1px solid #CFD8DC;border-radius:999px}
.tm-note{margin:12px 0 0;font-size:14px;line-height:1.55;color:#546E7A}
.tm-empty{margin:0;font-size:15px;color:#546E7A}
.tm-cta{display:inline-flex;align-items:center;min-height:48px;margin-top:14px;padding:0 18px;border-radius:12px;font:600 15px var(--font-titre);text-decoration:none}
/* liste */
.tm-list{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));list-style:none;margin:0;padding:0}
.tm-list li[hidden]{display:none}
.tm-item{display:block;width:100%;min-height:56px;padding:10px 14px;border:1px solid #CFD8DC;border-radius:12px;background:#fff;text-align:left;font:inherit;color:#0E2433;cursor:pointer}
.tm-item:hover{border-color:#90A4AE}
.tm-item[aria-pressed=true]{border:2px solid #E10613;padding:9px 13px}
.tm-item__label{display:block;font-weight:600;font-size:15px}
.tm-item__meta{display:block;font-size:13.5px;color:#546E7A}
.tm-places{margin:0 0 14px;max-width:80ch;font-size:15px;line-height:1.6;color:#0E2433}
.tm-option:focus-visible,.tm-item:focus-visible,.tm-tool:focus-visible,.tm-field input:focus-visible,.tm-field button:focus-visible,.tm-filter input:focus-visible{outline:3px solid #0E2433;outline-offset:2px}
@media (max-width:1023px){
  .tm-canvas{height:min(56vh,440px);min-height:320px}
  .tm-list{grid-template-columns:1fr}
}
/* sans JavaScript : pas de panneau, de liste ni de légende vides ; le message de la carte oriente vers le contact */
.tm-card[data-map-details]:empty{display:none}
html:not(.js) .tm-detailscol,html:not(.js) .tm-listcol,html:not(.js) .tm-below{display:none}
