/* ============================================================
   HYDREAULYS — Le syndicat : Qui sommes-nous + Événements
   (charte identique : voir styles.css pour les variables)
   ============================================================ */

/* ---------------- Identité / Qui sommes-nous ---------------- */
.qsn-identite { background: #fff; }
.qsn-identite__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 80px;
  align-items: center;
}
.qsn-identite__lede {
  font-size: 22px;
  line-height: 1.5;
  color: var(--hy-blue-ink);
  font-weight: 500;
  margin: 22px 0 24px;
  text-wrap: pretty;
}
.qsn-identite__body {
  font-size: 16px;
  line-height: 1.65;
  color: var(--hy-muted);
  margin: 0 0 18px;
}
.qsn-identite__body strong { color: var(--hy-blue-ink); font-weight: 600; }
.qsn-identite__pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.qsn-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px 9px 12px;
  border-radius: var(--radius-pill);
  background: var(--hy-green-tint);
  border: 1px solid var(--hy-green-soft);
  font-size: 13.5px; font-weight: 600; color: var(--hy-blue-ink);
}
.qsn-pill svg { color: var(--hy-blue); }

/* Mission visual — orbital emblem */
.qsn-identite__visual {
  position: relative;
  aspect-ratio: 1;
  width: 100%;
  max-width: 480px;
  margin-left: auto;
}
.qsn-orbit {
  position: absolute; border-radius: 50%; pointer-events: none;
}
.qsn-orbit--1 { inset: 0; border: 1px solid var(--hy-line); }
.qsn-orbit--2 { inset: 13%; border: 1px dashed rgba(105,187,187,.5); animation: hy-rotate 70s linear infinite; }
.qsn-orbit--3 { inset: 27%; border: 1px solid rgba(0,80,152,.18); }
.qsn-orbit__core {
  position: absolute; inset: 33%;
  border-radius: 50%;
  overflow: hidden;
  background-size: cover; background-position: center;
  box-shadow: 0 30px 70px -18px rgba(0,58,112,.45), inset 0 0 0 5px rgba(255,255,255,.18);
}
.qsn-orbit__chip {
  position: absolute;
  background: #fff;
  border: 1px solid var(--hy-line);
  border-radius: var(--radius-pill);
  padding: 8px 14px 8px 10px;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; color: var(--hy-blue-ink);
  box-shadow: 0 14px 32px -14px rgba(0,80,152,.3);
  white-space: nowrap;
  animation: hy-float 6s ease-in-out infinite;
}
.qsn-orbit__chip-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--hy-cyan); flex: none; }
.qsn-orbit__chip--1 { top: 2%; left: 50%; transform: translateX(-50%); }
.qsn-orbit__chip--2 { top: 46%; right: -6%; animation-delay: 1.5s; }
.qsn-orbit__chip--3 { bottom: 2%; left: 6%; animation-delay: 3s; }

