/**
 * Thème du bandeau de consentement (tarteaucitron) — maquette Figma
 * « Cookies_Bfly_2026 » (ASSETS INTERNE - TRANSVERSAL, node 25:8).
 *
 * Surcharge la CSS de la lib (assets/js/tarteaucitron/css/tarteaucitron.css),
 * qui reste VENDOR : ne pas la modifier, elle est remplacée à chaque montée de
 * version. Ce fichier est chargé APRÈS elle (cf. layout/public.php + le
 * paramètre useExternalCss de tarteaucitron.init).
 *
 * Le switch : la lib rend DEUX boutons par service (Autoriser / Interdire).
 * On garde ce balisage — donc le comportement et l'accessibilité natifs — et on
 * l'habille en interrupteur : le groupe devient la piste, le bouton actif
 * (aria-pressed="true") devient le curseur. Cliquer à gauche interdit, à droite
 * autorise. Aucun JS ajouté.
 */

#tarteaucitronRoot {
    --tac-black:      #000000;
    --tac-slate:      #515865;
    --tac-slate-dark: #3f4551; /* survol des boutons pleins (non fourni en maquette) */
    --tac-grey:       #7a859b;
    --tac-grey-light: #a5adbb;
    --tac-bg:         #f1f2f5;
    --tac-white:      #ffffff;

    --tac-border:  rgba(122, 133, 155, 0.6);
    --tac-fill:    rgba(122, 133, 155, 0.1);
    --tac-radius:  8px;
    --tac-font:    'Noto Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;

    /* Pictos de la maquette, en data-URI (aucune requête, compatibles CSP). */
    --tac-icon-check: url("data:image/svg+xml,%3Csvg viewBox='0 0 6.82854 5.20732' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.32854 0.5L2.32824 4.50022L0.5 2.67198' stroke='white' stroke-linecap='round' stroke-width='1.2'/%3E%3C/svg%3E");
    --tac-icon-cross: url("data:image/svg+xml,%3Csvg viewBox='0 0 6.65706 6.65703' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.15685 0.500177L3.32843 3.3286L0.5 6.15703' stroke='%23515865' stroke-linecap='round' stroke-width='1.2'/%3E%3Cpath d='M6.15706 6.15685L3.32864 3.32843L0.50021 0.5' stroke='%23515865' stroke-linecap='round' stroke-width='1.2'/%3E%3C/svg%3E");
    --tac-icon-close: url("data:image/svg+xml,%3Csvg viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.00001 5.99321L8.88037 9.87357C9.04894 10.0421 9.32221 10.0421 9.49069 9.87357L9.87357 9.49069C10.0421 9.32221 10.0421 9.04894 9.87357 8.88037L5.99321 5.00001L9.87357 1.11964C10.0421 0.951102 10.0421 0.677853 9.87357 0.50931L9.49069 0.126401C9.32221 -0.0421336 9.04894 -0.0421336 8.88037 0.126401L5.00001 4.00677L1.11964 0.126401C0.951102 -0.0421336 0.677853 -0.0421336 0.50931 0.126401L0.126401 0.50931C-0.0421336 0.677853 -0.0421336 0.951102 0.126401 1.11964L4.00677 5.00001L0.126401 8.88037C-0.0421336 9.04894 -0.0421336 9.32221 0.126401 9.49069L0.50931 9.87357C0.677853 10.0421 0.951102 10.0421 1.11964 9.87357L5.00001 5.99321Z' fill='black'/%3E%3C/svg%3E");
    /* L'icône flottante est INLINE, et ce n'est pas un choix esthétique :
       assets/images est dans le .gitignore (les images du site viennent du
       CDN, cf. App::asset()). Un fichier posé là ne serait jamais déployé.
       Inline = versionné avec la CSS, aucune requête, aucune étape ops. */
    --tac-icon-cookie:       url("data:image/svg+xml,%3Csvg viewBox='0 0 44 44' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='Icon 44x44'%3E%3Crect width='44' height='44' rx='22' fill='%237A859B'/%3E%3Crect width='44' height='44' rx='22' fill='%237A859B'/%3E%3Cpath id='Vector' d='M31.5764 20.2562C31.0148 20.4335 30.4236 20.5517 29.8325 20.5517C27.0542 20.5222 24.8079 18.2759 24.7783 15.4975C24.7783 14.9655 24.867 14.4335 25.0443 13.931C24.3941 13.2217 24.0394 12.3054 24.0394 11.3596C24.0394 10.9754 24.0985 10.5911 24.2167 10.2069C23.4778 10.0887 22.7389 10 22 10C15.3793 10 10 15.3793 10 22C10 28.6207 15.3793 34 22 34C28.6207 34 34 28.6207 34 22C34 21.734 34 21.468 33.9704 21.202C33.1133 21.1133 32.2562 20.7882 31.5764 20.2562ZM15.4975 18.7783C17.5665 18.7783 17.5665 22.0296 15.4975 22.0296C13.4286 22.0296 13.133 18.7783 15.4975 18.7783ZM17.2709 28.9163C14.9064 28.9163 14.9064 25.3695 17.2709 25.3695C19.6355 25.3695 19.6355 28.9163 17.2709 28.9163ZM20.8177 11.5961C22.8867 11.5961 22.8867 15.1429 20.8177 15.1429C18.7488 15.1429 18.4532 11.5961 20.8177 11.5961ZM22.2956 20.6108C24.069 20.6108 24.069 22.9754 22.2956 22.9754C20.5222 22.9754 20.8177 20.6108 22.2956 20.6108ZM24.3645 30.335C22.5911 30.335 22.5911 27.9704 24.3645 27.9704C26.1379 27.9704 25.8424 30.335 24.3645 30.335ZM29.9803 25.7241C28.5025 25.7241 28.5025 23.3596 29.9803 23.3596C31.4581 23.3596 31.4581 25.7241 29.9803 25.7241Z' fill='white'/%3E%3C/g%3E%3C/svg%3E");
    --tac-icon-cookie-hover: url("data:image/svg+xml,%3Csvg viewBox='0 0 60 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='Icon 44x44' filter='url(%23filter0_d_0_16)'%3E%3Crect x='8' y='8' width='44' height='44' rx='22' fill='white'/%3E%3Cpath id='Vector' d='M39.5764 28.2562C39.0148 28.4335 38.4236 28.5517 37.8325 28.5517C35.0542 28.5222 32.8079 26.2759 32.7783 23.4975C32.7783 22.9655 32.867 22.4335 33.0443 21.931C32.3941 21.2217 32.0394 20.3054 32.0394 19.3596C32.0394 18.9754 32.0985 18.5911 32.2167 18.2069C31.4778 18.0887 30.7389 18 30 18C23.3793 18 18 23.3793 18 30C18 36.6207 23.3793 42 30 42C36.6207 42 42 36.6207 42 30C42 29.734 42 29.468 41.9704 29.202C41.1133 29.1133 40.2562 28.7882 39.5764 28.2562ZM23.4975 26.7783C25.5665 26.7783 25.5665 30.0296 23.4975 30.0296C21.4286 30.0296 21.133 26.7783 23.4975 26.7783ZM25.2709 36.9163C22.9064 36.9163 22.9064 33.3695 25.2709 33.3695C27.6355 33.3695 27.6355 36.9163 25.2709 36.9163ZM28.8177 19.5961C30.8867 19.5961 30.8867 23.1429 28.8177 23.1429C26.7488 23.1429 26.4532 19.5961 28.8177 19.5961ZM30.2956 28.6108C32.069 28.6108 32.069 30.9754 30.2956 30.9754C28.5222 30.9754 28.8177 28.6108 30.2956 28.6108ZM32.3645 38.335C30.5911 38.335 30.5911 35.9704 32.3645 35.9704C34.1379 35.9704 33.8424 38.335 32.3645 38.335ZM37.9803 33.7241C36.5025 33.7241 36.5025 31.3596 37.9803 31.3596C39.4581 31.3596 39.4581 33.7241 37.9803 33.7241Z' fill='%237A859B'/%3E%3C/g%3E%3Cdefs%3E%3Cfilter id='filter0_d_0_16' x='0' y='0' width='60' height='60' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/%3E%3CfeOffset/%3E%3CfeGaussianBlur stdDeviation='4'/%3E%3CfeComposite in2='hardAlpha' operator='out'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0'/%3E%3CfeBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_0_16'/%3E%3CfeBlend mode='normal' in='SourceGraphic' in2='effect1_dropShadow_0_16' result='shape'/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E");
}

