/* ===============================================================
   Reskin Tarteaucitron — Alvinah Partners (19/05/2026 Vincent)
   ===============================================================
   Surcharge tarteaucitron.min.css (v1.32.0 self-hosté).
   Tarteaucitron lib NON modifiée (upgrade upstream préservé).
   Charte L15 — Dark Navy #0F1923, Bleu #1A3A5C, fond blanc, radius 16.
   Cible : matcher 2 mockups Vincent (vue compacte + détaillée).
   =============================================================== */

/* ---------- 1. CONTAINER BANNER : bottom-right card 420px ---------- */
#tarteaucitronRoot div#tarteaucitronAlertBig {
    position: fixed !important;
    bottom: 24px !important;
    right: 24px !important;
    left: auto !important;
    top: auto !important;
    width: 420px !important;
    max-width: calc(100vw - 48px) !important;
    transform: none !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 36px rgba(15, 25, 35, 0.18) !important;
    background: #FFFFFF !important;
    color: #0F1923 !important;
    padding: 28px !important;
    border: none !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    line-height: 1.5 !important;
    z-index: 2147483646 !important;
}

#tarteaucitronAlertBig.tarteaucitronAlertBigBottom,
#tarteaucitronAlertBig.tarteaucitronAlertBigTop {
    bottom: 24px !important;
    top: auto !important;
}

/* Mobile : full-width footer */
@media (max-width: 540px) {
    #tarteaucitronRoot div#tarteaucitronAlertBig {
        right: 12px !important;
        left: 12px !important;
        bottom: 12px !important;
        width: auto !important;
        max-width: none !important;
        padding: 22px !important;
        border-radius: 14px !important;
    }
}

/* ---------- 2. TITRE + ICÔNE CADENAS ---------- */
#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,
#tarteaucitronDisclaimerAlert {
    color: #4A5564 !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    background: none !important;
    text-align: left !important;
    display: block !important;
}

#tarteaucitronAlertBig #tarteaucitronPrivacyUrlDialog,
#tarteaucitronPrivacyUrlDialog {
    color: #1A3A5C !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    font-weight: 500 !important;
}
#tarteaucitronPrivacyUrlDialog:hover {
    color: #0F1923 !important;
}

/* Titre injecté en ::before sur le container */
#tarteaucitronAlertBig::before {
    content: "Vos préférences de confidentialité";
    display: block;
    font-size: 18px;
    font-weight: 600;
    color: #0F1923;
    margin: 0 0 14px;
    padding-left: 44px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='32' height='32' fill='none' stroke='%231A3A5C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='11' width='18' height='11' rx='2' ry='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>");
    background-repeat: no-repeat;
    background-position: 0 -2px;
    background-size: 32px 32px;
    min-height: 36px;
}

/* ---------- 3. BOUTONS PRINCIPAUX (allow / deny / personalize) ---------- */
#tarteaucitronAlertBig button,
#tarteaucitronAlertBig a {
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    padding: 12px 20px !important;
    border-radius: 10px !important;
    border: 1px solid transparent !important;
    cursor: pointer !important;
    transition: background 160ms ease, border-color 160ms ease, color 160ms ease !important;
    line-height: 1.2 !important;
    height: auto !important;
    margin: 0 !important;
}

/* CNIL deliberation n° 2020-091 — parite visuelle accept/refuse :
 * "Tout accepter" et "Tout refuser" doivent avoir la meme proeminence
 * en termes de typographie, design et placement. Le mockup Vincent
 * suggerait une hierarchie 100/50, mais ce serait un dark pattern
 * non-conforme (Google 150 M€ 2022, Facebook 60 M€ 2022).
 *
 * Layout V1.0 final (Audit H-01) :
 *   Ligne 1 : "Tout accepter" (50%) + "Tout refuser" (50%) — meme
 *             largeur, meme border 1px solid #0F1923, meme typo.
 *             Couleur de fond differe (primaire bleu vs blanc) mais
 *             le contraste reste identique (border = #0F1923 dans
 *             les 2 cas).
 *   Ligne 2 : "Personnaliser" (100%) — tertiaire neutre, border pale
 *             car NON soumis a la regle CNIL accept/refuse.
 */

/* Tout accepter — bouton primaire bleu fonce (50% width) */
#tarteaucitronAlertBig #tarteaucitronAllAllowed,
#tarteaucitronAlertBig button#tarteaucitronAllAllowed {
    display: inline-block !important;
    width: calc(50% - 6px) !important;
    background: #0F1923 !important;
    color: #FFFFFF !important;
    border: 1px solid #0F1923 !important;
    margin: 0 6px 0 0 !important;
    text-align: center !important;
    vertical-align: top !important;
    box-sizing: border-box !important;
}
#tarteaucitronAlertBig #tarteaucitronAllAllowed:hover {
    background: #1A3A5C !important;
    border-color: #1A3A5C !important;
}

