/* ============================================================
   AJUSTEMENTS PROPRES À WORDPRESS
   style.css est une copie conforme du design system Nuxt : ne pas le
   modifier ici, tout ce qui est spécifique à WordPress vit dans ce fichier.
   ============================================================ */

/* Rideau déjà vu dans cet onglet : il ne rejoue pas (voir inc/assets.php) */
.sans-rideau .preloader { display: none; }

/* Éléments animés masqués jusqu'à ce que leurs états initiaux soient posés.
   Leur animation les fait apparaître : aucun effet visible, sinon l'absence
   de flash au chargement. */
.motion-pending [data-hero-line],
.motion-pending [data-hero-desc],
.motion-pending [data-hero-bar],
.motion-pending [data-title-reveal],
.motion-pending [data-reveal-lines],
.motion-pending [data-reveal-up],
.motion-pending [data-planning-row],
.motion-pending [data-plist-item],
.motion-pending [data-tcard] {
  visibility: hidden;
}

/* Onglets du planning : le panneau inactif est retiré du rendu */
[data-tab-panel][hidden] { display: none; }

/* Contenu libre des pages simples (mentions légales…) */
.ls-content { max-width: 760px; }
.ls-content > * + * { margin-top: 1em; }
.ls-content h2 { font-size: clamp(24px, 2.6vw, 34px); line-height: 1.15; margin-top: 1.6em; }
.ls-content ul { list-style: disc; padding-left: 1.2em; }
.ls-content a { text-decoration: underline; text-underline-offset: 3px; }

/* ============================================================
   ELEMENTOR
   Les widgets La Salle rendent le balisage exact de la maquette ; Elementor
   ne doit rien y ajouter.
   ============================================================ */

/* Containers servant d'enveloppes : ni flex, ni padding, ni gap. Ils
   s'effacent de la mise en page (réglés à 0 à la génération, et ici en
   filet si un réglage est modifié dans l'éditeur). */
.e-con.ls-neutre {
  display: block;
  padding: 0;
  gap: 0;
}

/* Reset d'Elementor : `.elementor img { height: auto }` a une spécificité
   (0,1,1) supérieure aux classes du design system (0,1,0) et écrase les
   hauteurs des images en `object-fit: cover`. On les réaffirme. */
.elementor .hero__img,
.elementor .plist__preview img,
.elementor .ptile__media img { height: 100%; }
/* Photos en parallaxe : débord à chaque extrémité, rogné par leur cadre */
.elementor .cta__media img,
.elementor .phead__media img { height: 116%; }
.elementor .manifesto__frame img { height: 114%; }
.elementor .gallery__item img { height: clamp(300px, 48vh, 520px); }
.elementor .pgal__grid img { height: clamp(220px, 26vw, 380px); }
@media (max-width: 760px) {
  .elementor .pgal__grid img { height: 240px; }
}
.elementor .pgal__grid.pgal__grid--solo img { height: auto; }

/* Aperçu de l'éditeur : pas d'animation d'entrée, tout est affiché dans son
   état final (équivalent du mode « mouvement réduit »). */
.ls-editeur .preloader { display: none; }
.ls-editeur [data-mask] { clip-path: none; }
.ls-editeur [data-mask] img { transform: none; }
