@layer reset, tokens, base, layout, components, utilities, pages;
@layer pages {
  .section--actus { padding-block: 0 var(--space-section); }
  .filtre__barre { display: grid; gap: 1rem 1.5rem; align-items: end; padding: 1.25rem; background: var(--surface); border: 2px solid var(--text); border-radius: var(--r-l); margin-block-end: 1.25rem; }
  @media (min-width: 48em) { .filtre__barre { grid-template-columns: 16rem 16rem auto; } .filtre__barre--actus { grid-template-columns: 1fr 16rem auto; } }
  .filtre__reset { display: flex; align-items: end; }
  .actus-liste { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); margin-block-start: 1rem; }
  .actus-liste > [hidden] { display: none; }
  .actu-card--une { grid-column: 1 / -1; }
  @media (min-width: 48em) {
      .actu-card--une { flex-direction: row; }
      .actu-card--une .actu-card__img { flex: 1.15; }
      .actu-card--une .actu-card__img img { aspect-ratio: auto; block-size: 100%; min-block-size: 18rem; }
      .actu-card--une .actu-card__body { flex: 1; justify-content: center; padding: 2rem; }
      .actu-card--une .actu-card__titre { font-size: var(--step-2); }
    }
  .actus-lettre { margin-block-start: 2rem; }
  .benev-intro, .entr-intro { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; margin-block-end: clamp(1.5rem, 3vw, 2.5rem); }
  .benev-intro .section__head, .entr-intro .section__head { margin-block-end: 1.25rem; }
  .benev-intro__photo, .entr-intro__photo { aspect-ratio: 3 / 2; }
  @media (min-width: 56em) { .benev-intro, .entr-intro { grid-template-columns: 1.15fr 0.85fr; } }
  .missions { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); margin-block-start: 1rem; }
  .mission { display: flex; flex-direction: column; gap: 0.6rem; padding: 1.35rem; border: 1px solid var(--hairline); border-radius: var(--r-l); background: var(--surface); box-shadow: var(--shadow-card); }
  .mission[hidden] { display: none; }
  .mission > :last-child { margin-block-start: auto; padding-block-start: 0.4rem; }
  .mission__meta { display: flex; flex-wrap: wrap; gap: 0.4rem; }
  .pastille .ico { inline-size: 1rem; block-size: 1rem; margin-inline-end: 0.3rem; }
  .mission h3 { font-size: 1.15rem; }
  .mission p { font-size: 0.98rem; line-height: 1.55; color: var(--text-2); }
  .mission__pre { color: var(--text) !important; }
  .mission__enfants { display: flex; gap: 0.5rem; align-items: flex-start; padding: 0.6rem 0.8rem; border-radius: var(--r-s); background: var(--bg-alt); font: 500 0.88rem/1.4 var(--font-display) !important; }
  .mission__enfants .ico { inline-size: 1.15rem; block-size: 1.15rem; color: var(--link); flex: none; }
  .mecs { list-style: none; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); margin-block-end: clamp(2rem, 4vw, 3rem); }
  .mec { display: grid; gap: 0.5rem; align-content: start; padding-block-start: 1.1rem; border-block-start: 3px solid var(--text); }
  .mec__ico { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; border-radius: 50%; background: var(--leaf-bg); color: var(--link); }
  .mec__ico .ico { inline-size: 1.4rem; block-size: 1.4rem; }
  .mec p { font-size: 0.98rem; line-height: 1.55; color: var(--text-2); }
  .mecenat-wrap { display: grid; gap: 1.5rem; padding: clamp(1.25rem, 3vw, 2rem); background: var(--surface); border: 2px solid var(--text); border-radius: var(--r-l); }
  @media (min-width: 56em) { .mecenat-wrap { grid-template-columns: 0.9fr 1.1fr; align-items: center; } }
  .mecenat__t { font-size: var(--step-1); margin-block-end: 0.5rem; }
  .mecenat__sortie { display: grid; gap: 0.4rem; margin-block-start: 1rem; padding: 1rem 1.25rem; border-radius: var(--r-m); background: var(--leaf-bg); font: 500 1.02rem/1.4 var(--font-display); }
  .mecenat__sortie strong { font: 800 var(--step-2)/1.1 var(--font-display); letter-spacing: -0.02em; }
  .etapes-c { list-style: none; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
  .etape-c { position: relative; display: grid; gap: 0.5rem; align-content: start; padding: 1.5rem; border-radius: var(--r-l); background: var(--surface); border: 1px solid var(--hairline); box-shadow: var(--shadow-card); }
  .etape-c__ico { display: grid; place-items: center; inline-size: 3rem; block-size: 3rem; border-radius: 50%; background: var(--leaf-bg); color: var(--link); }
  .etape-c__ico .ico { inline-size: 1.5rem; block-size: 1.5rem; }
  .etape-c__n { position: absolute; inset-block-start: 0.9rem; inset-inline-end: 1.25rem; font: 800 3rem/1 var(--font-display); color: var(--leaf-bg); -webkit-text-stroke: 2px var(--link); }
  .etape-c p { color: var(--text-2); font-size: 1rem; line-height: 1.55; }
  .evenements { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
  .evenement { display: grid; gap: 0.6rem; align-content: start; padding: 1.5rem; border: 2px solid var(--text); border-radius: var(--r-l); background: var(--surface); }
  .evenement__date { font: 750 0.95rem/1.4 var(--font-display); color: var(--warm); }
  .evenement__lieu, .evenement__tarif { display: flex; align-items: flex-start; gap: 0.5rem; font: 500 0.95rem/1.4 var(--font-display); }
  .evenement__lieu .ico, .evenement__tarif .ico { inline-size: 1.2rem; block-size: 1.2rem; color: var(--link); flex: none; }
  .evenement p:not([class]) { font-size: 0.98rem; line-height: 1.55; color: var(--text-2); }
  .evenement__pied { display: flex; flex-wrap: wrap; gap: 0.4rem; }
  .evenement.is-passe { opacity: 0.78; border-style: dashed; }
  .pastille--passe { background: var(--text); color: var(--bg); }
  .h-section { font-size: var(--step-2); margin-block-end: 1rem; }
  .tableau--contact th[scope="row"] { font-weight: 650; }
  @media (min-width: 48em) { .tableau--contact { min-inline-size: 46rem; } .tableau--contact th[scope="row"] { min-inline-size: 16rem; } }
  .tableau--contact .muted { font-weight: 400; }
  .ligne-alerte > * { background: var(--err-bg); }
  .ligne-alerte th { border-inline-start: 5px solid var(--err); }
  .contact-grid { display: grid; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
  @media (min-width: 64em) { .contact-grid { grid-template-columns: 0.8fr 1.2fr; } }
  .bureaux { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
  .bureau { overflow: hidden; border: 1px solid var(--hairline); border-radius: var(--r-l); background: var(--surface); box-shadow: var(--shadow-card); }
  .plan { inline-size: 100%; block-size: auto; }
  .pl-fond { fill: var(--leaf-bg); }
  .pl-rues path { stroke: var(--bg); stroke-width: 7; fill: none; }
  .pl-riv { stroke: color-mix(in srgb, var(--p-eau) 38%, transparent); stroke-width: 15; fill: none; stroke-linecap: round; }
  .pl-riv--b { stroke-width: 7; }
  .pl-pin circle:first-child { fill: color-mix(in srgb, var(--sun) 45%, transparent); }
  .pl-pin path { fill: var(--text); }
  .pl-pin circle:last-child { fill: var(--bg); }
  .pl-lbl { font: 650 11px/1 var(--font-display); fill: var(--text-2); letter-spacing: 0.08em; text-transform: uppercase; }
  .bureau__corps { display: grid; gap: 0.75rem; padding: 1.35rem; }
  .bureau__liste { list-style: none; padding: 0; display: grid; gap: 0.5rem; font: 500 0.98rem/1.4 var(--font-display); }
  .bureau__liste li { display: flex; gap: 0.6rem; align-items: flex-start; }
  .bureau__liste .ico { inline-size: 1.25rem; block-size: 1.25rem; flex: none; color: var(--link); margin-block-start: 0.1rem; }
  .legal > * + * { margin-block-start: 1em; }
  .legal h2 { margin-block-start: 2.25em; }
  .legal .bref__titre { margin-block-start: 0; font-size: 1.1rem; }
  .legal ul, .legal ol { padding-inline-start: 1.25em; }
  .legal li + li { margin-block-start: 0.4em; }
  .credits { font-size: 0.95rem; }
  .engagement-fort { display: flex; align-items: center; gap: 0.75rem; padding: 1.25rem; border: 2px solid var(--text); border-radius: var(--r-m); background: var(--sun-pale); font: 650 1.15rem/1.4 var(--font-display); }
  .engagement-fort .ico { inline-size: 1.6rem; block-size: 1.6rem; flex: none; }
  .legal .message { margin-block: 1rem; }
  .legal .message p { margin: 0; }
  .plan-liste { list-style: disc; }
  .err404 { padding-block: clamp(3rem, 8vw, 7rem); }
  .err404__code { font: 800 clamp(5rem, 3rem + 12vw, 11rem)/1 var(--font-display); letter-spacing: -0.06em; color: var(--link); -webkit-text-stroke: 0; margin-block-end: 0.5rem; }
  .err404__lead { margin-inline: auto; margin-block: 1rem 2rem; }
  .err404__liens { list-style: none; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }
}
