/* =========================================================
   CORRECTIFS MOBILE GLOBAUX (chargé sur toutes les pages par base.html.twig)
   ========================================================= */

/* Les blocs animés « fade-left / fade-right » partent décalés de 30 px sur le côté :
   sur mobile, ce décalage élargit la page et permet un défilement horizontal parasite.
   On les fait donc apparaître par le bas uniquement. */
@media (max-width: 1024px) {
    .js-animate.fade-left:not(.is-visible),
    .js-animate.fade-right:not(.is-visible) {
        transform: translateY(30px);
    }
}

/* =========================================================
   MARQUE : « enerev » s'écrit toujours en minuscules et en gras, même dans un titre ou un libellé en capitales
   ========================================================= */
.brand-name {
    font-weight: 800;
    letter-spacing: inherit;
    text-transform: none;
}

/* =========================================================
   TEXTES JUSTIFIÉS (classe posée par js/justify.js sur les paragraphes et puces longs)
   Les césures automatiques (html lang="fr") évitent les grands blancs entre les mots.
   ========================================================= */
.is-justified {
    text-align: justify;
    text-justify: inter-word;
    -webkit-hyphens: auto;
    hyphens: auto;
}

/* =========================================================
   TITRES DE PAGE (H1) HARMONISÉS
   - grands bandeaux (texte à gauche, photo à droite) : 2,5 rem ;
   - bandeaux compacts vert nuit et titres de pages légales : 2 rem ;
   Même police, même graisse (600), même interlignage et même couleur partout.
   ========================================================= */
body h1.hero-title,
body h1.pro-intro__title,
body h1.merci__title {
    color: #0A5048;
    font-size: 2.5rem !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    line-height: 1.2 !important;
}

body .page-hero h1,
body .team-hero h1,
body .article-hero--solid h1,
body .cb-card h1 {
    font-size: 2rem !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    line-height: 1.2 !important;
}

@media (max-width: 768px) {
    body h1.hero-title,
    body h1.pro-intro__title,
    body h1.merci__title {
        font-size: 2rem !important;
    }

    body .page-hero h1,
    body .team-hero h1,
    body .article-hero--solid h1,
    body .cb-card h1 {
        font-size: 1.65rem !important;
    }
}

/* =========================================================
   BANDEAUX D'ACCUEIL DES PAGES (accueil, solutions, professionnel, bureau d'études) HARMONISÉS
   Même structure partout : titre, sous-titre (turquoise, gras), texte, bouton de même taille.
   ========================================================= */
body .hero-slogan {
    margin: 0 0 0.6rem !important;
    color: #0A5048;
    font-size: 2.5rem !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    line-height: 1.2 !important;
}

body h1.hero-title,
body h1.pro-intro__title {
    margin: 0 0 0.6rem !important;
}

body .hero-subtitle,
body .hero-tagline,
body .pro-intro__tag {
    margin: 0 0 0.9rem !important;
    color: #0D8A7E !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
}

body .hero-lead,
body .hero-text,
body .pro-intro__lead,
body .hero-content > p:not(.hero-slogan):not(.hero-tagline),
body .pro-intro__content > p:not(.pro-intro__tag) {
    margin: 0 0 0.9rem !important;
    color: #4A5350;
    font-size: 1.05rem !important;
    font-weight: 400 !important;
    line-height: 1.7 !important;
    text-align: left !important;
}

body .hero-actions,
body .pro-intro__actions {
    margin-top: 1.6rem !important;
}

@media (max-width: 768px) {
    body .hero-slogan {
        font-size: 2rem !important;
    }
}

/* Boutons des bandeaux : exactement la même taille sur toutes les pages (quel que soit le libellé) */
body .hero-actions a.js-cta-simulateur,
body .pro-intro__actions a.js-cta-simulateur {
    justify-content: center !important;
    min-width: 26rem;
}

@media (max-width: 600px) {
    body .hero-actions a.js-cta-simulateur,
    body .pro-intro__actions a.js-cta-simulateur {
        min-width: 0;
        width: 100% !important;
    }
}

/* =========================================================
   IMAGES : width/height explicites dans le HTML (évite les sauts de mise en page) sans déformer
   les images : la hauteur redevient automatique, sauf si une règle de la page en impose une.
   ========================================================= */
:where(img[width][height]) {
    height: auto;
}