/* Sous-lot 4 (2026-08-14) : en Legacy, le H1 de chaque page interne est rendu par le master
   partage (Legacy/employment/MasterPageElecJobs.master) a l'interieur d'une div
   ".browsecattitle" avec style="text-align:center" inline - un comportement transverse a
   toutes les pages du site public, pas une classe a ajouter page par page. Les Razor Pages de
   Core n'ont pas de wrapper de layout equivalent par page ; cette regle reproduit le meme
   resultat visuel (centrage) sans dupliquer le style inline sur chaque vue.
   Verifie en direct sur elec-jobs.fr (Account/Login) : #333333, font-weight 500 - deja fournis
   par stylesheet.css (regle h1 generique) une fois le fond blanc de .PageContent en place
   (sous-lot 1), seul le centrage manquait. */
main h1 {
    text-align: center;
}

/* Sous-lot VT-06 (J8) : .resultsReturned (Jobs/Search) est un <h1> pris à tort par la règle
   ci-dessus - stylesheet.css lui donne déjà text-align:left explicitement (vérifié en direct :
   text-align:left, float:none à 1280px), la centrer était une régression du sous-lot 4. */
main h1.resultsReturned {
    text-align: left;
}

/* Les sous-titres des 3 annuaires (Employers/Formations/Partners) sont un <h2> chez Legacy
   (Formation.aspx.cs/Partenaire.aspx.cs, .ElecJobsOrange.BoldFontElecJobs) au lieu d'un
   second <h1> (BrowseEmployers.aspx.cs) - incohérence Legacy elle-même, reproduite telle
   quelle. Ce <h2> hérite du même centrage que le <h1> via la div wrapper Legacy (text-align
   est une propriété héritée) ; ciblé ici explicitement puisque Core n'a pas ce wrapper. */
main h2.ElecJobsOrange.BoldFontElecJobs {
    text-align: center;
}

/* Sous-lot VT-01 (2026-08-18) : #maincontainer.wrapper-inner a été restauré dans _Layout.cshtml
   (verification-terrain T1) - les deux règles ci-dessous, qui compensaient explicitement son
   absence, sont potentiellement redondantes désormais (aucune régression constatée à 375/900/
   1280/1600px avec la nouvelle enveloppe en place). Conservées telles quelles par prudence : leur
   retrait nécessiterait un balayage exhaustif de tous les breakpoints, hors périmètre de VT-01. */
/* Sous-lot 5 (2026-08-14) : .Header1Wrapper (position:fixed, sous-lot 2) n'a jamais de "top"
   explicite dans stylesheet.css - Legacy s'appuie sur la position statique par défaut, qui vaut
   0 chez Legacy (l'élément est display:block plein largeur, premier enfant réel de
   #maincontainer.wrapper-inner). Vérifié en direct : sur Core, sans ce wrapper englobant,
   la position statique calculée par le navigateur pour ce même élément n'est pas 0 mais 170px
   (= la valeur de margin-top de .mainbody-inner, un frère plus bas dans le DOM) - un écart de
   calcul de position statique propre à la structure DOM de Core, pas une règle Legacy manquante.
   Fixé explicitement plutôt que de reproduire #maincontainer (qui n'apporte rien d'autre ici,
   cf. sous-lot 3 sur .FooterWrapper). */
.Header1Wrapper {
    top: 0;
}

/* Sous-lot 12 (2026-08-14) : débordement horizontal transverse de 15px confirmé sur toutes les
   pages entre 768px et 1200px de large (ex. viewport 900px : scrollWidth 915px, alors que
   elec-jobs.fr en direct à la même largeur ne déborde jamais - scrollWidth === clientWidth).
   Cause racine : Legacy/App_Themes/ElecJobs/StyleSheet.css l.1035-1040 donne à
   #maincontainer.wrapper-inner (l'enveloppe englobante de Legacy, absente chez Core - même
   lacune structurelle déjà documentée ci-dessus pour .Header1Wrapper) un overflow-x:hidden qui
   absorbe silencieusement le débordement -15px de .row.PageContent (marge négative Bootstrap)
   quand .mainbody-inner (padding:0 explicite, l.1611-1701) n'est pas encore contraint par son
   max-width (col. moins de 1200px). Sans cette enveloppe, .row.PageContent déborde du viewport
   d'exactement 15px chez Core. Reproduit ici sur <body> plutôt que d'ajouter l'enveloppe
   complète (même raisonnement que .Header1Wrapper : #maincontainer n'apporte rien d'autre ici). */
html, body {
    overflow-x: hidden;
}

/* Sous-lot VT-05b (retour terrain utilisateur, 2026-08-18) : .mainbody-inner{margin-top:170px}
   (stylesheet.css, >=991px) compense la hauteur du header fixe sur les pages Legacy SANS bannière
   propre (MasterPageElecJobs.master). La home (MasterPageElecJobsHome.master) a son propre
   conteneur .WrapperHomePage, sans cette marge, car .div_background_slideshow porte déjà
   margin-top:218px pour la même compensation - vérifié en direct : Legacy affiche l'image à 218px
   du haut, le port (avant ce correctif) l'affichait à 388px (170+218) car _Layout.cshtml partage
   .mainbody-inner entre toutes les pages, contrairement aux deux master pages Legacy. */
