/*
 * Agenda La Chaloupe : charte « affiche sérigraphiée ».
 * Les variables ci-dessous sont des valeurs de secours ; en pratique les couleurs viennent du style du site
 * (détection automatique) ou des réglages (Agenda > Réglages et charte), injectés en ligne. Rien n'est chargé depuis l'extérieur.
 */
.lcag {
  --lcag-papier: #EFE8D8;
  --lcag-papier2: #E3DAC4;
  --lcag-encre: #141414;
  --lcag-accent: #C8412B;
  --lcag-accent2: #B83A25;
  --lcag-gris: #4A4640;
  --lcag-bordure: 3px;
  --lcag-bordure-fine: 2px;
  --lcag-rayon: 0px;
  --lcag-ombre-x: 5px;
  --lcag-ombre-y: 5px;
  --lcag-taille: 17px;

  color: var(--lcag-encre);
  font-family: var(--lcag-police-texte, inherit);
  font-size: var(--lcag-taille);
  line-height: 1.55;
}
.lcag *, .lcag *::before, .lcag *::after { box-sizing: border-box; }

.lcag a { color: var(--lcag-accent2); }
.lcag a:focus-visible { outline: 3px solid var(--lcag-accent2); outline-offset: 3px; }

.lcag-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

.lcag-titre {
  font-family: var(--lcag-police-titres, inherit); font-weight: var(--lcag-poids-titres, 400); line-height: 1;
  font-size: 1.8em; margin: 0 0 .6em; color: var(--lcag-encre);
}
.lcag-vide { margin: 1em 0; font-weight: 600; }

/* ---------- Boutons ---------- */
.lcag .lcag-btn {
  display: inline-block; background: var(--lcag-encre); color: var(--lcag-papier);
  border: var(--lcag-bordure) solid var(--lcag-encre); border-radius: var(--lcag-rayon);
  padding: .6em 1.1em; font-weight: 600; text-decoration: none; line-height: 1.2;
  box-shadow: var(--lcag-ombre-x) var(--lcag-ombre-y) 0 var(--lcag-accent);
}
.lcag .lcag-btn:hover { background: var(--lcag-accent2); color: var(--lcag-papier); }
.lcag .lcag-btn--petit { padding: .35em .8em; font-size: .9em; box-shadow: 3px 3px 0 var(--lcag-accent); }
.lcag-lien { margin: 1.2em 0 0; }

/* ---------- Bloc date ---------- */
.lcag-date {
  background: var(--lcag-accent2); color: var(--lcag-papier);
  border-radius: var(--lcag-rayon); padding: .5em .25em; text-align: center; font-size: calc(var(--lcag-e-date-cartouche, 1) * 1em);
  font-family: var(--lcag-police-titres, inherit); font-weight: var(--lcag-poids-titres, 400); line-height: 1;
}
.lcag-date time { display: block; }
.lcag-date__jsem { display: block; font-size: .8em; }
.lcag-date__jour { display: block; font-size: 2.1em; margin: .12em 0; }
.lcag-date__mois { display: block; font-size: .85em; }

.lcag-badge {
  display: inline-block; margin: .6em 0 0; padding: .1em .6em; font-weight: 600; font-size: .9em;
  border: var(--lcag-bordure-fine) solid var(--lcag-encre); background: var(--lcag-papier2);
}

/* ---------- Mention d'imminence (ce soir, demain, ce week-end) ---------- */
.lcag .lcag-immin {
  display: inline-block; margin: 0 0 .45em; padding: .12em .65em; font-weight: 800; font-size: calc(var(--lcag-e-immin, 0.85) * 1em); line-height: 1.3;
  text-transform: uppercase; letter-spacing: .04em;
  background: var(--lcag-accent2); color: var(--lcag-papier);
  border: var(--lcag-bordure-fine) solid var(--lcag-encre); border-radius: var(--lcag-rayon);
}
.lcag-compact__quoi .lcag-immin { margin: 0 .5em 0 0; font-size: calc(var(--lcag-e-immin, .85) * .88em); }

/* ---------- Étiquettes de catégories ---------- */
.lcag-cats { list-style: none; margin: 0 0 .5em; padding: 0; display: flex; flex-wrap: wrap; gap: .3em; }
.lcag-cats li {
  margin: 0; padding: .05em .6em; font-size: calc(var(--lcag-e-etiquettes, 0.8) * 1em); font-weight: 600; text-transform: uppercase; letter-spacing: .03em;
  border: var(--lcag-bordure-fine) solid var(--lcag-encre); background: var(--lcag-papier2); color: var(--lcag-encre);
}