/* ---------------- Chiffres clés ---------------- */
.qsn-chiffres { background: var(--hy-paper); }
.qsn-chiffres__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 56px;
}
.qsn-chiffre {
  background: #fff;
  border: 1px solid var(--hy-line);
  border-radius: 24px;
  padding: 32px 28px;
  position: relative;
  overflow: hidden;
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.qsn-chiffre:hover { transform: translateY(-6px); border-color: var(--hy-blue); box-shadow: 0 30px 60px -32px rgba(0,80,152,.3); }
.qsn-chiffre__ico {
  width: 48px; height: 48px; border-radius: 14px;
  background: var(--hy-green-tint); color: var(--hy-blue);
  display: grid; place-items: center; margin-bottom: 26px;
  transition: all .3s ease;
}
.qsn-chiffre:hover .qsn-chiffre__ico { background: var(--hy-blue); color: #fff; transform: scale(1.08) rotate(-4deg); }
.qsn-chiffre__val {
  font-size: 52px; font-weight: 800; line-height: 1;
  letter-spacing: -0.04em; color: var(--hy-blue-ink);
  font-variant-numeric: tabular-nums;
}
.qsn-chiffre__val small { font-size: 18px; font-weight: 700; color: var(--hy-blue); margin-left: 4px; }
.qsn-chiffre__label { margin-top: 12px; font-size: 14px; color: var(--hy-muted); line-height: 1.4; font-weight: 500; }

/* ---------------- Frise / Histoire ---------------- */
.qsn-histoire { background: #fff; overflow: hidden; }
.qsn-frise {
  position: relative;
  margin-top: 60px;
  padding-left: 4px;
}
.qsn-frise__line {
  position: absolute;
  left: 18px; top: 8px; bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, var(--hy-blue) 0%, var(--hy-cyan) 100%);
}
.qsn-frise__item {
  position: relative;
  padding-left: 64px;
  padding-bottom: 44px;
}
.qsn-frise__item:last-child { padding-bottom: 0; }
.qsn-frise__dot {
  position: absolute;
  left: 8px; top: 2px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--hy-blue);
  z-index: 2;
  transition: all .3s ease;
}
.qsn-frise__item:hover .qsn-frise__dot { background: var(--hy-cyan); border-color: var(--hy-cyan); transform: scale(1.2); }
.qsn-frise__year {
  font-family: var(--font-sans); font-style: normal;
  font-size: 28px; color: var(--hy-blue); line-height: 1;
  margin-bottom: 8px;
}
.qsn-frise__title { font-size: 19px; font-weight: 700; color: var(--hy-blue-ink); margin: 0 0 6px; letter-spacing: -0.01em; }
.qsn-frise__desc { font-size: 15px; color: var(--hy-muted); line-height: 1.55; max-width: 560px; margin: 0; }

/* ============================================================
   BUREAU SYNDICAL — bento photo cards
   ============================================================ */
.bureau { background: var(--hy-paper); }
.bureau .display { color: var(--hy-blue-ink); }
.bureau .display em { color: var(--hy-blue); }
.bureau-head { display: flex; flex-direction: column; gap: 20px; padding: 0 0 36px; }
.bureau-head .actions__intro { max-width: 80ch; margin: 0; }

.bureau-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: start; }
.bureau-card {
  position: relative; border-radius: 18px; overflow: hidden; background: #fff;
  border: 1px solid var(--hy-line); display: flex; flex-direction: column;
  box-shadow: 0 4px 16px -10px rgba(0,58,112,.18);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.bureau-card:hover { transform: translateY(-4px); border-color: rgba(0,80,152,.28); box-shadow: 0 26px 48px -28px rgba(0,58,112,.34); }
.bureau-card__media { position: relative; aspect-ratio: 4/4.6; overflow: hidden; background: var(--hy-paper); }
.bureau-card__photo { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; display: block; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.bureau-card:hover .bureau-card__photo { transform: scale(1.05); }
.bureau-card__badge {
  position: absolute; top: 14px; left: 14px; z-index: 2; width: 34px; height: 34px; border-radius: 50%;
  background: linear-gradient(135deg, #c5a02e, #e8c84a); color: #fff; display: grid; place-items: center;
  box-shadow: 0 10px 20px -8px rgba(0,0,0,.45);
}
.bureau-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.bureau-card__role { display: block; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--hy-blue); }
.bureau-card__name { font-size: 19px; font-weight: 700; color: var(--hy-blue-ink); margin: 0; line-height: 1.25; letter-spacing: -0.015em; }
.bureau-card__competence { margin: 6px 0 0; padding-top: 12px; border-top: 1px solid var(--hy-line); font-size: 14px; line-height: 1.55; color: var(--hy-ink); }

.bureau-card--president { background: var(--hy-blue-ink); border: 2px solid #e8c84a; box-shadow: 0 26px 48px -28px rgba(0,58,112,.45); }
.bureau-card--president .bureau-card__photo { object-position: 50% 0%; }
.bureau-card--president .bureau-card__role { color: #e8c84a; }
.bureau-card--president .bureau-card__name { color: #fff; }
.bureau-card--president .bureau-card__competence { color: rgba(255,255,255,.85); border-top-color: rgba(255,255,255,.2); }
.bureau-card--assesseur .bureau-card__role { color: var(--hy-muted); }

@media (max-width: 1100px) {
  .bureau-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .bureau-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .bureau-grid { grid-template-columns: 1fr; }
}

.comite__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:center}
.comite__photo{position:relative;aspect-ratio:16/10;border-radius:24px;overflow:hidden;box-shadow:0 30px 60px -32px rgba(0,58,112,.3)}
.comite__photo image-slot{width:100%;height:100%}
@media (max-width:900px){.comite__grid{grid-template-columns:1fr}}

/* ============================================================
   ORGANIGRAMME — tuile direction + cartes équipe par pôle
   ============================================================ */
.orga { background: #fff; }
.orga h2.display { color: var(--hy-blue-ink); }
.orga h2.display em { color: var(--hy-blue); }
.orga__head { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 36px; }
.orga__intro { font-size: 17px; color: var(--hy-muted); max-width: 480px; line-height: 1.55; }

.orga-wrap { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1); }
.orga-wrap--visible { opacity: 1; transform: none; }

.orga-direction {
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
  background: linear-gradient(160deg, #002c56 0%, var(--hy-blue) 100%);
  border-radius: 24px; padding: 26px 32px; color: #fff; margin-bottom: 20px;
  position: relative; overflow: hidden;
}
.orga-direction::before {
  content: ""; position: absolute; top: -60px; right: -60px; width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(105,187,187,.28), transparent 70%); pointer-events: none;
}
.orga-direction__main { display: flex; align-items: center; gap: 16px; }
.orga-direction__role { display: block; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--hy-cyan); }
.orga-direction__name { font-size: 21px; font-weight: 800; letter-spacing: -0.02em; margin: 5px 0 0; color: #fff; }
.orga-direction__divider { width: 1px; height: 40px; background: rgba(255,255,255,.2); }
.orga-direction__assist { display: flex; align-items: center; gap: 12px; }
.orga-direction__assist-role { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.orga-direction__assist strong { display: block; font-size: 14px; font-weight: 700; color: #fff; margin-top: 3px; }
.orga-direction__year { font-size: 12px; font-weight: 700; color: rgba(255,255,255,.6); white-space: nowrap; }
.orga-direction > .orga-direction__year:first-of-type { margin-left: auto; }

.orga-poles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.orga-pole-card {
  background: #fff; border: 1px solid var(--hy-line); border-top: 3px solid var(--pole-c); border-radius: 20px; padding: 24px;
  transition: box-shadow .3s ease, transform .3s ease;
}
.orga-pole-card:hover { box-shadow: 0 24px 48px -28px rgba(0,58,112,.24); transform: translateY(-3px); }
.orga-pole-card__head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.orga-pole-card__ico {
  width: 38px; height: 38px; border-radius: 12px; flex: none;
  background: color-mix(in srgb, var(--pole-c) 14%, #fff); color: var(--pole-c);
  display: grid; place-items: center;
}
.orga-pole-card__head h3 { font-size: 15px; font-weight: 800; color: var(--hy-blue-ink); margin: 0; letter-spacing: -0.01em; }
.orga-pole-card__head span { font-size: 11.5px; color: var(--hy-muted); }

.orga-roster { display: flex; flex-direction: column; gap: 2px; }
.orga-roster__row { display: flex; align-items: center; gap: 10px; padding: 9px 8px; border-radius: 10px; transition: background .2s; }
.orga-roster__row:hover { background: var(--hy-paper); }
.orga-roster__row--sub { margin-left: 22px; position: relative; }
.orga-roster__row--sub::before {
  content: ""; position: absolute; left: -14px; top: 0; bottom: 50%; width: 12px;
  border-left: 2px solid var(--hy-line); border-bottom: 2px solid var(--hy-line); border-radius: 0 0 0 8px;
}
.orga-roster__info { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.orga-roster__info strong { font-size: 13px; font-weight: 700; color: var(--hy-blue-ink); line-height: 1.3; }
.orga-roster__info span { font-size: 11.5px; color: var(--hy-muted); line-height: 1.3; }
.orga-roster__year { font-size: 10.5px; font-weight: 700; color: var(--pole-c); flex: none; }

.org-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--hy-blue-tint); color: var(--hy-blue); display: grid; place-items: center; flex: none; }
.org-avatar--lg { width: 56px; height: 56px; }
.org-avatar--sm { width: 32px; height: 32px; }
.orga-direction .org-avatar { background: rgba(255,255,255,.15); color: #fff; border: 2px solid rgba(255,255,255,.28); }

@media (max-width: 900px) {
  .orga__head { grid-template-columns: 1fr; gap: 24px; }
  .orga-poles { grid-template-columns: 1fr; }
  .orga-direction { flex-direction: column; align-items: flex-start; }
  .orga-direction > .orga-direction__year:first-of-type { margin-left: 0; }
}

/* ============================================================
   ÉVÉNEMENTS
   ============================================================ */
.evt { background: #fff; padding: 40px 0 120px; }
.evt__filters {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: 8px 0 40px;
}
.evt__filter {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 10px 18px 10px 12px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--hy-line);
  background: #fff;
  font-size: 13.5px; font-weight: 600; color: var(--hy-blue-ink);
  cursor: pointer; font-family: inherit;
  transition: all .2s ease;
}
.evt__filter:hover { border-color: var(--hy-blue); color: var(--hy-blue); }
.evt__filter--active { background: var(--hy-blue); border-color: var(--hy-blue); color: #fff; }
.evt__filter-count {
  font-size: 11px; font-variant-numeric: tabular-nums; font-weight: 700;
  background: var(--hy-green-tint); color: var(--hy-blue);
  border-radius: var(--radius-pill); padding: 2px 8px;
}
.evt__filter--active .evt__filter-count { background: rgba(255,255,255,.2); color: #fff; }

/* Codification couleur des instances : vert = comité, bleu = bureau */
.evt__filter-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--evt-c, var(--hy-blue)); }
.evt__filter--comite { --evt-c: var(--hy-cyan); }
.evt__filter--bureau { --evt-c: var(--hy-blue); }
.evt__filter--comite.evt__filter--active { background: var(--hy-cyan); border-color: var(--hy-cyan); color: var(--hy-blue-ink); }
.evt__filter--comite.evt__filter--active .evt__filter-dot,
.evt__filter--bureau.evt__filter--active .evt__filter-dot { background: #fff; }
.evt__filter--bureau.evt__filter--active { background: var(--hy-blue); border-color: var(--hy-blue); color: #fff; }
.evt__filter--comite:hover { border-color: var(--hy-cyan); color: var(--hy-blue); }

/* Toolbar : filtres + légende */
.inst-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
  margin: 8px 0 36px;
}
.inst-toolbar .evt__filters { margin: 0; }
.inst-legend { display: flex; gap: 18px; }
.inst-legend__item {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12.5px; font-weight: 700; color: var(--hy-muted);
}
.inst-legend__item span { width: 12px; height: 12px; border-radius: 4px; }
.inst-legend__item--comite span { background: var(--hy-cyan); }
.inst-legend__item--bureau span { background: var(--hy-blue); }

/* Liste compacte d'instances */
.inst-list { display: flex; flex-direction: column; gap: 14px; }
.inst-card {
  --inst-c: var(--hy-blue);
  display: grid;
  grid-template-columns: 84px 1fr auto;
  align-items: center;
  gap: 24px;
  background: #fff;
  border: 1px solid var(--hy-line);
  border-left: 5px solid var(--inst-c);
  border-radius: 18px;
  padding: 18px 24px 18px 22px;
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.inst-card:hover { box-shadow: 0 22px 44px -28px rgba(0,80,152,.32); transform: translateY(-2px); }
.inst-card--comite { --inst-c: var(--hy-cyan); }
.inst-card--bureau { --inst-c: var(--hy-blue); }

.inst-card__date {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--inst-c) 12%, #fff);
  border-radius: 14px;
  padding: 12px 0;
  line-height: 1;
}
.inst-card__day { font-size: 28px; font-weight: 800; letter-spacing: -0.03em; color: var(--hy-blue-ink); }
.inst-card__mon { font-size: 11px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--inst-c); margin-top: 4px; }
.inst-card__year { font-size: 11px; font-weight: 600; color: var(--hy-muted); margin-top: 2px; }

.inst-card__body { min-width: 0; }
.inst-card__tag {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--inst-c);
}
.inst-card__tag-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--inst-c); }
.inst-card__title {
  font-size: 18px; font-weight: 700; color: var(--hy-blue-ink);
  letter-spacing: -0.015em; line-height: 1.25; margin: 7px 0 10px; text-wrap: balance;
}
.inst-card__meta { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.inst-card__meta span { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--hy-muted); font-weight: 500; }
.inst-card__meta svg { color: var(--inst-c); flex: none; }

.inst-card__action { flex: none; }
.inst-agenda {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 12px 20px;
  border-radius: var(--radius-pill);
  border: 1.5px solid var(--inst-c);
  background: #fff;
  color: var(--hy-blue-ink);
  font: 700 13.5px/1 var(--font-sans);
  cursor: pointer;
  white-space: nowrap;
  transition: all .2s ease;
}
.inst-agenda svg { color: var(--inst-c); }
.inst-agenda:hover { background: var(--inst-c); color: #fff; box-shadow: 0 14px 28px -14px color-mix(in srgb, var(--inst-c) 60%, transparent); }
.inst-agenda:hover svg { color: #fff; }
.inst-card--comite .inst-agenda:hover { color: var(--hy-blue-ink); }

.inst-card--past { opacity: .82; }
.inst-card--past .inst-card__date { background: var(--hy-paper); }
.inst-card__past-label { font-size: 13px; font-weight: 700; color: var(--hy-muted); }

.inst-pasttitle {
  font-size: 14px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--hy-muted); margin: 44px 0 18px;
}

@media (max-width: 760px) {
  .inst-card { grid-template-columns: 64px 1fr; gap: 16px; row-gap: 16px; }
  .inst-card__date { padding: 9px 0; }
  .inst-card__day { font-size: 22px; }
  .inst-card__action { grid-column: 1 / -1; }
  .inst-agenda { width: 100%; justify-content: center; }
}

.evt__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.evt-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--hy-line);
  border-radius: 24px;
  overflow: hidden;
  cursor: pointer;
  text-align: left;
  font: inherit; color: inherit;
  display: flex; flex-direction: column;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease;
}
.evt-card:hover { transform: translateY(-6px); border-color: var(--hy-blue); box-shadow: 0 34px 64px -34px rgba(0,80,152,.35); }
.evt-card__media {
  position: relative;
  aspect-ratio: 16/10;
  background-size: cover; background-position: center;
  background-color: var(--hy-blue-ink);
  overflow: hidden;
}
.evt-card__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,58,112,0) 40%, rgba(0,42,86,.55) 100%);
}
.evt-card__cat {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  font-size: 10.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 6px 12px; border-radius: var(--radius-pill);
  background: rgba(255,255,255,.92); color: var(--hy-blue);
  backdrop-filter: blur(6px);
}
/* Date chip — calendar style */
.evt-card__date {
  position: absolute; bottom: 14px; left: 14px; z-index: 2;
  background: #fff; border-radius: 14px;
  padding: 8px 12px; text-align: center; min-width: 58px;
  box-shadow: 0 10px 24px -10px rgba(0,42,86,.5);
}
.evt-card__date-day { font-size: 24px; font-weight: 800; line-height: 1; color: var(--hy-blue-ink); letter-spacing: -0.03em; }
.evt-card__date-mon { font-size: 10.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--hy-blue); margin-top: 3px; }
.evt-card__body { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.evt-card__title {
  font-size: 19px; font-weight: 700; color: var(--hy-blue-ink);
  letter-spacing: -0.015em; line-height: 1.22; margin: 0 0 14px; text-wrap: balance;
}
.evt-card:hover .evt-card__title { color: var(--hy-blue); }
.evt-card__meta { display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.evt-card__meta-row { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--hy-muted); font-weight: 500; }
.evt-card__meta-row svg { color: var(--hy-blue); flex: none; }
.evt-card__more {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 18px; font-size: 13px; font-weight: 700; color: var(--hy-blue);
}
.evt-card__more-arrow {
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--hy-green-tint); color: var(--hy-blue);
  display: grid; place-items: center; transition: all .25s ease;
}
.evt-card:hover .evt-card__more-arrow { background: var(--hy-blue); color: #fff; transform: translateX(3px); }

.evt-card--past { opacity: .72; }
.evt-card--past .evt-card__date { background: var(--hy-paper); }
.evt-card__badge-past {
  position: absolute; top: 14px; right: 14px; z-index: 2;
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 5px 10px; border-radius: var(--radius-pill);
  background: rgba(26,44,66,.7); color: #fff; backdrop-filter: blur(6px);
}

/* ---------------- Modal popup ---------------- */
.evt-modal {
  position: fixed; inset: 0; z-index: 200;
  display: grid; place-items: center;
  padding: 32px;
}
.evt-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(0,42,86,.55);
  backdrop-filter: blur(6px);
  animation: evt-back .3s ease;
}
@keyframes evt-back { from { opacity: 0; } to { opacity: 1; } }
.evt-modal__panel {
  position: relative;
  width: min(960px, 100%);
  max-height: calc(100vh - 64px);
  background: #fff;
  border-radius: 30px;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  box-shadow: 0 60px 120px -40px rgba(0,15,35,.6);
  animation: evt-pop .42s cubic-bezier(.2,.8,.2,1);
}
@keyframes evt-pop { from { opacity: 0; transform: translateY(30px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
.evt-modal__media {
  position: relative;
  background-size: cover; background-position: center;
  background-color: var(--hy-blue-ink);
  min-height: 100%;
}
.evt-modal__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,42,86,.1) 0%, rgba(0,42,86,.65) 100%);
}
.evt-modal__media-cat {
  position: absolute; top: 22px; left: 22px; z-index: 2;
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 7px 14px; border-radius: var(--radius-pill);
  background: rgba(255,255,255,.92); color: var(--hy-blue);
}
.evt-modal__media-cal {
  position: absolute; bottom: 22px; left: 22px; z-index: 2;
  background: #fff; border-radius: 16px; padding: 12px 16px; text-align: center;
  box-shadow: 0 14px 30px -12px rgba(0,42,86,.5);
}
.evt-modal__media-cal-day { font-size: 34px; font-weight: 800; line-height: 1; color: var(--hy-blue-ink); letter-spacing: -0.03em; }
.evt-modal__media-cal-mon { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--hy-blue); margin-top: 4px; }
.evt-modal__content {
  padding: 40px 40px 36px;
  overflow-y: auto;
}
.evt-modal__close {
  position: absolute; top: 18px; right: 18px; z-index: 5;
  width: 42px; height: 42px; border-radius: 50%;
  background: #fff; border: 1px solid var(--hy-line);
  color: var(--hy-blue-ink);
  display: grid; place-items: center; cursor: pointer;
  transition: all .2s ease;
  box-shadow: 0 8px 20px -8px rgba(0,42,86,.3);
}
.evt-modal__close:hover { background: var(--hy-blue); color: #fff; border-color: var(--hy-blue); transform: rotate(90deg); }
.evt-modal__title {
  font-size: 30px; font-weight: 800; letter-spacing: -0.025em;
  color: var(--hy-blue-ink); line-height: 1.1; margin: 6px 0 20px; text-wrap: balance;
}
.evt-modal__info { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.evt-modal__info-row { display: flex; align-items: center; gap: 12px; font-size: 14.5px; color: var(--hy-blue-ink); font-weight: 500; }
.evt-modal__info-ico {
  width: 38px; height: 38px; border-radius: 50%; flex: none;
  background: var(--hy-green-tint); color: var(--hy-blue);
  display: grid; place-items: center;
}
.evt-modal__desc { font-size: 15px; line-height: 1.65; color: var(--hy-muted); margin: 0 0 24px; }
.evt-modal__desc strong { color: var(--hy-blue-ink); font-weight: 600; }
.evt-modal__prog-title {
  font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--hy-blue); margin: 0 0 14px;
}
.evt-modal__prog { list-style: none; padding: 0; margin: 0 0 28px; display: flex; flex-direction: column; gap: 0; }
.evt-modal__prog li {
  display: grid; grid-template-columns: 64px 1fr; gap: 16px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--hy-line);
}
.evt-modal__prog li:last-child { border-bottom: none; }
.evt-modal__prog-time { font-size: 14px; font-weight: 700; color: var(--hy-blue); font-variant-numeric: tabular-nums; }
.evt-modal__prog-act { font-size: 14px; color: var(--hy-blue-ink); line-height: 1.4; }
.evt-modal__actions { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 760px) {
  .evt-modal { padding: 0; }
  .evt-modal__panel { grid-template-columns: 1fr; border-radius: 0; max-height: 100vh; height: 100vh; }
  .evt-modal__media { min-height: 200px; }
}