/* ── Panneau ─────────────────────────────────────────────────────────── */

#tarteaucitronRoot #tarteaucitron {
    width: 620px;
    max-width: calc(100vw - 32px);
    padding: 24px;
    border: 0;
    border-radius: 16px;
    background: var(--tac-white);
    box-shadow: 0 0 16px 0 rgba(22, 22, 22, 0.16);
}

#tarteaucitronRoot #tarteaucitron,
#tarteaucitronRoot #tarteaucitron * {
    font-family: var(--tac-font);
    box-sizing: border-box;
}

#tarteaucitronRoot #tarteaucitron ul,
#tarteaucitronRoot #tarteaucitron li {
    background: transparent;
    border: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* La lib pose sur #tarteaucitronServices une marge haute de 21px (!important) et
   une ombre portée « 0 40px 60px #545454 » : ensemble, elles dessinaient une
   fausse « boîte dans la boîte » et décalaient « Fermer » au-dessus du titre. */
#tarteaucitronRoot #tarteaucitron div#tarteaucitronServices {
    margin-top: 0 !important;
    box-shadow: none !important;
}

/* La lib pose des séparateurs et des fonds gris hérités : on repart à plat. */
#tarteaucitronRoot #tarteaucitronServices,
#tarteaucitronRoot .tarteaucitronBorder,
#tarteaucitronRoot #tarteaucitronMainLineOffset,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronInfo {
    background: transparent;
    border: 0;
    margin: 0;
    padding: 0;
}

