/* =====================================================================
   LPS Entreprise — Remap des icônes (icons-lps.css)
   ---------------------------------------------------------------------
   Les polices d'icônes custom du thème (phosphor, pricons — icomoon Haru)
   n'ont jamais été livrées avec la page enregistrée → glyphes « carrés ».
   Comme elles sont irrécupérables, on remappe les classes UTILISÉES vers
   Font Awesome 5 Free (auto-hébergée dans /assets/webfonts/, codepoints
   identiques à all.min.css). Mêmes icônes, même emplacement.
   IMPORTANT : à charger APRÈS le CSS du thème (phosphor.css/pricons.css).
   ===================================================================== */

/* Filet de sécurité : toute icône phosphor/pricon non remappée affiche un
   petit rond neutre au lieu d'un carré. Les remaps précis ci-dessous gagnent. */
[class^="phosphor-"]::before, [class*=" phosphor-"]::before,
[class^="pricon-"]::before,   [class*=" pricon-"]::before {
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    content: "\f111" !important;
    font-style: normal;
    -webkit-font-smoothing: antialiased;
}

/* ---- phosphor → Font Awesome (icônes réellement utilisées) ---- */
.phosphor-caret-down::before          { content: "\f078" !important; } /* chevron-down */
.phosphor-caret-up::before            { content: "\f077" !important; } /* chevron-up */
.phosphor-caret-right::before         { content: "\f054" !important; } /* chevron-right */
.phosphor-phone-call::before          { content: "\f095" !important; } /* phone */
.phosphor-phone::before               { content: "\f095" !important; }
.phosphor-envelope-simple-open::before{ content: "\f2b6" !important; } /* envelope-open */
.phosphor-envelope-simple::before     { content: "\f0e0" !important; } /* envelope */
.phosphor-arrow-right::before         { content: "\f061" !important; }
.phosphor-house::before               { content: "\f015" !important; } /* home */
.phosphor-list::before                { content: "\f0c9" !important; } /* bars */
.phosphor-squares-four::before        { content: "\f009" !important; } /* th-large */
.phosphor-map-pin::before             { content: "\f3c5" !important; } /* map-marker-alt */
.phosphor-clock::before               { content: "\f017" !important; }
.phosphor-note-pencil::before         { content: "\f304" !important; } /* pen */
.phosphor-paint-bucket::before        { content: "\f1fc" !important; } /* paint-brush */

/* ---- pricon → Font Awesome (pages héritées : accueil, services) ---- */
.pricon-printer::before       { content: "\f02f" !important; }
.pricon-package::before       { content: "\f466" !important; } /* box */
.pricon-box-order::before     { content: "\f466" !important; }
.pricon-database::before      { content: "\f1c0" !important; }
.pricon-delivery::before      { content: "\f0d1" !important; } /* truck */
.pricon-credit-card::before   { content: "\f09d" !important; }
.pricon-no-dollar::before     { content: "\f05e" !important; } /* ban */
.pricon-equalizer::before     { content: "\f1de" !important; } /* sliders-h */
.pricon-mix-circle::before    { content: "\f074" !important; } /* random */
.pricon-globe-address::before { content: "\f0ac" !important; } /* globe */
.pricon-ecology::before       { content: "\f06c" !important; } /* leaf */
.pricon-cube::before          { content: "\f1b2" !important; }
.pricon-design::before        { content: "\f1fc" !important; } /* paint-brush */
.pricon-tree::before          { content: "\f1bb" !important; }

/* ---- Puces des listes (haru-text-list) : check en SVG inline on-brand ----
   Le thème utilisait un glyphe phosphor \e925 (police absente → carré) dans
   un badge teal hors charte. On le remplace par une coche SVG (data-URI, donc
   AUCUNE dépendance police → jamais de 404) dans un badge teinte de marque. */
.haru-text-list--style-1 .haru-text-list__item::before,
.haru-text-list--style-2 .haru-text-list__item::before {
    content: "" !important;
    background-color: var(--color-primary-tint) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239D004F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 16px 16px !important;
}

/* ---- FAQ accordéon : on retire le dégradé pêche du thème sur l'item actif.
   Item actif = fond blanc propre (comme les items fermés), accent on-brand
   discret via une bordure gauche + chevron magenta. ---- */
.haru-accordion--style-3 .haru-tab-title.active {
    background: #fff !important;
    border-left: 3px solid var(--color-primary) !important;
}
.haru-accordion--style-3 .haru-tab-title.active .haru-accordion-title {
    color: var(--color-ink) !important;
}
.haru-accordion--style-3 .haru-tab-title .haru-accordion-icon i,
.haru-accordion--style-3 .haru-tab-title .haru-accordion-icon .lps-icon {
    color: var(--color-primary) !important;
}

