/**
 * Tarteaucitron.js — thème de surcharge "Clefs-Shop"
 *
 * Ce fichier NE modifie PAS tarteaucitron.css : il est chargé après lui
 * (fin de <body>) et ne fait que surcharger. Toutes les couleurs/rayons
 * passent par des variables CSS pilotées depuis le back-office.
 *
 * @author    Clefs-Shop
 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
 */

/* ==========================================================================
   0. Tokens
   ========================================================================== */
html body #tarteaucitronRoot {
    --tac-accent: #2b59c3;
    --tac-accent-contrast: #ffffff;
    --tac-bg: #ffffff;
    --tac-text: #161b26;
    /* dérivées du texte et du fond → fonctionne aussi en thème sombre */
    --tac-muted: color-mix(in srgb, var(--tac-text) 68%, var(--tac-bg));
    --tac-surface: color-mix(in srgb, var(--tac-text) 5%, var(--tac-bg));
    --tac-line: color-mix(in srgb, var(--tac-text) 11%, transparent);
    --tac-allow: #12805c;
    --tac-deny: var(--tac-text);
    --tac-radius: 18px;
    --tac-radius-sm: calc(var(--tac-radius) * .55);
    --tac-font: inherit;
    --tac-shadow: 0 24px 64px -12px rgba(16, 24, 40, .28), 0 4px 14px rgba(16, 24, 40, .08);
    --tac-ease: cubic-bezier(.2, .8, .2, 1);

    font-family: var(--tac-font) !important;
    color: var(--tac-text);
}

html body #tarteaucitronRoot,
html body #tarteaucitronRoot * {
    box-sizing: border-box;
    font-family: var(--tac-font) !important;
    -webkit-font-smoothing: antialiased;
}

html body #tarteaucitronRoot button {
    font-family: var(--tac-font) !important;
    letter-spacing: 0;
    text-transform: none;
}

/* Glyphes ☐ ☑ natifs : remplacés par nos états visuels */
html body #tarteaucitronRoot .tarteaucitronCheck,
html body #tarteaucitronRoot .tarteaucitronCross {
    display: none !important;
}

/* Focus visible accessible et cohérent */
html body #tarteaucitronRoot button:focus-visible,
html body #tarteaucitronRoot a:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--tac-accent) 45%, transparent) !important;
    outline-offset: 2px !important;
}

/* ==========================================================================
   1. Fond (overlay)
   ========================================================================== */
html body .tarteaucitronSize-middle.tarteaucitronBeforeVisible::before,
html body.tarteaucitron-modal-open div#tarteaucitronRoot::before,
html body div#tarteaucitronRoot.tarteaucitronSize-middle.tarteaucitronBeforeVisible::before {
    background: rgba(12, 17, 29, .42) !important;
    backdrop-filter: blur(3px) saturate(120%);
    -webkit-backdrop-filter: blur(3px) saturate(120%);
    opacity: 1 !important;
}

html body #tarteaucitronRoot button#tarteaucitronBack {
    background: rgba(12, 17, 29, .42) !important;
    opacity: 1 !important;
}

/* ==========================================================================
   2. Bandeau (AlertBig) — base commune
   ========================================================================== */
html body #tarteaucitronRoot div#tarteaucitronAlertBig {
    box-sizing: border-box !important;
    background: var(--tac-bg) !important;
    color: var(--tac-text) !important;
    border: 1px solid var(--tac-line) !important;
    box-shadow: var(--tac-shadow) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    text-align: left !important;
    animation: tacRise .45s var(--tac-ease) both;
}

/* En-tête : pastille cookie à la place de "☝ 🍪" */
html body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig::before,
html body #tarteaucitronRoot.tarteaucitronSize-popup div#tarteaucitronAlertBig::before,
html body #tarteaucitronRoot.tarteaucitronTitleBanner div#tarteaucitronAlertBig::before {
    content: "" !important;
    display: block !important;
    width: 46px;
    height: 46px;
    margin: 0 0 14px !important;
    padding: 0 !important;
    border-radius: 14px;
    background-color: color-mix(in srgb, var(--tac-accent) 12%, var(--tac-bg));
    background-repeat: no-repeat;
    background-position: center;
    background-size: 26px 26px;
    /* biscuit dessiné en SVG, teinté par l'accent via mask */
    -webkit-mask: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23c98a3d' d='M16 3a13 13 0 1 0 13 12.6 4 4 0 0 1-4.6-4 4 4 0 0 1-4.9-4.9A4 4 0 0 1 16.3 3H16z'/%3E%3Cg fill='%235b3a1a'%3E%3Ccircle cx='11' cy='12' r='1.9'/%3E%3Ccircle cx='18' cy='18.5' r='2.1'/%3E%3Ccircle cx='10.5' cy='20.5' r='1.6'/%3E%3Ccircle cx='22.5' cy='23' r='1.3'/%3E%3Ccircle cx='15.5' cy='25' r='1.1'/%3E%3C/g%3E%3Ccircle cx='25' cy='6' r='1.6' fill='%23c98a3d'/%3E%3Ccircle cx='28.5' cy='10' r='1' fill='%23c98a3d'/%3E%3C/svg%3E");
    font-size: 0 !important;
}

