/* « Le site et sa commune » : grille de cartes homogènes (titre, chiffre, comparaison, source, lien). */
.osc-grille { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .osc-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } .osc-carte--prix, .osc-carte--contacts { grid-column: 1 / -1; } }
.osc-carte { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px; border: 1px solid var(--c-border, #E2E8F0); border-radius: var(--r-md, 12px); background: #fff; overflow-wrap: anywhere; }
.osc-carte__t { margin: 0; font-size: 14px; line-height: 20px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--c-text-2, #475569); }
.osc-carte__fig { display: flex; flex-direction: column; gap: 2px; margin: 0; }
.osc-carte__fig strong { font-size: 32px; line-height: 38px; font-weight: 700; color: var(--c-text, #0f172a); }
.osc-carte__fig span { font-size: 14px; color: var(--c-text-2, #475569); }
.osc-carte__items { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; margin: 0; }
.osc-carte__items div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 2px; min-width: 0; }
.osc-carte__items dd { margin: 0; font-size: 20px; line-height: 26px; font-weight: 700; color: var(--c-text, #0f172a); }
.osc-carte__items dt { font-size: 13px; line-height: 18px; color: var(--c-text-2, #475569); }
.osc-carte__note { margin: 0; font-size: 14px; line-height: 20px; color: var(--c-text, #0f172a); }
.osc-carte__src { margin: auto 0 0; font-size: 12px; line-height: 17px; color: var(--c-text-2, #475569); }
.osc-carte__lien { margin: 0; font-size: 14px; }
.osc-cmp { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 10px 14px; border-left: 4px solid var(--c-brand, #3D5A73); background: var(--c-surface-2, #F1F5F9); border-radius: 0 8px 8px 0; font-size: 14px; }
.osc-contacts__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.osc-lien { margin: 16px 0 0; font-size: 15px; }