/* ── Titre + Fermer ──────────────────────────────────────────────────── */

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #dialogTitle {
    display: block;
    margin: 0 0 24px;
    padding: 0 80px;
    border: 0;
    background: transparent;
    color: var(--tac-black);
    font-size: 18px;
    font-weight: 700;
    line-height: normal;
    text-align: center;
}

#tarteaucitronRoot #tarteaucitronClosePanel {
    position: absolute;
    /* z-index indispensable : le bouton et #tarteaucitronMainLineOffset (que la
       lib met en position:relative) sont tous deux positionnes en z-index auto,
       donc departages par l'ordre du DOM — et le bouton y vient en PREMIER. Le
       titre, large de toute la carte, lui passait donc devant et avalait le clic.
       La lib evitait le probleme avec son margin-top de 21px sur #tarteaucitronServices,
       que la maquette nous fait retirer (« Fermer » aligne sur le titre). */
    z-index: 1;
    top: 24px;
    right: 24px !important;
    left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    border: 0;
    border-radius: var(--tac-radius);
    background: var(--tac-white);
    color: var(--tac-black);
    font-size: 12px;
    font-weight: 400;
    line-height: normal;
    cursor: pointer;
}

/* La croix de la maquette (le libellé « Fermer » vient de la lib, traduit). */
#tarteaucitronRoot #tarteaucitronClosePanel::after {
    content: '';
    width: 10px;
    height: 10px;
    background: currentColor;
    -webkit-mask: var(--tac-icon-close) center / contain no-repeat;
    mask: var(--tac-icon-close) center / contain no-repeat;
}

#tarteaucitronRoot #tarteaucitronClosePanel:hover,
#tarteaucitronRoot #tarteaucitronClosePanel:focus-visible {
    background: var(--tac-fill);
}