/* ---------------- Responsive ---------------- */
@media (max-width: 1100px) {
  .qsn-identite__grid { grid-template-columns: 1fr; gap: 56px; }
  .qsn-identite__visual { margin: 0 auto; max-width: 360px; }
  .qsn-chiffres__grid { grid-template-columns: repeat(2, 1fr); }
  .orga__head { grid-template-columns: 1fr; gap: 24px; }
  .orga__stage { grid-template-columns: 1fr; }
  .orga__panel { position: relative; top: 0; }
  .evt__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .qsn-chiffres__grid { grid-template-columns: 1fr; }
  .orga__tree { padding: 28px 16px; overflow-x: auto; }
  .orga__level { flex-wrap: wrap; }
  .evt__grid { grid-template-columns: 1fr; }
}

.bureau-card__photo[src*="delaronciere"]{transform:scale(1.22);transform-origin:50% 22%}
.bureau-card:hover .bureau-card__photo[src*="delaronciere"]{transform:scale(1.28)}

/* ---------- Retours Léa : Qui sommes-nous ---------- */
.qsn-identite__grid--text{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.qsn-chiffre__val{white-space:nowrap}
.qsn-mot{background:#fff}
.qsn-mot__card{margin:40px 0 0;background:linear-gradient(135deg,var(--hy-blue-deep) 0%,var(--hy-blue) 100%);color:#fff;border-radius:28px;padding:48px 56px 44px}
.qsn-mot__mark{display:block;font-family:var(--font-serif);font-size:160px;line-height:1;height:.3em;color:var(--hy-cyan);margin:-4px 0 10px}
.qsn-mot__text{margin:0 0 30px;font-size:19px;line-height:1.6;font-style:italic;color:rgba(255,255,255,.94);max-width:80ch}
.qsn-mot__text p{margin:0 0 14px;text-wrap:pretty}
.qsn-mot__text p:last-child{margin:0}
.qsn-mot__author{display:flex;align-items:center;gap:16px}
.qsn-mot__portrait{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 0%;border:2px solid rgba(255,255,255,.3)}
.qsn-mot__author strong{display:block;font-size:16px;font-weight:800;color:#fff}
.qsn-mot__author span span{display:block;font-size:13.5px;color:rgba(255,255,255,.75);margin-top:3px}
.comite__text p{margin:18px 0 0;font-size:16px;line-height:1.65;color:var(--hy-ink);text-wrap:pretty}
.orga-roster{gap:14px}
.orga-roster__team{display:flex;flex-direction:column;gap:2px}
.orga-roster__team + .orga-roster__team{padding-top:14px;border-top:1px solid var(--hy-line)}
.org-avatar--photo{overflow:hidden;padding:0}
.org-avatar--photo image-slot{width:100%;height:100%}
@media (max-width:1100px){.qsn-identite__grid--text{grid-template-columns:1fr;gap:28px}}
@media (max-width:700px){.qsn-mot__card{padding:36px 26px}.qsn-mot__text{font-size:17px}}

.comite__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:center}
.comite-flow{display:flex;flex-direction:column;align-items:stretch;background:var(--hy-paper);border:1px solid var(--hy-line);border-radius:26px;padding:28px}
.comite-flow__step{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;background:#fff;border:1px solid var(--hy-line);border-radius:18px;padding:16px 18px}
.comite-flow__ico{width:46px;height:46px;border-radius:14px;background:var(--hy-blue-tint);color:var(--hy-blue);display:grid;place-items:center}
.comite-flow__kicker{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--hy-blue)}
.comite-flow__step strong{display:block;margin-top:3px;font-size:16px;font-weight:800;color:var(--hy-blue-ink);line-height:1.3}
.comite-flow__step--main{background:linear-gradient(135deg,var(--hy-blue-deep) 0%,var(--hy-blue) 100%);border-color:transparent;box-shadow:0 24px 48px -28px rgba(0,58,112,.55)}
.comite-flow__step--main .comite-flow__ico{background:rgba(255,255,255,.14);color:#fff}
.comite-flow__step--main .comite-flow__kicker{color:var(--hy-cyan)}
.comite-flow__step--main strong{color:#fff;font-size:18px}
.comite-flow__tags{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:4px 0 0;padding:0}
.comite-flow__tags li{font-size:12.5px;font-weight:700;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:5px 12px}
.comite-flow__link{position:relative;align-self:flex-start;margin-left:40px;padding:14px 0 14px 22px;font-size:13px;font-weight:600;color:var(--hy-muted)}
.comite-flow__link::before{content:"";position:absolute;left:0;top:0;bottom:0;border-left:2px dashed var(--hy-cyan)}
.comite-flow__link::after{content:"";position:absolute;left:-4px;bottom:2px;width:6px;height:6px;border-right:2px solid var(--hy-cyan);border-bottom:2px solid var(--hy-cyan);transform:rotate(45deg)}
@media (max-width:1000px){.comite__grid{grid-template-columns:1fr;gap:36px}}