@media (min-width: 991px) {
    body.home-page .mainbody-inner {
        margin-top: 0;
    }
}

/* Sous-lot VT-05b (retour terrain, points 2 et 7) : la barre de recherche hero (z-index:100,
   stylesheet.css, répété par breakpoint) et les flèches du carrousel "Tops conseils" (z-index:10
   sur les .slider-column, appliqué même en position:static car ce sont des enfants flex de
   .ArtBox - la spec CSS Flexbox rend z-index actif sur les items flex indépendamment de
   position) passent au-dessus de la nav fixe (.Header1Wrapper, z-index:2) pendant le scroll.
   Déviation assumée de la fidélité CSS ligne à ligne pour un rendu fidèle : le développeur a
   confirmé sur rendu réel que la nav doit toujours rester au premier plan. */
.qsearchdiv,
.homepagesearchbar,
#ArticlesHomePageColumns_PanelPrevious,
#ArticlesHomePageColumns_PanelNext {
    z-index: 1 !important;
}

/* Correction terrain : Legacy/controls/MyAccountListingsDisplay.ascx rend les 7 actions du menu
   "..." (Resumes/Index, Employer/Listings) en asp:HyperLink (donc des <a>) ; ce port durcit
   Arrêter/Copie/Effacer/Publier en <button> dans un <form> (CSRF, déjà décidé), ce qui leur fait
   perdre le display:block/survol orange de stylesheet.css's ".MenuCV a" (qui ne cible que les
   <a>) - rendu en ligne au lieu de la colonne, sans survol. Ajouté ici (site.css, chargé en
   dernier) plutôt que dans stylesheet.css : cette règle précise, ajoutée directement dans
   stylesheet.css, n'apparaissait pas dans le CSSOM du navigateur (rules manquantes juste après
   son point d'insertion, sans lien avec son propre contenu - reproductible en isolant le même
   texte ailleurs) - signe d'une corruption préexistante localisée dans ce fichier de 290 Ko,
   indépendante de cette correction. Non résolue ici (hors périmètre de ce sous-lot), contournée. */
.MenuCV button {
    display: block;
    width: 100%;
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
}

.MenuCV button:hover {
    color: #ee7154;
}

/* Correction terrain (retour développeur, bouton "Toutes nos offres !" non cliquable) : la carte
   du carrousel "offres d'emploi à la une" (.featured-card, Employers/Index.cshtml et
   Employer/Detail.cshtml - même patron, même classe) a une hauteur fixe de 350px, mais son bloc
   de contenu interne (`<div style="padding:20px;height:100%;">`, copié tel quel de
   Legacy/employment/BrowseEmployers.aspx L281 / EntrepriseDetails.aspx) calcule "100%" de la
   hauteur du parent SANS tenir compte des ~70px déjà consommés par les 2 blocs qui le précèdent
   dans la même carte (bandeau de type de contrat + ligne de date) - un vrai bug Legacy, la
   somme dépasse systématiquement les 350px déclarés. Avec le overflow:visible par défaut, ce
   débordement (confirmé ~110px) recouvrait invisiblement le bouton "Toutes nos offres !" placé
   juste après le carrousel, le rendant non cliquable - même mécanisme que le débordement de
   pagination déjà corrigé sur .BoxGlobalJob (Jobs/Search). Ajouté ici plutôt que dans le style
   inline des 2 pages : classe partagée, un seul correctif couvre les deux. */
.featured-card {
    overflow: hidden;
}

/* Correction terrain (page "Politique de protection des données", mention "Dernière mise à jour :"
   non orange) : Legacy/App_Themes/elecjobs/StyleSheet.css porte déjà la règle exacte -
   `form[action="./privacy.aspx"] strong, form[action="./cookiemanagement.aspx"] strong,
   form[action="./terms.aspx"] strong, form[action="./cgu-cgv.aspx"] h3 { color: #E96E52; }` (même
   couleur, vérifiée en direct sur elec-jobs.fr : rgb(233,110,82)) - mais ce sélecteur suppose un
   <form action="..."> englobant le contenu, structure ASP.NET WebForms absente de ce port (le
   contenu CMS de Content/Show.cshtml n'est jamais enveloppé dans un <form> nommé par page). Ciblé
   ici via `.legal-body` (classe commune aux 4 pages CMS génériques - CGV, Informations légales,
   Gestion des cookies, Politique de protection des données) plutôt que reproduire l'enveloppe
   <form>, plus fragile et sans bénéfice ici. */
.legal-body strong {
    color: #E96E52;
}

