/* Composition ouverte : le cadre est réservé aux objectifs de la collecte. */
.campaign-page .campaign-header {
  position:relative;
  isolation:isolate;
  display:block;
  margin:14px 0 16px;
  padding:20px 8px 14px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  text-align:center;
}
.campaign-page .campaign-hero-copy { position:relative; min-width:0; max-width:720px; margin:0 auto; z-index:1; }
/* Le décompte est rendu dans les KPI ; cet ancien emplacement vide ne crée pas de ligne. */
.campaign-page .campaign-header #campaign-deadline { display:none; }
.campaign-page .campaign-header #page-heading {
  max-width:24ch;
  margin:0 auto;
  padding:0;
  font-size:clamp(34px,3.3vw,44px);
  line-height:1.13;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.campaign-page .campaign-header .campaign-donate-link {
  position:relative;
  overflow:hidden;
  margin:16px 0 0;
}
.campaign-page .campaign-header .campaign-donate-link::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.12) 50%,transparent 75%);
  transform:translateX(-150%);
}
.campaign-page .campaign-header .campaign-donate-link:is(:hover,:focus-visible)::after {
  animation:olami-hero-reflection .65s ease-out 1;
}
/* Éclats vectoriels répartis autour du titre et du bouton. */
.campaign-page .campaign-hero-art {
  --hero-star-gold:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20fill%3D'%23c6a24b'%20d%3D'M12%201C13%209%2015%2011%2023%2012C15%2013%2013%2015%2012%2023C11%2015%209%2013%201%2012C9%2011%2011%209%2012%201Z'%2F%3E%3C%2Fsvg%3E");
  --hero-star-bordeaux:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20fill%3D'%23b74f6a'%20d%3D'M12%201C13%209%2015%2011%2023%2012C15%2013%2013%2015%2012%2023C11%2015%209%2013%201%2012C9%2011%2011%209%2012%201Z'%2F%3E%3C%2Fsvg%3E");
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  max-width:none;
  aspect-ratio:auto;
  pointer-events:none;
  user-select:none;
  background-image:var(--hero-star-gold),var(--hero-star-bordeaux),var(--hero-star-gold),var(--hero-star-gold),var(--hero-star-gold),var(--hero-star-gold),var(--hero-star-bordeaux),var(--hero-star-gold),var(--hero-star-gold),var(--hero-star-gold);
  background-repeat:no-repeat;
  background-size:18px 18px,14px 14px,12px 12px,9px 9px,15px 15px,17px 17px,13px 13px,11px 11px,10px 10px,8px 8px;
  background-position:4% 40%,14% 76%,23% 0%,49% 0%,79% 2%,96% 43%,86% 77%,22% 100%,73% 100%,48% 100%;
  animation:olami-hero-light 3.2s ease-in-out 1;
}
.campaign-page .campaign-hero-art svg { display:none; }
/* Sur ordinateur, les étoiles gagnent en présence ; tablette et téléphone gardent leurs tailles. */
@media (min-width:861px) {
  .campaign-page .campaign-hero-art {
    background-size:26px 26px,20px 20px,18px 18px,13px 13px,22px 22px,25px 25px,19px 19px,16px 16px,15px 15px,12px 12px;
  }
}
/* Sans abondement, seul le cadre doré reste : aucune pastille décorative. */
.campaign-page #goals-progress-container.goals-outline.goals-unmatched::after,
.campaign-page #goals-progress-container.goals-outline.goals-unmatched::before {
  content:none;
  display:none;
}
/* Le symbole de soutien reste à côté du texte, sans ligne vide sur téléphone. */
.campaign-page .support-notice { flex-direction:row; flex-wrap:nowrap; align-items:center; gap:20px; }
.campaign-page .support-notice .match-right { margin-left:0; }
.campaign-page .support-notice .support-badge {
  display:block;
  width:88px;
  height:88px;
  filter:none;
}
@media (max-width:600px) {
  .campaign-page .support-notice { gap:14px; }
  .campaign-page .support-notice .support-badge { width:64px; height:64px; }
}
@keyframes olami-hero-light {
  0%,100% { opacity:1; }
  45% { opacity:.35; }
  75% { opacity:1; }
}
@keyframes olami-hero-reflection { to { transform:translateX(150%); } }
@media (max-width:860px) {
  .campaign-page .campaign-header { margin:10px 0 14px; padding:20px 6px 10px; }
  .campaign-page .campaign-hero-copy { max-width:680px; margin:0 auto; }
  .campaign-page .campaign-header #page-heading { margin:0 auto; font-size:clamp(32px,4.8vw,40px); }
}
@media (max-width:600px) {
  .campaign-page .campaign-header { padding:20px 2px 10px; margin:10px 0 14px; }
  .campaign-page .campaign-header #page-heading { max-width:22ch; font-size:clamp(30px,8.5vw,36px); line-height:1.16; }
  .campaign-page .campaign-header .campaign-donate-link { margin-top:16px; }
}
/* Sur téléphone, les étoiles latérales bordent le bouton et dégagent les lignes de texte. */
@media (max-width:600px) {
  .campaign-page .campaign-hero-art {
    background-size:14px 14px,10px 10px,11px 11px,8px 8px,12px 12px,14px 14px,10px 10px,9px 9px,9px 9px,7px 7px;
    background-position:2% 74%,10% 84%,16% 0%,48% 0%,82% 0%,98% 74%,90% 84%,16% 100%,83% 100%,48% 100%;
  }
}
@media (prefers-reduced-motion:reduce) {
  .campaign-page .campaign-hero-art,
  .campaign-page .campaign-header .campaign-donate-link:is(:hover,:focus-visible)::after { animation:none; }
}
