/* Artizona Client — harmonisation visuelle globale
   Référence : fond Contact + hiérarchie/taille du titre Artisans. */

/* Une grille commune à toutes les pages client (référence Accueil / Avis).
   La zone de retour est réservée, même lorsque son lien n'est pas affiché. */
body.client-unified-page{--client-page-width:1120px;--client-page-inset:40px;}
body.client-unified-page .container,
body.client-unified-page .legal-container{
    width:min(var(--client-page-width),calc(100% - var(--client-page-inset)))!important;
    margin-left:auto!important;margin-right:auto!important;
}
body.client-unified-page > .artizona-backbar{
    height:40px;box-sizing:border-box;padding:14px 0 0!important;
}
body.client-unified-page .back-request{
    display:inline-flex;gap:7px;color:#66737a;font-size:.92rem;font-weight:800;text-decoration:none;
}
body.client-unified-page:not(.client-home) > main{
    padding-top:32px!important;
}
body.client-unified-page:not(.client-home) .project-shell{
    width:100%;max-width:none;display:flex;flex-direction:column;
}
body.client-unified-page:not(.client-home) .project-shell > .project-intro{
    order:-1;
}
body.client-unified-page:not(.client-home) :is(.project-intro,.contact-page-intro,.client-account-heading,.client-page-intro){
    width:100%;max-width:none;margin:0 0 30px!important;padding:0!important;
}
body.client-unified-page:not(.client-home) :is(.reviews-hero,.artisan-discovery-hero,.legal-hero){
    padding-top:0!important;padding-bottom:30px!important;
}
body.client-unified-page:not(.client-home) :is(.reviews-hero-grid,.artisan-discovery-hero-inner,.tracking-intro,.app-notifications-head){
    align-items:flex-start!important;
}
body.client-unified-page:not(.client-home) :is(.eyebrow,.reviews-eyebrow,.legal-eyebrow,.session-expired-eyebrow,.incident-brand){
    margin:0 0 8px!important;color:#285d50!important;
    font-size:.78rem!important;line-height:1.5!important;font-weight:900!important;
    letter-spacing:.08em!important;text-transform:uppercase;
}
body.client-unified-page:not(.client-home) main h1{
    margin:0 0 16px!important;font-size:clamp(2.2rem,5vw,4.4rem)!important;
    line-height:1.02!important;letter-spacing:-.045em!important;
}
body.client-unified-page:not(.client-home) :is(.project-intro,.contact-page-intro,.client-account-heading,.client-page-intro) > p:not(.eyebrow),
body.client-unified-page:not(.client-home) :is(.reviews-lead,.artisan-discovery-intro){
    max-width:780px;margin:0!important;color:#667085;line-height:1.65;font-size:1.08rem;
}
/* Les formulaires restent lisibles mais sont ancrés sur la même ligne gauche. */
body.client-unified-page:not(.client-home) :is(.contact-page-card,.incident-card,.account-lifecycle-card,.form-card,.confirmation-card){
    width:100%;max-width:820px;margin-left:0!important;margin-right:0!important;box-sizing:border-box;
}
body.client-unified-page:not(.client-home) .tracking-shell > :is(.form-card,.request-card){max-width:none;}
body.client-unified-page .app-notifications-wrap{
    width:min(var(--client-page-width),calc(100% - var(--client-page-inset)));
    max-width:none;margin:0 auto 70px;padding-left:0;padding-right:0;
}
body.client-unified-page .app-notifications-head{margin-bottom:30px;}
body.client-unified-page .legal-layout{margin-top:0!important;}
body.client-unified-page .client-dashboard{max-width:none;}
body.client-unified-page .quality-shell{
    width:min(var(--client-page-width),calc(100% - var(--client-page-inset)));
    max-width:none;margin:0 auto;padding-left:0;padding-right:0;
}
body.client-unified-page .quality-card{max-width:820px;box-sizing:border-box;}
body.client-unified-page .session-expired-main{display:block;padding-left:0;padding-right:0;}
body.client-unified-page .session-expired-container{
    width:min(var(--client-page-width),calc(100% - var(--client-page-inset)));max-width:none;
}
body.client-unified-page .session-expired-card{max-width:820px;}
body.client-unified-page .project-shell > .client-emergency-badge{align-self:flex-start;margin-bottom:16px;}
body.client-unified-page .followup-card{width:100%;max-width:820px;box-sizing:border-box;}
@media(max-width:620px){
    body.client-unified-page{--client-page-inset:28px;}
    body.client-unified-page > .artizona-backbar{height:36px;padding-top:10px!important;}
    body.client-unified-page:not(.client-home) > main{padding-top:24px!important;}
    body.client-unified-page:not(.client-home) main h1{font-size:clamp(2.05rem,10vw,3rem)!important;line-height:1.04!important;}
    body.client-unified-page:not(.client-home) :is(.project-intro,.contact-page-intro,.client-account-heading,.client-page-intro){margin-bottom:24px!important;}
}

