.association-page {
  padding-block: var(--space-12) var(--space-16);
}

.association-section + .association-section {
  margin-block-start: var(--space-16);
}

.association-hero__grid,
.association-benefits__grid,
.association-formats__grid,
.association-flow__grid,
.association-preparation__grid,
.association-memory__grid,
.association-roles__grid,
.association-faq__grid,
.association-contact__grid {
  display: grid;
  min-width: 0;
  gap: var(--grid-gap);
}

.association-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch; }
.association-hero__content { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.association-hero__content > * { min-width: 0; margin: 0; }
.association-hero__content h1 { max-width: 10ch; }
.association-hero__content .lead { max-width: 38ch; }
.association-hero__support { max-width: 42ch; color: var(--color-muted); }
.association-hero__rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; min-width: 0; gap: var(--space-3); }
.association-hero__status { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; min-height: 5.5rem; padding: var(--space-3); gap: var(--space-2); }
.association-hero__actions { width: 100%; }
.association-hero__media { min-width: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.association-hero__media .media-16x9 { height: 100%; min-height: 24rem; }
.association-hero__media figcaption { padding: 0; }

.association-benefits__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; }
.association-benefits__intro { min-width: 0; }
.association-benefits__intro h2,
.association-benefits__intro p { max-width: 42ch; }
.association-benefits__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; gap: 0; border: var(--border); }
.association-benefit { min-width: 0; border: 0; border-inline-start: var(--border); }
.association-benefit:first-child { border-inline-start: 0; }
.association-benefit > .display-number { display: block; margin-block-end: var(--space-3); }
.association-benefit > .data-label { margin-block-end: var(--space-4); }

.association-formats__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
.association-formats__context,
.association-formats__list { min-width: 0; }
.association-formats__context > .lead { max-width: 42ch; }
.association-formats__media { margin: var(--space-6) 0 0; }
.association-formats__media figcaption { padding: var(--space-2) 0 0; }
.association-formats__list { display: flex; flex-direction: column; gap: var(--space-3); }
.association-format { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: var(--space-3); }
.association-format > * { margin: 0; }
.association-format p { max-width: 60ch; }
.association-formats__links { margin-top: var(--space-2); }

.association-flow__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; }
.association-flow__intro { min-width: 0; }
.association-flow__intro h2,
.association-flow__intro p { max-width: 46ch; }
.association-flow__phases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; gap: 0; border: var(--border); }
.association-phase { min-width: 0; border: 0; border-inline-start: var(--border); }
.association-phase:first-child { border-inline-start: 0; }
.association-phase > .display-number { display: block; margin-block-end: var(--space-3); }

.association-preparation__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; }
.association-preparation__intro { min-width: 0; }
.association-preparation__intro h2,
.association-preparation__intro p { max-width: 44ch; }
.association-preparation__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; gap: var(--grid-gap); }
.association-preparation__card { min-width: 0; }
.association-preparation__card > .data-label { margin-block-end: var(--space-3); }

.association-memory__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
.association-memory__media { min-width: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.association-memory__media figcaption { padding: 0; }
.association-memory__content { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.association-memory__content > * { min-width: 0; margin: 0; }
.association-memory__content h2 { max-width: 20ch; }
.association-memory__content .lead { max-width: 48ch; }
.association-memory__situations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; min-width: 0; gap: var(--space-3); }
.association-memory__situations > article { min-width: 0; }
.association-memory__situations .data-label { margin-block-end: var(--space-3); }
.association-memory__summary { width: 100%; min-width: 0; padding: var(--space-4); border: var(--border); border-inline-start: 2px solid var(--color-green); background: var(--color-panel); }
.association-memory__summary .data-label { margin-block-end: var(--space-2); }
.association-memory__summary p { max-width: 58ch; margin: 0; }

.association-roles__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; }
.association-roles__intro { min-width: 0; }
.association-roles__intro h2,
.association-roles__intro p { max-width: 44ch; }
.association-roles__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; gap: 0; border: var(--border); }
.association-role { min-width: 0; border: 0; border-inline-start: var(--border); }
.association-role:first-child { border-inline-start: 0; }
.association-role > .data-label { margin-block-end: var(--space-3); }
.association-role__list { margin: var(--space-4) 0 0; padding: 0; list-style: none; }
.association-role__list li { padding-block: var(--space-2); border-top: var(--border); color: var(--color-muted); font-size: var(--text-secondary); }

