.tsmc-carte-france{margin:26px 0;color:#1d2330;clear:both}.tsmc-carte-france *{box-sizing:border-box}.tsmc-carte-france h2{margin-bottom:12px}.cf-commandes,.cf-zoom,.cf-legende,.cf-selection{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap}.cf-commandes label,.cf-recherche label{display:flex;flex-direction:column;gap:4px;font-size:14px}.cf-commandes select,.cf-recherche input{font:inherit;color:#1d2330;background:#fff;border:1px solid #b9c6d2;border-radius:6px;padding:9px 10px;max-width:100%;min-width:0}.cf-commandes select{min-height:44px}.cf-commandes label{flex:0 1 280px}.cf-meta,.cf-note,.cf-source{font-size:13px;color:#52616e;margin:10px 0;line-height:1.5}.cf-legende{font-size:13px;margin:10px 0 12px;gap:7px 15px}.cf-legende span{display:inline-flex;align-items:center;gap:5px}.cf-legende i{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0}.cf-zoom{gap:8px;margin-bottom:8px}.cf-zoom button{font:inherit;border:1px solid #bccbd7;border-radius:6px;background:#eef4fa;color:#17496d;min-height:44px;min-width:44px;padding:6px 12px;cursor:pointer}.cf-zoom button:hover{background:#deebf7}.cf-zoom button:focus-visible,.cf-commandes select:focus-visible,.cf-recherche input:focus-visible{outline:3px solid #0d5995;outline-offset:2px}.cf-cadre{position:relative;background:#f7fafc;overflow:hidden;border-radius:8px}.cf-canvas{display:block;width:100%;height:500px;touch-action:pan-y}.cf-canvas:active{cursor:grabbing}.cf-gestes{position:absolute;left:10px;bottom:8px;max-width:calc(100% - 20px);background:rgba(255,255,255,.9);color:#42596b;padding:4px 6px;border-radius:4px;font-size:12px;pointer-events:none}.cf-selection{margin:14px 0;align-items:flex-end}.cf-recherche{flex:1 1 260px;min-width:0}.cf-recherche input{width:100%;min-height:44px}.cf-chiffres{flex:2 1 240px;min-width:0;margin:0 0 8px;line-height:1.5;font-size:15px}.cf-lien{margin-bottom:8px}.cf-lien[hidden]{display:none}.cf-recherche datalist{display:none}.cf-erreur{color:#9e2635}.cf-gestes.cf-touche{background:#fff4d9}.cf-source{font-size:12px}@media(min-width:800px){.cf-canvas{height:540px}}@media(max-width:450px){.cf-canvas{height:350px}.cf-commandes label{flex:1 1 130px}.cf-selection{align-items:stretch}.cf-chiffres{flex-basis:100%;margin:0}.cf-gestes{font-size:11px}}@media print{.cf-commandes,.cf-zoom,.cf-recherche,.cf-gestes{display:none}.cf-canvas{height:420px}}

/* Barre inférieure isolée des styles SPIP : ni chevauchement, ni hauteur héritée. */
.tsmc-carte-france .cf-selection{display:grid;grid-template-columns:minmax(200px,.9fr) minmax(0,1.6fr) auto;align-items:center;gap:12px 20px;margin:16px 0;min-width:0}
.tsmc-carte-france .cf-recherche{min-width:0;width:auto;float:none;clear:none;margin:0;padding:0}
.tsmc-carte-france .cf-recherche label{display:block;float:none;width:auto;margin:0;padding:0;line-height:1.4}
.tsmc-carte-france .cf-recherche input[type=search]{display:block;float:none;box-sizing:border-box;width:100%;max-width:100%;height:44px;min-height:44px;margin:5px 0 0;padding:9px 10px;font-size:16px;line-height:24px}
.tsmc-carte-france p.cf-chiffres{float:none;clear:none;min-width:0;width:auto;margin:0;padding:0;line-height:1.5;text-align:left;overflow-wrap:anywhere;white-space:normal}
.tsmc-carte-france a.cf-lien{float:none;align-self:center;max-width:180px;margin:0;line-height:1.5;white-space:normal}
@media(max-width:760px){.tsmc-carte-france .cf-selection{grid-template-columns:minmax(0,1fr);align-items:start;gap:10px}.tsmc-carte-france a.cf-lien{max-width:none}}

/* Informations ancrées à la commune sélectionnée, dans les limites de la carte. */
.tsmc-carte-france .cf-selection{grid-template-columns:minmax(0,1fr);max-width:520px}
.tsmc-carte-france .cf-infobulle{position:absolute;z-index:5;width:310px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:auto;background:#fff;border:1px solid #9aafbf;border-radius:10px;box-shadow:0 4px 20px #173b5a40;padding:14px 38px 14px 14px;color:#1d2330;touch-action:pan-y}
.tsmc-carte-france .cf-infobulle[hidden]{display:none}
.tsmc-carte-france .cf-popup-titre{display:block;font-size:17px;margin-bottom:7px}
.tsmc-carte-france .cf-popup-fermer{position:absolute;right:2px;top:2px;border:0;background:transparent;color:#17496d;font-size:25px;width:36px;height:36px;cursor:pointer}
.tsmc-carte-france .cf-infobulle .cf-chiffres{font-size:14px}
.tsmc-carte-france .cf-infobulle .cf-lien{display:inline-block;margin-top:8px;max-width:none}
.tsmc-carte-france .cf-infobulle .cf-lien[hidden]{display:none}

/* Recherche auprès des commandes, au-dessus de la carte. */
.tsmc-carte-france .cf-zoom{align-items:center}
.tsmc-carte-france .cf-zoom .cf-recherche{flex:1 1 260px;max-width:440px;margin-left:8px}
.tsmc-carte-france .cf-zoom .cf-recherche label{font-size:0}
.tsmc-carte-france .cf-zoom .cf-recherche input[type=search]{margin:0}
.tsmc-carte-france .cf-selection[hidden]{display:none}
@media(max-width:600px){.tsmc-carte-france .cf-zoom .cf-recherche{flex-basis:100%;max-width:none;margin-left:0}}

/* Un libellé long ne doit pas imposer sa largeur au sélecteur sur mobile. */
.tsmc-carte-france .cf-commandes label{min-width:0;max-width:100%}
.tsmc-carte-france .cf-commandes select{width:100%;min-width:0;max-width:100%}

/* Contrôles natifs iOS : hauteur explicite pour éviter le texte coupé par les styles globaux. */
.tsmc-carte-france .cf-commandes select{display:block;box-sizing:border-box;height:48px!important;min-height:48px;line-height:24px!important;padding:10px 32px 10px 10px!important;font-size:16px;color:#1d2330}
@media(max-width:600px){.tsmc-carte-france .cf-commandes{align-items:stretch}.tsmc-carte-france .cf-commandes label{flex:1 1 100%;width:100%}}
