/*
 * Bandeau et panneau de consentement (tarteaucitron) : surcharges aux
 * couleurs du site. Le CSS du fournisseur (js/vendor/tarteaucitron/css)
 * n'est jamais modifié.
 *
 * - "Tout accepter" et "Tout refuser" ont exactement le même style
 *   (exigence CNIL), dans le bandeau comme dans le panneau : un style
 *   neutre (gris foncé, contour clair, texte blanc). Aucun rouge ici, il est
 *   réservé aux boutons "Commander" du site.
 * - Ordinateur : encart compact en bas à gauche. Mobile (< 480 px) : pleine
 *   largeur en bas, hauteur réduite au minimum.
 * - Le bandeau passe au-dessus de tout le site : z-index du fournisseur
 *   (2147483645 et plus) contre 100000 au maximum chez nous (toast PWA),
 *   9999 pour la barre #buy-now, 9998 pour le bouton WhatsApp, 9996-9997
 *   pour la bulle FAQ, 10000 pour la fenêtre d'accueil.
 * - Rien ne le chevauche : il se place au-dessus de la barre #buy-now quand
 *   elle est affichée (--mgreprog-buy-now-h) et, sur mobile, WhatsApp et la
 *   bulle FAQ remontent au-dessus de lui (--mgreprog-consent-lift). Les deux
 *   variables sont tenues à jour par components/consent-banner, seulement
 *   tant que le choix n'est pas fait (html.mgreprog-consent-pending).
 */

/* ------------------------------------------------------------ Bandeau */

#tarteaucitronRoot #tarteaucitronAlertBig {
    top: auto !important;
    right: auto !important;
    bottom: calc(16px + var(--mgreprog-buy-now-h, 0px)) !important;
    left: 16px !important;
    width: 380px !important;
    max-width: calc(100vw - 32px);
    margin: 0 !important;
    box-sizing: border-box !important;
    padding: 18px !important;
    background: #141414 !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .55);
    font-family: var(--body-font, "Manrope", Helvetica, Arial, sans-serif);
    /* Supprime les espaces entre les boutons inline-block ; chaque enfant
       fixe sa propre taille ci-dessous. */
    font-size: 0 !important;
    text-align: left !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
    display: block;
    margin: 0 0 14px;
    padding: 0;
    color: rgba(255, 255, 255, .88) !important;
    font-size: 14px !important;
    line-height: 1.5;
    text-align: left;
}

/* "Tout accepter" / "Tout refuser" : côte à côte, même style neutre. */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    display: inline-block;
    box-sizing: border-box;
    width: calc(50% - 4px);
    min-width: 0;
    margin: 0 !important;
    padding: 11px 8px !important;
    background: #262626 !important;
    border: 1px solid rgba(255, 255, 255, .45) !important;
    border-radius: 30px !important;
    color: #fff !important;
    font-family: inherit;
    font-size: 15px !important;
    font-weight: 600;
    line-height: 1.2 !important;
    text-align: center;
    vertical-align: top;
    cursor: pointer;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
    margin-right: 8px !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:focus-visible,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:focus-visible {
    background: #333 !important;
    border-color: #fff !important;
}

/* "Personnaliser" et "Politique de cookies" : liens discrets, dessous. */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
    display: inline-block;
    margin: 12px 18px 0 0 !important;
    padding: 2px 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: rgba(255, 255, 255, .72) !important;
    font-family: inherit;
    font-size: 13px !important;
    font-weight: 500;
    line-height: 1.3 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:focus-visible,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl:focus-visible {
    color: #fff !important;
}

/* Tant que le choix n'est pas fait, sur mobile : WhatsApp et la bulle FAQ
   restent visibles, au-dessus du bandeau. */
@media screen and (max-width: 479px) {
    html.mgreprog-consent-pending #whatsapp-float {
        bottom: max(110px, calc(var(--mgreprog-consent-lift, 0px) + 12px)) !important;
    }

    html.mgreprog-consent-pending #faqchat-toggle {
        bottom: max(178px, calc(var(--mgreprog-consent-lift, 0px) + 76px)) !important;
    }
}

