/* Page « Intérêts déclarés » — charte édition, une feuille par famille.
   Le nerf de cette page : 63 % des montants publiés par la HATVP valent
   zéro. La mise en page doit donc faire ressortir le peu qui compte, et
   rendre le reste discret sans le cacher. */

.interets{padding-bottom:64px}

/* ---- En-tête ---- */
.interets-entete{padding-top:34px}
.interets-entete .edition-eyebrow{margin-bottom:14px}
.interets h1{font:700 clamp(38px,5vw,62px)/.92 var(--ed-display);letter-spacing:-.025em;margin:0 0 18px;max-width:20ch}
.interets h1>span{color:var(--ed-orange)}
.interets-chapo{font-size:15px;line-height:1.6;max-width:62ch;color:var(--ed-ink)}

/* ---- L'essentiel : quatre chiffres, jamais une somme calculée ---- */
.interets-essentiel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:34px 0 8px;border-top:2px solid var(--ed-ink);border-bottom:1px solid var(--ed-ink)}
.interets-chiffre{padding:18px 22px 20px;border-left:1px solid var(--ed-rule);min-width:0}
.interets-chiffre:first-child{border-left:0;padding-left:0}
.interets-chiffre>b{display:block;font:700 clamp(26px,2.6vw,36px)/1 var(--ed-display);letter-spacing:-.02em;white-space:nowrap}
.interets-chiffre>span{display:block;margin-top:7px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.interets-chiffre>i{display:block;margin-top:5px;font-style:normal;font-size:11px;line-height:1.35;color:var(--ed-muted)}

/* ---- Rubriques ---- */
.interets-rubrique{margin-top:44px}
.interets-rubrique .edition-section-title h2{font-size:clamp(24px,2.4vw,32px)}
.interets-lignes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;border-top:1px solid var(--ed-ink)}
.interets-ligne{padding:16px 0 18px;border-bottom:1px solid var(--ed-rule);min-width:0}
.interets-ligne h3{font:600 19px/1.15 var(--ed-display);letter-spacing:-.005em;margin:0}
.interets-ligne h3 em{font-style:italic;font-weight:500;color:var(--ed-muted)}
.interets-role{margin:5px 0 0;font-size:13px;line-height:1.45}
.interets-periode,.interets-parts{margin:4px 0 0;font-size:12px;color:var(--ed-muted)}
.interets-parts b{color:var(--ed-ink)}
.interets-gratuit{margin:8px 0 0;font-size:11px;color:var(--ed-muted);font-style:italic}
.interets-montant-seul{margin:9px 0 0;font-size:13px}
.interets-montant-seul b{font:700 17px/1 var(--ed-display);letter-spacing:-.01em}
.interets-commentaire{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--ed-muted);border-left:2px solid var(--ed-rule);padding-left:10px}

.interets-montants{width:100%;margin:10px 0 0;border-collapse:collapse;font-size:12px}
.interets-montants th{text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--ed-muted);padding:0 10px 4px 0;border-bottom:1px solid var(--ed-rule)}
.interets-montants td{padding:4px 10px 4px 0;border-bottom:1px solid var(--ed-rule)}
.interets-montants td:last-child{font-weight:600;white-space:nowrap}

.interets-vide{margin:34px 0;padding:18px 22px;border-left:3px solid var(--ed-ink);font-size:15px;max-width:66ch}

/* ---- Maillage interne ---- */
.interets-suite{margin-top:48px;padding-top:22px;border-top:2px solid var(--ed-ink)}
.interets-suite h2{font:700 20px/1 var(--ed-display);margin:0 0 14px}
.interets-suite ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 40px}
.interets-suite li{font-size:12px;color:var(--ed-muted);line-height:1.5}
.interets-suite a{display:block;font:600 15px/1.2 var(--ed-display);margin-bottom:3px}

.interets-source{margin-top:40px;font-size:11px;line-height:1.6;color:var(--ed-muted);max-width:86ch}
.interets-mention{font-style:italic;margin-top:8px}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media(max-width:900px){
  .interets-essentiel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .interets-chiffre:nth-child(3){border-left:0;padding-left:0}
  .interets-chiffre:nth-child(n+3){border-top:1px solid var(--ed-rule)}
  .interets-lignes{grid-template-columns:minmax(0,1fr);gap:0}
  .interets-suite ul{grid-template-columns:minmax(0,1fr);gap:14px}
}
@media(max-width:520px){
  .interets-essentiel{grid-template-columns:minmax(0,1fr)}
  .interets-chiffre{border-left:0;padding-left:0;border-top:1px solid var(--ed-rule)}
  .interets-chiffre:first-child{border-top:0}
}

/* ---- Pages du hub : organisation, hub, secteur, répertoire ----
   Même charte que la fiche élu (edition-wrap, edition-section-title,
   titres suivis d'un span coloré) : ces pages sont la contrepartie
   collective de la fiche individuelle, pas une famille à part. */

.interets-hub-cta{display:inline-block;margin-top:8px;font:600 13px/1 var(--ed-display);color:var(--ed-orange)}

