/* ==========================================================================
   DDEC — carte des établissements et fiches (blocs ddec/carte-etablissements
   et ddec/fiche-etablissement). Le territoire est dessiné au trait : contours
   sauge, surfaces blanches sur brume ; la couleur est portée par les types d’établissement.
   ========================================================================== */

.ddec-fiche-coord,.ddec-fiche-proche,.ddec-fiche-entete{box-sizing:border-box}
.ddec-carte,.ddec-fiche-entete,.ddec-fiche-coord,.ddec-fiche-proches,.ddec-fiche-presentation{
	--c-encre:var(--wp--preset--color--encre,#34483E);
	--c-nuit:var(--wp--preset--color--encre-nuit,#22302A);
	--c-sauge:var(--wp--preset--color--sauge,#A8C1AF);
	--c-sauge-70:var(--wp--preset--color--sauge-70,#C2D4C7);
	--c-sauge-50:var(--wp--preset--color--sauge-50,#D6E2DA);
	--c-brume:var(--wp--preset--color--brume,#EDF3F0);
	--c-jaune:var(--wp--preset--color--jaune,#F9B04A);
	--c-muted:var(--wp--custom--muted,#4A5650);
	--c-ligne:var(--wp--custom--line,rgba(52,72,62,.14));
	--c-ligne-forte:var(--wp--custom--line-strong,rgba(52,72,62,.24));
	--ressort:cubic-bezier(.22,1,.36,1);
	--focus:0 0 0 2px #fff,0 0 0 4px var(--c-encre);
}

/* --------------------------------------------------------------------------
   Pictogrammes et icônes
   -------------------------------------------------------------------------- */
.ddec-picto{width:20px;height:20px;flex:none;display:block;color:inherit}
.ddec-icone{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* --------------------------------------------------------------------------
   Dessin du territoire (partagé : carte, mini-carte, méta-boîte)
   -------------------------------------------------------------------------- */
.ddec-territoire{display:block;overflow:visible}
.ddec-territoire path,.ddec-territoire circle{vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.ddec-territoire .t-voisins path{fill:none;stroke:var(--c-sauge-70);stroke-width:1;stroke-dasharray:1 5}
.ddec-territoire .t-vagues{fill:none;stroke:var(--c-sauge);stroke-width:1.2}
.ddec-territoire .t-diocese{fill:#fff;stroke:var(--c-sauge);stroke-width:2;transition:fill .4s,stroke-width .2s}
.ddec-territoire .t-rivieres{fill:none;stroke:var(--c-sauge);stroke-width:1.3}
.ddec-territoire .t-affluents{fill:none;stroke:var(--c-sauge-70);stroke-width:1}
.ddec-territoire .t-lacs{fill:var(--c-brume);stroke:var(--c-sauge);stroke-width:1.1}
.ddec-territoire .r-trait{fill:none;stroke:var(--c-sauge);stroke-width:1.5}
.ddec-territoire .r-fin{fill:none;stroke:var(--c-sauge);stroke-width:1}
.ddec-territoire .r-blanc{fill:#fff}
.ddec-territoire .r-brume{fill:var(--c-brume)}
.ddec-territoire .t-rose circle,.ddec-territoire .t-rose path{stroke:var(--c-sauge);stroke-width:1.2}
.ddec-territoire .t-rose .r-blanc{fill:#fff}
.ddec-territoire .t-rose .r-plein{fill:var(--c-sauge)}
.ddec-territoire .t-rose text{font:600 12px/1 Inter,Arial,sans-serif;fill:var(--c-encre);letter-spacing:.04em}
.ddec-territoire .t-soleil circle{fill:color-mix(in srgb,var(--c-jaune) 40%,#fff);stroke:none}
.ddec-territoire .t-soleil .t-soleil__anneau{fill:none;stroke:color-mix(in srgb,var(--c-jaune) 55%,#fff);stroke-width:1;stroke-dasharray:2 3}
.ddec-territoire .t-reperes,.ddec-territoire .t-rose,.ddec-territoire .t-soleil{transition:opacity .5s}
.ddec-territoire .t-villes circle{fill:var(--c-encre);stroke:#fff;stroke-width:1.5}
.ddec-territoire .t-point__disque{fill:var(--c-jaune)}
.ddec-territoire .t-point__anneau{fill:#fff;stroke:var(--c-jaune);stroke-width:1.6}
/* Niveaux de détail au zoom (carte.js, assets/data/detail-*.txt) :
   terre et limites IGN, communes, zones bâties, routes, voies ferrées et rivières OSM.
   Le dessin au trait (contours simplifiés, rivières dessinées) s'efface alors. */
.ddec-territoire .t-detail{display:none;pointer-events:none}
.a-detail-1 .ddec-territoire .t-detail{display:inline}
.ddec-territoire .t-detail :is(.n-2,.n-3,.n-4){display:none}
.a-detail-2 .ddec-territoire .t-detail .n-2,.a-detail-3 .ddec-territoire .t-detail .n-3,.a-detail-4 .ddec-territoire .t-detail .n-4{display:inline}
.ddec-territoire .t-detail path{fill:none}
.ddec-territoire .t-terre{fill:#fff!important;stroke:none;transition:fill .4s}
.ddec-territoire.is-filtre-diocese .t-terre:not(.is-surligne){fill:rgba(255,255,255,.4)!important}
.ddec-territoire .d-lacs path{fill:var(--c-sauge-50)!important;stroke:var(--c-sauge);stroke-width:1}
.ddec-territoire .d-limites path{stroke:var(--c-sauge);stroke-width:2}
.ddec-territoire .d-communes path{stroke:var(--c-sauge-70);stroke-width:1;stroke-dasharray:3 3}
.ddec-territoire .d-rivieres path{stroke:var(--c-sauge);stroke-width:1.6}
.ddec-territoire .d-rivieres.n-2 path{stroke-width:1.1}
.ddec-territoire .d-bati path{fill:color-mix(in srgb,var(--c-encre) 5%,#fff)!important;stroke:none}
.ddec-territoire .d-tertiaire path{stroke:color-mix(in srgb,var(--c-encre) 22%,#fff);stroke-width:1.1}
.ddec-territoire .d-secondaire path{stroke:color-mix(in srgb,var(--c-encre) 28%,#fff);stroke-width:1.4}
.ddec-territoire .d-principale path{stroke:color-mix(in srgb,var(--c-encre) 38%,#fff);stroke-width:1.8}
.ddec-territoire .d-rail path{stroke:color-mix(in srgb,var(--c-encre) 45%,#fff);stroke-width:1;stroke-dasharray:5 3}
.ddec-territoire .d-voie-rapide path{stroke:color-mix(in srgb,var(--c-encre) 45%,#fff);stroke-width:2.2}
.ddec-territoire .d-autoroute-bord path{stroke:color-mix(in srgb,var(--c-encre) 55%,#fff);stroke-width:4.2}
.ddec-territoire .d-autoroute path{stroke:color-mix(in srgb,var(--c-jaune) 70%,#fff);stroke-width:2.2}
.a-detail-3 .ddec-territoire .d-principale path{stroke-width:2.4}
.a-detail-3 .ddec-territoire .d-secondaire path{stroke-width:1.7}
/* le dessin au trait s'efface derrière la carte précise */
.a-detail-1 .ddec-territoire .t-diocese{fill:transparent;stroke:transparent}
.a-detail-1 .ddec-territoire :is(.t-rivieres,.t-affluents,.t-lacs,.t-vagues){display:none}

/* Mention des sources du détail (licence ODbL) : seulement quand il est affiché */
.ddec-carte__credit{display:none;position:absolute;left:14px;bottom:10px;z-index:13;margin:0;padding:.15rem .5rem;border-radius:6px;background:rgba(255,255,255,.85);font-size:.6875rem;line-height:1.4;color:var(--c-muted)}
.ddec-carte__credit a{color:inherit}
.ddec-carte.a-detail-1 .ddec-carte__credit{display:block}

/* Diocèse mis en avant (filtre, mini-carte) */
.ddec-territoire.is-filtre-diocese .t-diocese:not(.is-surligne),.ddec-mini-carte .t-diocese:not(.is-surligne){fill:rgba(255,255,255,.4)}

/* --------------------------------------------------------------------------
   Bloc carte : structure
   -------------------------------------------------------------------------- */
.ddec-carte{box-sizing:border-box;width:100%;max-width:1480px;margin-inline:auto;padding-inline:clamp(1rem,3vw,2.5rem);position:relative}
.ddec-carte *,.ddec-carte *::before,.ddec-carte *::after{box-sizing:border-box}
.ddec-carte.alignfull{max-width:none!important;margin-inline:0!important;padding-inline:max(var(--wp--style--root--padding-left,1rem),calc((100% - var(--wp--style--global--wide-size,1240px)) / 2))!important;box-sizing:border-box}
.ddec-carte [hidden]{display:none!important}

/* Recherche guidée : « 1 Pour quelle classe ? » puis « 2 Où ? » */
.ddec-carte__barre{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1.25rem 2rem;align-items:start;margin:0 0 1rem;padding:clamp(1.25rem,2.5vw,1.75rem);border-radius:28px;background:#fff;box-shadow:inset 0 0 0 1px var(--c-ligne)}
.ddec-q{border:0;margin:0;padding:0;min-width:0}
.ddec-q__titre{display:flex;align-items:center;gap:.65rem;margin:0 0 .8rem;padding:0;font-size:1.0625rem;font-weight:650;letter-spacing:-.01em;color:var(--c-encre)}
.ddec-q__num{width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--c-encre);color:#fff;font-size:.8125rem;font-weight:700}
.ddec-q__classes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.ddec-classe{position:relative;display:block;margin:0;cursor:pointer}
.ddec-classe input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ddec-classe span{display:flex;flex-direction:column;justify-content:center;gap:.1rem;min-height:62px;height:100%;padding:.6rem .9rem;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--c-ligne-forte);color:var(--c-encre);line-height:1.2;transition:background-color .2s,box-shadow .2s,color .2s,transform .3s var(--ressort)}
.ddec-classe strong{font-size:.9375rem;font-weight:650}
.ddec-classe small{font-size:.8125rem;color:var(--c-muted);font-weight:500}
.ddec-classe:hover span{box-shadow:inset 0 0 0 1.5px var(--c-encre)}
.ddec-classe input:checked+span{background:var(--c-encre);color:#fff;box-shadow:none}
.ddec-classe input:checked+span small{color:rgba(255,255,255,.82)}
.ddec-classe input:focus-visible+span{box-shadow:var(--focus)}
.ddec-classe:active span{transform:scale(.97)}
.ddec-q__ligne{display:flex;gap:.6rem;align-items:stretch}
.ddec-q__aide{margin:.55rem 0 0;font-size:.8125rem;line-height:1.45;color:var(--c-muted)}
.ddec-carte.is-active .ddec-q__aide{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ddec-carte__recherche{position:relative;flex:1 1 auto;min-width:0}
.ddec-carte__loupe{position:absolute;left:1.1rem;top:50%;width:20px;height:20px;margin-top:-10px;fill:none;stroke:var(--c-encre);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.ddec-carte__champ{width:100%;height:58px;border:1.5px solid #8C9A92;border-radius:999px;background:#fff;padding:0 1.1rem 0 3rem;font:inherit;font-size:1rem;color:#000;transition:border-color .2s,box-shadow .2s}
.ddec-carte__champ::placeholder{color:var(--c-muted);opacity:1}
.ddec-carte__champ:focus{outline:none;border-color:var(--c-encre);box-shadow:0 0 0 3px var(--c-sauge-50)}
.ddec-carte__champ:focus-visible{box-shadow:0 0 0 3px var(--c-sauge-50),0 0 0 1px var(--c-encre)}
.ddec-carte__champ::-webkit-search-cancel-button{-webkit-appearance:none;width:18px;height:18px;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%2334483E' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='m5.5 5.5 9 9M14.5 5.5l-9 9'/%3E%3C/svg%3E") center/contain no-repeat}
.ddec-carte__suggestions{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 8px);margin:0;padding:.4rem;list-style:none;background:#fff;border-radius:22px;box-shadow:0 30px 80px -24px rgba(34,48,42,.35),0 0 0 1px var(--c-ligne);max-height:min(420px,60vh);overflow:auto}
.ddec-carte__suggestions li{display:flex;align-items:center;gap:.8rem;padding:.55rem .75rem;border-radius:14px;cursor:pointer;margin:0}
.ddec-carte__suggestions li strong{display:block;font-weight:600;color:var(--c-encre);font-size:.9375rem;line-height:1.3}
.ddec-carte__suggestions li small{display:block;font-size:.8125rem;color:var(--c-muted)}
.ddec-carte__suggestions li[aria-selected="true"],.ddec-carte__suggestions li[data-i]:hover{background:var(--c-brume)}
.ddec-carte__suggestions .ddec-carte__sugg-titre{cursor:default;padding:.5rem .75rem .2rem;font-size:.6875rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted)}
.ddec-carte__suggestions .ddec-carte__sugg-vide{cursor:default;color:var(--c-muted);font-size:.9375rem}
.ddec-carte__sugg-picto{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--c-encre);box-shadow:inset 0 0 0 1.5px var(--c-encre)}
.ddec-carte__sugg-picto svg{width:18px;height:18px}
.ddec-carte__autour{display:inline-flex;align-items:center;gap:.55rem;height:58px;padding:0 1.25rem 0 1.05rem;border:0;border-radius:999px;background:var(--c-encre);color:#fff;font:inherit;font-weight:550;font-size:.9375rem;cursor:pointer;white-space:nowrap;flex:none;transition:transform .3s var(--ressort),background-color .2s}
.ddec-carte__autour:hover{transform:translateY(-2px)}
.ddec-carte__autour .ddec-picto{width:20px;height:20px}
.ddec-carte__autour[aria-pressed="true"]{background:var(--c-brume);color:var(--c-encre);box-shadow:inset 0 0 0 1.5px var(--c-encre)}
.ddec-carte__autour.is-attente .ddec-picto{animation:ddecCarteTourne 1.2s linear infinite}
@keyframes ddecCarteTourne{to{transform:rotate(360deg)}}
.ddec-carte__rayon{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;border:0;margin:.8rem 0 0;padding:0;min-width:0}
.ddec-carte__rayon legend{float:left;margin:0 .35rem 0 0;padding:0;font-size:.8125rem;font-weight:600;color:var(--c-encre)}
.ddec-carte.is-active .ddec-carte__rayon[data-sans-lieu]{display:none}
.ddec-carte__rayon .ddec-puce span{min-height:36px;padding:.35rem .8rem;font-size:.8125rem}

/* Plus de filtres (repliable, natif : marche sans JS) */
.ddec-carte__plus{grid-column:1/-1;border-top:1px solid var(--c-ligne);padding-top:.9rem}
.ddec-carte__plus summary{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:.4rem 1rem .4rem .8rem;border-radius:999px;list-style:none;cursor:pointer;font-weight:600;font-size:.9375rem;color:var(--c-encre);box-shadow:inset 0 0 0 1.5px var(--c-ligne-forte);transition:box-shadow .2s,background-color .2s}
.ddec-carte__plus summary::-webkit-details-marker{display:none}
.ddec-carte__plus summary::after{content:"";width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%2334483E' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 8 4 4 4-4'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .3s var(--ressort)}
.ddec-carte__plus[open] summary::after{transform:rotate(180deg)}
.ddec-carte__plus summary:hover{box-shadow:inset 0 0 0 1.5px var(--c-encre)}
.ddec-carte__plus summary .ddec-icone{width:18px;height:18px}
.ddec-carte__nb-filtres{min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;background:var(--c-encre);color:#fff;font-size:.75rem;font-weight:700}
.ddec-carte__plus-corps{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;padding:1rem 0 .25rem}
.ddec-carte__groupe{border:0;margin:0;padding:0;min-width:0}
.ddec-carte__groupe legend{margin:0 0 .5rem;padding:0;font-size:.75rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--c-encre)}
.ddec-carte__puces{display:flex;flex-wrap:wrap;gap:.4rem}
.ddec-puce{position:relative;display:inline-flex;margin:0;cursor:pointer}
.ddec-puce input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ddec-puce span{display:inline-flex;align-items:center;gap:.4rem;min-height:40px;padding:.45rem .95rem;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--c-ligne-forte);color:var(--c-encre);font-size:.875rem;font-weight:500;line-height:1.2;transition:background-color .2s,box-shadow .2s,color .2s,transform .3s var(--ressort)}
.ddec-puce:hover span{box-shadow:inset 0 0 0 1.5px var(--c-encre)}
.ddec-puce input:checked+span{background:var(--c-encre);color:#fff;box-shadow:none}
.ddec-puce input[type=checkbox]:checked+span::before{content:"";width:14px;height:14px;margin-left:-.2rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 10.4 3.2 3.2L15 6.8'/%3E%3C/svg%3E") center/contain no-repeat}
.ddec-puce input:focus-visible+span{box-shadow:var(--focus)}
.ddec-puce:active span{transform:scale(.96)}
.ddec-carte__envoi{grid-column:1/-1}
.ddec-carte__valider{min-height:48px!important;padding:.6rem 1.5rem!important}
.ddec-carte.is-active .ddec-carte__envoi{display:none}

/* Phrase de résultat */
.ddec-carte__resultat{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin:0 0 1rem;padding:0 .5rem}
.ddec-carte__phrase{margin:0;font-size:clamp(1.0625rem,1.6vw,1.25rem);line-height:1.4;letter-spacing:-.01em;color:var(--c-encre);font-weight:500}
.ddec-carte__phrase strong{font-weight:700;font-variant-numeric:tabular-nums}
.ddec-carte__resultat-actions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}
.ddec-carte__effacer{font-size:.875rem;font-weight:600;color:var(--c-encre);text-underline-offset:3px}
.ddec-carte__reprendre{display:inline-flex;align-items:center;gap:.35rem;min-height:40px;padding:.4rem 1rem;border:0;border-radius:999px;background:var(--c-brume);color:var(--c-encre);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;text-align:left}
.ddec-carte__reprendre span{font-weight:400}
.ddec-carte__reprendre:hover{background:var(--c-sauge-50)}
.ddec-carte__bascule{display:none}

/* Corps : liste et carte (côte à côte de base ; ordinateur : carte au-dessus, voir plus bas) */
.ddec-carte__corps{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);grid-template-areas:"liste vue";gap:1rem;position:relative}
.ddec-js .ddec-carte__corps{height:clamp(600px,calc(100vh - 150px),820px)}
.ddec-carte__panneau{grid-area:liste;display:flex;flex-direction:column;min-height:0;background:#fff;border-radius:28px;box-shadow:inset 0 0 0 1px var(--c-ligne);overflow:hidden}
.ddec-carte__liste{list-style:none;margin:0;padding:.5rem;overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--c-sauge-70) transparent}

/* Petit ordinateur : les deux questions l'une sous l'autre (le champ « Où ? » était tronqué) */
@media (min-width:1024px) and (max-width:1279px){
	.ddec-carte__barre{grid-template-columns:minmax(0,1fr)}
}

/* Ordinateur : la carte prend toute la largeur, la liste passe dessous en grille de cartes */
@media (min-width:1024px){
	.ddec-carte__corps{grid-template-columns:minmax(0,1fr);grid-template-areas:"vue" "liste";gap:1.25rem}
	.ddec-js .ddec-carte__corps{height:auto}
	.ddec-carte{--h-vue:clamp(560px,calc(100vh - 170px),780px)}
	.ddec-js .ddec-carte__vue{height:var(--h-vue)}
	/* Le tiroir ne dépasse jamais la carte : il défile à l'intérieur */
	.ddec-carte .ddec-carte__tiroir{align-self:start;max-height:calc(var(--h-vue) - 24px)}
	.ddec-carte__panneau{overflow:visible;background:transparent;box-shadow:none;border-radius:0}
	.ddec-carte__liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:.75rem;padding:0;overflow:visible}
	.ddec-carte__item{background:#fff;box-shadow:inset 0 0 0 1px var(--c-ligne)}
	.ddec-carte__item+.ddec-carte__item{margin-top:0}
	.ddec-carte__item+.ddec-carte__item::before{display:none}
}

/* Liste par paquets (carte.js) : « Voir plus » sous les 6 premiers */
.ddec-carte__item.is-au-dela{display:none}
.ddec-carte__suite{display:flex;align-items:center;gap:.75rem;margin:1.25rem auto .25rem;min-height:48px;padding:.6rem 1.5rem;border:1.5px solid var(--c-encre);border-radius:999px;background:#fff;color:var(--c-encre);font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background-color .2s,color .2s}
.ddec-carte__suite:hover{background:var(--c-encre);color:#fff}
.ddec-carte__suite span{font-weight:400;font-size:.8125rem;opacity:.75;font-variant-numeric:tabular-nums}
.ddec-carte__suite[hidden]{display:none}

/* Une ligne : nom, lieu et distance, niveaux, services, Appeler / Voir la fiche */
.ddec-carte__item{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:.85rem;margin:0;padding:.9rem .85rem;border-radius:20px;transition:background-color .2s}
.ddec-carte__item+.ddec-carte__item{margin-top:2px}
.ddec-carte__item+.ddec-carte__item::before{content:"";position:absolute;left:4.5rem;right:.85rem;top:-1px;height:1px;background:var(--c-ligne)}
.ddec-ligne__picto{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--c-encre);box-shadow:inset 0 0 0 1.5px var(--c-encre);transition:background-color .2s,color .2s}
.ddec-ligne__corps{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.ddec-ligne__corps>*{margin:0}
.ddec-ligne__nom{font-size:1rem;line-height:1.3;font-weight:600;letter-spacing:-.01em}
.ddec-carte__lien{color:var(--c-encre);text-decoration:none}
.ddec-carte__lien::after{content:"";position:absolute;inset:0;border-radius:20px;z-index:1}
.ddec-carte__lien:focus-visible{box-shadow:none}
.ddec-carte__item:has(.ddec-carte__lien:focus-visible){box-shadow:inset 0 0 0 2px var(--c-encre)}
.ddec-ligne__lieu{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .6rem;font-size:.875rem;color:#000}
.ddec-carte__lien-dist{font-size:.8125rem;font-weight:700;color:var(--c-encre);background:var(--c-brume);border-radius:999px;padding:.15rem .55rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.ddec-ligne__niveaux{display:flex;flex-wrap:wrap;gap:.25rem;list-style:none;padding:0}
.ddec-ligne__niveaux li{margin:0;padding:.12rem .55rem;border-radius:8px;background:var(--c-brume);color:var(--c-encre);font-size:.75rem;font-weight:550;line-height:1.4}
.ddec-ligne__infos{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .8rem}
.ddec-ligne__infos>*{margin:0}
.ddec-ligne__services{display:flex;flex-wrap:wrap;gap:.2rem .9rem;font-size:.8125rem;color:var(--c-muted)}
.ddec-ligne__services:empty{display:none}
.ddec-ligne__services span{display:inline-flex;align-items:center;gap:.3rem}
.ddec-ligne__services .ddec-icone{width:17px;height:17px;color:var(--c-encre)}
.ddec-ligne__actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem!important}
.ddec-ligne__btn{position:relative;z-index:2;display:inline-flex;align-items:center;gap:.4rem;min-height:38px;padding:.35rem .9rem .35rem .7rem;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--c-encre);color:var(--c-encre);font-size:.8125rem;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s}
.ddec-ligne__btn .ddec-icone{width:17px;height:17px}
.ddec-ligne__btn:hover{background:var(--c-encre);color:#fff}
.ddec-carte__item.is-survol,.ddec-carte__item:hover{background:var(--c-brume)}
.ddec-carte__item.is-survol .ddec-ligne__picto,.ddec-carte__item:hover .ddec-ligne__picto{background:var(--c-encre);color:#fff}
.ddec-carte__item.is-survol .ddec-ligne__niveaux li,.ddec-carte__item:hover .ddec-ligne__niveaux li,.ddec-carte__item.is-selection .ddec-ligne__niveaux li{background:#fff}
.ddec-carte__item.is-survol .ddec-carte__lien-dist,.ddec-carte__item:hover .ddec-carte__lien-dist,.ddec-carte__item.is-selection .ddec-carte__lien-dist{background:#fff}
.ddec-carte__item.is-selection{background:var(--c-brume);box-shadow:inset 3px 0 0 var(--c-encre)}
.ddec-carte__item.is-selection .ddec-ligne__picto{background:var(--c-encre);color:#fff}
.ddec-carte__item:hover::before,.ddec-carte__item:hover+.ddec-carte__item::before,.ddec-carte__item.is-selection::before,.ddec-carte__item.is-selection+.ddec-carte__item::before{opacity:0}

/* État vide utile */
.ddec-carte__vide{padding:1.5rem 1.4rem;color:#000}
.ddec-carte__vide p{margin:0 0 .75rem}
.ddec-carte__vide-titre{font-weight:600;color:var(--c-encre)}
.ddec-carte__vide-actions{display:flex;flex-wrap:wrap;gap:.45rem}
.ddec-puce-lien{display:inline-flex;align-items:center;min-height:40px;padding:.45rem 1rem;border:0;border-radius:999px;background:var(--c-brume);color:var(--c-encre);font:inherit;font-size:.875rem;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .2s}
.ddec-puce-lien:hover{background:var(--c-sauge-50)}

/* Lieu choisi et cercle du rayon sur la carte */
.ddec-carte__cercle{--r:100px;position:absolute;left:0;top:0;width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);border-radius:50%;border:1.5px dashed var(--c-encre);background:rgba(255,255,255,.28);opacity:.55;pointer-events:none;z-index:0}

/* Vue carte */
.ddec-carte__vue{grid-area:vue;position:relative;min-height:0;border-radius:36px;overflow:hidden;background:var(--c-brume);isolation:isolate}
.ddec-carte__scene{position:relative;width:100%;aspect-ratio:var(--ratio,1);outline:none;-webkit-tap-highlight-color:transparent}
.ddec-carte.is-active .ddec-carte__scene{position:absolute;inset:0;aspect-ratio:auto;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.ddec-carte__scene.is-glisse{cursor:grabbing}
.ddec-carte__scene:focus-visible{box-shadow:inset 0 0 0 3px var(--c-encre);border-radius:36px}
.ddec-carte__svg{position:absolute;inset:0;width:100%;height:100%}
.ddec-carte.is-active .ddec-carte__svg .t-diocese{cursor:pointer}
.ddec-carte.is-active.a-detail-1 .ddec-carte__svg .t-diocese{cursor:inherit}
.ddec-carte.is-active .ddec-carte__svg .t-diocese:hover{stroke-width:3}
.ddec-carte.is-zoom-fort .t-reperes,.ddec-carte.is-zoom-fort .t-rose{opacity:0}
.ddec-carte.a-selection .t-soleil,.ddec-carte.is-zoom-moyen .t-soleil{opacity:0}

/* Calque : étiquettes et pastilles, en pixels écran */
.ddec-carte__calque{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ddec-carte__etiquette,.ddec-carte__ville,.ddec-carte__route,.ddec-carte__pt,.ddec-carte__grappe,.ddec-carte__bulle,.ddec-carte__moi,.ddec-carte__anneau{position:absolute;left:0;top:0;will-change:transform}
.ddec-carte:not(.is-active) .ddec-carte__calque>*{transform:none}
.ddec-carte__etiquette{width:max-content;max-width:180px;margin:-1em 0 0 -90px;text-align:center;width:180px;font-size:.6875rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;line-height:1.35;color:var(--c-encre);text-shadow:0 0 3px #fff,0 0 6px #fff,0 0 10px #fff;transition:opacity .4s}
.ddec-carte__etiquette[data-align=g]{margin-left:0;text-align:left}
.ddec-carte__etiquette[data-align=d]{margin-left:-180px;text-align:right}
.ddec-carte__ville{margin:-.6em 0 0 -4px;padding-left:12px;font-size:.75rem;font-weight:500;color:var(--c-muted);white-space:nowrap;text-shadow:0 0 3px #fff,0 0 6px #fff;transition:opacity .4s}
.ddec-carte__ville::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.5px var(--c-muted)}
.ddec-carte__ville.is-droite,.ddec-carte__ville.is-gauche{padding-left:0;margin-left:0}
.ddec-carte__ville.is-droite::before,.ddec-carte__ville.is-gauche::before{display:none}
.ddec-carte__etiquette.is-cache,.ddec-carte__ville.is-cache,.ddec-carte__route.is-cache{opacity:0;visibility:hidden}
.ddec-carte__ville.is-detail{color:color-mix(in srgb,var(--c-encre) 70%,#fff);font-weight:450}
.ddec-carte__ville.is-detail::before{width:5px;height:5px;margin-top:-2.5px;left:1px;box-shadow:inset 0 0 0 1.3px color-mix(in srgb,var(--c-encre) 55%,#fff)}
.ddec-carte__route{margin-top:-.55em;padding:.05rem .35rem;border-radius:4px;background:#fff;box-shadow:inset 0 0 0 1.2px color-mix(in srgb,var(--c-encre) 45%,#fff);font-size:.6875rem;font-weight:650;line-height:1.3;color:var(--c-encre);white-space:nowrap;transition:opacity .4s}
.ddec-carte__route.is-autoroute{background:var(--c-jaune);box-shadow:none;color:var(--c-encre-nuit,#1f2b25)}

.ddec-carte:not(.is-active) .ddec-carte__ville[data-rang="2"]{display:none}

@property --s{syntax:'<number>';inherits:false;initial-value:1}
.ddec-carte__pt{--s:1;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--c-encre);box-shadow:inset 0 0 0 1.6px var(--c-encre),0 0 0 2.5px #fff;pointer-events:auto;cursor:pointer;transition:--s .3s var(--ressort),background-color .2s,color .2s,box-shadow .2s;z-index:2}
.ddec-carte__pt .ddec-picto{width:17px;height:17px}
.ddec-carte__pt:hover,.ddec-carte__pt.is-survol{--s:1.22;background:var(--c-encre);color:#fff;z-index:6}
/* couronne ouverte : ses pastilles passent au-dessus des grappes voisines */
.ddec-carte__pt.is-anneau{z-index:5}
.ddec-carte__pt.is-selection{--s:1.32;background:var(--c-jaune);color:var(--c-nuit);box-shadow:0 0 0 3px #fff,0 0 0 4.5px var(--c-jaune);z-index:8}
.ddec-carte__pt.is-selection::after{content:"";position:absolute;inset:-4.5px;border-radius:50%;border:1.5px solid var(--c-jaune);animation:ddecCartePulse 2.4s var(--ressort) infinite}
@keyframes ddecCartePulse{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(1.9);opacity:0}}

.ddec-carte__grappe{--s:1;--n:2;--t:calc(34px + var(--n) * .6px);width:var(--t);height:var(--t);margin:calc(var(--t) / -2) 0 0 calc(var(--t) / -2);border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--c-encre);font-size:.875rem;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1.6px var(--c-encre),0 0 0 4px rgba(255,255,255,.95),0 0 0 5.5px var(--c-sauge);pointer-events:auto;cursor:zoom-in;z-index:3;transition:--s .3s var(--ressort),background-color .2s,color .2s}
.ddec-carte__grappe:hover,.ddec-carte__grappe.is-survol{--s:1.12;background:var(--c-encre);color:#fff}
.ddec-carte__anneau{--r:34px;width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);border-radius:50%;border:1.5px dashed var(--c-sauge);background:rgba(255,255,255,.55);z-index:1}
.ddec-carte__anneau::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--c-encre)}

.ddec-carte__bulle{z-index:12;margin-top:-30px;translate:-50% -100%;padding:.4rem .75rem;border-radius:12px;background:var(--c-encre);color:#fff;font-size:.8125rem;font-weight:550;white-space:nowrap;pointer-events:none;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.ddec-carte__bulle::after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;margin-left:-5px;background:inherit;transform:rotate(45deg);border-radius:2px}

.ddec-carte__moi{width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--c-encre);box-shadow:0 0 0 3px #fff,0 0 0 10px rgba(168,193,175,.45);z-index:7}
.ddec-carte__moi span{position:absolute;left:50%;top:100%;margin-top:8px;translate:-50% 0;font-size:.6875rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--c-encre);text-shadow:0 0 3px #fff,0 0 6px #fff}

/* Commandes */
.ddec-carte__commandes{position:absolute;top:16px;left:16px;z-index:15;display:flex;flex-direction:column;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--c-ligne);overflow:hidden}
.ddec-carte__btn{width:44px;height:44px;display:grid;place-items:center;border:0;background:#fff;color:var(--c-encre);cursor:pointer;transition:background-color .2s}
.ddec-carte__btn+.ddec-carte__btn{border-top:1px solid var(--c-ligne)}
.ddec-carte__btn:hover{background:var(--c-brume)}
.ddec-carte__btn svg,.ddec-carte__tout svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ddec-carte__btn:focus-visible,.ddec-carte__tout:focus-visible{box-shadow:inset 0 0 0 2px var(--c-encre);border-radius:999px}
.ddec-carte__tout{position:absolute;top:16px;left:72px;z-index:15;display:inline-flex;align-items:center;gap:.5rem;height:44px;padding:0 1.1rem 0 .9rem;border:0;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--c-ligne);color:var(--c-encre);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;transition:background-color .2s}
.ddec-carte__tout:hover{background:var(--c-brume)}
.ddec-carte__legende{position:absolute;right:16px;bottom:16px;transition:opacity .3s;z-index:14;display:flex;flex-wrap:wrap;gap:.3rem .9rem;max-width:calc(100% - 32px);padding:.5rem 1rem .5rem .6rem;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 0 0 1px var(--c-ligne);font-size:.75rem;font-weight:500;color:var(--c-encre);pointer-events:none}
.ddec-carte__legende span{display:inline-flex;align-items:center;gap:.35rem}
.ddec-carte__legende .ddec-picto{width:22px;height:22px;padding:3px;border-radius:50%;box-shadow:inset 0 0 0 1.3px var(--c-encre);background:#fff}
.ddec-carte:not(.is-active) .ddec-carte__legende{display:none}
.ddec-carte__astuce{position:absolute;left:50%;top:50%;z-index:16;translate:-50% -50%;margin:0;padding:.7rem 1.1rem;border-radius:999px;background:var(--c-encre);color:#fff;font-size:.875rem;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .3s}
.ddec-carte__astuce.is-visible{opacity:1}

/* --------------------------------------------------------------------------
   Tiroir de fiche (ordinateur : à droite, sur la carte ; mobile : feuille du bas)
   -------------------------------------------------------------------------- */
.ddec-carte__tiroir{grid-area:vue;justify-self:end;align-self:stretch;position:relative;z-index:20;width:min(410px,calc(100% - 24px));margin:12px;max-height:calc(100% - 24px);overflow-y:auto;overscroll-behavior:contain;background:#fff;border-radius:28px;box-shadow:0 30px 80px -24px rgba(34,48,42,.35),0 0 0 1px var(--c-ligne);outline:none;opacity:0;transform:translateX(calc(100% + 24px));transition:transform .55s var(--ressort),opacity .3s;scrollbar-width:thin;scrollbar-color:var(--c-sauge-70) transparent}
.ddec-carte__tiroir.is-ouvert{opacity:1;transform:none}
.ddec-tiroir__barre{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem .6rem 1.6rem;background:#fff}
.ddec-tiroir__poignee{display:none}
.ddec-tiroir__type{display:inline-flex;align-items:center;gap:.55rem;margin:0;font-size:.75rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--c-encre)}
.ddec-tiroir__type::before{content:"";width:22px;height:3px;border-radius:3px;background:var(--c-jaune)}
.ddec-tiroir__type .ddec-picto{display:none}
.ddec-tiroir__fermer{width:42px;height:42px;flex:none;display:grid;place-items:center;border:0;border-radius:50%;background:var(--c-brume);color:var(--c-encre);cursor:pointer;transition:background-color .2s,transform .4s var(--ressort)}
.ddec-tiroir__fermer:hover{background:var(--c-sauge-50);transform:rotate(90deg)}
.ddec-tiroir__corps{padding:.2rem 1.6rem 1.6rem}
.ddec-tiroir__photo{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px;margin:0 0 1rem}
.ddec-tiroir__titre{margin:0 0 .8rem;font-size:1.5rem;line-height:1.2;letter-spacing:-.02em;font-weight:600;color:var(--c-encre);outline:none}
.ddec-tiroir__ensemble{margin:.8rem 0 0;font-size:.875rem;color:#000}
.ddec-tiroir__ensemble a,.ddec-fiche-entete__ensemble a{color:var(--c-encre);font-weight:600;text-underline-offset:3px}
.ddec-tiroir__soustitre{margin:1.4rem 0 .6rem;font-size:.75rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--c-encre)}
.ddec-carte .ddec-tiroir__titre:focus,.ddec-carte .ddec-tiroir__titre:focus-visible{box-shadow:none;outline:none}
.ddec-carte.a-tiroir .ddec-carte__legende{opacity:0}
.ddec-tiroir__osm{margin:.8rem 0 0;font-size:.8125rem;text-align:center}
.ddec-tiroir__osm a{color:var(--c-muted);text-underline-offset:3px}

/* Étiquettes, coordonnées, services — communs au tiroir et à la fiche */
.ddec-etiquettes{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0;padding:0}
.ddec-etiquettes li{margin:0;padding:.3rem .75rem;border-radius:999px;background:var(--c-brume);color:var(--c-encre);font-size:.8125rem;font-weight:550;line-height:1.3}
.ddec-coord{list-style:none;margin:1.2rem 0 0;padding:0}
.ddec-coord li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:.8rem;align-items:start;margin:0;padding:.7rem 0;border-top:1px solid var(--c-ligne);font-size:.9375rem;line-height:1.45;color:#000}
.ddec-coord li:first-child{border-top:0;padding-top:0}
.ddec-coord .ddec-icone{color:var(--c-encre);margin-top:.1rem}
.ddec-coord a{justify-self:start;color:var(--c-encre);font-weight:500;text-decoration:none;overflow-wrap:anywhere;background:linear-gradient(var(--c-encre),var(--c-encre)) 0 100%/0 1.5px no-repeat;padding-bottom:1px;transition:background-size .3s var(--ressort)}
.ddec-coord a:hover,.ddec-coord a:focus-visible{background-size:100% 1.5px}
.ddec-coord__dist{display:inline-block;margin-top:.3rem;font-size:.8125rem;font-weight:600;color:var(--c-encre)}
.ddec-coord li.ddec-coord__reseaux{display:flex;flex-wrap:wrap;gap:.5rem}
.ddec-coord__reseaux a{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem .4rem .6rem;border-radius:999px;background:var(--c-brume);font-size:.875rem;background-image:none}
.ddec-coord__reseaux a:hover{background:var(--c-sauge-50)}
.ddec-coord__reseaux .ddec-icone{width:18px;height:18px;margin:0}
.ddec-services{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;list-style:none;margin:.6rem 0 0;padding:.9rem 0 0;border-top:1px solid var(--c-ligne)}
.ddec-services li{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-size:.875rem;color:#000}
.ddec-services .ddec-icone{width:22px;height:22px;padding:3px;border-radius:50%;background:var(--c-brume);color:var(--c-encre);stroke-width:2}
.ddec-services .is-non{color:var(--c-muted)}
.ddec-particularites{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0;padding:0}
.ddec-particularites li{margin:0;padding:.3rem .7rem;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1px var(--c-ligne-forte);font-size:.8125rem;line-height:1.35;color:#000}
.ddec-membres{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.ddec-membres li{margin:0}
.ddec-membres a{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:14px;background:var(--c-brume);text-decoration:none;color:var(--c-encre);font-weight:600;font-size:.875rem;line-height:1.3}
.ddec-membres a:hover{background:var(--c-sauge-50)}
.ddec-membres small{display:block;font-weight:400;color:var(--c-muted);font-size:.8125rem}
.ddec-membres .ddec-picto{width:30px;height:30px;padding:6px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.4px var(--c-encre)}

/* Tiroir : lieu, actions rapides, encart d'inscription, pied */
.ddec-tiroir__lieu{margin:-.35rem 0 1rem;font-size:.9375rem;color:#000}
.ddec-tiroir__dist{display:inline-block;margin-left:.35rem;padding:.12rem .55rem;border-radius:999px;background:var(--c-brume);font-size:.8125rem;font-weight:700;color:var(--c-encre)}
.ddec-actions-rapides{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;list-style:none;margin:0 0 1.1rem;padding:0}
.ddec-actions-rapides li{margin:0;display:flex}
.ddec-actions-rapides li>*{flex:1;justify-content:center}
.ddec-actions-rapides a,.ddec-actions-rapides button{display:flex;flex-direction:column;align-items:center;gap:.35rem;width:100%;padding:.65rem .25rem .55rem;border:0;border-radius:18px;background:var(--c-brume);color:var(--c-encre);font:inherit;font-size:.8125rem;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s}
.ddec-actions-rapides .ddec-icone{width:22px;height:22px}
.ddec-actions-rapides li:first-child a{background:var(--c-encre);color:#fff}
.ddec-actions-rapides a:hover,.ddec-actions-rapides button:hover{background:var(--c-sauge-50)}
.ddec-actions-rapides li:first-child a:hover{background:var(--c-nuit)}
.ddec-inscrire{margin:1.2rem 0 .4rem;padding:1rem 1.1rem;border-radius:18px;background:var(--c-brume);border-left:3px solid var(--c-sauge)}
.ddec-inscrire h3{margin:0 0 .4rem;font-size:.9375rem;font-weight:650;color:var(--c-encre)}
.ddec-inscrire p{margin:0;font-size:.875rem;line-height:1.5;color:#000}
.ddec-inscrire p+p{margin-top:.45rem}
.ddec-inscrire a:not(.ddec-lien-fleche){color:var(--c-encre);font-weight:600;text-underline-offset:3px}
.ddec-tiroir__pied{margin-top:1.25rem}
.ddec-tiroir__cta{position:sticky;bottom:0;z-index:2;margin:1rem -1.6rem -1.6rem;padding:.9rem 1.6rem 1.1rem;background:linear-gradient(rgba(255,255,255,0),#fff 1rem)}
.ddec-tiroir__cta .wp-block-button__link{width:100%;min-height:50px;font-size:.9375rem;box-shadow:0 10px 24px -12px rgba(34,48,42,.55)}
.ddec-tiroir__copier{margin:.8rem 0 0;text-align:center;font-size:.8125rem}
.ddec-tiroir__copier button,.ddec-fiche-coord__copier button{display:inline-flex;align-items:center;gap:.35rem;border:0;background:none;padding:.35rem .2rem;font:inherit;font-size:.8125rem;font-weight:600;color:var(--c-encre);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ddec-tiroir__copier .ddec-icone,.ddec-fiche-coord__copier .ddec-icone{width:16px;height:16px}
.ddec-copie-msg{font-weight:600;color:var(--c-encre)}

/* --------------------------------------------------------------------------
   Mobile : questions en tête, bascule collante Liste | Carte, feuille du bas
   -------------------------------------------------------------------------- */
/* Téléphone et tablette : bascule Liste / Carte, recherche empilée.
   (Jusqu'à 1023 px : en dessous, deux colonnes écrasaient la carte.) */
@media (max-width:1023px){
	.ddec-carte{padding-inline:1rem}
	.ddec-carte__barre{grid-template-columns:1fr;gap:1.1rem;padding:1.1rem;border-radius:24px;margin-inline:-.25rem}
	.ddec-q__titre{margin-bottom:.6rem}
	.ddec-q__classes{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
	.ddec-classe span{min-height:56px;padding:.5rem .8rem;border-radius:16px}
	.ddec-carte__champ{height:54px;padding-left:2.8rem}
	.ddec-carte__loupe{left:1rem}
	.ddec-carte__autour{width:54px;height:54px;padding:0;justify-content:center}
	.ddec-carte__autour span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
	.ddec-carte__rayon{flex-wrap:nowrap;overflow-x:auto;margin-inline:-1.1rem;padding:2px 1.1rem 4px;scrollbar-width:none}
	.ddec-carte__rayon::-webkit-scrollbar{display:none}
	.ddec-carte__rayon .ddec-puce span{white-space:nowrap}
	.ddec-carte__plus{padding-top:.75rem}
	.ddec-carte__plus-corps{gap:1rem}
	.ddec-carte__resultat{padding:0 .25rem;margin-bottom:.75rem}
	.ddec-carte__phrase{font-size:1.0625rem}
	.ddec-carte.is-active .ddec-carte__bascule{position:sticky;top:calc(var(--ddec-haut-entete,72px) + 6px);z-index:30;display:flex;gap:3px;width:max-content;margin:0 auto .75rem;padding:4px;border-radius:999px;background:#fff;box-shadow:0 10px 30px -12px rgba(34,48,42,.4),inset 0 0 0 1px var(--c-ligne)}
	.ddec-carte__bascule button{display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:.4rem 1.3rem;border:0;border-radius:999px;background:transparent;color:var(--c-encre);font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer}
	.ddec-carte__bascule button[aria-pressed="true"]{background:var(--c-encre);color:#fff}
	.ddec-carte__bascule-nb{min-width:24px;padding:0 6px;border-radius:999px;background:var(--c-brume);color:var(--c-encre);font-size:.75rem;line-height:22px;font-weight:700;text-align:center}
	.ddec-js .ddec-carte__corps{display:block;height:auto}
	.ddec-carte.is-active[data-vue="liste"] .ddec-carte__vue{display:none}
	.ddec-carte.is-active[data-vue="carte"] .ddec-carte__panneau{display:none}
	.ddec-carte__vue{border-radius:24px}
	.ddec-carte.is-active .ddec-carte__vue{height:calc(100svh - 170px);min-height:380px;max-height:640px}
	.ddec-carte__etiquette{display:none}
	.ddec-carte__scene:focus-visible{border-radius:24px}
	.ddec-carte__panneau{border-radius:24px;overflow:visible}
	.ddec-carte__liste{overflow:visible;padding:.35rem}
	.ddec-carte__item{padding:.85rem .7rem;grid-template-columns:36px minmax(0,1fr);gap:.7rem}
	.ddec-carte__item+.ddec-carte__item::before{left:3.9rem}
	.ddec-ligne__picto{width:36px;height:36px}
	.ddec-ligne__btn{min-height:42px;padding-inline:.85rem 1rem}
	.ddec-carte__legende{display:none}
	.ddec-carte__tout{width:44px;padding:0;justify-content:center;font-size:0;gap:0}
	.ddec-carte__commandes{top:12px;left:12px}
	.ddec-carte__tout{top:12px;left:64px}
	.ddec-carte__tiroir{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;margin:0;justify-self:stretch;align-self:end;max-height:min(86svh,720px);border-radius:28px 28px 0 0;z-index:200;transform:translateY(105%);box-shadow:0 -20px 60px -20px rgba(34,48,42,.45)}
	.ddec-carte__tiroir.is-tire{transition:none}
	.ddec-tiroir__barre{padding:1.3rem 1rem .3rem 1.3rem;touch-action:none}
	.ddec-tiroir__poignee{display:block;position:absolute;left:50%;top:8px;width:44px;height:5px;margin-left:-22px;border-radius:5px;background:var(--c-sauge-70)}
	.ddec-tiroir__corps{padding:.1rem 1.3rem calc(1.3rem + env(safe-area-inset-bottom))}
	.ddec-tiroir__cta{margin:1rem -1.3rem calc(-1.3rem - env(safe-area-inset-bottom));padding:.8rem 1.3rem calc(.9rem + env(safe-area-inset-bottom))}
	/* Feuille en deux temps : aperçu (la carte reste visible au-dessus), puis pleine hauteur */
	.ddec-carte__tiroir{transition:transform .55s var(--ressort),opacity .3s,max-height .45s var(--ressort)}
	.ddec-carte__tiroir.is-apercu{max-height:min(46svh,400px)}
	.ddec-carte__tiroir.is-apercu .ddec-tiroir__barre{cursor:n-resize}
	.ddec-tiroir__titre{font-size:1.375rem;margin-bottom:.6rem}
	.ddec-actions-rapides a,.ddec-actions-rapides button{min-height:64px}
}

/* Tablette : la fiche flotte en carte à gauche, la carte reste visible à droite */
@media (min-width:640px) and (max-width:1023px){
	.ddec-carte__tiroir,.ddec-carte__tiroir.is-apercu{left:16px;right:auto;bottom:16px;width:min(420px,calc(100% - 32px));max-height:calc(100svh - 120px);border-radius:28px;box-shadow:0 30px 80px -24px rgba(34,48,42,.45),0 0 0 1px var(--c-ligne)}
	.ddec-tiroir__poignee{display:none}
	.ddec-carte__tiroir.is-apercu .ddec-tiroir__barre{cursor:auto}
}

@media (prefers-reduced-motion:reduce){
	.ddec-carte__pt.is-selection::after{animation:none;opacity:0}
	.ddec-carte__tiroir{transition:none}
}

/* --------------------------------------------------------------------------
   Fiche complète (gabarit single-etablissement)
   -------------------------------------------------------------------------- */
.ddec-fiche-entete{box-sizing:border-box;background:var(--c-brume);border-radius:36px;padding:clamp(1.75rem,4vw,3.5rem) clamp(1.25rem,4vw,3rem);margin-top:0}
@media (min-width:782px){.ddec-fiche-entete.alignfull{margin-inline:clamp(.5rem,1.5vw,1.25rem)!important;width:auto}}
.ddec-fiche-entete__grille{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.9fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;max-width:var(--wp--style--global--wide-size,1240px);margin-inline:auto}
.ddec-fiche-entete__texte{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;min-width:0}
.ddec-fiche-entete__texte>*{margin:0}
.ddec-fiche-entete__type{display:inline-flex;align-items:center;gap:.6rem;font-size:.8125rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--c-encre);margin-top:.75rem!important}
.ddec-fiche-entete__type::before{content:"";width:28px;height:3px;border-radius:3px;background:var(--c-jaune);flex:none}
.ddec-fiche-entete__type .ddec-picto{display:none}
.ddec-fiche-entete__titre{font-size:var(--wp--preset--font-size--4-xl,2.875rem);line-height:1.08;letter-spacing:-.03em;font-weight:600;color:var(--c-encre);text-wrap:balance}
.ddec-fiche-entete .ddec-etiquettes li{background:#fff}
.ddec-fiche-entete .ddec-etiquettes li.is-plein{background:var(--c-encre);color:#fff}
.ddec-fiche-entete__adresse{display:flex;gap:.6rem;align-items:flex-start;font-size:1.0625rem;color:#000}
.ddec-fiche-entete__adresse .ddec-icone{color:var(--c-encre);margin-top:.15rem}
.ddec-fiche-entete__ensemble{font-size:.9375rem;color:#000}
.ddec-fiche-entete__carte{margin:0;display:flex;flex-direction:column;gap:.75rem}
.ddec-fiche-entete__lien-carte{display:block;border-radius:28px;transition:transform .6s var(--ressort)}
.ddec-fiche-entete__lien-carte:hover{transform:translateY(-4px)}
.ddec-mini-carte{width:100%;height:auto;max-height:460px;overflow:hidden}
.ddec-mini-carte .t-point{animation:ddecFichePoint 1s .3s var(--ressort) both}
.ddec-mini-carte .t-point__anneau{fill:#fff}
@keyframes ddecFichePoint{from{opacity:0;transform-box:fill-box}}
.ddec-fiche-entete__carte figcaption{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.875rem;color:var(--c-muted);padding-inline:.5rem}
.ddec-fiche-entete__carte figcaption .ddec-lien-fleche{font-size:.875rem}

.ddec-fiche-colonnes{align-items:flex-start!important}
.ddec-fiche-presentation{display:flex;flex-direction:column;gap:1rem}
.ddec-fiche-presentation>*{margin:0}
.ddec-fiche-presentation p{font-size:1.0625rem;line-height:1.7;color:#000}
.ddec-fiche-presentation__titre{font-size:var(--wp--preset--font-size--2-xl,1.75rem);letter-spacing:-.025em;line-height:1.2;color:var(--c-encre);font-weight:600}
.ddec-fiche-presentation__titre::after{content:"";display:block;width:56px;height:4px;border-radius:4px;background:var(--c-jaune);margin-top:.5em}
.ddec-fiche-presentation__titre:not(:first-child){margin-top:1.5rem}
.ddec-fiche-photo{margin:0 0 .5rem}
.ddec-fiche-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:28px}
.ddec-fiche-membres{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem}
.ddec-fiche-membres li{margin:0}
.ddec-fiche-membres a{box-sizing:border-box;display:flex;align-items:center;gap:.85rem;min-height:100%;padding:.9rem 1rem;border-radius:20px;background:var(--c-brume);text-decoration:none;color:var(--c-encre);transition:transform .4s var(--ressort),background-color .2s}
.ddec-fiche-membres a:hover{transform:translateY(-3px);background:var(--c-sauge-50)}
.ddec-fiche-membres strong{display:block;font-weight:600;font-size:.9375rem;line-height:1.3}
.ddec-fiche-membres small{display:block;font-size:.8125rem;color:var(--c-muted);margin-top:.15rem}
.ddec-fiche-membres__picto{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:inset 0 0 0 1.5px var(--c-encre)}
.ddec-fiche-contenu:empty{display:none}
.ddec-fiche-contenu>p:empty{display:none}

.ddec-fiche-coord{position:sticky;top:calc(var(--header-h,84px) + 24px);background:#fff;border-radius:28px;padding:clamp(1.4rem,3vw,2rem);box-shadow:inset 0 0 0 1px var(--c-ligne)}
.ddec-fiche-coord>*{margin-top:0}
.ddec-fiche-coord__titre{margin:0 0 1.1rem;font-size:.8125rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--c-encre);display:flex;align-items:center;gap:.75rem}
.ddec-fiche-coord__titre::before{content:"";width:28px;height:3px;border-radius:3px;background:var(--c-jaune)}
.ddec-fiche-coord .ddec-coord{margin-top:0}
.ddec-fiche-coord__sous{margin:1.4rem 0 .6rem;font-size:.75rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--c-encre)}
.ddec-fiche-coord__actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}
.ddec-fiche-coord__actions .wp-block-button{flex:1 1 140px}
.ddec-fiche-coord__actions .wp-block-button__link{width:100%;text-align:center}
.ddec-fiche-coord__uai{margin:1.1rem 0 0;font-size:.75rem;color:var(--c-muted)}

.ddec-fiche-proches{padding-top:clamp(1rem,3vw,2rem);border-top:1px solid var(--c-sauge-50)}
.ddec-fiche-proches__tete{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.ddec-fiche-proches__titre{margin:0;font-size:var(--wp--preset--font-size--2-xl,2.25rem);letter-spacing:-.03em;line-height:1.1;color:var(--c-encre);font-weight:600}
.ddec-fiche-proches__grille{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.ddec-fiche-proche{position:relative;margin:0;display:flex;flex-direction:column;gap:.45rem;padding:1.4rem 1.4rem 1.25rem;border-radius:28px;background:var(--c-brume);transition:transform .6s var(--ressort),box-shadow .6s var(--ressort)}
.ddec-fiche-proche:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(34,48,42,.28)}
.ddec-fiche-proche>*{margin:0}
.ddec-fiche-proche__picto{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--c-encre);box-shadow:inset 0 0 0 1.5px var(--c-encre);margin-bottom:.5rem}
.ddec-fiche-proche__nom{font-size:var(--wp--preset--font-size--lg,1.125rem);line-height:1.3;font-weight:600;letter-spacing:-.01em}
.ddec-fiche-proche__nom a{color:var(--c-encre);text-decoration:none}
.ddec-fiche-proche__nom a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.ddec-fiche-proche__nom a:focus-visible{box-shadow:none}
.ddec-fiche-proche:has(a:focus-visible){box-shadow:var(--focus)}
.ddec-fiche-proche__info{font-size:.875rem;color:var(--c-muted)}
.ddec-fiche-proche__dist{margin-top:auto!important;padding-top:.6rem;font-size:.875rem;font-weight:650;color:var(--c-encre)}
.ddec-fiche-edit{padding:1rem 1.25rem;border-radius:18px;background:var(--c-brume,#EDF3F0);font-size:14px}

@media (max-width:1000px){
	.ddec-fiche-proches__grille{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:781px){
	.ddec-fiche-entete{border-radius:0 0 28px 28px}
	.ddec-fiche-entete__grille{grid-template-columns:1fr}
	.ddec-fiche-entete__carte{max-width:420px;width:100%;justify-self:center}
	.ddec-fiche-coord{position:static}
}
@media (max-width:520px){
	.ddec-fiche-proches__grille{grid-template-columns:1fr;gap:.6rem}
	.ddec-fiche-proche{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:1rem;row-gap:.2rem;padding:1.1rem 1.2rem;border-radius:22px}
	.ddec-fiche-proche__picto{grid-row:1/span 3;margin:0}
	.ddec-fiche-proche__dist{padding-top:.2rem}
}

/* Fiche complète : actions et inscription dans la carte de contact */
.ddec-fiche-coord .ddec-actions-rapides{margin-bottom:1rem}
.ddec-fiche-coord .ddec-inscrire{margin:0 0 1.3rem}
.ddec-fiche-coord__copier{margin:1.2rem 0 0;font-size:.8125rem}

.ddec-carte__panneau:has(.ddec-carte__vide:not([hidden])) .ddec-carte__liste{display:none}

/* ------------------------------------------------------------ couleur par type
   Une teinte par type d’établissement, reprise partout : pastille, liste, légende,
   suggestions, fiches et parts des grappes. Le picto reste sombre sauf sur l’encre. */
:root{--t-ecole:#F9B04A;--t-college:#86B9D6;--t-lycee:#34483E;--t-lycee-pro:#EC8E6F;--t-ensemble:#A8C1AF;--t-superieur:#AE9DDB}
:is(.ddec-carte__pt,.ddec-picto)[data-type="ecole"],:is(.ddec-ligne__picto,.ddec-carte__sugg-picto,.ddec-fiche-membres__picto,.ddec-fiche-proche__picto):has(>.ddec-picto[data-type="ecole"]){--t:var(--t-ecole);--t-ico:var(--c-nuit)}
:is(.ddec-carte__pt,.ddec-picto)[data-type="college"],:is(.ddec-ligne__picto,.ddec-carte__sugg-picto,.ddec-fiche-membres__picto,.ddec-fiche-proche__picto):has(>.ddec-picto[data-type="college"]){--t:var(--t-college);--t-ico:var(--c-nuit)}
:is(.ddec-carte__pt,.ddec-picto)[data-type="lycee"],:is(.ddec-ligne__picto,.ddec-carte__sugg-picto,.ddec-fiche-membres__picto,.ddec-fiche-proche__picto):has(>.ddec-picto[data-type="lycee"]){--t:var(--t-lycee);--t-ico:#fff}
:is(.ddec-carte__pt,.ddec-picto)[data-type="lycee-pro"],:is(.ddec-ligne__picto,.ddec-carte__sugg-picto,.ddec-fiche-membres__picto,.ddec-fiche-proche__picto):has(>.ddec-picto[data-type="lycee-pro"]){--t:var(--t-lycee-pro);--t-ico:var(--c-nuit)}
:is(.ddec-carte__pt,.ddec-picto)[data-type="ensemble"],:is(.ddec-ligne__picto,.ddec-carte__sugg-picto,.ddec-fiche-membres__picto,.ddec-fiche-proche__picto):has(>.ddec-picto[data-type="ensemble"]){--t:var(--t-ensemble);--t-ico:var(--c-nuit)}
:is(.ddec-carte__pt,.ddec-picto)[data-type="superieur"],:is(.ddec-ligne__picto,.ddec-carte__sugg-picto,.ddec-fiche-membres__picto,.ddec-fiche-proche__picto):has(>.ddec-picto[data-type="superieur"]){--t:var(--t-superieur);--t-ico:var(--c-nuit)}
.ddec-carte__pt{background:var(--t,#fff);color:var(--t-ico,var(--c-encre));box-shadow:0 0 0 2.5px #fff,0 1px 5px rgba(34,48,42,.32)}
.ddec-carte__pt:hover,.ddec-carte__pt.is-survol{background:var(--t,#fff);color:var(--t-ico,var(--c-encre));box-shadow:0 0 0 2.5px #fff,0 0 0 4.5px var(--c-nuit),0 3px 10px rgba(34,48,42,.35)}
.ddec-carte__pt.is-selection{background:var(--t,var(--c-jaune));color:var(--t-ico,var(--c-nuit));box-shadow:0 0 0 3px #fff,0 0 0 5.5px var(--c-nuit),0 4px 14px rgba(34,48,42,.4)}
.ddec-carte__pt.is-selection::after{border-color:var(--c-nuit)}
.ddec-carte__pt .ddec-picto{width:18px;height:18px;stroke-width:1.9}
:is(.ddec-ligne__picto,.ddec-carte__sugg-picto,.ddec-fiche-membres__picto,.ddec-fiche-proche__picto):has(>.ddec-picto[data-type]){background:var(--t);color:var(--t-ico);box-shadow:none}
.ddec-carte__item.is-survol .ddec-ligne__picto,.ddec-carte__item:hover .ddec-ligne__picto,.ddec-carte__item.is-selection .ddec-ligne__picto{background:var(--t);color:var(--t-ico);box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--c-nuit)}
.ddec-carte__legende .ddec-picto[data-type]{background:var(--t);color:var(--t-ico);box-shadow:none}
/* Grappe : anneau partagé entre les types qu’elle contient (--g, calculé par carte.js) */
.ddec-carte__grappe{background:radial-gradient(circle,#fff 0 calc(50% - 5px),transparent calc(50% - 4.5px)),var(--g,var(--c-sauge));color:var(--c-nuit);box-shadow:0 0 0 2.5px #fff,0 1px 6px rgba(34,48,42,.3)}
.ddec-carte__grappe:hover,.ddec-carte__grappe.is-survol{background:radial-gradient(circle,var(--c-nuit) 0 calc(50% - 5px),transparent calc(50% - 4.5px)),var(--g,var(--c-sauge));color:#fff}
/* Couronne ouverte : ce qui passerait dessous s’efface */
.ddec-carte__anneau{background:rgba(255,255,255,.82);border-color:var(--c-encre);box-shadow:0 6px 24px rgba(34,48,42,.16)}
/* Boutons de classe : le picto coloré du type, comme sur la carte */
.ddec-classe span{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:.7rem;align-content:center}
.ddec-classe span>*{grid-column:2}
.ddec-classe span>.ddec-picto{grid-column:1;grid-row:1/span 2;align-self:center;box-sizing:border-box;width:32px;height:32px;padding:6.5px;border-radius:50%;background:var(--t);color:var(--t-ico);transition:transform .3s var(--ressort)}
.ddec-classe:hover span>.ddec-picto{transform:rotate(-8deg) scale(1.08)}
.ddec-classe input:checked+span>.ddec-picto{box-shadow:0 0 0 2px #fff}
@media (max-width:600px){.ddec-classe span{grid-template-columns:28px minmax(0,1fr);column-gap:.55rem}.ddec-classe span>.ddec-picto{width:28px;height:28px;padding:5.5px}}
/* Fond vectoriel MapLibre (carte.js : chargerFond). Sous le SVG, qui ne garde que les repères dessinés. */
.ddec-carte__fond{position:absolute;inset:0;overflow:hidden;border-radius:inherit;opacity:0;transition:opacity .5s}
.ddec-carte__fond canvas{position:absolute;left:0;top:0}
.ddec-carte.a-fond .ddec-carte__fond{opacity:1}
.ddec-carte.a-fond .ddec-carte__credit{display:block}
.ddec-carte.a-fond .ddec-territoire .t-detail,.ddec-carte.a-fond .ddec-territoire .t-voisins path,.ddec-carte.a-fond .ddec-territoire :is(.t-lacs,.t-rivieres,.t-affluents,.t-vagues){display:none}
.ddec-carte.a-fond .ddec-territoire .t-diocese{fill:transparent;stroke:transparent}
.ddec-carte.a-fond .ddec-territoire.is-filtre-diocese .t-diocese:not(.is-surligne){fill:rgba(237,243,240,.7)}