/*
 * ------------------------------------------------------------ Panneau
 *
 * Panneau « Gestion des cookies » (#tarteaucitron), rouvert depuis le bandeau
 * ou le lien du pied de page : fond sombre du bandeau à la place du blanc et
 * du jaune du fournisseur.
 *
 * Égalité Accepter / Refuser (exigence CNIL), à chaque niveau :
 * - "Tout accepter" / "Tout refuser" : le style exact des boutons du bandeau,
 *   quel que soit le choix enregistré. Le choix en cours est signalé de la
 *   même façon pour l'un ou l'autre : un anneau blanc (et la case ☑ du
 *   fournisseur), jamais par une autre couleur.
 * - "Accepter" / "Refuser" d'un service : contour clair tous les deux ; celui
 *   qui correspond au choix en cours est rempli en blanc, qu'il s'agisse
 *   d'accepter ou de refuser.
 */

/* Fond de la page derrière le panneau : assombri au lieu d'éclairci. */
html body.tarteaucitron-modal-open div#tarteaucitronRoot::before,
div#tarteaucitronRoot.tarteaucitronSize-middle.tarteaucitronBeforeVisible::before {
    background: rgba(0, 0, 0, .6) !important;
}

#tarteaucitronRoot #tarteaucitronBack {
    background: #000 !important;
}

#tarteaucitronRoot div#tarteaucitron {
    background: #141414 !important;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .12) !important;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .6);
    font-family: var(--body-font, "Manrope", Helvetica, Arial, sans-serif);
    overflow: hidden;
}

/* Le fournisseur impose color: #333 à chaque élément (#tarteaucitronRoot *),
   illisible sur fond sombre : ici tout hérite de son conteneur. */
#tarteaucitronRoot div#tarteaucitron * {
    color: inherit;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine,
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine:hover,
#tarteaucitron .tarteaucitronBorder,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine:hover,
#tarteaucitron #tarteaucitronInfo,
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle button,
#tarteaucitron #tarteaucitronServices .tarteaucitronDetails,
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle + [id^="tarteaucitronDetails"],
#tarteaucitronRoot div#tarteaucitronSave {
    background: #141414 !important;
    border-color: #141414 !important;
    color: rgba(255, 255, 255, .8) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine {
    border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine {
    border-top: 1px solid rgba(255, 255, 255, .08) !important;
    border-left: 4px solid transparent !important;
}

/* Service dont le choix est enregistré : liseré clair (jaune chez le fournisseur). */
#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsAllowed:not(.tarteaucitronMainLine),
#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsDenied:not(.tarteaucitronMainLine) {
    border-left-color: rgba(255, 255, 255, .6) !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine {
    border-left-color: #141414 !important;
}

/* "Enregistrer" (apparaît après un changement service par service). */
#tarteaucitronRoot div#tarteaucitronSave {
    border-top: 1px solid rgba(255, 255, 255, .12) !important;
}

html body #tarteaucitronRoot button#tarteaucitronSaveButton {
    min-width: 160px;
    padding: 12px 22px !important;
    border: 1px solid #fff !important;
    border-radius: 30px !important;
    background: #fff !important;
    color: #141414 !important;
    font-family: inherit;
    font-size: 15px !important;
    font-weight: 700;
}

html body #tarteaucitronRoot button#tarteaucitronSaveButton:hover,
html body #tarteaucitronRoot button#tarteaucitronSaveButton:focus-visible {
    background: #e5e5e5 !important;
    border-color: #e5e5e5 !important;
}

/* Titres et textes. */
#tarteaucitronRoot #tarteaucitron .tarteaucitronH1,
#tarteaucitronRoot #tarteaucitron .tarteaucitronH2,
#tarteaucitronRoot #tarteaucitron .tarteaucitronH3,
#tarteaucitron #tarteaucitronServices .tarteaucitronTitle button {
    color: #fff !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronH1 {
    font-weight: 700;
}

#tarteaucitron #tarteaucitronInfo {
    border-color: rgba(255, 255, 255, .12) !important;
}

#tarteaucitron .tarteaucitronName .tarteaucitronServiceDescription,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName .tarteaucitronListCookies,
#tarteaucitron .tarteaucitronName .tacCurrentStatus,
#tarteaucitron .tarteaucitronName .tarteaucitronReadmoreSeparator {
    color: rgba(255, 255, 255, .75) !important;
}

#tarteaucitron .tarteaucitronName .tacCurrentStatus {
    font-weight: 700;
}

#tarteaucitron a,
#tarteaucitron #tarteaucitronPrivacyUrlDialog {
    background: transparent !important;
    color: #fff !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronName a {
    font-size: 13px !important;
    font-weight: 600;
}