/* -- Organisation : une section par nature de lien -- */
.interets-org-section{margin-top:44px}
.interets-org-section .edition-section-title h2{font-size:clamp(22px,2.2vw,30px);line-height:1.15}
.interets-org-elus{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--ed-ink)}
.interets-org-elus>li{padding:12px 0;border-bottom:1px solid var(--ed-rule);display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.interets-org-elus a{font:600 15px/1.2 var(--ed-display)}
.interets-org-meta{font-size:12px;color:var(--ed-muted)}
.interets-org-entree{flex-basis:100%;font-size:12px;color:var(--ed-muted)}
.interets-org-entree b{color:var(--ed-ink)}

/* -- Hub : classement, secteurs, groupes -- */
.interets-hub-classement{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--ed-ink)}
.interets-hub-classement li{padding:9px 0;border-bottom:1px solid var(--ed-rule);display:flex;justify-content:space-between;gap:12px;font-size:13px}
.interets-hub-classement a{font:600 14px/1.2 var(--ed-display)}
.interets-hub-classement b{font:700 14px/1 var(--ed-display)}

.interets-hub-secteurs{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 30px}
.interets-hub-secteurs li{padding:10px 0;border-top:1px solid var(--ed-rule);font-size:12px;color:var(--ed-muted)}
.interets-hub-secteurs a{display:block;font:600 15px/1.2 var(--ed-display);margin-bottom:3px}

.interets-hub-groupes{width:100%;margin:14px 0 0;border-collapse:collapse;font-size:12px}
.interets-hub-groupes th{text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--ed-muted);padding:0 10px 6px 0;border-bottom:1px solid var(--ed-ink)}
.interets-hub-groupes td{padding:6px 10px 6px 0;border-bottom:1px solid var(--ed-rule)}
.interets-hub-note{margin:10px 0 0;font-size:11px;color:var(--ed-muted)}

.interets-hub-cadrage{margin-top:44px;padding-top:22px;border-top:2px solid var(--ed-ink)}
.interets-hub-cadrage p{font-size:13px;line-height:1.6;max-width:70ch;margin:8px 0 0}

/* -- Répertoire -- */
.interets-repertoire{list-style:none;margin:14px 0 0;padding:0;column-count:2;column-gap:40px}
.interets-repertoire li{padding:7px 0;border-bottom:1px solid var(--ed-rule);break-inside:avoid;font-size:13px}
.interets-repertoire a{font-weight:600}
.interets-repertoire span{display:block;font-size:11px;color:var(--ed-muted)}
.interets-repertoire--sans li{color:var(--ed-muted)}

@media(max-width:900px){
  .interets-org-elus a{flex-basis:100%}
  .interets-hub-secteurs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .interets-hub-groupes{font-size:11px}
  .interets-repertoire{column-count:1}
}
@media(max-width:520px){
  .interets-hub-secteurs{grid-template-columns:minmax(0,1fr)}
  .interets-hub-groupes{display:block;overflow-x:auto}
}

/* ── Refonte visuelle du hub et des listes d'élus ────────────────────────────
   Barres à série unique : la longueur porte la grandeur, l'encre du site porte
   la barre. Aucune palette catégorielle — rien à distinguer à la teinte, donc
   rien qui se confonde pour un daltonien ou à l'impression. L'identité est
   toujours dans le libellé, et le chiffre reste écrit.
   Extrémité arrondie de 4 px du côté de la donnée, piste discrète, pas de
   grille : la comparaison se fait sur des longueurs alignées.                */

/* Le classement est une figure, pas une rangée pleine largeur : au-delà, la
   valeur s'éloigne trop de sa barre pour qu'on les lise ensemble. */
.iv-rang{list-style:none;margin:14px 0 0;padding:0;max-width:68rem}
.iv-rang li{display:grid;grid-template-columns:minmax(0,20rem) 1fr 3.2rem;align-items:center;
  gap:14px;padding:7px 0;border-bottom:1px solid var(--ed-rule-soft)}
.iv-rang li:hover{background:var(--ed-rule-soft)}
.iv-rang-nom{font:600 14px/1.25 var(--ed-display);min-width:0;overflow-wrap:anywhere}
.iv-rang-piste{display:block;height:10px;background:var(--ed-rule-soft)}
.iv-rang-barre{display:block;height:100%;background:var(--ed-ink);border-radius:0 4px 4px 0}
.iv-rang-val{font:700 15px/1 var(--ed-display);text-align:right;font-variant-numeric:tabular-nums}

.iv-plus{margin-top:12px}
.iv-plus summary{font:600 13px/1 var(--ed-display);cursor:pointer;padding:9px 0;
  border-top:1px solid var(--ed-rule);border-bottom:1px solid var(--ed-rule)}
.iv-plus summary:hover{color:var(--ed-orange-deep)}

.iv-secteurs{list-style:none;margin:14px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px 26px}
.iv-secteurs li{display:grid;gap:4px;padding-top:11px;border-top:2px solid var(--ed-ink)}
.iv-secteurs a{font:600 15px/1.15 var(--ed-display)}
.iv-secteurs b{font:700 27px/1 var(--ed-display);font-variant-numeric:tabular-nums}
.iv-secteurs-meta{font-size:11px;color:var(--ed-muted);line-height:1.35}
.iv-secteurs .iv-rang-piste{margin-top:5px}

