/* ----------------------------------------------------------------
   BANDEAU INSTITUTIONNEL — CSS
   ---------------------------------------------------------------- */

.pf-institband { background: var(--navy-900); position: relative; font-family: 'Jost',system-ui,sans-serif; }
.pf-institband::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; 
  background: linear-gradient(90deg,var(--navy) 0 20%,var(--red) 20% 40%,var(--cyan) 40% 60%,var(--green) 60% 80%,var(--yellow) 80% 100%); }
.pf-institband__in { max-width: 1180px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: center; }
.pf-institband__btn { display: inline-flex; align-items: center; gap: 10px; background: none; border: none; cursor: pointer; 
  font-family: 'Jost',system-ui,sans-serif; font-size: 13px; font-weight: 500; color: rgba(255,255,255,.88); padding: 9px 4px; }
.pf-institband__btn: hover { color: #fff; }
.pf-institband__crest { width: 22px; height: 22px; border-radius: 50%; background: #fff; display: grid; place-items: center; flex: none; overflow: hidden; }
.pf-institband__crest img { width: 15px; height: auto; display: block; }
.pf-institband__chev { width: 14px; height: 14px; color: rgba(255,255,255,.55); transition: transform .2s; }
.pf-institband__btn: hover .pf-institband__chev { transform: translateY(1px); }

.pf-ecosys-overlay { position: fixed; inset: 0; z-index: 99999; display: none; align-items: flex-start; justify-content: center; padding: 64px 20px 20px; overflow-y: auto; }
.pf-ecosys-overlay.is-open { display: flex; }
.pf-ecosys-overlay__backdrop { position: fixed; inset: 0; background: radial-gradient(circle at 50% 0%,rgba(15,45,133,.55),rgba(9,15,35,.78)); backdrop-filter: blur(3px); }
.pf-ecosys-panel { position: relative; width: 100%; max-width: 860px; background: var(--paper); border-radius: 20px; 
  box-shadow: 0 40px 100px -20px rgba(9,29,90,.5); overflow: hidden; font-family: 'Jost',system-ui,sans-serif; }
.pf-ecosys-panel__head { background: var(--navy); color: #fff; padding: 30px 34px 26px; position: relative; overflow: hidden; }
.pf-ecosys-panel__head::after { content: ""; position: absolute; inset: 0; 
  background: radial-gradient(circle at 88% -10%,rgba(26,204,255,.35),transparent 45%),radial-gradient(circle at 5% 120%,rgba(255,161,7,.22),transparent 45%); }
.pf-ecosys-panel__eyebrow { position: relative; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--cyan); display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.pf-ecosys-panel__eyebrow::before { content: ""; width: 20px; height: 2px; background: currentColor; }
.pf-ecosys-panel__title { position: relative; font-size: 23px; font-weight: 800; text-transform: uppercase; letter-spacing: .005em; margin: 0 0 6px; line-height: 1.1; }
.pf-ecosys-panel__lead { position: relative; font-size: 13.5px; color: rgba(255,255,255,.78); max-width: 52ch; margin: 0; line-height: 1.5; }
.pf-ecosys-panel__close { position: absolute; top: 20px; right: 20px; background: rgba(255,255,255,.12); border: none; cursor: pointer; color: #fff; 
  width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; z-index: 2; }
.pf-ecosys-panel__close: hover { background: rgba(255,255,255,.22); }
.pf-ecosys-panel__body { padding: 26px 34px 30px; max-height: 60vh; overflow-y: auto; }
.pf-ecosys-group { margin-bottom: 26px; }
.pf-ecosys-group: last-child { margin-bottom: 0; }
.pf-ecosys-group__label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); margin: 0 0 12px; }
.pf-ecosys-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.pf-ecosys-card { display: flex; align-items: center; gap: 13px; padding: 13px 14px; border: 1px solid var(--rule); border-radius: 12px; 
  text-decoration: none; color: inherit; transition: border-color .18s,transform .18s,box-shadow .18s; background: var(--paper); }
.pf-ecosys-card: hover { border-color: transparent; transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(15,45,133,.35); }
.pf-ecosys-card__badge { width: 38px; height: 38px; border-radius: 10px; flex: none; display: grid; place-items: center; 
  font-family: 'Jost',system-ui,sans-serif; font-weight: 800; font-size: 13px; color: #fff; letter-spacing: .01em; }
.pf-ecosys-card__body { flex: 1; min-width: 0; }
.pf-ecosys-card__name { font-size: 13.5px; font-weight: 700; color: var(--ink); line-height: 1.25; }
.pf-ecosys-card__desc { font-size: 11.5px; color: var(--ink-mute); margin-top: 2px; line-height: 1.3; 
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.pf-ecosys-card__ext { width: 15px; height: 15px; color: var(--ink-mute); flex: none; opacity: .6; }
.pf-ecosys-card: hover .pf-ecosys-card__ext { opacity: 1; color: var(--navy); }
.c-navy { background: var(--navy); } .c-red { background: var(--red); } .c-cyan { background: #0aa3c9; } .c-green { background: var(--green); } .c-yellow { background: var(--yellow); color: var(--navy-900); }
.pf-ecosys-panel__foot { padding: 16px 34px 22px; text-align: center; border-top: 1px solid var(--rule); }
.pf-ecosys-panel__foot a { color: var(--navy); font-size: 13px; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; }
.pf-ecosys-panel__foot a: hover { text-decoration: underline; }
@media (max-width: 640px) { .pf-ecosys-grid { grid-template-columns: 1fr; } .pf-ecosys-panel__head { padding: 24px 22px 20px; } .pf-ecosys-panel__body { padding: 20px 22px 24px; }}