/* ---------- Liste complète ---------- */
.lcag-item {
  position: relative; display: grid; gap: 1.1em; align-items: start;
  grid-template-columns: 5.5em minmax(0, 1fr) minmax(0, 13em);
  padding: 1.1em 0; border-top: var(--lcag-bordure-fine) solid var(--lcag-encre);
}
.lcag-item--sans-image { grid-template-columns: 5.5em minmax(0, 1fr); }
.lcag-liste > .lcag-item:last-of-type { border-bottom: var(--lcag-bordure-fine) solid var(--lcag-encre); }
.lcag-item:focus-within { outline: 3px solid var(--lcag-accent2); outline-offset: 4px; }
.lcag-item__titre {
  font-family: var(--lcag-police-titres, inherit); font-weight: var(--lcag-poids-titres, 400); font-size: calc(var(--lcag-e-titre-liste, 1.4) * 1em); line-height: 1.05; margin: 0 0 .35em;
}
.lcag .lcag-item__titre a { color: var(--lcag-encre); text-decoration: none; }
.lcag .lcag-item__titre a::after { content: ""; position: absolute; inset: 0; }
.lcag .lcag-item__titre a:focus-visible { outline: none; }
.lcag-item:hover .lcag-item__titre a { color: var(--lcag-accent2); text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 4px; }
.lcag-item__infos { margin: 0 0 .4em; font-size: calc(var(--lcag-e-infos, 1) * 1em); display: flex; flex-wrap: wrap; gap: .1em 1.2em; font-weight: 600; }
.lcag-item__extrait { margin: 0; max-width: 40em; font-size: calc(var(--lcag-e-extrait, 1) * 1em); }
.lcag-item__img img {
  display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover;
  border: var(--lcag-bordure) solid var(--lcag-encre); border-radius: var(--lcag-rayon);
}
.lcag-lieu { color: var(--lcag-gris); font-weight: 400; }
.lcag-pages { margin-top: 1.5em; }
.lcag-pages .page-numbers { display: inline-block; padding: .3em .7em; margin-right: .3em; border: var(--lcag-bordure-fine) solid var(--lcag-encre); color: var(--lcag-encre); text-decoration: none; }
.lcag-pages .current { background: var(--lcag-encre); color: var(--lcag-papier); }