/* Le tableau reste un tableau : c'est lui, la vue de données. Chaque cellule
   ajoute une barre à son pourcentage, sans le remplacer. */
/* Zone défilante : focalisable au clavier (WCAG 2.1.1), et le nom du groupe
   reste visible quand on fait défiler les colonnes. */
.iv-table-defile{overflow-x:auto;margin-top:14px;-webkit-overflow-scrolling:touch}
.iv-table-defile:focus-visible{outline:2px solid var(--ed-focus);outline-offset:3px}
.iv-groupes{width:100%;min-width:560px;border-collapse:collapse;font-size:12px}
.iv-groupes th{text-align:left;font-weight:400;font-size:9px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--ed-muted);padding:0 12px 7px 0;
  border-bottom:1px solid var(--ed-ink);vertical-align:bottom}
.iv-groupes tbody th{position:sticky;left:0;background:var(--ed-paper);font-size:12px;text-transform:none;letter-spacing:0;color:var(--ed-ink);
  padding:8px 12px 8px 0;border-bottom:1px solid var(--ed-rule-soft);white-space:nowrap}
.iv-groupes tbody th b{font:600 13px/1.2 var(--ed-display);display:block}
.iv-groupes tbody th span{font-size:10px;color:var(--ed-muted)}
.iv-groupes td{padding:8px 12px 8px 0;border-bottom:1px solid var(--ed-rule-soft);
  vertical-align:middle}
.iv-groupes tr:hover td,.iv-groupes tr:hover th{background:var(--ed-rule-soft)}
.iv-num{text-align:right;font-variant-numeric:tabular-nums}
.iv-cell{min-width:86px}
.iv-cell-piste{display:block;height:8px;background:var(--ed-rule-soft)}
.iv-cell-barre{display:block;height:100%;background:var(--ed-ink);border-radius:0 4px 4px 0}
.iv-cell-val{display:block;margin-top:3px;font-size:11px;color:var(--ed-muted);
  font-variant-numeric:tabular-nums}

/* Les parlementaires reprennent leur visage. */
.iv-elus{list-style:none;margin:16px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px 26px}
.iv-elu{display:grid;gap:6px;align-content:start;padding-top:12px;
  border-top:1px solid var(--ed-rule)}
/* `center` désalignait les noms d'une même rangée de 7 px dès qu'une ligne
   d'appartenance passait sur deux lignes : les cartes s'accrochent en haut. */
.iv-elu-lien{display:flex;gap:11px;align-items:flex-start}
.iv-elu-photo{width:56px;height:70px;object-fit:cover;flex-shrink:0;
  background:var(--ed-rule-soft);filter:grayscale(1)}
.iv-elu-lien:hover .iv-elu-photo{filter:none}
.iv-elu-photo--vide{display:block;width:56px;height:70px;flex-shrink:0;background:var(--ed-rule-soft)}
.iv-elu-texte{display:grid;gap:2px;min-width:0;padding-top:2px}
.iv-elu-texte b{font:600 15px/1.15 var(--ed-display)}
.iv-elu-meta{font-size:10px;color:var(--ed-muted);line-height:1.35;
  text-transform:uppercase;letter-spacing:.04em}
.iv-elu-entree{display:block;font-size:12px;line-height:1.45;color:var(--ed-ink);
  padding-left:67px}

.iv-repertoire{list-style:none;margin:14px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 22px}
.iv-repertoire a{display:flex;gap:9px;align-items:center;padding:6px 6px 6px 0}
.iv-repertoire a:hover{background:var(--ed-rule-soft)}
.iv-repertoire img,.iv-repertoire .iv-elu-photo--vide{width:36px;height:45px;object-fit:cover;
  flex-shrink:0;background:var(--ed-rule-soft);filter:grayscale(1)}
.iv-repertoire a:hover img{filter:none}
.iv-repertoire b{font:600 13px/1.15 var(--ed-display);display:block}

@media(max-width:700px){
  .iv-rang li{grid-template-columns:minmax(0,1fr) 2.6rem;gap:4px 10px}
  .iv-rang-piste{grid-column:1/-1;order:3}
  .iv-elu-entree{padding-left:0}
  .iv-elus{grid-template-columns:1fr}
}

/* Les élus sans déclaration : groupés par cause, la phrase écrite une fois par
   groupe et non une fois par personne. Toujours sans lien — ces pages sont en
   noindex. */
.iv-sans-cause{margin-top:22px}
.iv-sans-cause h3{font:600 17px/1.15 var(--ed-display);padding-bottom:9px;
  border-bottom:1px solid var(--ed-ink)}
.iv-sans-cause h3 span{color:var(--ed-orange)}
.iv-sans{list-style:none;margin:10px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:3px 22px}
.iv-sans li{font-size:13px;color:var(--ed-ink);padding:3px 0}