/* Tout refuser — bouton secondaire blanc avec MEME border que Accept
 * (#0F1923 vs ancien #C7D1DE pale) pour parite CNIL. */
#tarteaucitronAlertBig #tarteaucitronAllDenied,
#tarteaucitronAlertBig button#tarteaucitronAllDenied {
    display: inline-block !important;
    width: calc(50% - 6px) !important;
    background: #FFFFFF !important;
    color: #0F1923 !important;
    border: 1px solid #0F1923 !important;
    margin: 0 0 0 6px !important;
    text-align: center !important;
    vertical-align: top !important;
    box-sizing: border-box !important;
}
#tarteaucitronAlertBig #tarteaucitronAllDenied:hover {
    background: #0F1923 !important;
    color: #FFFFFF !important;
}

/* Personnaliser — tertiaire neutre 100% width ligne 2 (HORS regle CNIL
 * accept/refuse — c est un acces granularite, pas un choix consent). */
#tarteaucitronAlertBig #tarteaucitronPersonalize,
#tarteaucitronAlertBig button#tarteaucitronPersonalize {
    display: block !important;
    width: 100% !important;
    background: #FFFFFF !important;
    color: #6B7785 !important;
    border: 1px solid #C7D1DE !important;
    margin: 12px 0 0 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
}
#tarteaucitronAlertBig #tarteaucitronPersonalize:hover {
    border-color: #1A3A5C !important;
    color: #1A3A5C !important;
}

/* Mobile : stack les 3 boutons en 100% pour preserver la parite Accept/Refuse */
@media (max-width: 380px) {
    #tarteaucitronAlertBig #tarteaucitronAllAllowed,
    #tarteaucitronAlertBig #tarteaucitronAllDenied,
    #tarteaucitronAlertBig #tarteaucitronPersonalize {
        display: block !important;
        width: 100% !important;
        margin: 0 0 8px !important;
    }
}

/* ---------- 4. PANEL "PERSONNALISER" (vue détaillée) ----------
 *
 * Option B Vincent 19/05/2026 : reskin du panel détaillé abandonné.
 *
 * Raison : Vitrine avait forcé `width: 460px` sur #tarteaucitronServices
 * pour faire une "card bottom-right" cohérente avec la card compacte,
 * mais cette largeur compresse trop le contenu (titre + info + toggles
 * + boutons CTA) → layout 3-colonnes cassé, non-conformité CNIL
 * "consentement éclairé" (Vincent 19/05 15h26).
 *
 * Décision : on garde le reskin de la card compacte (vue dominante 90%
 * du temps, conforme CNIL accept/refuse 50/50) et on revient au
 * comportement Tarteaucitron par défaut pour le panel détaillé
 * (modal centré 860px avec backdrop, lisible, conforme).
 *
 * Le styling visuel des couleurs/police/boutons internes Alvinah
 * (lignes 252+ ci-dessous) reste actif — c'est juste le repositionnement
 * en card flottante qui est annulé.
 * ------------------------------------------------------------------- */

/* Header du panel "Personnaliser" */
#tarteaucitronServices #tarteaucitronInfo,
#tarteaucitronServices #tarteaucitronMainLineOffset,
#tarteaucitronServices .tarteaucitronH3,
#tarteaucitronServices #tarteaucitronServicesnoTitle {
    color: #0F1923 !important;
    background: none !important;
    border: none !important;
}

/* Titre du panel détaillé */
#tarteaucitronServices::before {
    content: "Vos préférences de confidentialité";
    display: block;
    font-size: 18px;
    font-weight: 600;
    color: #0F1923;
    margin: 0 0 14px;
    padding-left: 44px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='32' height='32' fill='none' stroke='%231A3A5C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='11' width='18' height='11' rx='2' ry='2'/><path d='M7 11V7a5 5 0 0 1 10 0v4'/></svg>");
    background-repeat: no-repeat;
    background-position: 0 -2px;
    background-size: 32px 32px;
    min-height: 36px;
}

/* "Nécessaires (Toujours actifs)" — pseudo-toggle injecté visuel
   (les cookies de fonctionnement Tarteaucitron + session sont mandatory
   et n'ont pas besoin de consentement). Non interactif. */