/* ---------- Liste compacte ---------- */
.lcag-compact__liste { list-style: none; margin: 0; padding: 0; }
.lcag-compact__item {
  display: grid; grid-template-columns: 7em minmax(0, 1fr); gap: .1em 1em; align-items: baseline;
  padding: .7em 0; border-top: var(--lcag-bordure-fine) solid var(--lcag-encre);
}
.lcag-compact__item:last-child { border-bottom: var(--lcag-bordure-fine) solid var(--lcag-encre); }
.lcag-compact__date { font-family: var(--lcag-police-titres, inherit); font-weight: var(--lcag-poids-titres, 400); line-height: 1.1; }
.lcag .lcag-compact__titre { color: var(--lcag-encre); font-weight: 600; text-decoration: none; font-size: calc(var(--lcag-e-compact, 1) * 1em); }
.lcag .lcag-compact__titre:hover { color: var(--lcag-accent2); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.lcag-compact__infos { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0 1.1em; font-size: calc(var(--lcag-e-infos, 1) * .92em); }

/* ---------- Agenda mensuel ----------
   Lisibilité d'abord : texte foncé sur fond clair partout. Les couleurs de texte sont marquées
   !important car les thèmes (Divi en particulier) imposent leurs couleurs aux liens et aux tableaux. */
.lcag-cal__nav { display: flex; justify-content: space-between; align-items: center; gap: .8em; flex-wrap: wrap; margin-bottom: .9em; }
.lcag-cal__mois { font-family: var(--lcag-police-titres, inherit); font-weight: var(--lcag-poids-titres, 400); font-size: calc(var(--lcag-e-mois, 1.7) * 1em); line-height: 1; margin: 0; text-transform: capitalize; order: 0; }
.lcag-cal__retour { margin: -.3em 0 .8em; font-size: .92em; }
.lcag .lcag-btn--prec::before { content: "\2039\00a0"; }
.lcag .lcag-btn--suiv::after { content: "\00a0\203A"; }
.lcag .lcag-btn--prec, .lcag .lcag-btn--suiv { text-transform: capitalize; }
.lcag .lcag-cal__nav .lcag-btn {
  background: var(--lcag-papier) !important; color: var(--lcag-encre) !important;
  border: var(--lcag-bordure) solid var(--lcag-encre) !important; box-shadow: 3px 3px 0 var(--lcag-accent);
}
.lcag .lcag-cal__nav .lcag-btn:hover { background: var(--lcag-encre) !important; color: var(--lcag-papier) !important; }

.lcag-cal__table { width: 100%; table-layout: fixed; border-collapse: collapse; border: var(--lcag-bordure) solid var(--lcag-encre); margin: 0; background: var(--lcag-carte, #fff); }
.lcag .lcag-cal__table th {
  background: var(--lcag-papier2) !important; color: var(--lcag-encre) !important; padding: .55em .2em; font-weight: 700; text-align: center;
  text-transform: uppercase; letter-spacing: .04em; font-size: .85em;
  border: var(--lcag-bordure-fine) solid var(--lcag-encre); border-bottom-width: var(--lcag-bordure);
}
.lcag-cal__table th abbr { text-decoration: none; color: inherit !important; }
.lcag .lcag-cal__table td {
  height: 7em; vertical-align: top; padding: .4em; background: var(--lcag-carte, #fff) !important; color: var(--lcag-encre) !important;
  border: var(--lcag-bordure-fine) solid var(--lcag-encre); overflow-wrap: break-word;
}
.lcag .lcag-cal__table td.lcag-cal__hors { background: var(--lcag-papier2) !important; }
.lcag .lcag-cal__table td.lcag-cal__avec { background: var(--lcag-papier) !important; }
.lcag-cal__num { display: inline-block; font-weight: 700; margin-bottom: .25em; color: var(--lcag-encre); }
.lcag-cal__jsem, .lcag-cal__mois-c { display: none; }
.lcag .lcag-cal__auj .lcag-cal__num { background: var(--lcag-accent2); color: var(--lcag-papier, #fff) !important; padding: 0 .45em; }
.lcag .lcag-cal__ev {
  display: block; margin-top: .3em; padding: .3em .45em; font-size: calc(var(--lcag-e-calendrier, 0.85) * 1em); line-height: 1.3; font-weight: 600;
  background: var(--lcag-carte, #fff) !important; color: var(--lcag-encre) !important; text-decoration: none !important;
  border: var(--lcag-bordure-fine) solid var(--lcag-encre); border-left: 6px solid var(--lcag-accent2);
  border-radius: var(--lcag-rayon); overflow-wrap: break-word; hyphens: auto;
}
.lcag .lcag-cal__ev:hover, .lcag .lcag-cal__ev:focus-visible { background: var(--lcag-encre) !important; color: var(--lcag-papier, #fff) !important; border-left-color: var(--lcag-accent); }
.lcag .lcag-cal__ev:focus-visible { outline: 3px solid var(--lcag-accent2); outline-offset: 2px; }
.lcag-cal__h { display: block; font-weight: 800; font-size: .95em; }

/* Téléphone : les jours sans évènement disparaissent, l'agenda devient une liste. */
@media (max-width: 720px) {
  .lcag-item, .lcag-item--sans-image { grid-template-columns: 4.5em minmax(0, 1fr); }
  .lcag-item__img { grid-column: 1 / -1; }
  .lcag-compact__item { grid-template-columns: 1fr; }
  .lcag-compact__infos { grid-column: 1; }

  .lcag-cal__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .lcag-cal__table, .lcag-cal__table tbody, .lcag-cal__table tr, .lcag-cal__table td { display: block; width: auto; }
  .lcag-cal__table { border-width: var(--lcag-bordure-fine); }
  .lcag .lcag-cal__table td { height: auto; border-width: 0 0 var(--lcag-bordure-fine) 0; padding: .6em; }
  .lcag .lcag-cal__table td.lcag-cal__vide { display: none; }
  .lcag-cal__jsem, .lcag-cal__mois-c { display: inline; }
  .lcag-cal__num { font-size: 1.05em; }
  .lcag .lcag-cal__ev { font-size: calc(var(--lcag-e-calendrier, .85) * 1.15em); padding: .5em .6em; }
  .lcag .lcag-cal__table td { background: var(--lcag-carte, #fff) !important; }
  .lcag .lcag-cal__table td.lcag-cal__avec { background: var(--lcag-papier) !important; }
}

/* Même conversion en liste quand la colonne du thème est étroite (indépendamment de l'écran). */
.lcag-vue-mois { container-type: inline-size; container-name: lcagmois; }
@container lcagmois (max-width: 760px) {
  .lcag-cal__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .lcag-cal__table, .lcag-cal__table tbody, .lcag-cal__table tr, .lcag-cal__table td { display: block; width: auto; }
  .lcag-cal__table { border-width: var(--lcag-bordure-fine); }
  .lcag .lcag-cal__table td { height: auto; border-width: 0 0 var(--lcag-bordure-fine) 0; padding: .6em; }
  .lcag .lcag-cal__table td.lcag-cal__vide { display: none; }
  .lcag-cal__jsem, .lcag-cal__mois-c { display: inline; }
  .lcag-cal__num { font-size: 1.05em; }
  .lcag .lcag-cal__ev { font-size: calc(var(--lcag-e-calendrier, .85) * 1.15em); padding: .5em .6em; }
  .lcag .lcag-cal__table td { background: var(--lcag-carte, #fff) !important; }
  .lcag .lcag-cal__table td.lcag-cal__avec { background: var(--lcag-papier) !important; }
}

/* ---------- Page d'un évènement : tient sur un écran ---------- */
.lcag-page { display: block; max-width: 1040px; margin: 0 auto; padding: var(--lcag-marge-haut, 130px) 16px clamp(1rem, 3vw, 2.2rem); }
.lcag-fiche {
  display: grid; column-gap: clamp(1rem, 3vw, 2.2rem); row-gap: .5rem; align-items: start;
  grid-template-columns: minmax(0, 1fr) clamp(130px, 34%, 340px);
  grid-template-rows: auto auto auto 1fr;
  grid-template-areas: "retour img" "tete img" "texte img" "benev img";
}
.lcag-fiche--sans-image { grid-template-columns: minmax(0, 1fr); grid-template-areas: "retour" "tete" "texte" "benev"; }
.lcag-fiche__benev { grid-area: benev; margin-top: .4em; }
.lcag-retour { grid-area: retour; margin: 0; font-size: .9em; }
.lcag-fiche__tete { grid-area: tete; display: flex; gap: 1em; align-items: stretch; margin-bottom: .5em; }
.lcag-fiche__tete .lcag-date { flex: 0 0 4.6em; display: flex; flex-direction: column; justify-content: center; }
.lcag-fiche__titres { min-width: 0; align-self: center; }
.lcag .lcag-fiche__titre {
  font-family: var(--lcag-police-titres, inherit); font-weight: var(--lcag-poids-titres, 400); line-height: 1.05; margin: 0 0 .25em;
  font-size: calc(var(--lcag-e-titre-page, 1.9) * 1em); color: var(--lcag-encre); text-transform: none; padding: 0;
  overflow-wrap: anywhere;
}
.lcag-fiche__quand { margin: 0; font-weight: 700; font-size: calc(var(--lcag-e-date-page, 1.4) * 1em); line-height: 1.2; text-transform: capitalize; }
.lcag-fiche__ou { margin: .15em 0 0; display: flex; flex-wrap: wrap; gap: 0 1.1em; font-weight: 600; font-size: calc(var(--lcag-e-infos-page, 1.05) * 1em); }
.lcag-fiche__lieu { color: var(--lcag-gris); }
.lcag-fiche__texte { grid-area: texte; min-width: 0; }
.lcag-fiche__titres .lcag-cats { margin: 0 0 .45em; }
.lcag-description { max-width: 42em; font-size: calc(var(--lcag-e-description, 1) * 1em); }
.lcag-description p, .lcag-description li { line-height: 1.5; margin: 0 0 .7em; font-size: inherit; }
.lcag-description > :first-child { margin-top: 0; }
.lcag-description > :last-child { margin-bottom: 0; }
.lcag-passe { margin: 0 0 .7em; padding: .35em .7em; display: inline-block; font-weight: 600; background: var(--lcag-papier2); border: var(--lcag-bordure-fine) solid var(--lcag-encre); }

.lcag-single__img { grid-area: img; margin: 0; text-align: right; }
.lcag-zoom { display: inline-block; cursor: zoom-in; line-height: 0; }
.lcag-zoom:focus-visible { outline: 3px solid var(--lcag-accent2); outline-offset: 3px; }
.lcag-single__img img {
  display: block; width: auto; max-width: 100%; height: auto; max-height: var(--lcag-img-max, 68vh); margin-left: auto;
  border: var(--lcag-bordure) solid var(--lcag-encre); border-radius: var(--lcag-rayon);
  box-shadow: var(--lcag-ombre-x) var(--lcag-ombre-y) 0 var(--lcag-accent);
}

.lcag-benevoles {
  padding: .6em .9em; display: flex; flex-wrap: wrap; align-items: center; gap: .5em 1em;
  background: var(--lcag-papier2); border: var(--lcag-bordure-fine) solid var(--lcag-encre); border-radius: var(--lcag-rayon);
}
.lcag-benevoles__texte { margin: 0; font-weight: 600; }
.lcag-benevoles__postes { flex: 1 0 100%; order: 1; margin: 0 0 .2em 1.2em; padding: 0; }
.lcag-benevoles__postes li { margin: .1em 0; }
.lcag-benevoles .lcag-btn { order: 2; }

/* Agrandissement de l'affiche */
.lcag-lightbox {
  padding: 0; border: var(--lcag-bordure) solid var(--lcag-encre); background: var(--lcag-papier);
  max-width: 96vw; max-height: 96vh; overflow: hidden;
}
.lcag-lightbox::backdrop { background: rgba(20, 20, 20, .85); }
.lcag-lightbox[open] { display: block; }
.lcag-lightbox img { display: block; max-width: 94vw; max-height: 86vh; width: auto; height: auto; object-fit: contain; }
.lcag .lcag-lightbox__fermer { position: absolute; top: .5em; right: .5em; }

/* Téléphone : une seule colonne — affiche, puis date, titre, texte */
@media (max-width: 600px) {
  .lcag-page { padding-top: calc(var(--lcag-marge-haut, 130px) * .6); padding-bottom: .8rem; }
  .lcag-fiche { font-size: .95em; grid-template-columns: minmax(0, 1fr); grid-template-areas: "retour" "img" "tete" "texte" "benev"; row-gap: .6rem; }
  .lcag-fiche--sans-image { grid-template-areas: "retour" "tete" "texte" "benev"; }
  .lcag-single__img { text-align: center; }
  .lcag-single__img img { margin: 0 auto; max-width: 100%; max-height: 42vh; }
  .lcag-fiche__tete .lcag-date { flex-basis: 3.8em; }
  .lcag .lcag-fiche__titre { font-size: calc(var(--lcag-e-titre-page, 1.9) * .75em); }
  .lcag-fiche__quand { font-size: calc(var(--lcag-e-date-page, 1.4) * .9em); }
  .lcag-benevoles { padding: .5em .7em; gap: .3em .8em; font-size: .95em; }
}
@media (max-height: 560px) and (min-width: 601px) { .lcag-single__img img { max-height: var(--lcag-img-max, 58vh); } }

/* Rien à venir : message d'attente, bloc permanent, derniers évènements en retrait */
.lcag-attente { display: flex; gap: 1.2em; align-items: center; margin: 1em 0; padding: 1.2em 1.3em; border: var(--lcag-bordure) solid var(--lcag-encre); border-radius: var(--lcag-rayon); background: var(--lcag-papier2); box-shadow: var(--lcag-ombre-x) var(--lcag-ombre-y) 0 var(--lcag-encre); }
.lcag-attente__img { flex: 0 0 min(32%, 12em); }
.lcag-attente__img img { display: block; width: 100%; height: auto; }
.lcag-attente__titre { margin: 0 0 .25em; font-weight: 800; font-size: 1.35em; line-height: 1.2; }
.lcag-attente__msg { margin: 0; }
.lcag-permanent { margin: 1.6em 0 0; }
.lcag-permanent h3 { margin: 0 0 .5em; }
.lcag-permanent ul { margin: 0 0 1em; padding-left: 1.2em; }
.lcag-permanent li { margin: .35em 0; }
.lcag-passes { margin-top: 1.8em; padding-top: 1em; border-top: var(--lcag-bordure-fine) dashed var(--lcag-gris); opacity: .72; }
.lcag-passes__titre { margin: 0 0 .5em; font-size: 1em; text-transform: uppercase; letter-spacing: .05em; color: var(--lcag-gris); }
.lcag-passes a { color: var(--lcag-gris); }
@media (max-width: 600px) { .lcag-attente { flex-direction: column; align-items: flex-start; } .lcag-attente__img { flex-basis: auto; width: 60%; } }

/* Évènement sur plusieurs jours */
.lcag-date--multi .lcag-date__jour { font-size: 1.6em; white-space: nowrap; }
.lcag-cal__ev--suite { opacity: .8; font-style: italic; }
