/* Fiches organismes dynamiques — version 2.2.0 */
.cm-fiche-organisme{
    --cm-fiche-bord:#e2e5ea;
    --cm-fiche-doux:#5a636e;
    --cm-fiche-accent:#1f5fa9;
    --cm-fiche-vert:#238636;
    --cm-fiche-g1:#111;
    --cm-fiche-g2:#3d3d3d;
    --cm-fiche-g3:#5c5c5c;
    --cm-fiche-g4:#6e6e6e;
    --cm-fiche-fond:#f7f8fa;
    width:min(1180px,calc(100% - 32px));
    margin:34px auto 56px;
    box-sizing:border-box;
}
.cm-fiche-organisme *{box-sizing:border-box}
.cm-fiche-fil{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:0 0 16px;font-size:.88rem;color:var(--cm-fiche-doux)}
.cm-fiche-fil a{color:inherit;text-decoration:none}
.cm-fiche-fil a:hover{text-decoration:underline;text-underline-offset:3px}
.cm-fiche-carte{background:#fff;border:1px solid var(--cm-fiche-bord);border-radius:20px;padding:28px;box-shadow:0 8px 28px rgba(0,0,0,.06)}
.cm-fiche-administration{--cm-fiche-accent:#445a6f;--cm-fiche-fond:#f4f6f8}
.cm-fiche-scolaire{--cm-fiche-accent:#315f87;--cm-fiche-fond:#edf5fb}
.cm-fiche-sante{--cm-fiche-accent:#28675f;--cm-fiche-fond:#eef7f6}
.cm-fiche-social{--cm-fiche-accent:#754b31;--cm-fiche-fond:#f5eee9}
.cm-fiche-entete{margin:0 0 22px;padding:0 0 20px;border-bottom:1px solid var(--cm-fiche-bord)}
.cm-fiche-entete h1{margin:.15em 0 0;font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.12}
.cm-fiche-type{margin:0;color:var(--cm-fiche-accent);font-size:.82rem;font-weight:700;letter-spacing:.055em;text-transform:uppercase}
.cm-fiche-intro{max-width:820px;margin:14px 0 0;color:var(--cm-fiche-doux)}
.cm-fiche-haut{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:28px;align-items:start}
.cm-fiche-coordonnees h2,.cm-fiche-section h2{margin:0 0 14px;font-size:1.35rem}
.cm-fiche-infos{list-style:none;margin:0;padding:0;border-top:1px solid var(--cm-fiche-bord)}
.cm-fiche-infos li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:11px 0;border-bottom:1px solid var(--cm-fiche-bord)}
.cm-fiche-infos strong{font-size:.9rem;color:var(--cm-fiche-doux)}
.cm-fiche-infos a{overflow-wrap:anywhere}
.cm-fiche-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;align-items:stretch}
.cm-fiche-actions .wp-block-button{margin:0}
.cm-fiche-actions .wp-block-button__link{display:block;text-align:center;font-size:.92em;font-weight:600;white-space:normal}
.cm-fiche-actions .wp-block-button__link>span{font-family:Arial,Helvetica,sans-serif;font-style:normal;line-height:1}
.cm-fiche-actions .cm-fiche-n0 .cm-fiche-tel{color:var(--cm-fiche-vert)!important;-webkit-text-fill-color:var(--cm-fiche-vert)!important}
.cm-fiche-actions .cm-fiche-n1>a,.cm-fiche-actions .cm-fiche-n2>a,.cm-fiche-actions .cm-fiche-n3>a,.cm-fiche-actions .cm-fiche-n4>a{background:transparent!important;background-color:transparent!important;background-image:none!important;border:1px solid currentColor!important;box-shadow:none!important}
.cm-fiche-actions .cm-fiche-n1>a{color:var(--cm-fiche-g1)!important}
.cm-fiche-actions .cm-fiche-n2>a{color:var(--cm-fiche-g2)!important}
.cm-fiche-actions .cm-fiche-n3>a{color:var(--cm-fiche-g3)!important}
.cm-fiche-actions .cm-fiche-n4>a{color:var(--cm-fiche-g4)!important}
.cm-fiche-actions .cm-fiche-n1>a:hover,.cm-fiche-actions .cm-fiche-n1>a:focus-visible{background:var(--cm-fiche-g1)!important;color:#fff!important}
.cm-fiche-actions .cm-fiche-n2>a:hover,.cm-fiche-actions .cm-fiche-n2>a:focus-visible{background:var(--cm-fiche-g2)!important;color:#fff!important}
.cm-fiche-actions .cm-fiche-n3>a:hover,.cm-fiche-actions .cm-fiche-n3>a:focus-visible{background:var(--cm-fiche-g3)!important;color:#fff!important}
.cm-fiche-actions .cm-fiche-n4>a:hover,.cm-fiche-actions .cm-fiche-n4>a:focus-visible{background:var(--cm-fiche-g4)!important;color:#fff!important}
.cm-fiche-photo{margin:0;padding:10px;background:var(--cm-fiche-fond);border-radius:16px}
.cm-fiche-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:11px}
.cm-fiche-photo figcaption,.cm-fiche-plan figcaption{margin:6px 2px 0;text-align:right;color:var(--cm-fiche-doux);font-size:.75rem}
.cm-fiche-section{margin:26px 0 0;padding:22px 0 0;border-top:1px solid var(--cm-fiche-bord)}
.cm-fiche-intro-dynamique{max-width:920px;line-height:1.65}
.cm-fiche-description{font-size:1.02rem;line-height:1.7}
.cm-fiche-description p{max-width:900px;margin:.75em 0}
.cm-fiche-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;margin:0}
.cm-fiche-details div{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--cm-fiche-bord)}
.cm-fiche-details dt{font-weight:650;color:var(--cm-fiche-doux)}
.cm-fiche-details dd{margin:0}
.cm-fiche-horaires{margin:0;padding-left:1.25em;line-height:1.6}
.cm-fiche-note{margin:12px 0 0;color:var(--cm-fiche-doux);font-size:.86rem}
.cm-fiche-plan{margin:0;max-width:1000px}
.cm-fiche-plan a{display:block}
.cm-fiche-plan img{display:block;width:100%;height:auto;border:1px solid var(--cm-fiche-bord);border-radius:16px;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.cm-fiche-retour{margin:28px 0 0;padding-top:18px;border-top:1px solid var(--cm-fiche-bord)}
.cm-fiche-retour a{font-weight:650;color:var(--cm-fiche-accent)}
.cm-fiche-familles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cm-fiche-famille,.cm-fiche-liste-item{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid var(--cm-fiche-bord);border-radius:14px;text-decoration:none;color:inherit;background:var(--cm-fiche-fond)}
.cm-fiche-famille:hover,.cm-fiche-liste-item:hover{border-color:var(--cm-fiche-accent);box-shadow:0 5px 16px rgba(0,0,0,.06)}
.cm-fiche-famille strong,.cm-fiche-liste-item strong{color:var(--cm-fiche-accent)}
.cm-fiche-famille span,.cm-fiche-liste-item span,.cm-fiche-liste-item small{color:var(--cm-fiche-doux)}
.cm-fiche-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cm-fiche-erreur{max-width:760px;margin:auto}
@media(max-width:850px){
    .cm-fiche-haut{grid-template-columns:1fr}
    .cm-fiche-photo{max-width:520px}
    .cm-fiche-details{grid-template-columns:1fr}
}
@media(max-width:620px){
    .cm-fiche-organisme{width:min(100% - 20px,1180px);margin-top:20px}
    .cm-fiche-carte{padding:18px;border-radius:15px}
    .cm-fiche-infos li{grid-template-columns:1fr;gap:3px}
    .cm-fiche-familles,.cm-fiche-liste{grid-template-columns:1fr}
    .cm-fiche-actions{align-items:stretch}
    .cm-fiche-actions .wp-block-button{flex:1 1 100%}
}