#tarteaucitron a:hover,
#tarteaucitron a:focus-visible,
#tarteaucitron #tarteaucitronPrivacyUrlDialog:hover,
#tarteaucitron #tarteaucitronPrivacyUrlDialog:focus-visible {
    color: rgba(255, 255, 255, .7) !important;
}

/* Icônes du fournisseur (✛, ✓, ✗, ☐, ☑) : couleur du texte, noires sinon. */
#tarteaucitronRoot #tarteaucitron .tarteaucitronPlus::before,
#tarteaucitronRoot #tarteaucitron .tarteaucitronCheck::before,
#tarteaucitronRoot #tarteaucitron .tarteaucitronCross::before {
    color: inherit !important;
}

/* Bouton "Fermer". */
#tarteaucitron #tarteaucitronClosePanel {
    background: #141414 !important;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, .25) !important;
    border-radius: 0 13px 0 10px;
    padding: 8px 0 !important;
    width: 90px !important;
    font-size: 13px !important;
    z-index: 1;
}

#tarteaucitron #tarteaucitronClosePanel:hover,
#tarteaucitron #tarteaucitronClosePanel:focus-visible {
    background: #262626 !important;
}

/* Boutons : base commune (taille, forme, police). */
#tarteaucitron #tarteaucitronServices .tarteaucitronAsk .tarteaucitronAllow,
#tarteaucitron #tarteaucitronServices .tarteaucitronAsk .tarteaucitronDeny {
    box-sizing: border-box;
    margin: 4px !important;
    border-radius: 30px !important;
    font-family: inherit;
    font-weight: 600;
    line-height: 1.2 !important;
    opacity: 1 !important;
    cursor: pointer;
}

/* "Tout accepter" / "Tout refuser" : identiques au bandeau, choisi ou non. */
#tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed.tarteaucitronIsSelected,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied.tarteaucitronIsSelected {
    min-width: 160px;
    padding: 11px 22px !important;
    font-size: 15px !important;
    background: #262626 !important;
    border: 1px solid rgba(255, 255, 255, .45) !important;
    color: #fff !important;
}

#tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed:hover,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied:hover,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed:focus-visible,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied:focus-visible {
    background: #333 !important;
    border-color: #fff !important;
}

#tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed.tarteaucitronIsSelected,
#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied.tarteaucitronIsSelected {
    box-shadow: 0 0 0 2px #141414, 0 0 0 4px #fff;
}

/* "Accepter" / "Refuser" d'un service : même style entre eux. */
#tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronAllow,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronDeny {
    min-width: 120px;
    padding: 10px 18px !important;
    font-size: 14px !important;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, .55) !important;
    color: #fff !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronAllow:hover,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronDeny:hover,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronAllow:focus-visible,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronDeny:focus-visible {
    border-color: #fff !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsAllowed .tarteaucitronAsk .tarteaucitronAllow,
#tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsDenied .tarteaucitronAsk .tarteaucitronDeny {
    background: #fff !important;
    border-color: #fff !important;
    color: #141414 !important;
}

/* ------------------------------------------------------------ Mobile */

@media screen and (max-width: 767px) {
    /* Panneau en plein écran (fournisseur) : sans coins arrondis. */
    #tarteaucitronRoot div#tarteaucitron {
        border: 0 !important;
        border-radius: 0;
    }

    #tarteaucitron #tarteaucitronClosePanel {
        border-radius: 0 0 0 10px;
    }

    /* Boutons globaux du panneau : pleine largeur, empilés. */
    #tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed,
    #tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied {
        display: block;
        width: calc(100% - 8px);
        min-width: 0;
    }
}

/* Bandeau sur téléphone : pleine largeur en bas, le plus bas possible. */
@media screen and (max-width: 479px) {
    #tarteaucitronRoot #tarteaucitronAlertBig {
        left: 0 !important;
        right: 0 !important;
        bottom: var(--mgreprog-buy-now-h, 0px) !important;
        width: 100% !important;
        max-width: none;
        padding: 12px 16px calc(10px + env(safe-area-inset-bottom)) !important;
        border-width: 1px 0 0;
        border-radius: 14px 14px 0 0;
        box-shadow: 0 -8px 30px rgba(0, 0, 0, .5);
    }

    #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
        margin-bottom: 10px;
        font-size: 13.5px !important;
        line-height: 1.45;
    }

    #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
    #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
        padding: 10px 6px !important;
        font-size: 14px !important;
    }

    #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
    #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
        margin-top: 8px !important;
    }
}