body.client-unified-page:not(.client-home){
    background:var(--bg,#f6f5f2);
}

/* Le fond général reste continu entre le header, le contenu et le footer.
   Les cartes et formulaires conservent volontairement leur fond blanc. */
body.client-unified-page:not(.client-home) > main,
body.client-unified-page:not(.client-home) .artisan-discovery-page,
body.client-unified-page:not(.client-home) .project-main,
body.client-unified-page:not(.client-home) .legal-main,
body.client-unified-page:not(.client-home) .client-account-main,
body.client-unified-page:not(.client-home) .app-notifications-wrap,
body.client-unified-page:not(.client-home) .incident-page-shell,
body.client-unified-page:not(.client-home) .account-lifecycle-main,
body.client-unified-page:not(.client-home) .contact-page-shell{
    background:var(--bg,#f6f5f2)!important;
}

/* Les anciens bandeaux de page ne changent plus de couleur derrière le titre. */
body.client-unified-page:not(.client-home) .artisan-discovery-hero,
body.client-unified-page:not(.client-home) .reviews-hero,
body.client-unified-page:not(.client-home) .legal-hero{
    background:transparent!important;
}

/* Un seul niveau H1 côté Particulier : même présence que la page Artisans. */
body.client-unified-page:not(.client-home) main h1{
    max-width:760px;
    margin:7px 0 16px;
    font-size:clamp(2.2rem,5vw,4.4rem);
    line-height:1.02;
    letter-spacing:-.045em;
    text-align:left;
}

body.client-unified-page:not(.client-home) main h1 span{
    color:var(--accent,#285d50);
}

/* Même rythme pour les zones de titre, quelle que soit l'ancienne page. */
body.client-unified-page:not(.client-home) .project-intro,
body.client-unified-page:not(.client-home) .client-account-heading,
body.client-unified-page:not(.client-home) .app-notifications-head,
body.client-unified-page:not(.client-home) .artisan-discovery-hero-inner,
body.client-unified-page:not(.client-home) .reviews-hero-grid,
body.client-unified-page:not(.client-home) .legal-hero .legal-container{
    text-align:left;
}

body.client-unified-page:not(.client-home) .eyebrow,
body.client-unified-page:not(.client-home) .legal-eyebrow,
body.client-unified-page:not(.client-home) .reviews-eyebrow{
    margin-bottom:7px;
}

@media(max-width:620px){
    body.client-unified-page:not(.client-home) main h1{
        margin-top:5px;
        margin-bottom:13px;
        font-size:clamp(2.05rem,10vw,3rem);
        line-height:1.04;
    }
}

/* Correctif pages légales après harmonisation du fond clair.
   Les anciens héros étaient conçus sur fond sombre et conservaient donc
   des textes blancs. Le fond est désormais celui des pages client : on
   rétablit ici une palette lisible sans modifier le contenu des pages. */
body.client-unified-page:not(.client-home) .legal-hero{
    color:var(--text,#172033)!important;
}
body.client-unified-page:not(.client-home) .legal-hero .legal-breadcrumb{
    color:#53605b!important;
}
body.client-unified-page:not(.client-home) .legal-hero .legal-breadcrumb:hover{
    color:var(--accent,#285d50)!important;
}
body.client-unified-page:not(.client-home) .legal-hero .legal-eyebrow{
    color:var(--accent,#285d50)!important;
}
body.client-unified-page:not(.client-home) .legal-hero h1{
    color:var(--text,#172033)!important;
}
body.client-unified-page:not(.client-home) .legal-hero > .legal-container > p:not(.legal-eyebrow){
    color:#667085!important;
}
body.client-unified-page:not(.client-home) .legal-hero .legal-meta span{
    border-color:#d9dfdc!important;
    background:rgba(255,255,255,.72)!important;
    color:#53605b!important;
}

/* Message bloquant de la recherche : l'erreur doit rester immédiatement
   identifiable, quelles que soient les règles propres à la page. */
body.client-unified-page .summary-alert.summary-alert-error{
    margin-bottom:18px;
    border:1px solid #e6a8a2;
    background:#fff0ef;
    color:#a61f17;
}
body.client-unified-page .summary-alert.summary-alert-error strong,
body.client-unified-page .summary-alert.summary-alert-error p{
    color:inherit!important;
}
/* Le récapitulatif et sa validation partagent toujours les mêmes bords. */
body.client-unified-page .project-shell > .validation-card{
    width:100%;max-width:none;
}

/* Repère visuel du parcours dépannage, défini côté serveur à chaque étape.
   Les champs et messages d'erreur gardent leurs styles propres. */
body.client-unified-page.client-urgent-journey .project-shell > .form-card{
    border:1px solid #d98b83!important;
}

/* Grille client centrée de 1000 px sur PC, sans colonne publicitaire.
   L'accueil et les affichages tablette/mobile conservent leurs dimensions. */
@media (min-width:901px){
    body.client-unified-page:not(.client-home):not(.contact-page--pro){
        --client-page-width:1000px;
        --client-content-width:1000px;
    }
    /* Le menu conserve la largeur d'origine, indépendante du contenu. */
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .client-global-header{
        --client-page-width:1120px;
    }

    body.client-unified-page:not(.client-home):not(.contact-page--pro) .project-shell,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .contact-page-intro,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .contact-page-card,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .incident-page-shell > .container > *,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .account-lifecycle-main > .container > *,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .client-account-main > .container > *,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .client-page-intro,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .form-card,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .confirmation-card,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .followup-card{
        width:100%!important;
        max-width:var(--client-content-width)!important;
        margin-left:0!important;
        margin-right:auto!important;
        box-sizing:border-box;
    }

    body.client-unified-page:not(.client-home):not(.contact-page--pro) .app-notifications-wrap,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .quality-shell,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .session-expired-container,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .reviews-hero-grid,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .reviews-layout,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .reviews-cta-card,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .artisan-discovery-hero-inner,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .artisan-search-shell,
    body.client-unified-page:not(.client-home):not(.contact-page--pro) .legal-container{
        width:min(var(--client-content-width),calc(100% - var(--client-page-inset)))!important;
        max-width:var(--client-content-width)!important;
        margin-left:auto!important;
        margin-right:auto!important;
        box-sizing:border-box;
    }

    body.client-unified-page:not(.client-home):not(.contact-page--pro) .tracking-shell > :is(.form-card,.request-card){
        max-width:var(--client-content-width)!important;
    }
    body.client-unified-page:not(.client-home):not(.contact-page--pro) :is(.quality-card,.session-expired-card){
        width:100%;max-width:var(--client-content-width)!important;
        box-sizing:border-box;
    }
}