.association-faq__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr) minmax(0, 2fr); align-items: start; }
.association-faq__intro { min-width: 0; }
.association-faq__intro h2,
.association-faq__intro p { max-width: 44ch; }
.association-faq__list { min-width: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.association-faq__item { min-width: 0; margin: 0; }
.association-faq__item summary { padding: var(--space-4); }
.association-faq__item > div { margin: 0; padding: 0 var(--space-4) var(--space-4); }
.association-faq__item > div p { max-width: 58ch; margin: 0; }
.association-faq__markers { display: grid; grid-template-columns: 1fr; min-width: 0; gap: var(--space-3); }
.association-faq__markers > span { display: flex; align-items: center; min-width: 0; min-height: var(--control-height); padding: var(--space-3); }

.association-contact__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: stretch; padding: var(--space-6); }
.association-contact__lead { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; min-width: 0; gap: var(--space-4); }
.association-contact__lead > * { min-width: 0; margin: 0; }
.association-contact__lead h2 { max-width: 18ch; }
.association-contact__lead .lead { max-width: 46ch; }
.association-contact__rail { display: grid; grid-template-columns: 1fr; min-width: 0; gap: var(--space-3); }
.association-contact__cell { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: var(--space-3); }
.association-contact__cell > * { min-width: 0; margin: 0; }
.association-contact__intentions { width: 100%; margin: 0; padding: 0; list-style: none; }
.association-contact__intentions li { padding-block: var(--space-2); border-top: var(--border); color: var(--color-muted); font-size: var(--text-secondary); }

.association-note__cell { width: min(100%, 53rem); margin-inline: auto; padding: var(--space-6); }
.association-note__cell h2 { max-width: 28ch; }
.association-note__cell p { max-width: 60ch; margin-block-end: 0; }

@media (max-width: 1079px) {
  .association-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 3fr); }
  .association-hero__media .media-16x9 { min-height: 20rem; }
}

@media (max-width: 1023px) {
  .association-page { padding-block-start: var(--space-8); }
  .association-benefits__grid,
  .association-flow__grid,
  .association-preparation__grid,
  .association-roles__grid { grid-template-columns: 1fr; }
  .association-benefits__intro h2,
  .association-benefits__intro p,
  .association-flow__intro h2,
  .association-flow__intro p,
  .association-preparation__intro h2,
  .association-preparation__intro p,
  .association-roles__intro h2,
  .association-roles__intro p { max-width: 56ch; }
  .association-benefits__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); border: 0; }
  .association-benefit { border: var(--border); }
  .association-benefit:last-child { grid-column: 1 / -1; }
  .association-formats__grid { grid-template-columns: minmax(0, 3fr) minmax(0, 5fr); }
  .association-flow__phases { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); border: 0; }
  .association-phase { border: var(--border); }
  .association-roles__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); border: 0; }
  .association-role { border: var(--border); }
  .association-role:last-child { grid-column: 1 / -1; }
  .association-faq__grid { grid-template-columns: minmax(0, 3fr) minmax(0, 5fr); }
  .association-faq__markers { grid-column: 1 / -1; grid-row: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .association-faq__intro { grid-column: 1; grid-row: 2; }
  .association-faq__list { grid-column: 2; grid-row: 2; }
  .association-contact__grid { grid-template-columns: 1fr; }
  .association-contact__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 859px) {
  .association-hero__grid,
  .association-formats__grid,
  .association-memory__grid { grid-template-columns: 1fr; }
  .association-hero__media { order: 2; }
  .association-hero__media .media-16x9 { min-height: 0; }
  .association-formats__context > .lead { max-width: 58ch; }
  .association-formats__media { max-width: 38rem; }
  .association-memory__content h2 { max-width: 26ch; }
  .association-memory__content .lead { max-width: 58ch; }
}

@media (max-width: 759px) {
  .association-page { padding-block: var(--space-8) var(--space-12); }
  .association-section + .association-section { margin-block-start: var(--space-12); }
  .association-hero__content h1 { max-width: none; font-size: clamp(2.25rem, 11vw, 3rem); }
  .association-hero__content .lead,
  .association-hero__support { max-width: none; }
  .association-hero__rail { grid-template-columns: 1fr; }
  .association-hero__status { min-height: var(--control-height); }
  .association-benefits__cards,
  .association-preparation__cards,
  .association-memory__situations,
  .association-roles__cards,
  .association-contact__rail { grid-template-columns: 1fr; }
  .association-benefit:last-child,
  .association-role:last-child { grid-column: auto; }
  .association-benefit,
  .association-role { border: var(--border); }
  .association-formats__media { max-width: none; }
  .association-formats__links { display: grid; grid-template-columns: 1fr; width: 100%; }
  .association-formats__links > .button { width: 100%; }
  .association-flow__phases { grid-template-columns: 1fr; }
  .association-memory__content h2,
  .association-memory__content .lead { max-width: none; }
  .association-memory__links { display: grid; grid-template-columns: 1fr; width: 100%; }
  .association-memory__links > .button { width: 100%; }
  .association-faq__grid { grid-template-columns: 1fr; }
  .association-faq__markers { grid-column: auto; grid-row: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .association-faq__intro,
  .association-faq__list { grid-column: auto; grid-row: auto; }
  .association-faq__item summary { min-height: var(--control-height); padding: var(--space-3); }
  .association-faq__item > div { padding: 0 var(--space-3) var(--space-3); }
  .association-contact__grid { padding: var(--space-4); }
  .association-contact__lead h2,
  .association-contact__lead .lead { max-width: none; }
  .association-contact__lead > .button,
  .association-contact__cell > .button { width: 100%; }
  .association-note__cell { padding: var(--space-4); }
  .association-note__cell h2,
  .association-note__cell p { max-width: none; }
}
