/* Les commandes occupent une ligne distincte, quelle que soit la hauteur du texte. */
.carousel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto;
  height: auto;
  min-height: 0;
}
.carousel .slide {
  position: relative;
  inset: auto;
  grid-area: 1 / 1;
  display: grid;
  min-width: 0;
}
.carousel .slide-content {
  height: auto;
  min-height: 500px;
  margin-block: 0;
  padding-top: 42px;
  padding-bottom: 48px;
  align-self: stretch;
}
.carousel .slide-content > * { flex-shrink: 0; }
.carousel .carousel-controls {
  position: relative;
  grid-area: 2 / 1;
  inset: auto;
  transform: none;
  padding-top: 16px;
  padding-bottom: 18px;
  min-height: 77px;
  flex-wrap: wrap;
}
.carousel .photo-disclosure { bottom: 12px; }

/* La réserve reste dans le flux : réduire le bandeau ne déplace plus la page. */
.site-header-spacer { height: 133px; }
.header-is-fixed .site-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; }

@media (max-width: 650px) {
  .site-header-spacer { height: 103px; }
  .carousel .slide-content { min-height: 550px; padding-top: 36px; padding-bottom: 48px; }
  .carousel .carousel-controls { min-height: 72px; padding-top: 14px; padding-bottom: 15px; gap: 10px; }
  .carousel .photo-disclosure { bottom: 10px; }
}

/* v13 : le seuil est un repère fixe dans le document, hors du bandeau. */
.site-header-spacer { position: relative; }
.header-threshold { position: absolute; top: 70px; left: 0; width: 1px; height: 1px; pointer-events: none; }
.site-header .network-bar, .site-header .header-inner, .site-header .brand { transition: none; }
.header-is-fixed .site-header { z-index: 1000; }
/* Le bandeau électoral reste distinct des rubriques permanentes. */
.election-callout { background: #474090; }