/* Texte principal */
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig span#tarteaucitronDisclaimerAlert,
html body #tarteaucitronRoot.tarteaucitronSize-popup #tarteaucitronAlertBig span#tarteaucitronDisclaimerAlert {
    display: block !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: var(--tac-text) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
    text-align: left !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong {
    color: var(--tac-text) !important;
    font-weight: 700 !important;
}

/* Liste des partenaires → pastilles */
html body #tarteaucitronRoot #tarteaucitronAlertBig div.tarteaucitronPartnersList,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert .tarteaucitronPartnersList {
    display: block !important;
    max-width: none !important;
    margin: 14px 0 0 !important;
    padding: 12px 14px !important;
    background: var(--tac-surface) !important;
    border-radius: var(--tac-radius-sm) !important;
    text-align: left !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig div.tarteaucitronPartnersList b,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert .tarteaucitronPartnersList b {
    display: block !important;
    margin: 0 0 8px !important;
    color: var(--tac-muted) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig div.tarteaucitronPartnersList ul {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

html body #tarteaucitronRoot #tarteaucitronAlertBig div.tarteaucitronPartnersList ul li,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert .tarteaucitronPartnersList ul li {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
    padding: 4px 10px !important;
    background: var(--tac-bg) !important;
    border: 1px solid var(--tac-line) !important;
    border-radius: 999px !important;
    color: var(--tac-text) !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    list-style: none !important;
}

/* Lien politique de confidentialité (bandeau) */
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl,
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrlDialog {
    display: block !important;
    width: 100% !important;
    margin: 2px 0 0 !important;
    padding: 4px 0 !important;
    background: none !important;
    border: 0 !important;
    color: var(--tac-muted) !important;
    font-size: 12.5px !important;
    text-align: center !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    cursor: pointer;
}

/* Lien politique de confidentialité (panneau) */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrl,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog {
    grid-column: 1 / -1;
    justify-self: start;
    display: inline-block !important;
    margin: -4px 0 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--tac-accent) !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
    cursor: pointer;
}

/* ---- Boutons du bandeau ---------------------------------------------- */
html body #tarteaucitronRoot div#tarteaucitronAlertBig button.tarteaucitronCTAButton,
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronPersonalize,
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronPersonalize2,
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: calc(50% - 8px) !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    border-radius: var(--tac-radius-sm) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
    transition: transform .15s var(--tac-ease), box-shadow .2s var(--tac-ease), background-color .2s, filter .2s !important;
    vertical-align: top;
}

/* Accepter (primaire) */
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronPersonalize,
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronPersonalize2 {
    background: var(--tac-accent) !important;
    border: 1.5px solid var(--tac-accent) !important;
    color: var(--tac-accent-contrast) !important;
    box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--tac-accent) 70%, transparent) !important;
}

/* Refuser : même poids visuel (exigence CNIL : refuser aussi simple qu'accepter) */
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    margin-left: 10px !important;
    background: var(--tac-bg) !important;
    border: 1.5px solid color-mix(in srgb, var(--tac-text) 22%, transparent) !important;
    color: var(--tac-text) !important;
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig button.tarteaucitronCTAButton:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronAllDenied2:hover {
    background: var(--tac-surface) !important;
}

