/* assets/css/ressources.css — pages « Ressources collectivités » (références, financement, marchés publics, coût, comparatif…).
   Se charge en plus de assets/css/style.css. */

.res-h1{ max-width:920px; margin-top:8px; }
.res-lead{ margin-top:16px; max-width:780px; }
.res-updated{ margin-top:14px; font-size:.88rem; color:var(--slate); }
.breadcrumb span{ color:var(--slate-light); }

/* Texte courant */
.res-prose{ max-width:820px; margin:0 auto; font-size:1.03rem; line-height:1.75; color:var(--ink); }
.res-prose h2{ margin-top:2.6rem; margin-bottom:.7rem; scroll-margin-top:96px; }
.res-prose h2:first-child{ margin-top:0; }
.res-prose h3{ margin-top:1.8rem; margin-bottom:.4rem; }
.res-prose p{ margin:0 0 1rem; }
.res-prose a:not(.btn){ color:var(--navy-light); text-decoration:underline; text-underline-offset:2px; }
.res-prose a:not(.btn):hover{ color:var(--navy-dark); }
.res-prose ul{ list-style:disc; padding-left:1.3rem; margin:0 0 1.2rem; }
.res-prose ol{ list-style:decimal; padding-left:1.4rem; margin:0 0 1.2rem; }
.res-prose li{ margin-bottom:.45rem; }
.res-prose li::marker{ color:var(--orange); }

/* Réponse directe en tête de page (utile aux lecteurs pressés comme aux assistants IA) */
.res-answer{ max-width:820px; margin:0 auto 2.4rem; padding:24px 28px; border-radius:var(--r-md); background:var(--aqua-light); border-left:5px solid var(--aqua); }
.res-answer p{ margin:0; font-size:1.08rem; line-height:1.65; color:var(--navy-dark); }
.res-answer strong{ color:var(--navy-dark); }

/* Encadrés */
.res-callout{ margin:1.8rem 0; padding:22px 26px; border-radius:var(--r-md); background:#FFF8EF; border-left:5px solid var(--orange); }
.res-callout p:last-child{ margin-bottom:0; }
.res-callout-title{ font-family:var(--font-display); font-weight:600; color:var(--navy-dark); margin:0 0 6px !important; }

/* Tableaux */
.res-table-wrap{ overflow-x:auto; margin:1.4rem 0 1.8rem; -webkit-overflow-scrolling:touch; }
.res-table{ width:100%; min-width:560px; border-collapse:collapse; font-size:.95rem; line-height:1.5; background:#fff; }
.res-table th, .res-table td{ border:1px solid var(--line); padding:11px 14px; text-align:left; vertical-align:top; }
.res-table thead th{ background:var(--aqua-light); color:var(--navy-dark); font-family:var(--font-display); font-weight:600; }
.res-table tbody th{ background:var(--cloud); color:var(--navy-dark); font-weight:600; width:24%; }
.res-table td.num, .res-table th.num{ text-align:right; white-space:nowrap; }
.res-table .is-best{ background:#F1FAF5; font-weight:600; color:var(--navy-dark); }
.res-note{ font-size:.86rem; color:var(--slate); margin-top:-.6rem; }

/* Grilles de cartes */
.res-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:24px; }
.res-card{ display:flex; flex-direction:column; gap:10px; padding:26px; border-radius:var(--r-lg); background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); color:inherit; text-decoration:none !important; transition:transform var(--transition), box-shadow var(--transition); }
a.res-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.res-card h3{ font-size:1.12rem; color:var(--navy-dark); margin:0; }
.res-card p{ margin:0; color:var(--slate); font-size:.95rem; line-height:1.6; }
.res-card .res-tag{ align-self:flex-start; font-size:.78rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--orange-dark); }
.res-card .res-more{ margin-top:auto; padding-top:6px; font-weight:600; font-size:.92rem; color:var(--navy-light); }
.res-facts{ display:flex; flex-direction:column; gap:6px; margin:6px 0 0; padding:0; list-style:none; font-size:.93rem; color:var(--ink); }
.res-facts li{ display:flex; gap:8px; }
.res-facts li::before{ content:"•"; color:var(--orange); font-weight:700; }

/* Étapes numérotées */
.res-steps{ list-style:none !important; counter-reset:step; padding:0 !important; display:flex; flex-direction:column; gap:18px; }
.res-steps li{ counter-increment:step; position:relative; padding-left:58px; margin:0 !important; }
.res-steps li::before{ content:counter(step); position:absolute; left:0; top:0; width:40px; height:40px; border-radius:50%; background:var(--navy); color:#fff; font-family:var(--font-display); font-weight:700; display:flex; align-items:center; justify-content:center; }
.res-steps li strong{ display:block; color:var(--navy-dark); font-family:var(--font-display); }

/* Liens utiles / sources */
.res-links{ list-style:none !important; padding:0 !important; display:flex; flex-direction:column; gap:8px; }
.res-links li{ margin:0 !important; }
.res-source{ font-size:.86rem; color:var(--slate); }

/* Bloc modèle (délibération, règlement) */
.res-template{ margin:1.4rem 0 2rem; padding:26px 30px; background:#fff; border:1.5px dashed var(--slate-light); border-radius:var(--r-md); font-size:.98rem; line-height:1.7; }
.res-template h3{ margin-top:0 !important; }
.res-template p{ margin-bottom:.7rem; }
.res-template ol{ margin-bottom:.4rem; }

/* Bandeau de 4 chiffres */
.stats-strip--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .stats-strip--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .stats-strip--4{ grid-template-columns:1fr; } }

/* ---------- Page « Je veux que ma commune distribue des récupérateurs » ---------- */
.demande-wrap{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:48px; align-items:start; }
@media (max-width:900px){ .demande-wrap{ grid-template-columns:1fr; gap:36px; } }
.demande-form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-md); padding:30px 30px 26px; }
.demande-liste{ position:absolute; z-index:20; left:0; right:0; top:100%; margin:4px 0 0; padding:6px; list-style:none; background:#fff; border:1.5px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--shadow-md); max-height:240px; overflow:auto; }
.demande-liste li{ padding:9px 12px; border-radius:8px; cursor:pointer; font-size:.95rem; }
.demande-liste li:hover{ background:var(--aqua-light); }
.demande-info{ margin:-6px 0 16px; padding:10px 14px; border-radius:var(--r-sm); background:var(--aqua-light); color:var(--navy-dark); font-size:.92rem; }
.demande-check{ display:flex; gap:10px; align-items:flex-start; margin:0 0 12px; font-size:.92rem; line-height:1.5; color:var(--ink); cursor:pointer; }
.demande-check input{ flex:0 0 auto; width:18px; height:18px; margin-top:3px; accent-color:var(--navy); }
.demande-communes{ list-style:none; padding:0; margin:12px 0 0; display:flex; flex-direction:column; gap:10px; }
.demande-communes li{ display:grid; grid-template-columns:minmax(90px,1.1fr) 2fr auto; gap:12px; align-items:center; font-size:.93rem; }
.demande-barre{ display:block; height:10px; border-radius:999px; background:var(--mist); overflow:hidden; }
.demande-barre > span{ display:block; height:100%; border-radius:999px; background:var(--orange); }
.demande-form-card .sim-feedback{ font-size:.93rem; line-height:1.5; }
.demande-form-card .sim-feedback.ok{ color:var(--success); }
.demande-form-card .sim-feedback.err{ color:var(--danger); }
