/* Fiche commune : une seule mise en page pour toutes les sections (modèle /s-implanter/pourquoi/ et fiches EPCI).
   Motif commun : titre h2 serif, courte intro, contenu en cartes identiques, ligne « Source » en pied.
   Les blocs rendus par les gabarits partagés (équipements, numérique, DVF, acteurs…) sont ramenés à ce motif ici,
   avec le préfixe .fc .pc-sections qui l'emporte sur leurs feuilles chargées après. Tuiles neutres (#235) : ni border-top ni border-left. */
.fc .pc-sections {
    --fc-bord: var(--c-border, #E2E8F0);
    --fc-fond: #fff;
    --fc-rayon: var(--r-md, 12px);
    --fc-ombre: var(--sh-1, 0 1px 3px rgba(15, 23, 42, .06));
    --fc-pad: 16px;
    --fc-texte2: var(--c-text-2, #475569);
}
@media (min-width: 1024px) { .fc .pc-sections { --fc-pad: 20px; } }

/* Sections : même séparation, même rythme */
.fc .pc-section + .pc-section { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--fc-bord); }
.fc .pc-section h2:not(.sr-only) {
    margin: 32px 0 8px; font-size: 26px; line-height: 34px; font-weight: 600; color: var(--c-text, #0F172A); overflow-wrap: anywhere;
}
.fc .pc-section h2:not(.sr-only):first-child, .fc .pc-section > :first-child > h2:first-child, .fc .pc-section > .eq > h2:first-child { margin-top: 0; }
@media (min-width: 1024px) { .fc .pc-section h2:not(.sr-only) { font-size: 30px; line-height: 38px; } }
.fc .pc-section h3:not(.ui-offer-card__title):not(.act-carte__titre) {
    margin: 24px 0 8px; font-family: inherit; font-size: 17px; line-height: 24px; font-weight: 700; color: var(--c-text, #0F172A); overflow-wrap: anywhere;
}
.fc .pc-section h3:first-child, .fc .pc-section h2 + h3 { margin-top: 0; }
.fc .pc-section h4 { margin: 16px 0 4px; font-size: 15px; line-height: 22px; font-weight: 600; color: var(--c-text, #0F172A); }
.fc .pc-section h2 + p, .fc .pc-section h2 + .ui-help { margin-top: 0; }
.fc-intro { margin: 0 0 20px; max-width: 75ch; font-size: 16px; line-height: 24px; color: var(--fc-texte2); }
.fc .pc-section h3 + .fc-intro { margin-top: -4px; }

/* Cartes : un seul style (fond blanc, bordure, rayon, léger relief) */
.fc .pc-sections .fc-tableau, .fc .pc-sections .dvf95-cat, .fc .pc-sections .eq-fam, .fc .pc-sections .ui-chart,
.fc .pc-sections .tv-situation, .fc .pc-sections .fc-repli, .fc .pc-sections .ui-table__cadre, .fc .pc-sections .act-carte,
.fc .pc-sections .sp-chiffre, .fc .pc-sections .tb-chiffres li, .fc .pc-sections .ne-bloc__chiffres li {
    background: var(--fc-fond); border: 1px solid var(--fc-bord); border-radius: var(--fc-rayon); box-shadow: var(--fc-ombre);
}
.fc .pc-sections .fc-tableau, .fc .pc-sections .dvf95-cat, .fc .pc-sections .eq-fam { padding: var(--fc-pad); margin: 0 0 16px; }
.fc .pc-sections .ui-chart { padding: var(--fc-pad); }
.fc .pc-sections .fc-tableau h3, .fc .pc-sections .dvf95-cat h3, .fc .pc-sections .eq-fam__t { margin: 0 0 8px; font-size: 17px; line-height: 24px; }
/* Panneaux de l'Annuaire (entreprises, acteurs, actualités) : le cadre disparaît, les cartes qu'ils contiennent portent le style */
.fc .pc-sections .ui-panel { padding: 0; background: none; border: 0; box-shadow: none; border-radius: 0; margin-top: 0; }
.fc .pc-sections .act-bloc--commune { margin-top: 0; }
.fc .pc-sections .act-bloc + .act-bloc { margin-top: 32px; }

/* Tuiles de chiffres : mêmes dimensions partout, neutres */
.fc .pc-sections .sp-chiffres, .fc .pc-sections .tb-chiffres, .fc .pc-sections .ne-bloc__chiffres {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; padding: 0; list-style: none;
}
@media (min-width: 640px) {
    .fc .pc-sections .sp-chiffres, .fc .pc-sections .tb-chiffres, .fc .pc-sections .ne-bloc__chiffres {
        grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px;
    }
}
.fc .pc-sections .sp-chiffre, .fc .pc-sections .tb-chiffres li, .fc .pc-sections .ne-bloc__chiffres li {
    display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 16px; margin: 0; overflow-wrap: anywhere;
}
.fc .pc-sections .sp-chiffres .sp-chiffre .sp-chiffre__n, .fc .pc-sections .tb-chiffres .tb-n, .fc .pc-sections .ne-bloc__chiffres .ne-bloc__n {
    font-family: inherit; font-size: 26px; line-height: 32px; font-weight: 700; letter-spacing: 0; color: var(--c-brand, #3D5A73); font-variant-numeric: lining-nums tabular-nums;
}
.fc .pc-sections .sp-chiffre__l, .fc .pc-sections .tb-l, .fc .pc-sections .ne-bloc__l {
    font-size: 14px; line-height: 20px; font-weight: 500; color: var(--c-text-body, #1E293B);
}
.fc .pc-sections .sp-chiffre__s { font-size: 13px; line-height: 18px; color: var(--fc-texte2); }
.fc .pc-sections .sp-chiffre__n { container-type: normal; }
.fc-bref { margin: 0 0 24px; }
.fc-bref__t { margin-top: 0; }

/* Tableaux : même cadre, même en-tête, mêmes marges */
.fc .pc-sections .ui-table__cadre { margin: 0 0 16px; overflow-x: auto; }
.fc .pc-sections .ui-table th, .fc .pc-sections .ui-table td { padding: 10px 14px; font-size: 15px; line-height: 22px; }
.fc .pc-sections .ui-table thead th { background: var(--c-bg, #F8FAFC); font-size: 13px; line-height: 18px; font-weight: 600; color: var(--fc-texte2); }
.fc .pc-sections .dvf95-table { max-width: 100%; }

/* Ligne « Source » : même place (pied du bloc), même style */
.fc .pc-sections .sp-source, .fc .pc-sections .ui-source, .fc .pc-sections .dvf95-source, .fc .pc-sections .eq-source,
.fc .pc-sections .ne-bloc__source, .fc .pc-sections .ro-sources, .fc .pc-sections .tb-note {
    margin: 16px 0 0; max-width: 90ch; font-size: 13px; line-height: 18px; color: var(--fc-texte2); overflow-wrap: anywhere;
}
.fc .pc-sections .ui-chart .ui-source { margin-top: 12px; }
.fc .pc-sections .sp-source strong, .fc .pc-sections .ui-source strong { font-weight: 600; color: var(--c-text-body, #1E293B); }

/* Détail des chiffres : bloc replié, les repères essentiels restent visibles au-dessus */
.fc .pc-sections .fc-repli { margin: 24px 0 0; padding: 0; }
.fc-repli__s {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; position: relative; min-height: 48px; padding: 14px 48px 14px var(--fc-pad);
    list-style: none; cursor: pointer; font-size: 17px; line-height: 24px; font-weight: 700; color: var(--c-text, #0F172A);
}
.fc-repli__s::-webkit-details-marker { display: none; }
.fc-repli__s::after {
    content: ""; position: absolute; right: 18px; top: 50%; width: 9px; height: 9px; margin-top: -7px;
    border: solid var(--c-brand, #3D5A73); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .15s ease;
}
.fc-repli[open] > .fc-repli__s::after { transform: rotate(-135deg); margin-top: -2px; }
.fc-repli__s:focus-visible { outline: 2px solid var(--ui-focus, #1D4ED8); outline-offset: -2px; border-radius: var(--fc-rayon); }
.fc-repli__aide { font-size: 14px; line-height: 20px; font-weight: 400; color: var(--fc-texte2); }
.fc-repli[open] > .fc-repli__s { border-bottom: 1px solid var(--fc-bord); }
.fc .pc-sections .fc-repli .fc-tableaux { padding: var(--fc-pad); margin: 0; }
.fc .pc-sections .fc-repli .fc-tableau { box-shadow: none; margin: 0; background: var(--c-bg, #F8FAFC); }
.fc .pc-sections .fc-tableaux { gap: 16px; margin: 0 0 16px; }

/* Présentation */
.fc .pc-sections .fc-texte { max-width: 75ch; margin: 0 0 8px; }
.fc .pc-sections .fc-texte p { max-width: none; }
.fc .pc-sections .fc-carte { border-radius: var(--fc-rayon); box-shadow: var(--fc-ombre); margin: 0 0 16px; }

/* Listes de liens et de personnes : dans une carte du même style */
.fc .pc-sections .acr-personnes, .fc .pc-sections .acr-projets, .fc .pc-sections .ne-bloc__liste,
.fc .pc-sections .act-personnes {
    padding: var(--fc-pad); margin: 0 0 16px; background: var(--fc-fond); border: 1px solid var(--fc-bord); border-radius: var(--fc-rayon); box-shadow: var(--fc-ombre);
    list-style: none;
}
.fc .pc-sections .ne-bloc ~ .ne-bloc { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--fc-bord); }

/* Contacts */
.fc .pc-sections .fc-contacts { gap: 16px; }
.fc .pc-sections .fc-contacts .fc-tableau { margin: 0; }
.fc .pc-sections .fc-connexion { max-width: 520px; }

/* Offres */
.fc .pc-sections .fc-offres { gap: 16px; }
.fc .pc-sections .fo__pied, .fc .pc-sections .fo__types { margin-top: 16px; }