/* Personnaliser → lien-bouton discret pleine largeur */
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseAlert {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100% !important;
    margin: 12px 0 0 !important;
    padding: 10px 12px !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: var(--tac-radius-sm) !important;
    color: var(--tac-accent) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color .2s !important;
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseAlert::after {
    content: "";
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    margin-left: 2px;
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseAlert:hover {
    background: color-mix(in srgb, var(--tac-accent) 8%, transparent) !important;
}

/* Croix de fermeture (continuer sans accepter) */
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseCross {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--tac-surface) !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: var(--tac-muted) !important;
    font-size: 0 !important;
    cursor: pointer;
    transition: background-color .2s, color .2s !important;
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseCross > span[aria-hidden] {
    display: none !important;
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseCross::before,
html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseCross::after {
    content: "";
    position: absolute;
    width: 13px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform: rotate(45deg);
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseCross::after {
    transform: rotate(-45deg);
}

html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronCloseCross:hover {
    background: color-mix(in srgb, var(--tac-text) 10%, var(--tac-bg)) !important;
    color: var(--tac-text) !important;
}

/* Barre de progression au scroll : inutile visuellement */
html body #tarteaucitronRoot #tarteaucitronPercentage {
    display: none !important;
}

/* ==========================================================================
   3. Variantes de position
   ========================================================================== */

/* 3a. "middle" → carte centrée */
html body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig {
    width: min(500px, calc(100% - 32px)) !important;
    min-width: 0 !important;
    max-height: calc(100% - 32px);
    overflow: auto;
    padding: 28px !important;
    border-radius: var(--tac-radius) !important;
    box-shadow: var(--tac-shadow) !important;
}

/* 3b. "popup" → carte flottante en bas à gauche (style widget) */
html body #tarteaucitronRoot.tarteaucitronSize-popup div#tarteaucitronAlertBig {
    top: auto !important;
    bottom: 20px !important;
    left: 20px !important;
    right: auto !important;
    width: min(400px, calc(100% - 24px)) !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 24px !important;
    border-radius: var(--tac-radius) !important;
    border-bottom: 1px solid var(--tac-line) !important;
}

/* 3c. "top" / "bottom" → barre pleine largeur, contenu sur une ligne */
html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig,
html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px 12px;
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    padding: 18px max(20px, calc((100% - 1180px) / 2)) !important;
    padding-right: max(64px, calc((100% - 1180px) / 2 + 44px)) !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
}

html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig {
    border-bottom: 0 !important;
    box-shadow: 0 -12px 40px -12px rgba(16, 24, 40, .22) !important;
    animation-name: tacRise;
}

html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig {
    border-top: 0 !important;
    box-shadow: 0 12px 40px -12px rgba(16, 24, 40, .22) !important;
    animation-name: tacDrop;
}

html body #tarteaucitronRoot.tarteaucitronSize-top #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,
html body #tarteaucitronRoot.tarteaucitronSize-bottom #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
    flex: 1 1 420px;
    margin: 0 12px 0 0 !important;
}

html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronPersonalize2,
html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronPersonalize2,
html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronAllDenied2,
html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    flex: 0 0 auto;
    width: auto !important;
    min-width: 150px;
    margin: 0 !important;
}

html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronAllDenied2,
html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronAllDenied2 { order: 2; }

html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronPersonalize2,
html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronPersonalize2 { order: 3; }

html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronCloseAlert,
html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronCloseAlert {
    order: 1;
    width: auto !important;
    margin: 0 6px 0 0 !important;
}

html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronCloseCross,
html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronCloseCross {
    top: 50% !important;
    right: max(16px, calc((100% - 1180px) / 2)) !important;
    transform: translateY(-50%);
}

html body #tarteaucitronRoot.tarteaucitronSize-top #tarteaucitronAlertBig .tarteaucitronPartnersList,
html body #tarteaucitronRoot.tarteaucitronSize-bottom #tarteaucitronAlertBig .tarteaucitronPartnersList {
    display: none !important;
}

/* ==========================================================================
   4. Panneau de gestion (#tarteaucitron)
   ========================================================================== */
html body #tarteaucitronRoot div#tarteaucitron {
    box-sizing: border-box !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%);
    width: min(680px, calc(100% - 32px)) !important;
    max-width: none !important;
    max-height: min(760px, calc(100% - 40px)) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: var(--tac-bg) !important;
    border: 1px solid var(--tac-line) !important;
    border-radius: var(--tac-radius) !important;
    box-shadow: var(--tac-shadow) !important;
    color: var(--tac-text) !important;
    animation: tacPop .35s var(--tac-ease) both;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices {
    height: auto !important;
    max-height: min(760px, calc(100vh - 40px)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--tac-bg) !important;
    box-shadow: none !important;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--tac-text) 20%, transparent) transparent;
}