#tarteaucitronServices .alvinah-mandatory-row,
.alvinah-mandatory-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 0;
    border-bottom: 1px solid #E5EAF1;
    color: #0F1923;
}
.alvinah-mandatory-row__label {
    font-size: 14px;
    font-weight: 600;
    color: #0F1923;
}
.alvinah-mandatory-row__hint {
    font-size: 13px;
    color: #8B96A5;
    font-weight: 400;
    margin-left: 6px;
}
.alvinah-mandatory-row__toggle {
    width: 44px;
    height: 24px;
    border-radius: 999px;
    background: #1A3A5C;
    position: relative;
    cursor: not-allowed;
    opacity: 0.6;
}
.alvinah-mandatory-row__toggle::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 23px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #FFFFFF;
}

/* Services lines (gtag + googleadwords → Analytiques / Marketing) */
#tarteaucitronServices .tarteaucitronLine,
.tarteaucitronLine {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid #E5EAF1 !important;
    color: #0F1923 !important;
    padding: 14px 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

#tarteaucitronServices .tarteaucitronName,
.tarteaucitronName {
    color: #0F1923 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

#tarteaucitronServices .tarteaucitronName .tarteaucitronH2,
.tarteaucitronName .tarteaucitronH2,
.tarteaucitronH2 {
    color: #0F1923 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    display: inline !important;
    background: none !important;
}

/* Toggle ON (autoriser) — bleu foncé */
#tarteaucitronServices .tarteaucitronAllow,
.tarteaucitronAllow {
    background: #FFFFFF !important;
    color: #1A3A5C !important;
    border: 1px solid #1A3A5C !important;
    padding: 6px 14px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
}
#tarteaucitronServices .tarteaucitronAllow.tarteaucitronIsSelected,
.tarteaucitronAllow.tarteaucitronIsSelected {
    background: #1A3A5C !important;
    color: #FFFFFF !important;
}

/* Toggle OFF (refuser) */
#tarteaucitronServices .tarteaucitronDeny,
.tarteaucitronDeny {
    background: #FFFFFF !important;
    color: #6B7785 !important;
    border: 1px solid #C7D1DE !important;
    padding: 6px 14px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
}
#tarteaucitronServices .tarteaucitronDeny.tarteaucitronIsSelected,
.tarteaucitronDeny.tarteaucitronIsSelected {
    background: #6B7785 !important;
    color: #FFFFFF !important;
}

/* Bouton "Enregistrer mes choix" */
#tarteaucitronServices #tarteaucitronSaveButton,
#tarteaucitronSaveButton {
    display: block !important;
    width: 100% !important;
    background: #0F1923 !important;
    color: #FFFFFF !important;
    border: 1px solid #0F1923 !important;
    padding: 12px 20px !important;
    border-radius: 10px !important;
    margin: 18px 0 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-align: center !important;
    cursor: pointer !important;
}
#tarteaucitronSaveButton:hover {
    background: #1A3A5C !important;
    border-color: #1A3A5C !important;
}

/* Séparateur entre Save et Tout-Accepter */
#tarteaucitronServices hr,
#tarteaucitronServices .tarteaucitronReadmoreSeparator {
    border: none !important;
    border-top: 1px solid #E5EAF1 !important;
    margin: 18px 0 !important;
}

/* Boutons "Tout accepter / refuser / fermer" dans le panel détaillé */
#tarteaucitronServices .tarteaucitronCTAButton,
.tarteaucitronCTAButton {
    background: #FFFFFF !important;
    color: #0F1923 !important;
    border: 1px solid #C7D1DE !important;
    padding: 12px 20px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
}

#tarteaucitronServices #tarteaucitronClosePanel,
#tarteaucitronClosePanel {
    background: #FFFFFF !important;
    color: #1A3A5C !important;
    border: 1px solid #1A3A5C !important;
    padding: 12px 20px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    cursor: pointer !important;
}
#tarteaucitronClosePanel:hover {
    background: #F4F7FB !important;
}

/* ---------- 5. CACHE ÉLÉMENTS INUTILES ---------- */
#tarteaucitronCloseAlert,
#tarteaucitronCloseCross,
#tarteaucitronCookiesNumber,
#tarteaucitronCookiesNumberBis,
#tarteaucitronPercentage,
#tarteaucitronDot,
#tarteaucitronDotGreen,
#tarteaucitronDotRed,
#tarteaucitronDotYellow {
    display: none !important;
}

/* Cache anciens titres Tarteaucitron par défaut qu'on a remplacés via ::before */
#tarteaucitronAlertBig #tarteaucitronPrivacyUrl,
#tarteaucitronInfo {
    display: none !important;
}

/* Backdrop overlay : RÉACTIVÉ (option B 19/05/2026).
 * Le panel détaillé est désormais en mode Tarteaucitron par défaut
 * (modal centré 860px). Le backdrop sombre est nécessaire pour la
 * lisibilité et le focus utilisateur sur le panel modal. */
