/**
 * @file
 * Cohabitation avec le module Contextual (liens d'édition au survol).
 *
 * Chargée en dernier, après tous les composants, parce qu'elle corrige des
 * effets de bord de leurs règles de mise en page.
 *
 * En mode connecté, Contextual injecte dans n'importe quelle zone :
 *   - la classe .contextual-region, avec position:relative ;
 *   - un <div class="contextual"> contenant un bouton et un <ul>.
 *
 * Deux familles de règles du thème capturaient ces conteneurs. Les
 * aplatissements structurels en display:contents — mosaïque, fil défilant,
 * sujets suivis — effaçaient la boîte du <div class="contextual">, et les
 * mises en forme de listes — .ticker__track ul, .chips ul, .stream ul —
 * l'emportaient sur le display:none du cœur. D'où des menus d'édition
 * affichés en permanence au lieu d'apparaître au survol.
 */

/* Rétablit le comportement du cœur, quel que soit le contexte de mise en
   page. Le !important est délibéré : l'alternative serait d'ajouter un
   :not(.contextual) à une douzaine de sélecteurs, et d'y repenser à chaque
   nouvelle zone. */
.contextual {
  display: block !important;
}

.contextual .contextual-links {
  display: none !important;
}

.contextual.open .contextual-links {
  display: block !important;
}

/*
 * Images des tuiles de la bande sombre (zone 9).
 *
 * Dans ces tuiles, l'image est positionnée en absolu avec inset:0 pour
 * remplir la cellule. Son bloc conteneur est le premier ancêtre positionné.
 * En mode anonyme c'est .teaser__media, qui a les bonnes dimensions ; en
 * mode connecté, Contextual intercale un .contextual-region en
 * position:relative dont la hauteur est nulle — son unique enfant, l'image,
 * étant hors flux. L'image se calait donc sur une boîte de hauteur 0 et
 * disparaissait.
 *
 * Remettre ce conteneur en position:static rend le contexte de
 * positionnement à .teaser__media. Le déclencheur d'édition se place alors
 * sur le média entier, ce qui reste utilisable.
 */
.tile .teaser__media .contextual-region {
  position: static;
}