/* ── Texte d'intro + lien politique de confidentialité ───────────────── */

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronInfo {
    display: flex !important;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px !important;
    color: var(--tac-black);
    font-size: 14px !important;
    line-height: normal;
    text-align: center !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronInfo p {
    margin: 0;
    color: inherit;
    font-size: inherit;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronInfo br {
    display: none;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronPrivacyUrlDialog {
    display: inline;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--tac-black);
    font-size: 14px;
    text-decoration: underline;
    cursor: pointer;
}

/* « Préférences pour tous les services » : absent de la maquette. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronMainLineOffset .tarteaucitronName,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li#tarteaucitronNoServicesTitle {
    display: none;
}

/* ── Boutons principaux (Tout refuser / Tout accepter) ───────────────── */

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronScrollbarAdjust {
    display: flex;
    /* La maquette place « Tout refuser » à gauche ; la lib rend Allow en
       premier dans le DOM. On inverse à l'affichage, l'ordre de tabulation
       reste celui du DOM. */
    flex-direction: row-reverse;
    justify-content: flex-start;
    gap: 12px;
    margin: 0 0 24px;
    padding: 0;
    background: transparent;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronSaveButton {
    margin: 0;
    padding: 10px 16px;
    border-radius: var(--tac-radius);
    font-size: 14px !important;
    font-weight: 400;
    line-height: 20px;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

/* Plein */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronSaveButton {
    border: 1px solid var(--tac-slate);
    background: var(--tac-slate);
    color: var(--tac-white);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed:hover,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed:focus-visible,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronSaveButton:hover,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronSaveButton:focus-visible {
    border-color: var(--tac-slate-dark);
    background: var(--tac-slate-dark);
}

/* Contour */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied {
    border: 1px solid var(--tac-border);
    background: var(--tac-white);
    color: var(--tac-slate);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied:hover,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied:focus-visible {
    background: var(--tac-fill);
}

/* Désactivé (la lib pose disabled sur les services obligatoires). */
#tarteaucitronRoot #tarteaucitron button[disabled] {
    cursor: not-allowed;
    opacity: 1;
}

/* Les pictos ☑/☐ de la lib : la maquette n'en veut pas sur ces boutons. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronScrollbarAdjust .tarteaucitronCheck,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronScrollbarAdjust .tarteaucitronCross {
    display: none;
}

/* ── Cartes de services ──────────────────────────────────────────────── */

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li[id^='tarteaucitronServicesTitle_'] {
    position: relative;
    margin-bottom: 12px;
    padding: 10px 60px 10px 16px; /* la place à droite est celle du switch */
    border: 1px solid var(--tac-border);
    border-radius: var(--tac-radius);
    background: var(--tac-white);
}

/* Cookies obligatoires : fond grisé (maquette). */
/* Prefixe aligne sur la regle generique des cartes (3 ID) : sinon celle-ci
   l'emporte et la carte « cookies obligatoires » reste blanche. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li#tarteaucitronServicesTitle_mandatory {
    background: var(--tac-fill);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronTitle {
    margin: 0;
    padding: 0;
    background: transparent;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronTitle button {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--tac-black);
    font-size: 14px;
    font-weight: 700;
    line-height: normal;
    text-align: left !important;
    cursor: default;
}

/* Le « + » de dépliage : les cartes sont ouvertes en permanence. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronTitle button::before {
    display: none;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronDetails {
    /* !important indispensable : les cartes ne sont pas dépliables dans la
       maquette, or le JS de la lib replie la description via un style INLINE
       (display:none) qu'une règle de feuille ne peut pas battre. */
    display: block !important;
    position: static;
    margin: 4px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--tac-black);
    font-size: 14px;
    line-height: normal;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine {
    border-left: 0 !important;
    margin: 0;
    padding: 0;
    background: transparent;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronName {
    width: auto !important;
    margin: 4px 0 0 !important;
    padding: 0;
    float: none !important;
}

/* Nom du service (« Matomo : ») + ses liens : 12px sous la description. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronH3 {
    display: inline !important;
    margin: 0;
    color: var(--tac-black);
    font-size: 12px !important;
    font-weight: 700 !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronH3::after {
    content: ' :';
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronReadmoreInfo,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronReadmoreOfficial,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronReadmoreSeparator {
    color: var(--tac-black);
    font-size: 12px;
    font-weight: 400;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronReadmoreInfo,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronReadmoreOfficial {
    text-decoration: underline;
}

/* Statut « interdit - Ce service n'a déposé aucun cookie » : hors maquette. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronStatusInfo {
    display: none;
}

/* Cookies obligatoires : le texte long est porté par le H3 de la ligne. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul#tarteaucitronServices_mandatory .tarteaucitronH3 {
    display: block !important;
    font-size: 14px !important;
    font-weight: 400 !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul#tarteaucitronServices_mandatory .tarteaucitronH3::after {
    content: none;
}

/* ── Le switch (piste = le groupe, curseur = le bouton actif) ────────── */

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk {
    position: absolute !important;
    top: 10px;
    right: 16px;
    display: flex !important;
    align-items: center;
    gap: 0;
    width: 42px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 2px;
    /* Interdire à gauche, Autoriser à droite : la lib rend Allow en premier. */
    flex-direction: row-reverse;
    border: 1px solid var(--tac-border);
    border-radius: 40px;
    background: var(--tac-border);
    overflow: hidden;
    transition: background-color 0.15s ease;
}

/* Autorisé → piste claire. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronIsAllowed .tarteaucitronAsk {
    background: var(--tac-fill);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk button {
    flex: 1 1 50%;
    display: flex !important;
    align-items: center;
    justify-content: center;
    height: 16px !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    border-radius: 10px !important;
    background: transparent;
    /* Le libellé (« Autoriser »/« Interdire ») reste lisible par les
       lecteurs d'écran via aria-label ; il ne doit pas s'afficher. */
    font-size: 0 !important;
    color: transparent;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

/* Le bouton ACTIF devient le curseur. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk button[aria-pressed='true'] {
    background: var(--tac-white);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk .tarteaucitronAllow[aria-pressed='true'] {
    background: var(--tac-slate);
}

/* Survol : on préfigure le curseur sur la moitié visée. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk button:hover,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk button:focus-visible {
    background: rgba(255, 255, 255, 0.5);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk .tarteaucitronAllow:hover,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk .tarteaucitronAllow:focus-visible {
    background: rgba(81, 88, 101, 0.5);
}

/* Le picto ✓ / ✕ dans le curseur. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk .tarteaucitronCheck,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk .tarteaucitronCross {
    display: block;
    width: 6px;
    height: 6px;
    margin: 0;
    background: transparent;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk .tarteaucitronCross {
    -webkit-mask-image: var(--tac-icon-cross);
    mask-image: var(--tac-icon-cross);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk .tarteaucitronCheck {
    -webkit-mask-image: var(--tac-icon-check);
    mask-image: var(--tac-icon-check);
}

/* Le picto n'est visible que dans le curseur (bouton actif). */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk button[aria-pressed='true'] .tarteaucitronCross {
    background: var(--tac-slate);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk button[aria-pressed='true'] .tarteaucitronCheck {
    background: var(--tac-white);
}

/* Obligatoire : curseur grisé, à droite, non cliquable (bouton disabled). */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul#tarteaucitronServices_mandatory .tarteaucitronAsk {
    background: var(--tac-fill);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul#tarteaucitronServices_mandatory .tarteaucitronAsk .tarteaucitronAllow {
    background: var(--tac-border);
    cursor: not-allowed;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul#tarteaucitronServices_mandatory .tarteaucitronAsk .tarteaucitronAllow .tarteaucitronCheck {
    background: var(--tac-white);
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul#tarteaucitronServices_mandatory .tarteaucitronAsk .tarteaucitronDeny {
    display: none;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices ul#tarteaucitronServices_mandatory .tarteaucitronAsk .tarteaucitronAllow:hover {
    background: var(--tac-border);
}

/* ── Enregistrer ─────────────────────────────────────────────────────── */

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices #tarteaucitronSave {
    margin: 0;
    padding: 0;
    background: transparent;
    text-align: right;
}

/* ── Icône flottante (ouvre le panneau) ──────────────────────────────── */

#tarteaucitronRoot #tarteaucitronIcon {
    width: 60px;
    height: 60px;
    padding: 0;
    background: transparent;
}

#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager {
    /* Boîte de 60px pour 44px de visuel : le SVG de survol embarque son ombre
       portée (viewBox 60x60), qu'un fond de 44px rognerait. */
    width: 60px;
    height: 60px;
    padding: 0;
    background: var(--tac-icon-cookie) center / 44px 44px no-repeat;
    font-size: 0 !important;
    line-height: 0;
    color: transparent;
    cursor: pointer;
}

#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager img {
    display: none;
}

#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager:hover,
#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager:focus-visible {
    background-image: var(--tac-icon-cookie-hover);
    background-size: 60px 60px;
}

