/* Rubrique « Actualités » (#195) : cartes illustrées. S'appuie sur les jetons de styles.css (--c-*, --r-*, --sh-*). */
.act { display: flex; flex-direction: column; gap: 24px; }
.act a { color: var(--c-action-hover, #0052A3); }
.act a:hover { text-decoration: underline; }
.act-tete { display: flex; flex-direction: column; gap: 4px; }
.act-intro { margin: 0; max-width: 72ch; font-size: 16px; line-height: 24px; color: var(--c-text-2); }

/* Couleur de chaque thème : pastille, filet de carte, visuel maison (charte : bleu CEEVO et teintes sobres) */
.act-carte--ceevo, .act-visuel--ceevo, .act-onglet--ceevo { --act-t: #1853A2; --act-t-clair: #DBEAFE; }
.act-carte--economie, .act-visuel--economie, .act-onglet--economie { --act-t: #0F766E; --act-t-clair: #CCFBF1; }
.act-carte--implantations, .act-visuel--implantations, .act-onglet--implantations { --act-t: #B45309; --act-t-clair: #FEF3C7; }
.act-carte--institutions, .act-visuel--institutions, .act-onglet--institutions { --act-t: #5B21B6; --act-t-clair: #EDE9FE; }
.act-carte--entreprises, .act-visuel--entreprises, .act-onglet--entreprises { --act-t: #1E3A8A; --act-t-clair: #E0E7FF; }
.act-onglet--acteurs { --act-t: #0E7490; --act-t-clair: #CFFAFE; }   /* #208 : annuaire des acteurs */
.act-onglet--reseaux { --act-t: #9D174D; --act-t-clair: #FCE7F3; }   /* #208 : comptes officiels */

/* Filtres par thème, en pastilles */
.act-onglets ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.act-onglet { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid #CBD5E1;
    background: #fff; color: var(--c-text-body) !important; font-size: 14px; font-weight: 600; text-decoration: none !important; white-space: nowrap; }
.act-onglet::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--act-t, #64748b); }
.act-onglet--tout::before { display: none; }
.act-onglet:hover { background: var(--c-bg-2); }
.act-onglet[aria-current="page"] { background: var(--act-t, var(--c-brand)); border-color: var(--act-t, var(--c-brand)); color: #fff !important; }
.act-onglet[aria-current="page"]::before { background: #fff; }

.act-section { display: flex; flex-direction: column; gap: 12px; }
.act-section__tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.act-section__tete h2 a { display: inline-block; padding: 8px 0; color: var(--c-text); text-decoration: none; }
.act-surtitre { margin: 0; font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-brand); }
.act-tout { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 600; }

/* Carte illustrée : image (ou visuel maison), thème, titre, source et date, une phrase */
.act-liste { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px) { .act-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .act-liste { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.act-carte { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--c-border);
    border-radius: var(--r-md); box-shadow: var(--sh-1); transition: box-shadow .15s ease, transform .15s ease; }
.act-carte:hover { box-shadow: var(--sh-3); transform: translateY(-2px); }
.act-carte:focus-within { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.act-carte__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--act-t-clair, var(--c-bg-2)); }
.act-carte__media img, .act-carte__media svg { display: block; width: 100%; height: 100%; object-fit: cover; }
.act-carte__media--logo { background: #fff; border-bottom: 1px solid var(--c-border); }
.act-carte__media--logo img { object-fit: contain; padding: 16px; }
.act-carte__credit { position: absolute; right: 0; bottom: 0; max-width: 100%; padding: 2px 8px; border-top-left-radius: 8px; background: rgba(15, 23, 42, .72);
    color: #fff; font-size: 11px; line-height: 16px; }
.act-carte__corps { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; border-top: 3px solid var(--act-t, var(--c-brand)); }
.act-carte__theme { margin: 0; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--act-t, var(--c-brand)); }
.act-carte__titre { margin: 0; font-size: 17px; line-height: 24px; font-weight: 700; overflow-wrap: anywhere; }
.act-carte__titre a { color: var(--c-text) !important; text-decoration: none; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.act-carte__titre a::after { content: ""; position: absolute; inset: 0; }          /* toute la carte est cliquable */
.act-carte:hover .act-carte__titre a { color: var(--c-action-hover) !important; }
.act-carte__meta { display: flex; flex-wrap: wrap; gap: 2px 10px; margin: 0; font-size: 13px; line-height: 18px; color: var(--c-text-2); }
.act-carte__source { font-weight: 600; }
.act-carte__source::after { content: "·"; margin-left: 10px; font-weight: 400; }
.act-carte__resume { margin: 0; font-size: 14px; line-height: 20px; color: var(--c-text-body); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.act-carte__liens, .act-comptes { position: relative; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.act-carte__liens { margin-top: 6px; z-index: 1; }

/* Grand format « à la une » */
.act-carte--une .act-carte__titre { font-size: 22px; line-height: 30px; }
.act-carte--une .act-carte__resume { font-size: 16px; line-height: 24px; -webkit-line-clamp: 3; line-clamp: 3; }
@media (min-width: 768px) {
    .act-carte--une { flex-direction: row; }
    .act-carte--une .act-carte__media { flex: 0 0 58%; aspect-ratio: auto; min-height: 300px; }
    .act-carte--une .act-carte__media img, .act-carte--une .act-carte__media svg { position: absolute; inset: 0; }
    .act-carte--une .act-carte__corps { flex: 1 1 auto; justify-content: center; gap: 10px; padding: 24px; border-top: 0; border-left: 4px solid var(--act-t, var(--c-brand)); }
    .act-carte--une .act-carte__titre { font-size: 26px; line-height: 34px; }
    .act-carte--une .act-carte__titre a { -webkit-line-clamp: 4; line-clamp: 4; }
}

/* Visuel maison : bandeau de couleur + pictogramme du thème ou initiales */
.act-visuel__fond { fill: var(--act-t, #1853A2); }
.act-visuel__halo { fill: #fff; opacity: .09; }
.act-visuel__picto { stroke: #fff; }
.act-visuel__sigle { fill: #fff; font: 700 64px/1 Inter, system-ui, sans-serif; letter-spacing: .02em; }

.act-pastille { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: var(--c-brand-soft);
    color: #1E40AF !important; font-size: 13px; font-weight: 600; text-decoration: none; }
a.act-pastille { min-height: 44px; }
.act-pastille--lieu { background: #fff; color: var(--c-text-body) !important; border: 1px solid #CBD5E1; }
a.act-pastille--lieu:hover { background: var(--c-bg-2); text-decoration: none; }

/* Tuiles d'entreprise : initiales, nom, commune */
.act-ent-grille { display: grid; grid-template-columns: 1fr; gap: 12px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .act-ent-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .act-ent-grille { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.act-ent { position: relative; display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 72px; padding: 10px 12px; background: #fff;
    border: 1px solid var(--c-border); border-radius: var(--r-md); transition: box-shadow .15s ease; }
.act-ent:hover { box-shadow: var(--sh-2); }
.act-ent:focus-within { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.act-ent__sigle { flex: 0 0 52px; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px;
    background: #1E3A8A; color: #fff; font-size: 17px; font-weight: 700; letter-spacing: .02em; }
.act-ent__texte { min-width: 0; }
.act-ent__nom { margin: 0; font-size: 15px; line-height: 20px; font-weight: 700; }
.act-ent__nom a { color: var(--c-text) !important; text-decoration: none; }
.act-ent__nom a::after { content: ""; position: absolute; inset: 0; }
.act-ent__lieu { margin: 2px 0 0; font-size: 13px; line-height: 18px; color: var(--c-text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.act-communes { display: grid; grid-template-columns: 1fr; gap: 16px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .act-communes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .act-communes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.act-communes > li { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 12px 16px 16px; background: #fff; border: 1px solid var(--c-border); border-radius: var(--r-md); }
.act-communes h3 a, .act-lieu h3 a { padding: 9px 0; display: inline-block; }
.act-personnes { margin: 4px 0 0; padding-left: 20px; font-size: 15px; line-height: 22px; }

/* Fiche d'entreprise */
.act-hero { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.act-hero__visuel { flex: 0 0 auto; width: 160px; aspect-ratio: 16 / 9; border-radius: var(--r-md); overflow: hidden; }
.act-hero__visuel svg { display: block; width: 100%; height: 100%; }
.act-fiche { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: start; }
@media (min-width: 1024px) { .act-fiche { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.act-cote { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.act-bloc { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px; }
.act-bloc p { margin: 0; }
.act-lieu { display: flex; flex-direction: column; gap: 8px; padding-top: 12px; border-top: 1px solid var(--c-border); }
.act-lieu:first-of-type { border-top: 0; padding-top: 0; }
.act-dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 16px; margin: 0; font-size: 15px; line-height: 22px; }
.act-dl dt { color: var(--c-text-2); }
.act-dl dd { margin: 0; overflow-wrap: anywhere; }
.act-dl a { display: inline-block; padding: 11px 0; }
.act-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.act-actions .ui-btn { color: var(--c-text-body); white-space: normal; height: auto; min-height: 44px; text-align: left; }
.act-externe { display: inline-block; padding: 11px 0; overflow-wrap: anywhere; }
.act-note { max-width: 72ch; }
.act-note a { display: inline-block; padding: 13px 0; }
.act-bloc--commune { margin-top: 24px; }
.act-bloc--commune .act-liste { grid-template-columns: 1fr; }
@media (min-width: 640px) { .act-bloc--commune .act-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .act-dl { grid-template-columns: 1fr; gap: 0; } .act-dl dd { margin-bottom: 8px; } }
/* Mobile : les filtres tiennent sur une ligne qui défile, le contenu reste visible dès le premier écran */
@media (max-width: 639.98px) {
    .act-onglets ul { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 6px; scrollbar-width: thin; }
}
@media (prefers-reduced-motion: reduce) { .act-carte, .act-ent { transition: none; } .act-carte:hover { transform: none; } }
.act-hero .act-pastille { min-height: 44px; }
