/*!
 * Product Studio Consent — bandeau de consentement aux traceurs
 *
 * Sélecteurs IDENTIQUES à ceux du thème (tp-cookie-*) : le bandeau garde son
 * apparence actuelle. Les couleurs s'appuient sur les variables du thème avec
 * une valeur de repli — le plugin reste donc présentable sur un autre thème.
 */

.tp-cookie-banner { position:fixed; bottom:0; left:0; right:0; z-index:9000;
  background:var(--ardoise, #3D3530); color:var(--creme, #F7F0E6);
  padding:1.25rem 2rem; display:none; align-items:center; gap:2rem; flex-wrap:wrap;
  border-top:3px solid var(--ocre, #C4862A);
  animation:slideUp .5s ease both; }
.tp-cookie-banner.visible { display:flex }
.tp-cookie-banner__text { font-size:.82rem; line-height:1.6; flex:1; min-width:240px; color:var(--creme2, #EDE3D4) }
.tp-cookie-banner__text a { color:var(--ocre-l, #D9A44E); text-decoration:underline }
.tp-cookie-banner__btns { display:flex; gap:.65rem; flex-wrap:wrap; align-items:center }
.tp-cookie-accept { background:var(--ocre-btn); color:var(--blanc, #FFFDF9); padding:.55rem 1.4rem; border-radius:30px; font-size:.75rem; font-weight:600; letter-spacing:.06em; transition:background .2s }
.tp-cookie-accept:hover { background:var(--ocre-btn-h) }
.tp-cookie-refuse { background:var(--ocre-btn); color:var(--blanc, #FFFDF9); padding:.55rem 1.4rem; border-radius:30px; font-size:.75rem; font-weight:600; letter-spacing:.06em; transition:background .2s }
.tp-cookie-refuse:hover { background:var(--ocre-btn-h) }
.tp-cookie-accept { color: #fff; }
.tp-cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 9100;
    background: var(--ardoise, #3D3530); color: var(--creme, #F7F0E6);
    border-top: 3px solid var(--ocre, #C4862A);
    transform: translateY(100%);
    transition: transform .4s var(--ease);
    max-height: 90vh; overflow-y: auto; }
.tp-cookie-banner.visible { transform: translateY(0); }
.tp-cookie-banner__inner { padding: 1.5rem 2rem; max-width: 900px; margin: 0 auto; }
.tp-cookie-banner__title { font-family: var(--serif); font-size: 1rem; font-weight: 700;
    color: var(--blanc, #FFFDF9); margin-bottom: .4rem; }
.tp-cookie-banner__desc { font-size: .82rem; line-height: 1.6; color: var(--creme2, #EDE3D4);
    margin-bottom: 1.25rem; }
.tp-cookie-banner__link { color: var(--ocre-l, #D9A44E); text-decoration: underline; }
.tp-cookie-banner__categories { display: flex; flex-direction: column; gap: .85rem;
    margin-bottom: 1.5rem; }
.tp-cookie-cat { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1);
    border-radius: var(--radius); padding: .85rem 1rem; cursor: pointer; }
.tp-cookie-cat__info { flex: 1; min-width: 0; }
.tp-cookie-cat__name { display: block; font-size: .85rem; font-weight: 600;
    color: var(--blanc, #FFFDF9); margin-bottom: .2rem; }
.tp-cookie-cat__desc { display: block; font-size: .75rem; color: var(--gc); line-height: 1.5; }
.tp-cookie-toggle { position: absolute; opacity: 0; width: 0; height: 0; }
.tp-cookie-toggle__track { flex-shrink: 0; width: 44px; height: 24px;
    background: rgba(255,255,255,.2); border-radius: 12px;
    position: relative; transition: background .2s; cursor: pointer; }
.tp-cookie-toggle__track::after { content: ''; position: absolute; top: 3px; left: 3px;
    width: 18px; height: 18px; background: var(--blanc, #FFFDF9);
    border-radius: 50%; transition: transform .2s; }
.tp-cookie-toggle:checked + .tp-cookie-toggle__track { background: var(--ocre-btn); }
.tp-cookie-toggle:checked + .tp-cookie-toggle__track::after { transform: translateX(20px); }
.tp-cookie-toggle:disabled + .tp-cookie-toggle__track { background: var(--ocre-btn); opacity: .7; cursor: not-allowed; }
.tp-cookie-toggle:focus-visible + .tp-cookie-toggle__track { outline: 2px solid var(--ocre, #C4862A); outline-offset: 2px; }
.tp-cookie-banner__btns { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: flex-end; }
.tp-cookie-accept { background: var(--ocre-btn); color: var(--blanc, #FFFDF9); padding: .6rem 1.5rem;
    border-radius: 30px; font-size: .78rem; font-weight: 600;
    letter-spacing: .06em; transition: background .2s; }
.tp-cookie-accept:hover { background: var(--ocre-btn-h); }
.tp-cookie-accept:focus-visible { outline: 2px solid var(--blanc, #FFFDF9); outline-offset: 3px; }
.tp-cookie-custom { border: 1px solid rgba(255,255,255,.3); color: var(--creme2, #EDE3D4);
    padding: .6rem 1.25rem; border-radius: 30px; font-size: .78rem;
    transition: border-color .2s; }
.tp-cookie-custom:hover { border-color: rgba(255,255,255,.7); }
.tp-cookie-custom:focus-visible { outline: 2px solid var(--ocre, #C4862A); outline-offset: 3px; }
.tp-cookie-refuse:hover { background: var(--ocre-btn-h); }
.tp-cookie-refuse:hfocus-visible { outline: 2px solid var(--blanc, #FFFDF9); outline-offset: 3px; }

@media (max-width: 900px) {
    /* ── COOKIE BANNER ── */
      .tp-cookie-banner { flex-direction: column !important;
    padding: 1rem !important;
    gap: 0.75rem !important; }
    .tp-cookie-banner__text { font-size: 0.78rem !important; }
    .tp-cookie-banner__btns { flex-direction: column !important;
    width: 100% !important; }
    .tp-cookie-banner__btns button { width: 100% !important; min-height: 40px !important; }
}

@media (max-width: 600px) {
    .tp-cookie-banner__inner { padding: 1.25rem 1rem; }
    .tp-cookie-banner__btns { flex-direction: column; }
    .tp-cookie-accept, .tp-cookie-custom { width: 100%; text-align: center; min-height: 44px; }
    .tp-cookie-cat { flex-wrap: wrap; }
}

/* ── Focus visible (RGAA 10.7) — jamais supprimé ── */
.tp-cookie-banner button:focus-visible,
.tp-cookie-banner input:focus-visible + .tp-cookie-toggle__track {
  outline: 3px solid var(--ocre-l, #D9A44E);
  outline-offset: 2px;
}

/* ── Mouvement réduit (RGAA 13.8) ── */
@media (prefers-reduced-motion: reduce) {
  .tp-cookie-banner { animation: none !important; }
}