/* ── Fond derrière le panneau ────────────────────────────────────────── */

#tarteaucitronRoot #tarteaucitronBack {
    background: var(--tac-black);
    opacity: 0.5;
}

/* La lib dessine ses propres pictos ☑/☐ via ::before en !important : on les
   retire, la maquette utilise les tracés SVG du Figma (masques ci-dessus). */
#tarteaucitronRoot #tarteaucitron .tarteaucitronCheck::before,
#tarteaucitronRoot #tarteaucitron .tarteaucitronCross::before {
    content: '' !important;
    display: none !important;
}

/* Le « + » de dépliage : les cartes sont ouvertes en permanence (maquette). */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronPlus {
    display: none !important;
}

/* Le titre reste un bouton de dépliage côté lib, mais il n'a plus rien à
   replier (cf. le !important sur .tarteaucitronDetails) : on neutralise le
   clic pour éviter un état incohérent au survol/au clic. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronTitle button {
    pointer-events: none;
}

/* La lib borne la description à 270px : la maquette la veut pleine largeur. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices .tarteaucitronDetails,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronName,
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronName span {
    width: auto !important;
    max-width: none !important;
    float: none !important;
}

/* Mobile : la lib force ses boutons en pleine largeur — le switch doit rester
   un switch. (Sa media query s'applique dès 767px.) */