/* =====================================================================
   Base des icônes SVG inline (helper PHP `icon()`)
   ---------------------------------------------------------------------
   Aucune police : chaque <svg.lps-icon> est dessiné en `currentColor`,
   donc il reprend la couleur du texte/conteneur (souvent la couleur de
   marque). Taille par défaut = 1em → suit la font-size du conteneur,
   exactement comme l'ancienne police d'icônes.
   ===================================================================== */
.lps-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;   /* aligne sur la ligne de base du texte */
    flex: none;
    color: inherit;
    fill: none;
    stroke: currentColor;
    line-height: 0;
}
/* Icônes pleines (notation + logos de marque) : remplies, sans contour. */
.lps-icon--star,
.lps-icon--flame,
.lps-icon--twitter,
.lps-icon--facebook,
.lps-icon--instagram,
.lps-icon--youtube { fill: currentColor; stroke: none; }

/* Les conteneurs d'icônes du thème fixaient la taille via font-size (héritée
   par le <svg> en 1em) ; on garde l'affichage inline. */
.haru-icon-box__icon .lps-icon,
.haru-social__icon .lps-icon,
.haru-contact__icon .lps-icon { display: inline-block; }

/* ---------------------------------------------------------------------
   Neutralisation des règles SVG héritées du thème
   ---------------------------------------------------------------------
   Le thème ciblait « .haru-icon-box__icon svg path { fill: <marque> } »
   (icônes PLEINES d'origine). Nos pictos de cartes sont en CONTOUR
   (style Lucide) → on rétablit fill:none + stroke:currentColor pour qu'ils
   ne deviennent pas des aplats magenta. La couleur vient de
   `.haru-icon-box__icon { color }` via currentColor.
   --------------------------------------------------------------------- */
.haru-icon-box__icon .lps-icon,
.haru-icon-box__icon .lps-icon path,
.haru-icon-box__icon .lps-icon circle,
.haru-icon-box__icon .lps-icon rect,
.haru-icon-box__icon .lps-icon line,
.haru-icon-box__icon .lps-icon polyline,
.haru-icon-box__icon .lps-icon polygon {
    fill: none !important;
    stroke: currentColor !important;
}

/* Réseaux sociaux : le thème fixait « svg path { fill:#9b9b9b } » (couleur
   figée → pas de survol). On fait suivre la couleur du conteneur pour que
   le hover on-brand (`.haru-social__icon` → color marque) recolore le logo. */
.haru-social__icon .lps-icon,
.haru-social__icon .lps-icon path {
    fill: currentColor !important;
    stroke: none !important;
}

/* Chevron du menu (ex-haruicons) : un cran plus discret que le texte. */
.sub-arrow .lps-icon { width: .72em; height: .72em; vertical-align: middle; }

/* ---------------------------------------------------------------------
   Pseudo-éléments à glyphe encore vivants (générés en CSS, pas en markup)
   ---------------------------------------------------------------------
   Ces deux pictos venaient de polices absentes (haruicons \e919 / phosphor
   \e90e) → carrés vides. On les remplace par des SVG inline (data-URI) :
   aucune dépendance police. On conserve les fonds/tailles d'origine.
   --------------------------------------------------------------------- */

/* (1) Bouton « fermer » du bandeau USP (topbar sombre) → croix blanche. */
.haru-close-row--style-1 .close-row-wrap:before {
    content: "" !important;
    font-family: inherit !important;
    display: inline-block;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
}

/* (2) Flèche du badge « Nos réalisations » (grille services) → flèche
   sombre sur fond clair ; au survol le thème passe le fond en marque,
   donc on bascule la flèche en blanc. */
.haru-banner-list__hover-style-1 .haru-banner-list__title:after {
    content: "" !important;
    font-family: inherit !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23111111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 16px 16px !important;
}
.haru-banner-list__hover-style-1:hover .haru-banner-list__title:after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") !important;
}

/* (3) Bouton « Joindre un fichier » (formulaire devis) → icône upload SVG.
   L'original utilisait un glyphe phosphor (\e95a) → police absente → carré.
   Bouton à fond sombre : flèche blanche. */
.contact-form__file-upload:before {
    content: "" !important;
    font-family: inherit !important;
    width: 20px;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' x2='12' y1='3' y2='15'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}

/* (4) Bouton « retour en haut » (coin bas-droite, toutes pages) → chevron SVG.
   L'original utilisait un glyphe phosphor (\e917) → police absente → carré. */
.back-to-top:before {
    content: "" !important;
    font-family: inherit !important;
    display: inline-block;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}
