/* Image des événements dans la fenêtre publique « Plus d’infos ». */
.agenda-page .agenda-dialog-image-wrap {
  --agenda-image-space: clamp(1rem, 3vw, 2rem);
  max-height: none;
  padding: var(--agenda-image-space);
  background: var(--paper, #fffaf1);
}
.agenda-page .agenda-dialog-image-wrap[hidden] {
  display: none;
}
.agenda-page .agenda-dialog-image-wrap img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(68vh - 2 * var(--agenda-image-space));
  border: 1px solid rgba(23, 58, 50, .12);
  border-radius: clamp(1rem, 2.5vw, 1.75rem);
  box-shadow: 0 8px 24px rgba(23, 58, 50, .12);
  object-fit: contain;
}
@media (max-width: 640px) {
  .agenda-page .agenda-dialog-image-wrap img {
    max-height: calc(58vh - 2 * var(--agenda-image-space));
  }
}

/* Repères du séjour identiques sur les cartes et dans leur présentation détaillée. */
.agenda-camp-facts{margin:.8rem 0 1rem;padding:.75rem 0;border-top:1px solid #d4ddce;color:#173a32}
.agenda-camp-facts dl{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin:0}
.agenda-camp-facts dl>div{min-width:0}
.agenda-camp-facts dt{font-size:.8rem;line-height:1.5;color:#536450}
.agenda-camp-facts dd{margin:0;font-size:1rem;font-weight:750;line-height:1.5;overflow-wrap:anywhere}
.agenda-camp-facts p{margin:.5rem 0 0;font-size:.75rem;line-height:1.5;color:#536450}
.agenda-payment-link{display:inline-flex;align-items:center;min-height:44px;font-size:.9rem;font-weight:700;color:#173a32;text-underline-offset:4px}

/* Agenda public : des repères mensuels et une ligne par rendez-vous. */
.agenda-page .agenda-upcoming {
  min-height: 0;
  padding-top: clamp(3.5rem, 6vw, 6rem);
  padding-bottom: clamp(3rem, 5vw, 5rem);
}
.agenda-page .agenda-heading { gap: 2rem 4rem; margin-bottom: 2rem; }
.agenda-page .agenda-heading h2 { font-size: clamp(2.7rem, 4.3vw, 4.4rem); }
.agenda-page .agenda-heading > p { font-size: .95rem; }
.agenda-page .agenda-filters { gap: .5rem; margin-bottom: .8rem; }
.agenda-page .agenda-filters button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 44px;
  padding: .5rem .8rem;
  font-size: .78rem;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
}
.agenda-page .agenda-filter-count {
  display: inline-grid;
  place-items: center;
  min-width: 1.5rem;
  height: 1.5rem;
  padding: 0 .3rem;
  border-radius: 50px;
  background: #173a320d;
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
}
.agenda-page .is-active .agenda-filter-count { background: #ffffff24; }
.agenda-page .agenda-status { margin: 0 0 1.7rem; font-size: .8rem; }
.agenda-page .agenda-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.agenda-page .agenda-month { min-width: 0; }
.agenda-page .agenda-month-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: .75rem; }
.agenda-page .agenda-month-heading::after { content: ''; flex: 1; height: 1px; background: #173a3226; }
.agenda-page .agenda-month-heading h3 { margin: 0; font: 550 1.5rem/1.3 var(--serif, Georgia, serif); letter-spacing: -.02em; }
.agenda-page .agenda-month-heading > span { color: #53665e; font-size: .75rem; white-space: nowrap; }
.agenda-page .agenda-month-events { display: grid; gap: .8rem; }

.agenda-page .agenda-card-colos { --agenda-accent: #ad761d; --agenda-tint: #fbf0d2; }
.agenda-page .agenda-card-chantiers { --agenda-accent: #a85236; --agenda-tint: #f8e9e0; }
.agenda-page .agenda-card-spectacles { --agenda-accent: #95701c; --agenda-tint: #faf1d5; }
.agenda-page .agenda-card-rencontres { --agenda-accent: #427668; --agenda-tint: #e7f1ec; }
.agenda-page .agenda-event {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) 160px;
  grid-template-areas: 'date copy actions';
  align-items: center;
  gap: 1.25rem;
  min-height: 0;
  padding: 1.2rem;
  border: 1px solid #173a3222;
  border-left: 3px solid var(--agenda-accent, #427668);
  border-radius: 18px;
  background: #fffdf8;
  color: #173a32;
  box-shadow: 0 3px 12px #173a3204;
}
.agenda-page .agenda-event:nth-child(even) { border-radius: 18px; }
.agenda-page .agenda-event.has-image {
  grid-template-columns: 80px 128px minmax(0, 1fr) 160px;
  grid-template-areas: 'date image copy actions';
}
.agenda-page .agenda-event.is-featured { min-height: 0; grid-column: auto; border-color: var(--agenda-accent); }
.agenda-page .agenda-event > * { min-width: 0; }
.agenda-page .agenda-event .agenda-date,
.agenda-page .agenda-past-item .agenda-date {
  grid-area: date;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: .2rem;
  width: 100%;
  min-width: 0;
  min-height: 88px;
  padding: .75rem .25rem;
  border: 1px solid #173a320a;
  border-radius: 12px;
  background: var(--agenda-tint, #e7f1ec);
  color: #173a32;
  text-align: center;
}
.agenda-page .agenda-date strong { font: 550 1.85rem/1.15 var(--serif, Georgia, serif); white-space: normal; }
.agenda-page .agenda-date span { margin: 0; font: 750 .65rem/1.3 var(--sans, Arial, sans-serif); letter-spacing: .06em; text-transform: uppercase; }
.agenda-page .agenda-date small { margin: 0; font: 500 .68rem/1.3 var(--sans, Arial, sans-serif); letter-spacing: 0; color: #53665e; }
.agenda-page .agenda-date-range strong { font-size: .98rem; line-height: 1.45; }
.agenda-page .agenda-date-range span:empty { display: none; }
.agenda-page .agenda-event-image {
  grid-area: image;
  display: grid;
  place-items: center;
  width: 100%;
  height: 116px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: var(--agenda-tint, #e7f1ec);
  cursor: pointer;
  overflow: hidden;
}
.agenda-page .agenda-event-image img { display: block; width: 100%; height: 100%; border-radius: inherit; object-fit: contain; }
.agenda-page .agenda-event-copy { grid-area: copy; min-width: 0; }
.agenda-page .agenda-event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; margin: 0 0 .35rem; }
.agenda-page .agenda-event-category { color: var(--agenda-accent, #427668); font: 750 .67rem/1.4 var(--sans, Arial, sans-serif); letter-spacing: .07em; text-transform: uppercase; }
.agenda-page .agenda-event-featured { padding: .12rem .45rem; border-radius: 30px; background: var(--agenda-tint); font: 700 .68rem/1.4 var(--sans, Arial, sans-serif); }
.agenda-page .agenda-event-title { margin: 0 0 .35rem; color: #173a32; font: 550 clamp(1.25rem, 1.65vw, 1.55rem)/1.2 var(--serif, Georgia, serif); letter-spacing: -.025em; overflow-wrap: anywhere; }
.agenda-page .agenda-title-button { display: inline; margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; text-decoration: none; cursor: pointer; }
.agenda-page .agenda-title-button:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.agenda-page .agenda-event-copy p { margin: .25rem 0; line-height: 1.5; overflow-wrap: anywhere; }
.agenda-page .agenda-event-period { font-size: .9rem; font-weight: 750; }
.agenda-page .agenda-event-info { font-size: .8rem; color: #53665e; }
.agenda-page .agenda-event-facts { font-size: .8rem; font-weight: 650; color: #304d42; }
.agenda-page .agenda-event-copy .agenda-event-summary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  margin: .5rem 0 0;
  color: #53665e;
  font-size: .85rem;
  line-height: 1.5;
}
.agenda-page .agenda-event-state { margin-top: .6rem; }
.agenda-page .agenda-event-state .agenda-badge { display: inline-block; padding: .2rem .5rem; font-size: .73rem; line-height: 1.4; }
.agenda-page .agenda-event-state .event-opening { gap: .4rem; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.agenda-page .agenda-event-state .event-opening-icon { flex-basis: 17px; width: 17px; height: 17px; margin-top: .05rem; }
.agenda-page .agenda-event-state .event-opening-copy { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 0 .25rem; }
.agenda-page .agenda-event-state .event-opening-label,
.agenda-page .agenda-event-state .event-opening-date,
.agenda-page .agenda-event-state .event-opening-time { display: inline; font-family: var(--sans, Arial, sans-serif); font-size: .76rem; line-height: 1.5; letter-spacing: 0; }
.agenda-page .agenda-event-state .event-opening-label { color: #685125; font-weight: 600; }
.agenda-page .agenda-event-state .event-opening-date { color: #685125; font-weight: 750; }
.agenda-page .agenda-event-state .event-opening-time { color: #53665e; font-weight: 400; }
.agenda-page .agenda-event-actions { grid-area: actions; display: flex; justify-content: flex-end; }
.agenda-page .agenda-event-actions .button,
.agenda-page .agenda-past-item > .button { display: inline-flex; align-items: center; justify-content: center; width: 100%; max-width: 100%; min-height: 44px; padding: .75rem .85rem; font: 700 .8rem/1.3 var(--sans, Arial, sans-serif); letter-spacing: 0; text-transform: none; text-align: center; white-space: normal; cursor: pointer; }
.agenda-page .agenda-event-actions .button { border: 1px solid #173a32; background: #173a32; color: #fffaf1; }
.agenda-page .agenda-event-actions .button:hover { background: #285447; }
.agenda-page .agenda-event-image:focus-visible,
.agenda-page .agenda-title-button:focus-visible,
.agenda-page .agenda-event-actions .button:focus-visible,
.agenda-page .agenda-archives > summary:focus-visible { outline: 3px solid #a76b10; outline-offset: 4px; border-radius: 6px; }

/* Les archives restent accessibles, repliées au chargement. */
.agenda-page .agenda-past { padding: 1.5rem max(5vw, calc((100vw - 1240px) / 2)) 3rem; background: var(--paper, #fffaf1); color: #173a32; }
.agenda-page .agenda-archives { border-top: 1px solid #173a3233; border-bottom: 1px solid #173a3233; }
.agenda-page .agenda-archives > summary { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; min-height: 84px; padding: 1.2rem 0; list-style: none; cursor: pointer; }
.agenda-page .agenda-archives > summary::-webkit-details-marker { display: none; }
.agenda-page .agenda-archives h2 { margin: 0; font: 550 1.8rem/1.25 var(--serif, Georgia, serif); letter-spacing: -.025em; }
.agenda-page .agenda-past-count { color: #53665e; font-size: .8rem; }
.agenda-page .agenda-archives-chevron { margin-left: auto; font: 500 1.6rem/1 var(--sans, Arial, sans-serif); }
.agenda-page .agenda-archives[open] .agenda-archives-chevron { transform: rotate(180deg); }
.agenda-page .agenda-past-item { grid-template-columns: 80px minmax(0, 1fr) 160px; grid-template-areas: 'date copy action'; gap: 1.25rem; padding: 1.2rem 0; border-color: #173a3222; color: #173a32; }
.agenda-page .agenda-past-item:last-child { border-bottom: 0; }
.agenda-page .agenda-past-item > div { grid-area: copy; min-width: 0; }
.agenda-page .agenda-past-item > .button { grid-area: action; }
.agenda-page .agenda-past-item h3 { margin: .2rem 0 .5rem; font-size: 1.35rem; line-height: 1.25; color: #173a32; overflow-wrap: anywhere; }
.agenda-page .agenda-past-item p { margin-top: .5rem; color: #53665e; }
.agenda-page .agenda-past-item .agenda-badge { display: inline-block; padding: .15rem .5rem; font-size: .72rem; }
.agenda-page .agenda-past-item .agenda-date strong { font-size: 1.85rem; }
.agenda-page .agenda-past-item .agenda-date-range strong { font-size: .98rem; }
.agenda-page .agenda-past-empty { margin: 0; padding: 1rem 0 2rem; color: #53665e; text-align: left; }

@media (max-width: 1000px) {
  .agenda-page .agenda-event { grid-template-columns: 74px minmax(0, 1fr); grid-template-areas: 'date copy' '. actions'; gap: .9rem 1.1rem; }
  .agenda-page .agenda-event.has-image { grid-template-columns: 74px 112px minmax(0, 1fr); grid-template-areas: 'date image copy' '. . actions'; }
  .agenda-page .agenda-event-image { height: 110px; }
  .agenda-page .agenda-event-actions { justify-content: flex-start; }
  .agenda-page .agenda-event-actions .button { width: auto; min-width: 156px; }
}
@media (max-width: 640px) {
  .agenda-page .agenda-upcoming { padding: 3rem 1rem; }
  .agenda-page .agenda-heading { gap: 1rem; }
  .agenda-page .agenda-heading > p { font-size: .9rem; }
  .agenda-page .agenda-filters { margin-right: 0; padding-right: 0; scrollbar-width: thin; scrollbar-color: #173a3240 transparent; }
  .agenda-page .agenda-filters::-webkit-scrollbar { display: block; height: 4px; }
  .agenda-page .agenda-filters::-webkit-scrollbar-thumb { background: #173a3240; border-radius: 4px; }
  .agenda-page .agenda-month-heading { gap: .65rem; }
  .agenda-page .agenda-month-heading h3 { font-size: 1.3rem; }
  .agenda-page .agenda-month-heading > span { font-size: .68rem; }
  .agenda-page .agenda-event,
  .agenda-page .agenda-event.has-image { grid-template-columns: 64px minmax(0, 1fr); grid-template-areas: 'date copy' 'image copy' 'actions actions'; grid-template-rows: auto 1fr auto; align-items: start; gap: .8rem; padding: .9rem; border-radius: 16px; }
  .agenda-page .agenda-event:not(.has-image) { grid-template-areas: 'date copy' 'actions actions'; grid-template-rows: auto auto; }
  .agenda-page .agenda-event:nth-child(even) { border-radius: 16px; }
  .agenda-page .agenda-event .agenda-date { min-height: 80px; padding: .65rem .2rem; }
  .agenda-page .agenda-date strong { font-size: 1.45rem; }
  .agenda-page .agenda-date-range strong { font-size: .85rem; }
  .agenda-page .agenda-date small { font-size: .62rem; }
  .agenda-page .agenda-event-image { height: 64px; border-radius: 10px; }
  .agenda-page .agenda-event-title { font-size: 1.22rem; line-height: 1.25; }
  .agenda-page .agenda-event-category { font-size: .61rem; letter-spacing: .04em; }
  .agenda-page .agenda-event-copy .agenda-event-summary { font-size: .8rem; }
  .agenda-page .agenda-event-info,
  .agenda-page .agenda-event-facts { font-size: .75rem; }
  .agenda-page .agenda-event-period { font-size: .8rem; }
  .agenda-page .agenda-event-actions { padding-top: .2rem; }
  .agenda-page .agenda-event-actions .button { width: 100%; }
  .agenda-page .agenda-past { padding: 0 1rem 2.5rem; }
  .agenda-page .agenda-archives > summary { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: .35rem .5rem; }
  .agenda-page .agenda-archives h2 { font-size: 1.45rem; }
  .agenda-page .agenda-past-count { grid-column: 1; }
  .agenda-page .agenda-archives-chevron { grid-row: 1 / 3; grid-column: 2; }
  .agenda-page .agenda-past-item { grid-template-columns: 64px minmax(0, 1fr); grid-template-areas: 'date copy' '. action'; gap: .85rem; }
  .agenda-page .agenda-past-item h3 { font-size: 1.15rem; }
  .agenda-page .agenda-past-item .agenda-date strong { font-size: 1.45rem; }
  .agenda-page .agenda-past-item .agenda-date-range strong { font-size: .85rem; }
}