@media screen and (max-width: 767px) {
    #tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk {
        width: 42px !important;
        max-width: 42px !important;
        display: flex !important;
        margin: 0 !important;
    }

    #tarteaucitronRoot #tarteaucitron #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk button {
        width: auto !important;
        max-width: none !important;
        display: flex !important;
        margin: 0 !important;
    }

    #tarteaucitronRoot #tarteaucitron #tarteaucitronServices li[id^='tarteaucitronServicesTitle_'] {
        width: auto !important;
        max-width: none !important;
    }
}

/* ── Bandeau de première visite (#tarteaucitronAlertBig) ─────────────── */
/* La maquette ne le couvre pas : on lui applique la palette du panneau, sans
   toucher à sa structure ni à sa position (bandeau bas, pleine largeur).
   Il est FRÈRE du panneau, donc aucune règle ci-dessus ne l'atteignait : il
   restait entièrement habillé par la lib (jaune #fbd600, radius 4px). */

#tarteaucitronRoot #tarteaucitronAlertBig {
    /* La lib le met en content-box avec width:100% : sans border-box, notre
       padding horizontal s'AJOUTE aux 100% et le bandeau déborde de l'écran. */
    box-sizing: border-box;
    padding: 16px 24px;
    background: var(--tac-white);
    color: var(--tac-black);
    font-family: var(--tac-font);
    font-size: 14px !important;
    box-shadow: 0 0 16px 0 rgba(22, 22, 22, 0.16);
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
    padding: 0;
    color: var(--tac-black);
    font-family: var(--tac-font);
    font-size: 14px !important;
    line-height: normal;
}

/* Boutons : même traitement que dans le panneau (plein / contour). */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    margin: 0 0 0 12px;
    padding: 10px 16px;
    border-radius: var(--tac-radius);
    font-family: var(--tac-font);
    font-size: 14px !important;
    font-weight: 400;
    line-height: 20px;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
    border: 1px solid var(--tac-slate);
    background: var(--tac-slate);
    color: var(--tac-white);
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:focus-visible {
    border-color: var(--tac-slate-dark);
    background: var(--tac-slate-dark);
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    border: 1px solid var(--tac-border);
    background: var(--tac-white);
    color: var(--tac-slate);
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:focus-visible {
    background: var(--tac-fill);
}

/* « Personnaliser » et « Politique de confidentialité » : liens soulignés,
   comme le lien du panneau. */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
    margin: 0 0 0 12px;
    padding: 10px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--tac-black);
    font-family: var(--tac-font);
    font-size: 14px !important;
    text-decoration: underline;
    cursor: pointer;
}

/* Les pictos ☑/☐ que la lib injecte en content!important : hors palette. */
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCheck,
#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCross {
    display: none !important;
}