/* Bouton Fermer (en haut à droite, dans la carte) */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel {
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;
    z-index: 3;
    width: auto !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    background: var(--tac-surface) !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: var(--tac-text) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 34px !important;
    cursor: pointer;
    transition: background-color .2s !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel:hover {
    background: color-mix(in srgb, var(--tac-text) 10%, var(--tac-bg)) !important;
}

/* En-tête du panneau */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 14px 16px;
    align-items: center;
    margin: 0 !important;
    padding: 26px 28px 22px !important;
    background: var(--tac-bg) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--tac-line) !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronH1,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronH1 {
    grid-column: 1 / -1;
    display: block !important;
    margin: 0 !important;
    padding: 0 110px 0 0 !important;
    color: var(--tac-text) !important;
    font-size: 21px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -.01em;
    text-align: left !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronInfo {
    grid-column: 1 / -1;
    display: block !important;
    position: static !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    color: var(--tac-muted) !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    text-align: left !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronInfo p,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronInfo a {
    color: var(--tac-muted) !important;
    font-size: 14px !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronName {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronName .tarteaucitronH2 {
    display: block !important;
    margin: 0 !important;
    color: var(--tac-text) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronAsk {
    margin: 0 !important;
    float: none !important;
    display: flex !important;
    gap: 8px;
}

/* Tout accepter / tout refuser dans le panneau */
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine #tarteaucitronAllAllowed,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine #tarteaucitronAllDenied {
    min-height: 40px;
    margin: 0 !important;
    padding: 8px 16px !important;
    border-radius: var(--tac-radius-sm) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    opacity: 1 !important;
    cursor: pointer;
    transition: background-color .2s, color .2s, border-color .2s !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine #tarteaucitronAllAllowed {
    background: var(--tac-accent) !important;
    border: 1.5px solid var(--tac-accent) !important;
    color: var(--tac-accent-contrast) !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine #tarteaucitronAllDenied {
    background: var(--tac-bg) !important;
    border: 1.5px solid color-mix(in srgb, var(--tac-text) 22%, transparent) !important;
    color: var(--tac-text) !important;
}

/* Corps : liste */
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder {
    margin: 0 !important;
    padding: 16px 20px 8px !important;
    background: var(--tac-bg) !important;
    border: 0 !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder > ul,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* Chaque catégorie = une carte */
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder > ul > li[id^="tarteaucitronServicesTitle_"] {
    margin: 0 0 10px !important;
    padding: 0 !important;
    background: var(--tac-bg) !important;
    border: 1px solid var(--tac-line) !important;
    border-radius: calc(var(--tac-radius) * .8) !important;
    overflow: hidden;
    list-style: none !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder > ul > li.tarteaucitronHidden:not([style*="block"]):not(#tarteaucitronServicesTitle_mandatory) {
    display: none !important;
}

/* Titres de catégorie (mode non groupé) */
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronTitle {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronTitle button {
    width: 100% !important;
    margin: 0 !important;
    padding: 14px 18px 4px !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--tac-muted) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .05em !important;
    text-align: left !important;
    text-transform: uppercase !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronTitle .tarteaucitronPlus {
    display: none !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronDetails,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronInfoBox {
    position: static !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 18px 10px !important;
    background: transparent !important;
    color: var(--tac-muted) !important;
    font-size: 13.5px !important;
    line-height: 1.5 !important;
}

/* Lignes (catégorie groupée ou service) */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 !important;
    padding: 16px 18px !important;
    background: var(--tac-bg) !important;
    border: 0 !important;
    border-left: 0 !important;
    color: var(--tac-text) !important;
    transition: background-color .2s !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsAllowed,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine.tarteaucitronIsDenied {
    border-left: 0 !important;
    background: var(--tac-bg) !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronName {
    flex: 1 1 auto;
    width: auto !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    color: var(--tac-text) !important;
    font-size: 13.5px !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronName > span:not(.tarteaucitronH3):not(.tarteaucitronListCookies) {
    display: block !important;
    width: auto !important;
    margin-top: 3px;
    color: var(--tac-muted) !important;
    font-size: 13.5px !important;
    line-height: 1.5 !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronH3 {
    display: block !important;
    margin: 0 !important;
    color: var(--tac-text) !important;
    font-size: 15px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
}

/* Cookies obligatoires */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronServices_mandatory .tarteaucitronLine {
    background: var(--tac-surface) !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronServices_mandatory .tarteaucitronLine .tarteaucitronH3 {
    color: var(--tac-muted) !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices_mandatory .tarteaucitronLine br {
    display: none;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServicesTitle_mandatory .tarteaucitronTitle button {
    padding-top: 14px !important;
}

/* "Gestion des services (n)" */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronBorder button.tarteaucitron-toggle-group {
    position: static !important;
    float: none !important;
    width: auto !important;
    white-space: nowrap;
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    color: var(--tac-accent) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronBorder button.tarteaucitron-toggle-group::after {
    content: "" !important;
    font-size: 0 !important;
    width: 6px;
    height: 6px;
    margin-left: 2px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .2s var(--tac-ease);
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronBorder button.tarteaucitron-toggle-group[aria-expanded="true"]::after {
    transform: rotate(-135deg) translate(-1px, -1px);
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronBorder button.tarteaucitron-toggle-group::before {
    content: none !important;
    display: none !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronBorder .tarteaucitronIsExpanded button.tarteaucitron-toggle-group::after {
    transform: rotate(-135deg) translate(-1px, -1px);
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronBorder button.tarteaucitron-toggle-group span {
    color: inherit !important;
    font-size: inherit !important;
}

/* Services détaillés (sous-liste dépliée) */
html body #tarteaucitronRoot #tarteaucitron ul[id^="tarteaucitronServices_"]:not(#tarteaucitronServices_mandatory) {
    margin: 0 18px 14px !important;
    background: var(--tac-surface) !important;
    border-radius: var(--tac-radius-sm) !important;
    overflow: hidden;
}

html body #tarteaucitronRoot #tarteaucitron ul[id^="tarteaucitronServices_"]:not(#tarteaucitronServices_mandatory) > li.tarteaucitronLine {
    padding: 12px 14px !important;
    background: transparent !important;
    border-top: 1px solid var(--tac-line) !important;
}

html body #tarteaucitronRoot #tarteaucitron ul[id^="tarteaucitronServices_"]:not(#tarteaucitronServices_mandatory) > li.tarteaucitronLine:first-child {
    border-top: 0 !important;
}

html body #tarteaucitronRoot #tarteaucitron ul[id^="tarteaucitronServices_"] .tarteaucitronH3 {
    font-size: 14px !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronStatusInfo,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronStatusInfo span,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronListCookies,
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronReadmoreSeparator {
    color: var(--tac-muted) !important;
    font-size: 12px !important;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronStatusInfo {
    margin: 2px 0 4px !important;
}

html body #tarteaucitronRoot #tarteaucitron .tacCurrentStatus {
    display: inline-block;
    padding: 1px 8px !important;
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--tac-text) 8%, transparent) !important;
    font-weight: 600 !important;
    text-transform: capitalize;
}

html body #tarteaucitronRoot #tarteaucitron .tarteaucitronIsAllowed .tacCurrentStatus {
    background: color-mix(in srgb, var(--tac-allow) 14%, transparent) !important;
    color: var(--tac-allow) !important;
}

html body #tarteaucitronRoot #tarteaucitron a.tarteaucitronReadmoreInfo,
html body #tarteaucitronRoot #tarteaucitron a.tarteaucitronReadmoreOfficial {
    color: var(--tac-muted) !important;
    font-size: 12px !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

/* ---- Interrupteur segmenté Refuser | Accepter ------------------------ */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk {
    flex: 0 0 auto;
    display: inline-flex !important;
    align-items: stretch;
    gap: 0 !important;
    margin: 0 !important;
    padding: 3px !important;
    float: none !important;
    background: color-mix(in srgb, var(--tac-text) 7%, var(--tac-bg)) !important;
    border-radius: 999px !important;
    width: auto !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 84px;
    margin: 0 !important;
    padding: 7px 14px !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: var(--tac-muted) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    opacity: 1 !important;
    cursor: pointer;
    transition: background-color .22s var(--tac-ease), color .22s var(--tac-ease), box-shadow .22s var(--tac-ease) !important;
}

/* ordre visuel : Refuser à gauche, Accepter à droite (comme un switch off/on) */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronDeny { order: 1; }
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronAllow { order: 2; }

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk button:hover {
    color: var(--tac-text) !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronAllow[aria-pressed="true"],
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronIsAllowed:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronAllow {
    background: var(--tac-allow) !important;
    color: #fff !important;
    box-shadow: 0 2px 8px -2px color-mix(in srgb, var(--tac-allow) 60%, transparent) !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronDeny[aria-pressed="true"],
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronIsDenied:not(.tarteaucitronMainLine) .tarteaucitronAsk .tarteaucitronDeny,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk.tarteaucitronIsDenied .tarteaucitronDeny {
    background: var(--tac-bg) !important;
    color: var(--tac-deny) !important;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .14) !important;
}

/* Le "tout accepter / refuser" de l'en-tête n'est pas un switch */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronAsk {
    background: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* Barre d'enregistrement */
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronSave {
    position: sticky;
    bottom: 0;
    z-index: 2;
    display: flex !important;
    justify-content: flex-end;
    margin: 0 !important;
    padding: 14px 20px !important;
    background: color-mix(in srgb, var(--tac-bg) 92%, transparent) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-top: 1px solid var(--tac-line) !important;
    text-align: right !important;
}

html body #tarteaucitronRoot #tarteaucitron #tarteaucitronSave #tarteaucitronSaveButton {
    min-height: 44px;
    margin: 0 !important;
    padding: 10px 26px !important;
    background: var(--tac-accent) !important;
    border: 0 !important;
    border-radius: var(--tac-radius-sm) !important;
    color: var(--tac-accent-contrast) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    opacity: 1 !important;
    cursor: pointer;
    box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--tac-accent) 70%, transparent) !important;
}

/* Crédit tarteaucitron (quand non masqué) */
html body #tarteaucitronRoot #tarteaucitron .tarteaucitronHidden#tarteaucitronCookiesList,
html body #tarteaucitronRoot #tarteaucitron #tarteaucitronCredits,
html body #tarteaucitronRoot .tarteaucitronSelfLink {
    display: block !important;
    margin: 0 !important;
    padding: 4px 0 14px !important;
    background: transparent !important;
    text-align: center !important;
    opacity: .55;
}

html body #tarteaucitronRoot .tarteaucitronSelfLink img {
    height: 12px !important;
    width: auto !important;
    filter: grayscale(1);
}

/* ==========================================================================
   5. Icône flottante (rouvrir le panneau)
   ========================================================================== */
html body #tarteaucitronRoot #tarteaucitronIcon {
    background: transparent !important;
    padding: 0 !important;
    margin: 16px !important;
}

html body #tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 52px !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--tac-bg) !important;
    border: 1px solid var(--tac-line) !important;
    border-radius: 999px !important;
    box-shadow: 0 10px 28px -8px rgba(16, 24, 40, .35) !important;
    cursor: pointer;
    transition: transform .2s var(--tac-ease), box-shadow .2s var(--tac-ease) !important;
}

html body #tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager:hover {
    transform: translateY(-2px) rotate(-8deg);
    box-shadow: 0 14px 32px -8px rgba(16, 24, 40, .42) !important;
}

html body #tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager img {
    width: 28px !important;
    height: 28px !important;
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23c98a3d' d='M16 3a13 13 0 1 0 13 12.6 4 4 0 0 1-4.6-4 4 4 0 0 1-4.9-4.9A4 4 0 0 1 16.3 3H16z'/%3E%3Cg fill='%235b3a1a'%3E%3Ccircle cx='11' cy='12' r='1.9'/%3E%3Ccircle cx='18' cy='18.5' r='2.1'/%3E%3Ccircle cx='10.5' cy='20.5' r='1.6'/%3E%3Ccircle cx='22.5' cy='23' r='1.3'/%3E%3Ccircle cx='15.5' cy='25' r='1.1'/%3E%3C/g%3E%3Ccircle cx='25' cy='6' r='1.6' fill='%23c98a3d'/%3E%3Ccircle cx='28.5' cy='10' r='1' fill='%23c98a3d'/%3E%3C/svg%3E");
}

/* Petit bandeau (showAlertSmall) */
html body #tarteaucitronRoot #tarteaucitronAlertSmall {
    margin: 16px !important;
    background: var(--tac-bg) !important;
    border: 1px solid var(--tac-line) !important;
    border-radius: 999px !important;
    box-shadow: 0 10px 28px -8px rgba(16, 24, 40, .35) !important;
    overflow: hidden;
}

html body #tarteaucitronRoot #tarteaucitronAlertSmall #tarteaucitronManager {
    color: var(--tac-text) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

/* ==========================================================================
   6. Mobile
   ========================================================================== */
@media (max-width: 767px) {
    /* Bandeau en "bottom sheet" */
    html body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig,
    html body #tarteaucitronRoot.tarteaucitronSize-popup div#tarteaucitronAlertBig {
        top: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-height: 88vh;
        margin: 0 !important;
        padding: 22px 18px calc(18px + env(safe-area-inset-bottom)) !important;
        border-radius: var(--tac-radius) var(--tac-radius) 0 0 !important;
        border-bottom: 0 !important;
        animation-name: tacRise;
    }

    html body #tarteaucitronRoot div#tarteaucitronAlertBig button.tarteaucitronCTAButton,
    html body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig button.tarteaucitronCTAButton {
        display: inline-flex !important;
        width: calc(50% - 8px) !important;
        margin: 0 !important;
    }

    html body #tarteaucitronRoot div#tarteaucitronAlertBig #tarteaucitronAllDenied2,
    html body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig #tarteaucitronAllDenied2 {
        margin-left: 10px !important;
    }

    html body #tarteaucitronRoot.tarteaucitronSize-middle div#tarteaucitronAlertBig #tarteaucitronCloseAlert,
    html body #tarteaucitronRoot.tarteaucitronSize-popup div#tarteaucitronAlertBig #tarteaucitronCloseAlert {
        display: flex !important;
        margin: 10px 0 0 !important;
    }

    /* barres top/bottom : empilées */
    html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig,
    html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig {
        padding: 18px 18px calc(16px + env(safe-area-inset-bottom)) !important;
    }

    html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,
    html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
        flex-basis: 100%;
        margin: 0 36px 4px 0 !important;
    }

    html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronPersonalize2,
    html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronPersonalize2,
    html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronAllDenied2,
    html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronAllDenied2 {
        flex: 1 1 0;
        min-width: 0;
        width: auto !important;
    }

    html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronCloseAlert,
    html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronCloseAlert {
        order: 5;
        flex-basis: 100%;
        margin: 0 !important;
    }

    html body #tarteaucitronRoot.tarteaucitronSize-top div#tarteaucitronAlertBig #tarteaucitronCloseCross,
    html body #tarteaucitronRoot.tarteaucitronSize-bottom div#tarteaucitronAlertBig #tarteaucitronCloseCross {
        top: 16px !important;
        right: 14px !important;
        transform: none;
    }

    /* Panneau plein écran */
    html body #tarteaucitronRoot div#tarteaucitron {
        top: auto !important;
        bottom: 0 !important;
        left: 0 !important;
        transform: none;
        width: 100% !important;
        max-height: 92vh !important;
        height: auto !important;
        border-radius: var(--tac-radius) var(--tac-radius) 0 0 !important;
        animation-name: tacRise;
    }

    html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices {
        max-height: 92vh !important;
    }

    html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronMainLine {
        grid-template-columns: 1fr;
        padding: 22px 18px 18px !important;
    }

    html body #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronAsk button {
        flex: 1 1 0;
    }

    html body #tarteaucitronRoot #tarteaucitron .tarteaucitronBorder {
        padding: 12px 12px 4px !important;
    }

    html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) {
        flex-wrap: wrap;
        padding: 14px !important;
    }

    html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronName {
        flex-basis: 100%;
    }

    html body #tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine:not(.tarteaucitronMainLine) .tarteaucitronAsk {
        margin-left: auto !important;
    }

    html body #tarteaucitronRoot #tarteaucitron ul[id^="tarteaucitronServices_"]:not(#tarteaucitronServices_mandatory) {
        margin: 0 12px 12px !important;
    }

    html body #tarteaucitronRoot #tarteaucitron #tarteaucitronSave #tarteaucitronSaveButton {
        width: 100%;
    }
}

/* ==========================================================================
   7. Animations
   ========================================================================== */
@keyframes tacRise {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes tacDrop {
    from { opacity: 0; transform: translateY(-18px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes tacPop {
    from { opacity: 0; transform: translate(-50%, -46%) scale(.98); }
    to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    html body #tarteaucitronRoot *,
    html body #tarteaucitronRoot div#tarteaucitronAlertBig,
    html body #tarteaucitronRoot div#tarteaucitron {
        animation: none !important;
        transition: none !important;
    }
}
