
.phead{padding-bottom:clamp(18px,2.4vw,30px)}
.sec--first{padding-top:clamp(34px,4vw,60px)!important}
.badge{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--m2);
  border:1px solid var(--line2);border-radius:100px;padding:8px 16px;margin-bottom:clamp(20px,3vw,34px)}
.badge .dotv{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}

/* déclaration officielle — encadré institutionnel, centré */
#programme{background:var(--panel);text-align:center}
#programme .shead{max-width:none;margin-left:auto;margin-right:auto}
.official{max-width:min(100%,1000px);margin:0 auto}
.official blockquote{font-family:var(--display);font-weight:400;
  font-size:clamp(19px,2.3vw,31px);line-height:1.38;letter-spacing:-.015em;
  color:var(--ink);text-align:center}
.official blockquote::before{content:'';display:block;width:46px;height:3px;
  background:var(--accent);border-radius:3px;margin:0 auto clamp(24px,2.8vw,36px)}
.official .src{margin:clamp(24px,2.8vw,34px) auto 0;font-size:14px;color:var(--m2);
  max-width:min(100%,620px);line-height:1.7;text-align:center}

/* encadré des contacts officiels */
.notice{border:1px solid var(--line2);border-radius:22px;padding:clamp(26px,3.4vw,44px);max-width:76ch}
.notice h3{font-family:var(--display);font-weight:400;font-size:clamp(20px,2.4vw,28px);
  letter-spacing:-.02em;margin-bottom:16px}
.notice p{font-size:clamp(15px,1.6vw,17px);line-height:1.7;color:var(--m3);max-width:64ch}
.notice p+p{margin-top:14px}
.notice .links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.notice .links a{font-size:13.5px;color:var(--m2);border:1px solid var(--line2);border-radius:100px;
  padding:9px 17px;transition:border-color .35s var(--eo),color .35s var(--eo)}
.notice .links a:hover{border-color:var(--ink);color:var(--ink)}

.eco{display:grid;grid-template-columns:repeat(2,1fr);column-gap:clamp(28px,4vw,60px)}
@media(max-width:680px){.eco{grid-template-columns:1fr}}

/* mosaïque d'ouverture */
.herogal{display:grid;grid-template-columns:1.7fr 1fr 1fr;grid-auto-rows:clamp(130px,15vw,225px);gap:clamp(10px,1.2vw,18px)}
.herogal .hg{border-radius:18px;overflow:hidden;background:var(--panel)}
.herogal .hg--big{grid-row:span 2}
.herogal .hg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--eo)}
.herogal .hg:hover img{transform:scale(1.04)}
@media(max-width:680px){.herogal{grid-template-columns:1fr 1fr}.herogal .hg--big{grid-column:span 2}}

/* logo du programme + étiquettes des exemples */
.smelogo{float:right;width:clamp(170px,21vw,290px);height:auto;margin:0 0 12px 22px}
@media(max-width:760px){.smelogo{float:none;display:block;margin:4px 0 16px}}
.gal figure{position:relative}
.glab{position:absolute;left:12px;bottom:12px;margin:0;background:#fff;border-radius:999px;padding:8px 15px;font-family:var(--display);font-weight:600;font-size:12.5px;letter-spacing:.02em;box-shadow:0 6px 20px rgba(0,0,0,.14);pointer-events:none}