#tarteaucitronRoot div#tarteaucitronBack {
    display: block !important;
    background: rgba(15, 25, 35, 0.5) !important;
}

/* ============================================================================
 * 6. PANEL DETAILLE — STACK VERTICAL (Vincent 19/05/2026, après PR #256)
 *
 * Tarteaucitron natif arrange les 4 éléments du #tarteaucitronMainLineOffset
 * (titre H1 / info paragraph / sous-titre H2 "Préférences pour tous les
 * services" / boutons Accept/Refuse) en 3 colonnes horizontales via CSS
 * interne (.tarteaucitronH1 inline + .tarteaucitronAsk float, etc.).
 *
 * On force le stack vertical : chaque enfant prend toute la largeur, espacé
 * de 16px, ordre normal (titre → info → sous-titre → boutons). Plus lisible
 * sur le modal 860px natif.
 *
 * Boutons Accept/Refuse en parité CNIL 50/50 (déliberation n° 2020-091).
 * ============================================================================ */

/* Container du header — force stack */
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset {
    display: block !important;
    padding: 28px !important;
    text-align: left !important;
}

/* Titre H1 "Vos préférences de confidentialité" */
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronH1,
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset #dialogTitle {
    display: block !important;
    width: 100% !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #0F1923 !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    text-align: left !important;
    line-height: 1.4 !important;
}

/* Info paragraph "En autorisant ces services tiers..." */
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset #tarteaucitronInfo {
    display: block !important;
    width: 100% !important;
    color: #6B7785 !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    text-align: left !important;
    background: none !important;
    border: none !important;
}

/* Lien "Politique de confidentialité" */
#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog {
    display: inline !important;
    background: none !important;
    border: none !important;
    color: #1A3A5C !important;
    text-decoration: underline !important;
    padding: 0 !important;
    font-size: 14px !important;
    cursor: pointer !important;
}

/* Sous-titre "Préférences pour tous les services" */
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronName {
    display: block !important;
    width: 100% !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronName .tarteaucitronH2 {
    display: block !important;
    width: 100% !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #0F1923 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* Zone des boutons Accept/Refuse — flex 50/50 parité CNIL */
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronAsk,
#tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset #tarteaucitronScrollbarAdjust {
    display: flex !important;
    width: 100% !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    background: none !important;
    border: none !important;
}

/* Tout accepter (primaire bleu foncé) — 50% */
#tarteaucitronRoot #tarteaucitron .tarteaucitronAsk button#tarteaucitronAllAllowed {
    flex: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    padding: 12px 16px !important;
    background: #0F1923 !important;
    color: #FFFFFF !important;
    border: 1px solid #0F1923 !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    margin: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
#tarteaucitronRoot #tarteaucitron .tarteaucitronAsk button#tarteaucitronAllAllowed:hover {
    background: #1A3A5C !important;
    border-color: #1A3A5C !important;
}

/* Tout refuser (secondaire blanc, même border contrastée CNIL) — 50% */
#tarteaucitronRoot #tarteaucitron .tarteaucitronAsk button#tarteaucitronAllDenied {
    flex: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    padding: 12px 16px !important;
    background: #FFFFFF !important;
    color: #0F1923 !important;
    border: 1px solid #0F1923 !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    margin: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
#tarteaucitronRoot #tarteaucitron .tarteaucitronAsk button#tarteaucitronAllDenied:hover {
    background: #0F1923 !important;
    color: #FFFFFF !important;
}

/* Cache les icônes check/cross qui apparaissent à l'intérieur des boutons natifs */
#tarteaucitronRoot #tarteaucitron .tarteaucitronCheck,
#tarteaucitronRoot #tarteaucitron .tarteaucitronCross {
    display: none !important;
}

/* Bouton Fermer en haut à droite — propre */
#tarteaucitronRoot button#tarteaucitronClosePanel {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    background: #FFFFFF !important;
    color: #0F1923 !important;
    border: 1px solid #C7D1DE !important;
    border-radius: 6px !important;
    padding: 6px 14px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    z-index: 10 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
#tarteaucitronRoot button#tarteaucitronClosePanel:hover {
    background: #F4F6F8 !important;
    border-color: #1A3A5C !important;
}

/* Mobile : stack des boutons en colonne sur petits écrans */
@media (max-width: 540px) {
    #tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronAsk,
    #tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset #tarteaucitronScrollbarAdjust {
        flex-direction: column !important;
    }
    #tarteaucitronRoot #tarteaucitron #tarteaucitronMainLineOffset {
        padding: 20px !important;
    }
}
