/* Service Urahafu · composant carte de zone (zone.js)
   Autonome : reprend les tokens de l'accueil s'ils existent, sinon valeurs DA. */
.zcarte,.zc-liste{
  --zc-marine:var(--marine,#0061A9);--zc-ciel:var(--ciel-vif,#2AA5DE);--zc-vert:var(--vert,#2BB338);
  --zc-ink:var(--ink,#0B0D2E);--zc-mut:var(--mut,#4A5070);--zc-fond:#FFFFFF;
  --zc-line:color-mix(in srgb,var(--zc-marine) 14%,transparent);
  --zc-trait:color-mix(in srgb,var(--zc-marine) 20%,#FFFFFF);
  /* 5 secteurs : ciel 12 / 20 / 28 %, marine 8 / 14 % (voisins toujours différents) */
  --zc-s1:color-mix(in srgb,var(--zc-ciel) 12%,#FFFFFF);
  --zc-s2:color-mix(in srgb,var(--zc-marine) 14%,#FFFFFF);
  --zc-s3:color-mix(in srgb,var(--zc-ciel) 28%,#FFFFFF);
  --zc-s4:color-mix(in srgb,var(--zc-marine) 8%,#FFFFFF);
  --zc-s5:color-mix(in srgb,var(--zc-ciel) 20%,#FFFFFF);
  --zc-hlf:color-mix(in srgb,var(--zc-ciel) 35%,#FFFFFF);
  --zc-casse:#F4F5F8;
  --zc-survol:color-mix(in srgb,var(--zc-ciel) 58%,#FFFFFF);
  --zc-ease:cubic-bezier(.2,.8,.2,1);
  font-family:var(--f-text,"Plus Jakarta Sans",system-ui,sans-serif);color:var(--zc-ink)
}
.zcarte[data-mode="complet"]:empty{min-height:min(110vw,760px)}
.zcarte[data-mode="mini"]:empty{min-height:280px}

/* ---------- Mise en page du mode complet ---------- */
.zc--complet{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"r" "p" "f";row-gap:20px}
.zc-recherche{grid-area:r;min-width:0}
.zc-plan{grid-area:p;min-width:0;position:relative}
.zc-fiche{grid-area:f;min-width:0}
@media (max-width:899px){
  .zc--complet .zc-plan{margin-inline:calc(-1 * var(--pad,16px))}
  .zc--complet .zc-legende{padding-inline:var(--pad,16px)}
}
@media (min-width:900px){
  .zc--complet{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut,24px);grid-template-areas:none;row-gap:0;grid-template-rows:auto 1fr;align-items:start}
  .zc--complet .zc-plan{grid-column:1/8;grid-row:1/3}
  .zc--complet .zc-recherche{grid-column:8/-1;grid-row:1;padding-left:16px}
  .zc--complet .zc-fiche{grid-column:8/-1;grid-row:2;margin:24px 0 0 16px}
}

/* ---------- Recherche ---------- */
.zc-lab{display:block;font-weight:800;font-size:1.125rem;letter-spacing:-.01em;color:var(--zc-marine);margin-bottom:8px}
.zc-champ{position:relative}
.zc-champ input{width:100%;min-height:60px;padding:14px 56px 14px 16px;background:var(--zc-fond);border:0;border-bottom:2px solid var(--zc-marine);border-radius:0;font:500 1.125rem/1.3 var(--f-text,"Plus Jakarta Sans",sans-serif);color:var(--zc-ink);-webkit-appearance:none;appearance:none}
.zc-champ input::placeholder{color:#6A7090;font-weight:400}
.zc-champ input:focus{outline:2px solid var(--zc-ciel);outline-offset:2px}
.zc-champ input::-webkit-search-cancel-button{display:none}
.zc-vider{position:absolute;right:0;top:0;width:56px;height:100%;min-height:48px;background:none;border:0;cursor:pointer;color:var(--zc-marine);font:400 1.75rem/1 var(--f-text,sans-serif)}
.zc-vider:focus-visible{outline:2px solid var(--zc-ciel);outline-offset:-4px}
.zc-sugg{list-style:none;margin:0;padding:0;background:var(--zc-fond);border-top:0}
.zc-sugg li{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:8px 16px;border-bottom:1px solid var(--zc-line);cursor:pointer;font-weight:500}
.zc-sugg li .zc-sm{font:400 .875rem/1.3 var(--f-mono,"DM Mono",monospace);color:var(--zc-mut);white-space:nowrap}
.zc-sugg li[aria-selected="true"],.zc-sugg li:hover{background:color-mix(in srgb,var(--zc-ciel) 14%,#FFFFFF);color:var(--zc-marine)}
.zc-statut{min-height:0;margin:0;font-size:1.0625rem;line-height:1.5}
.zc-statut:not(:empty){margin-top:14px;display:flex;gap:12px;align-items:flex-start}
.zc-statut a{color:var(--zc-marine);font-weight:800;text-decoration:underline;text-decoration-color:var(--zc-ciel);text-underline-offset:5px;white-space:nowrap}
.zc-coche{flex:none;width:26px;height:26px;margin-top:-1px}
.zc-coche path{fill:none;stroke:var(--zc-vert);stroke-width:2.6;stroke-linecap:square}
.zc-hm{flex:none;width:22px;height:22px;margin-top:2px;border:1px solid var(--zc-trait);background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--zc-marine) 34%,#fff) 0 1.5px,#fff 1.5px 6px)}
.zc-tm{flex:none;width:22px;height:22px;margin-top:2px;display:grid;place-items:center;border:1.5px solid var(--zc-marine);color:var(--zc-marine);font:500 .875rem/1 var(--f-mono,monospace)}

/* ---------- Plan SVG ---------- */
.zc-feuille{background:var(--zc-fond);border:1px solid var(--zc-line)}
.zc-svg{display:block;width:100%;height:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.zc-c{stroke:var(--zc-trait);stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round;transition:opacity .25s var(--zc-ease)}
.zc-bords{fill:none;stroke:var(--zc-marine);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;pointer-events:none;opacity:.8}
.zc-sbd{fill:none;stroke:var(--zc-marine);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.zc-focus .zc-c:not(.zc-dans):not(.zc-s0),.zc-focus .zc-bords{opacity:.4}
.zc-fond-s .zc-c:not(.zc-dans):not(.zc-s0):not(.zc-on){opacity:.62}
.zc-st-h{fill:#FFFFFF;stroke:color-mix(in srgb,var(--zc-marine) 9%,#FFFFFF)}
.zc-s1{fill:var(--zc-s1)}.zc-s2{fill:var(--zc-s2)}.zc-s3{fill:var(--zc-s3)}.zc-s4{fill:var(--zc-s4)}.zc-s5{fill:var(--zc-s5)}
.zc-s0{fill:var(--zc-marine);stroke:var(--zc-marine)}
.zc--complet .zc-st-z,.zc--complet .zc-st-l{cursor:pointer}
.zc-c.zc-sur:not(.zc-s0){fill:var(--zc-survol)}
.zc-c.zc-on:not(.zc-s0){fill:var(--zc-ciel);stroke:var(--zc-marine);stroke-width:2}
.zc-c.zc-s0.zc-on{stroke:var(--zc-ciel);stroke-width:2.5}
.zc-cercle{fill:none;stroke:var(--zc-marine);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.zc-noms text,.zc-bulle text,.zc-kml{font-family:var(--f-text,"Plus Jakarta Sans",sans-serif);pointer-events:none}
.zc-noms text{font-weight:500;fill:var(--zc-ink);paint-order:stroke;stroke:#FFFFFF;stroke-linejoin:round;transition:opacity .2s}
.zc-noms text.zc-cache{opacity:0}
.zc-kml{font-family:var(--f-mono,"DM Mono",monospace)!important;fill:var(--zc-marine);paint-order:stroke;stroke:#FFFFFF;stroke-linejoin:round}
.zc-bulle rect{fill:#FFFFFF;stroke:var(--zc-marine);stroke-width:1.5;vector-effect:non-scaling-stroke}
.zc-bulle text{font-weight:800;fill:var(--zc-marine)}
.zc-bulle .zc-pin{fill:var(--zc-marine)}
.zc-centre rect{fill:var(--zc-marine);stroke:#FFFFFF;stroke-width:1.5;vector-effect:non-scaling-stroke}
.zc-centre text{font-weight:800;fill:#FFFFFF}
.zc-onde{fill:none;stroke:var(--zc-marine);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none}
.zc-onde.zc-go{animation:zc-onde .9s var(--zc-ease) 1}
@keyframes zc-onde{0%{opacity:.9;transform:scale(.2)}100%{opacity:0;transform:scale(1)}}

/* Entree (sans GSAP : transitions CSS ; avec GSAP : styles inline) */
.zc-attente .zc-c:not(.zc-st-h){fill-opacity:0}
.zc-attente .zc-cercle{stroke-dasharray:1;stroke-dashoffset:1}
.zc-attente .zc-noms,.zc-attente .zc-centre,.zc-attente .zc-kml{opacity:0}
.zc-joue .zc-c{transition:fill-opacity .5s var(--zc-ease) var(--zc-d,0s),fill .25s var(--zc-ease)}
.zc-joue .zc-cercle{stroke-dasharray:1;transition:stroke-dashoffset 1.1s cubic-bezier(.65,0,.35,1)}
.zc-joue .zc-noms,.zc-joue .zc-centre,.zc-joue .zc-kml{transition:opacity .5s var(--zc-ease) var(--zc-dn,1.6s)}

/* Legende */
.zc-legende{display:flex;flex-wrap:wrap;gap:6px 22px;margin:12px 0 0;padding:0;list-style:none;font-size:1rem;color:var(--zc-mut)}
.zc-legende li{display:inline-flex;align-items:center;gap:8px}
.zc-legende i{display:inline-block;width:16px;height:16px;flex:none;border:1px solid var(--zc-trait)}
.zc-legende .zc-i0{background:var(--zc-marine);border-color:var(--zc-marine)}
.zc-legende .zc-i1{background:linear-gradient(90deg,var(--zc-s1) 0 33%,var(--zc-s2) 33% 66%,var(--zc-s4) 66%)}
.zc-legende .zc-i2{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--zc-marine) 34%,#fff) 0 1.5px,#fff 1.5px 5px)}
.zc-legende .zc-i3{border:1.5px solid var(--zc-marine);border-radius:50%}

/* Puces secteurs */
.zc-secteurs{margin-top:16px}
@media (max-width:899px){.zc--complet .zc-secteurs{padding-inline:var(--pad,16px)}}
.zc-s-t{margin:0 0 8px;font-weight:800;font-size:1rem;color:var(--zc-marine)}
.zc-pils{display:flex;flex-wrap:wrap;gap:8px}
.zc-pil{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 16px 0 12px;background:#FFFFFF;border:1px solid var(--zc-line);border-radius:0;font:500 1rem/1.2 var(--f-text,"Plus Jakarta Sans",sans-serif);color:var(--zc-ink);cursor:pointer;transition:border-color .2s var(--zc-ease),background .2s var(--zc-ease)}
.zc-pil .zc-past{width:16px;height:16px}
.zc-pil:hover{border-color:var(--zc-marine)}
.zc-pil.zc-pil-cur{border-color:var(--zc-marine);color:var(--zc-marine);font-weight:800}
.zc-pil[aria-pressed="true"]{background:var(--zc-marine);border-color:var(--zc-marine);color:#FAFBFD}
.zc-pil[aria-pressed="true"] .zc-past{border-color:#FAFBFD}
.zc-pil:focus-visible{outline:2px solid var(--zc-ciel);outline-offset:2px}
.zc-s-lire{margin:4px 0 0}
.zc-s-lire:empty{display:none}
.zc-f-cs{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;column-gap:18px}
.zc-f-cs button{min-height:48px;padding:0;background:none;border:0;font:500 1.0625rem/1.2 var(--f-text,"Plus Jakarta Sans",sans-serif);color:var(--zc-ink);cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--zc-ciel) 50%,transparent);text-underline-offset:6px}
.zc-f-cs button:hover{color:var(--zc-marine);text-decoration-color:var(--zc-ciel)}
.zc-f-cs button:focus-visible{outline:2px solid var(--zc-ciel);outline-offset:-2px}

/* ---------- Fiche commune ---------- */
.zc-fiche{background:var(--zc-fond);border-top:2px solid var(--zc-marine);padding:22px 20px 24px}
@media (min-width:900px){.zc-fiche{padding:26px 28px 28px}}
.zc-fiche.zc-in>*{animation:zc-in .45s var(--zc-ease) both}
.zc-fiche.zc-in>*:nth-child(2){animation-delay:.04s}.zc-fiche.zc-in>*:nth-child(3){animation-delay:.08s}.zc-fiche.zc-in>*:nth-child(n+4){animation-delay:.12s}
@keyframes zc-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.zc-f-st{display:flex;align-items:center;gap:10px;font:400 .875rem/1.3 var(--f-mono,"DM Mono",monospace);letter-spacing:.04em;text-transform:uppercase;color:var(--zc-mut);margin:0 0 10px}
.zc-f-st .zc-coche{width:22px;height:22px;margin:0}
.zc-f-st .zc-hm,.zc-f-st .zc-tm{margin:0}
.zc-f-nom{margin:0 0 18px;font-size:clamp(1.75rem,1.3rem + 1.6vw,2.5rem);font-weight:800;letter-spacing:-.035em;line-height:1.02;color:var(--zc-marine);text-wrap:balance;overflow-wrap:anywhere}
.zc-f-tab{margin:0 0 22px}
.zc-f-tab div{display:grid;grid-template-columns:minmax(0,6.25rem) minmax(0,1fr);gap:12px;padding:11px 0;border-top:1px solid var(--zc-line)}
.zc-f-tab div:last-child{border-bottom:1px solid var(--zc-line)}
.zc-f-tab dt{font-size:1rem;color:var(--zc-mut)}
.zc-f-tab dd{margin:0;font-size:1rem;font-weight:500;line-height:1.45}
.zc-f-tab dd.zc-mono{font-family:var(--f-mono,"DM Mono",monospace);color:var(--zc-marine);font-weight:400}
.zc-f-msg{margin:0 0 20px;font-size:1.0625rem;line-height:1.5}
.zc-f-msg strong{color:var(--zc-marine)}
.zc-f-big{display:block;font-size:clamp(4.5rem,3rem + 5vw,7rem);font-weight:800;letter-spacing:-.05em;line-height:.85;color:var(--zc-marine);margin:4px 0 14px}
.zc-f-act{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.zc-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:56px;padding:12px 24px;background:var(--zc-marine);color:#FAFBFD;border:0;border-radius:0;font:500 1.0625rem/1.25 var(--f-text,"Plus Jakarta Sans",sans-serif);text-align:center;text-decoration:none;cursor:pointer;transition:background .3s var(--zc-ease)}
.zc-btn:hover{background:#004F8A}
.zc-btn .fl{display:inline-block;transition:transform .3s var(--zc-ease)}
.zc-btn:hover .fl{transform:translateX(4px)}
.zc-btn:focus-visible{outline:2px solid var(--zc-ciel);outline-offset:3px}
.zc-lien{display:inline-flex;align-items:center;gap:10px;min-height:48px;font-weight:500;font-size:1.0625rem;color:var(--zc-marine);text-decoration:underline;text-decoration-color:var(--zc-ciel);text-decoration-thickness:1px;text-underline-offset:6px;line-height:1.35}
.zc-lien:hover{text-decoration-thickness:2px}
.zc-lien+.zc-lien{margin-top:-6px}

/* ---------- Liste des communes ---------- */
.zc-liste{margin-top:var(--s5,56px)}
.zc-l-t{margin:0 0 6px;font-size:var(--t-l,1.6rem);font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--zc-marine)}
.zc-l-intro{margin:0 0 28px;color:var(--zc-mut);max-width:56ch}
.zc-l-g{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--gut,24px)}
@media (min-width:700px){.zc-l-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zc-l-s{border-top:1px solid var(--zc-line);padding:18px 0 14px}
.zc-l-s h4{display:flex;align-items:center;gap:10px;margin:0 0 6px;font-size:1.125rem;font-weight:800;letter-spacing:-.015em;color:var(--zc-marine)}
.zc-l-s h4 .zc-n{margin-left:auto;font:400 .875rem/1 var(--f-mono,"DM Mono",monospace);color:var(--zc-mut);letter-spacing:.04em}
.zc-past{display:inline-block;width:14px;height:14px;flex:none;border:1px solid var(--zc-trait)}
.zc-past.zc-p0{background:var(--zc-marine);border-color:var(--zc-marine)}
.zc-past.zc-p1{background:var(--zc-s1)}.zc-past.zc-p2{background:var(--zc-s2)}.zc-past.zc-p3{background:var(--zc-s3)}.zc-past.zc-p4{background:var(--zc-s4)}.zc-past.zc-p5{background:var(--zc-s5)}
.zc-past.zc-pl{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--zc-marine) 34%,#fff) 0 1.5px,#fff 1.5px 5px)}
.zc-l-s ul{list-style:none;margin:0 0 2px;padding:0;display:flex;flex-wrap:wrap;column-gap:18px}
.zc-l-s li{display:inline-flex;align-items:center}
.zc-l-s button{min-height:48px;padding:0;margin:0;background:none;border:0;font:500 1.0625rem/1.2 var(--f-text,"Plus Jakarta Sans",sans-serif);color:var(--zc-ink);cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--zc-ciel) 40%,transparent);text-decoration-thickness:1px;text-underline-offset:6px;transition:text-decoration-color .2s}
.zc-l-s button:hover,.zc-l-s button[aria-pressed="true"]{color:var(--zc-marine);text-decoration-color:var(--zc-ciel)}
.zc-l-s button[aria-pressed="true"]{font-weight:800}
.zc-l-s button:focus-visible{outline:2px solid var(--zc-ciel);outline-offset:-2px}
.zc-l-s .zc-lien{font-size:1rem}
.zc-l-s.zc-l-lim{grid-column:1/-1}
.zc-l-s.zc-l-lim p{margin:0 0 4px;color:var(--zc-mut);font-size:1rem}

/* ---------- Mode mini ---------- */
.zc--mini{margin:0}
.zc--mini .zc-c{cursor:default}
.zc--mini .zc-st-z:not(.zc-s0){fill:var(--zc-casse)}
.zc--mini .zc-st-z.zc-hl:not(.zc-s0){fill:var(--zc-hlf);stroke:var(--zc-marine);stroke-width:1.25}
.zc--mini .zc-noms text.zc-nm-hl{font-weight:700;fill:var(--zc-marine);stroke:var(--zc-hlf)}
.zc-pst rect{fill:var(--zc-marine);stroke:#FFFFFF;stroke-width:1.5;vector-effect:non-scaling-stroke}
.zc-pst text{font-family:var(--f-mono,"DM Mono",monospace);font-weight:500;fill:#FFFFFF;stroke:none}
.zc-leg-n{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.zc-leg-n li::before{content:none!important}
.zc-leg-n li{padding-left:0!important;display:inline-flex;align-items:center;gap:8px;font-size:1rem;font-weight:500;color:var(--zc-ink)}
.zc-num{display:inline-grid;place-items:center;width:24px;height:24px;background:var(--zc-marine);color:#FFFFFF;font:500 .875rem/1 var(--f-mono,"DM Mono",monospace)}
.zc--mini figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 20px;margin-top:10px}
.zc--mini figcaption .zc-cap{font:400 .875rem/1.4 var(--f-mono,"DM Mono",monospace);letter-spacing:.04em;text-transform:uppercase;color:var(--zc-mut)}

@media (prefers-reduced-motion:reduce){
  .zc-attente .zc-c,.zc-attente .zc-noms,.zc-attente .zc-centre,.zc-attente .zc-kml{fill-opacity:1;opacity:1}
  .zc-attente .zc-cercle{stroke-dashoffset:0}
  .zc-fiche.zc-in>*,.zc-onde.zc-go{animation:none}
  .zc-c,.zc-noms text,.zc-pil{transition:none}
}

/* allègement */
.zc-secteurs{display:none}
.zc-c{will-change:auto}
.zc-liste>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:56px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:700;color:var(--marine)}.zc-liste>summary::-webkit-details-marker{display:none}.zc-liste>summary::after{content:"+";font-size:1.5rem;font-weight:500}.zc-liste[open]>summary::after{content:"−"}.zc-liste[open]>summary{margin-bottom:var(--s3)}
/* Alignement mobile — tour 1 */
@media (max-width:899px){
  .zc--complet .zc-plan .zc-feuille{border-left:0;border-right:0}
  .zc-liste>summary{align-items:flex-start;gap:16px;padding:14px 0;text-wrap:balance}
  .zc-liste>summary::after{flex:none;line-height:1;margin-top:.05em}
}