/* Correction terrain (2026-08-28, capture d'écran Legacy fournie par le développeur) :
   stylesheet.css ".mgtopnav .navbar-nav > li > a" (importé via elecjobs-em.css) donne à chaque
   lien du menu mobile une pilule orange pleine (background:#ee7154, border-radius:30px,
   display:flex) - ce sélecteur ne cible que les <a>, jamais le <button> "Se déconnecter" (resté
   un <button> dans un <form> POST pour la déconnexion, CSRF) qui héritait donc à tort d'un style
   neutre (sous-lot 4, hypothèse erronée que les <a> voisins étaient neutres). Mêmes déclarations
   reproduites explicitement ici, même motif que ".MenuCV button" ci-dessus. */
/* Correction terrain (2026-08-28, Candidatures reçues) : .mgpanel-headingaccount
   (stylesheet.css, >=768px) porte "margin:0px 0 0 0", qui écrase les marges négatives
   -15px de Bootstrap sur .row - la ligne d'en-tête (.ManageCandidatHeader, qui cumule
   les deux classes) devient alors 30px plus étroite que les lignes de données
   (.ManageCandidatBox, restées sur les marges .row par défaut) : mesuré en direct,
   1170px contre 1200px à 1280px de large. Restauré ici uniquement pour ce couple de
   classes (Employer/Applicants/Index.cshtml) plutôt que sur .mgpanel-headingaccount
   globalement, partagée avec d'autres pages (Mes offres, Historique commandes) hors
   périmètre de cette correction. */
@media (min-width: 768px) {
    .ManageCandidatHeader.mgpanel-headingaccount {
        margin: 0 -15px;
    }
}

/* Correction terrain (2026-09-02, Mes candidatures) : la règle ci-dessus fuit sur cette page,
   qui réutilise le même couple de classes (.ManageCandidatHeader.mgpanel-headingaccount) mais
   dans un contexte différent - ses lignes de données (.flex-space, Account/Applications.cshtml)
   n'ont PAS la classe .row et donc aucune marge négative Bootstrap, contrairement à
   .ManageCandidatBox sur Employer/Applicants/Index.cshtml. La marge -15px réintroduite ci-dessus
   fait alors déborder l'en-tête des deux côtés du cadre #MyApplications (mesuré en direct :
   en-tête 34-1231px contre cadre 47-1217px). Neutralisée ici uniquement dans ce cadre plutôt que
   sur la règle partagée. */
@media (min-width: 768px) {
    #MyApplications .ManageCandidatHeader.mgpanel-headingaccount {
        margin: 0;
    }
}

/* Correction terrain (2026-08-28, Fiche candidature) : initiative développeur - la page était
   jugée visuellement déconnectée du reste du site (aucun orange de marque). Libellés discrets
   ajoutés devant chaque information candidat (ex. "Nom :") et liens cliquables (mailto/tel/CV)
   recolorés dans l'orange de marque (#ee7154, même valeur que .ElecJobsOrange) au lieu du bleu
   Bootstrap par défaut - le bouton "Mettre à jour" (mg-btn-primary) n'est pas concerné, déjà
   cohérent visuellement. */
.applicant-detail-label {
    color: #999;
    font-weight: normal;
}

/* Correction terrain (2026-08-28, Fiche candidature) : alignement à gauche demandé par le
   développeur - libellés alignés entre eux (colonne 1), valeurs alignées entre elles (colonne 2),
   plutôt que le texte centré hérité de .FontElecJobs sur ce bloc. Les lignes sans libellé (2e
   ligne d'adresse, "Voir le CV") portent un <span></span> vide en colonne 1 pour garder leur
   valeur alignée avec les autres. */
.applicant-detail-grid {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 6px;
    row-gap: 4px;
    justify-content: start;
    text-align: left;
}

.applicant-detail-link {
    color: #ee7154;
}

.applicant-detail-link:hover,
.applicant-detail-link:focus {
    color: #241f21;
}

/* Correction terrain (2026-08-28, Fiche candidature) : "Retour à la liste des candidats" restylé
   en bouton secondaire gris (initiative développeur), pour ne pas concurrencer visuellement
   "Mettre à jour" (orange, .mg-btn-primary). Classe dédiée plutôt que .mg-btn-secondary
   (stylesheet.css) : une règle ".btn" non scopée plus loin dans ce même fichier (L11359,
   manifestement destinée à un autre contexte - "Contacter le candidat"/"Voir le CV Candidat")
   écrase le fond gris de .mg-btn-secondary en orange sur tout le site (bug préexistant, hors
   périmètre ici) - contourné en stylant cette classe dédiée dans site.css, chargé en dernier. */
.applicant-back-btn {
    background: #555;
    color: #fff;
    border: 1px solid #555;
}

.applicant-back-btn:hover,
.applicant-back-btn:focus {
    background: #333;
    color: #fff;
    border: 1px solid #333;
}

@media (max-width: 992px) {
    .mgtopnav .navbar-nav > li > form > button.mobile-logout-pill {
        padding: 3px 7px;
        background-color: #ee7154;
        border-radius: 30px;
        color: white;
        font-size: 18px;
        text-decoration: none;
        line-height: 19px;
        width: 41vw;
        text-align: center;
        margin: 5px 0;
        max-width: 356px;
        height: 42px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: none;
        font: inherit;
        cursor: pointer;
    }
}
