/* Fiches commune, intercommunalité et canton dans la DA de « S'implanter » (#249, lot 3, modèle /s-implanter/pourquoi/) :
   sections ancrées avec le sommaire flottant à gauche (sommaire.css), chiffres en blocs (simplanter-pages.css, sp-chiffres),
   tableaux libellé / valeur, cartes Leaflet de contenu. Plus de fond de carte décoratif ni de verre dépoli. */
.fc { padding-top: var(--s-5, 24px); }
.fc-entete { margin: 0 0 var(--s-5, 24px); }
.fc-entete h1 { margin: 0 0 4px; font-size: 28px; line-height: 36px; font-weight: 700; color: var(--c-text, #0F172A); overflow-wrap: anywhere; }
.fc-entete p { margin: 0 0 12px; font-weight: 600; color: var(--c-brand, #3D5A73); }
.fc-retour { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; margin: 0 0 8px; font-size: 14px; font-weight: 600; color: var(--c-action, #0066CC); text-decoration: none; }
.fc-retour:hover { text-decoration: underline; }
.fc-retour svg { width: 16px; height: 16px; }

/* Tableaux libellé / valeur (la valeur ne passe pas sous le libellé, #64) */
.fc-tableaux { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 0 0 16px; }
@media (min-width: 768px) { .fc-tableaux { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
.fc-tableau { min-width: 0; padding: 16px; background: #fff; border: 1px solid var(--c-border, #E2E8F0); border-radius: var(--r-md, 12px); box-shadow: var(--sh-2, 0 4px 16px rgba(15, 23, 42, .08)); }
@media (min-width: 1024px) { .fc-tableau { padding: 24px; } }
.sp-corps .fc-tableau h3 { margin: 0 0 8px; font-size: 16px; line-height: 24px; }
.fc-dl { margin: 0; }
.fc-dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--c-border, #E2E8F0); }
.fc-dl > div:last-child { border-bottom: 0; padding-bottom: 0; }
.fc-dl dt { min-width: 0; font-size: 14px; line-height: 20px; color: var(--c-text-2, #475569); }
.fc-dl dd { flex-shrink: 0; margin: 0; max-width: 55%; text-align: right; font-size: 15px; line-height: 22px; font-weight: 700; color: var(--c-text, #0F172A); font-variant-numeric: tabular-nums; }
.fc-dl .fc-total { border-top: 2px solid var(--c-border, #E2E8F0); }
.fc-pos { color: #15803D !important; }
.fc-neg { color: #B91C1C !important; }
.sp-corps .fc-tableau p { margin: 8px 0 0; font-size: 13px; line-height: 18px; color: var(--c-text-2, #475569); }

/* Cartes Leaflet / MapLibre de contenu */
.fc-carte { position: relative; z-index: 0; isolation: isolate; height: 320px; border: 1px solid var(--c-border, #E2E8F0); border-radius: var(--r-md, 12px); overflow: hidden; background: #E2E8F0; }
@media (min-width: 1024px) { .fc-carte { height: 420px; } }
.fc-carte > div:first-child { width: 100%; height: 100%; }
.fc-carte .leaflet-container { font-family: inherit; }
.fc-legende { position: absolute; bottom: 12px; left: 12px; z-index: 5; display: flex; flex-wrap: wrap; gap: 8px 14px; max-width: calc(100% - 24px); padding: 8px 12px; background: rgba(15, 23, 42, .9); border-radius: 8px; font-size: 12px; line-height: 16px; color: #E2E8F0; }
.fc-legende span { display: inline-flex; align-items: center; gap: 6px; }
.fc-legende i { width: 10px; height: 10px; border-radius: 3px; }
.deck-tooltip { position: absolute; z-index: 100; pointer-events: none; min-width: 220px; padding: 14px 18px; background: rgba(15, 23, 42, .95); border-radius: 12px; font-size: 12px; line-height: 1.6; color: #fff; box-shadow: 0 8px 32px rgba(0, 0, 0, .4); }
.deck-tooltip .tt-name { margin-bottom: 8px; font-size: 14px; font-weight: 700; color: #E2E8F0; }
.deck-tooltip .tt-row { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.deck-tooltip .tt-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.deck-tooltip .tt-label { color: #CBD5E1; }
.deck-tooltip .tt-value { margin-left: auto; font-weight: 600; color: #fff; }

/* Offres, communes membres, contacts */
.fc-offres { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin: 0 0 16px; }
@media (min-width: 768px) { .fc-offres { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fc-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 0 0 16px; }
.fc-contacts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .fc-contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
.fc-contacts > li { min-width: 0; }
.fc-contacts .fc-tableau { height: 100%; }
.fc-personne { display: flex; align-items: center; gap: 12px; margin: 0 0 8px; }
.fc-personne img, .fc-personne__initiales { flex-shrink: 0; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid var(--c-border, #E2E8F0); }
.fc-personne__initiales { display: inline-flex; align-items: center; justify-content: center; background: #F1F5F9; font-weight: 700; color: #475569; }
.fc-personne strong { display: block; color: var(--c-text, #0F172A); }
.fc-personne em, .fc-meta { display: block; font-size: 14px; line-height: 20px; color: var(--c-text-2, #475569); }
.fc-coord { margin: 0; font-size: 14px; line-height: 20px; color: var(--c-text-body, #1E293B); }
.fc-coord > * + * { margin-top: 4px; }
.fc-coord a { overflow-wrap: anywhere; }
.fc-groupe + .fc-groupe { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--c-border, #E2E8F0); }
.fc-connexion { text-align: center; }
.fc-connexion svg { margin: 0 auto 8px; color: #64748B; }

/* Blocs rendus par les gabarits partagés (actualités, acteurs, formation, numérique) : marges des sections */
.fc .pc-section > section { margin: 0; }

.fc-logo-impression { display: none; }

@media print {
    .fc-logo-impression { display: block; position: fixed; top: 0; right: 0; width: auto; height: 64px; margin: 8px 8px 0 0; }
    .pc-aside, .fc-actions, .fc-ecran, header, footer, nav { display: none !important; }
    .pc-grille--sf { display: block; }
    .fc-carte { height: 240px; break-inside: avoid; }
    .fc-tableau { box-shadow: none; break-inside: avoid; }
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}

/* Pages légales (#249, lot 4) : titres de section sans classes utilitaires */
.fc-legal .legal-choix h2 { margin: 0 0 8px; font-size: 20px; line-height: 28px; font-weight: 700; color: var(--c-text, #0F172A); }
.fc-legal .legal-choix p[role="status"] { margin: 0 0 12px; }
.fc-legal .legal-choix legend { margin: 0 0 8px; }
.fc-legal__credits { margin-top: 40px; }

/* Commercialisateurs (#249, lot 4) */
.fc-commerc { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.fc-commerc__logo { display: inline-flex; align-items: center; justify-content: center; width: 112px; height: 112px; padding: 12px; background: #fff; border: 1px solid var(--c-border, #E2E8F0); border-radius: var(--r-md, 12px); }
.fc-commerc__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.fc-case { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; font-weight: 600; }
.fc-case input { width: 20px; height: 20px; }
.fc-carte-offre__tete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fc-coord svg { display: inline-block; vertical-align: -3px; color: var(--c-text-2, #475569); }

/* Fiche intercommunalité (#261) : identité et compétences (Banatic) */
.epci-identite dd { margin: 0; text-align: right; overflow-wrap: anywhere; min-width: 0; }
.epci-identite > div { flex-wrap: wrap; }
.epci-identite dt { min-width: 0; overflow-wrap: anywhere; }
.epci-comp { list-style: none; margin: 0; padding: 0; }
.epci-comp li { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border-bottom: 1px solid var(--c-border, #E2E8F0); overflow-wrap: anywhere; }
.epci-comp li:last-child { border-bottom: 0; }
.epci-comp__etat { font-size: .875rem; font-weight: 600; color: var(--c-text-2, #475569); }
.epci-comp__oui .epci-comp__etat { color: #166534; }
.epci-comp__ci .epci-comp__etat { color: var(--c-brand); }
.epci-comp__non span { color: var(--c-text-2, #475569); }

/* Chiffres cumulés des EPCI : grille équilibrée selon le nombre de tuiles (1 à 4, jamais une tuile seule sur sa ligne) */
.sp-chiffres--n1 { grid-template-columns: minmax(0, 1fr); }
.sp-chiffres--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sp-chiffres--n3 { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .sp-chiffres--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sp-chiffres--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .sp-chiffres--n2 { grid-template-columns: minmax(0, 1fr); } }
