/* ═══════════════════════════════════════════════════════════
   Ticketix V23.0.0 — Promo blog (3 slots x 5 cibles)
   Design system : Outfit (titres) / DM Sans (corps), violet #7c3aed,
   rouge Betclic via --betclic-red. Mobile-first.
   ═══════════════════════════════════════════════════════════ */

:root{
  /* Re-déclaration de secours (le token canonique vit dans betclic.css). */
  --betclic-red:#E10014;
  --betclic-red-hover:#B8000F;
  --tx-violet:#7c3aed;
  --tx-violet-2:#9333ea;
  --tx-ink:#1a0e2e;
}

/* ---- Base carte ---- */
.tx-promo{
  font-family:'DM Sans',sans-serif;
  border-radius:14px;
  margin:28px 0;
  padding:22px 24px;
  box-sizing:border-box;
  color:var(--tx-ink);
}
.tx-promo *{box-sizing:border-box}
.tx-promo a{text-decoration:none}
.tx-promo h3{margin:0;font-family:'Outfit',sans-serif}

/* In-content : largeur de lecture, bien détaché du texte */
.post-content .tx-promo{margin:32px 0}
/* Sidebar : compact, suit le rail sticky */
.tx-promo--compact{margin:0 0 14px;padding:16px 16px}
/* Cible unique (1er enfant) : colle au scroll comme la card event. */
.tx-event-sidebar > .tx-promo:first-child{position:sticky;top:90px}
/* V23.1.1 — dual sidebar : la card HT (haute) défile, le bloc Betclic (conversion)
   reste collé. Évite que Betclic disparaisse SOUS la card HT sticky au scroll.
   Specificité (0,2,0) > le `.tx-event-card{position:sticky}` inline de single.php. */
.tx-event-sidebar--stack .tx-event-card{position:static}
.tx-event-sidebar--stack .tx-promo--betclic{position:sticky;top:90px}

/* =========================================================
   CIBLE BETCLIC (rouge, dominante)
   ========================================================= */
.tx-promo--betclic{
  background:#fff;
  border:1px solid rgba(225,0,20,.18);
  box-shadow:0 8px 28px rgba(225,0,20,.08);
}
.tx-promo-bc-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.tx-promo-bc-logo{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--betclic-red),var(--betclic-red-hover));
  padding:7px 12px;border-radius:8px;flex-shrink:0;
}
.tx-promo-bc-logo img{display:block;height:18px;width:auto}
.tx-promo-bc-title{font-size:1.15rem;font-weight:800;color:var(--tx-ink);line-height:1.2}
.tx-promo--compact .tx-promo-bc-title{font-size:1rem}

.tx-promo-bc-cotes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
.tx-promo-cote{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:12px 8px;background:#fff;
  border:1px solid rgba(225,0,20,.22);border-radius:10px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.tx-promo-cote:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(225,0,20,.16);border-color:rgba(225,0,20,.45)}
.tx-promo-cote-lbl{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#5a4a6b;text-align:center}
.tx-promo-cote-val{font-family:'Outfit',sans-serif;font-weight:900;font-size:1.5rem;color:var(--betclic-red);line-height:1}
.tx-promo--compact .tx-promo-cote-val{font-size:1.25rem}
.tx-promo-bc-cotedate{font-size:.72rem;color:#9a8aad;text-align:right;margin:0 0 14px}
.tx-promo-bc-label{font-size:.95rem;font-weight:700;color:var(--tx-ink);margin:0 0 12px}

/* V23.1 — template CDM 2026 : favoris vainqueur (3-4 cases, flow auto) */
.tx-promo-bc-cotedate--top{text-align:left;margin:0 0 8px;font-size:.78rem}
.tx-promo-bc-cotes--cdm{grid-template-columns:repeat(auto-fit,minmax(78px,1fr))}
.tx-promo-bc-cotes--cdm .tx-promo-cote-val{font-size:1.3rem}
.tx-promo--compact .tx-promo-bc-cotes--cdm .tx-promo-cote-val{font-size:1.15rem}

.tx-promo-bc-bonus{
  background:rgba(225,0,20,.06);
  border:1px solid rgba(225,0,20,.18);
  border-radius:10px;padding:14px 16px;margin-bottom:14px;
}
.tx-promo-bc-bonus-main{margin:0 0 4px;font-size:1.05rem;line-height:1.35;color:var(--tx-ink)}
.tx-promo--compact .tx-promo-bc-bonus-main{font-size:.95rem}
.tx-promo-bc-bonus-main strong{font-weight:900;color:var(--betclic-red)}
.tx-promo-bc-bonus-sub{margin:0;font-size:.82rem;color:#5a4a6b}

.tx-promo-bc-how{margin-bottom:16px}
.tx-promo-bc-how-t{font-family:'Outfit',sans-serif;font-weight:800;font-size:.95rem;margin:0 0 8px;color:var(--tx-ink)}
.tx-promo-bc-how ul{margin:0 0 10px;padding-left:18px}
.tx-promo-bc-how li{font-size:.9rem;line-height:1.5;color:#3a2f4a;margin-bottom:6px}
.tx-promo-bc-how li strong{color:var(--betclic-red)}
.tx-promo-bc-ex{
  font-size:.85rem;line-height:1.5;color:#3a2f4a;margin:0;
  background:#faf7ff;border-left:3px solid var(--tx-violet);
  padding:10px 12px;border-radius:0 8px 8px 0;
}

.tx-promo-bc-cta,
.tx-promo-bc-cta:link,
.tx-promo-bc-cta:visited{
  display:flex;align-items:center;justify-content:center;width:100%;
  font-family:'Outfit',sans-serif;font-weight:800;font-size:1rem;
  color:#fff !important;text-decoration:none !important;
  background:linear-gradient(135deg,var(--betclic-red),var(--betclic-red-hover));
  padding:14px 24px;border-radius:11px;
  box-shadow:0 6px 20px rgba(225,0,20,.3);
  transition:transform .2s ease,box-shadow .2s ease;margin-bottom:12px;
}
.tx-promo-bc-cta:hover,.tx-promo-bc-cta:focus{color:#fff !important;transform:scale(1.02);box-shadow:0 8px 26px rgba(225,0,20,.4)}
.tx-promo--compact .tx-promo-bc-cta{font-size:.9rem;padding:12px 16px}

.tx-promo-bc-anj{font-size:.72rem;color:#9a8aad;text-align:center;margin:0 0 3px}
.tx-promo-bc-anj a{color:var(--tx-violet);text-decoration:underline}
.tx-promo-bc-feebets{font-size:.7rem;color:#b3a6c4;text-align:center;margin:0;font-style:italic}

/* =========================================================
   CIBLE HELLOTICKETS (violet)
   ========================================================= */
.tx-promo--ht{
  background:linear-gradient(135deg,var(--tx-violet) 0%,var(--tx-violet-2) 100%);
  color:#fff;
}
.tx-promo-ht-kicker{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.tx-promo-ht-title{font-size:1.2rem;font-weight:800;color:#fff;line-height:1.25;margin:4px 0 0}
.tx-promo--compact .tx-promo-ht-title{font-size:1.05rem}
.tx-promo-ht-title strong{font-weight:900}
.tx-promo-ht-reassure{font-size:.8rem;opacity:.9;margin:10px 0 14px}
.tx-promo-ht-cta,
.tx-promo-ht-cta:link,
.tx-promo-ht-cta:visited{
  display:flex;align-items:center;justify-content:center;width:100%;
  font-family:'Outfit',sans-serif;font-weight:800;font-size:.95rem;
  color:var(--tx-violet) !important;text-decoration:none !important;
  background:#fff;padding:13px 20px;border-radius:11px;
  box-shadow:0 6px 20px rgba(0,0,0,.18);transition:transform .2s ease;
}
.tx-promo-ht-cta:hover,.tx-promo-ht-cta:focus{transform:scale(1.02);color:var(--tx-violet) !important}

/* =========================================================
   CIBLE ALERTE (violet, formulaire)
   ========================================================= */
.tx-promo--alert{
  background:linear-gradient(135deg,#2d1b4d 0%,var(--tx-violet) 100%);
  color:#fff;
}
.tx-promo-al-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tx-promo-al-icon{font-size:1.4rem;line-height:1}
.tx-promo-al-title{font-size:1.15rem;font-weight:800;color:#fff;line-height:1.2}
.tx-promo--compact .tx-promo-al-title{font-size:1rem}
.tx-promo-al-hook{font-size:.88rem;opacity:.92;margin:0 0 14px;line-height:1.45}
.tx-promo-al-form{display:flex;gap:8px;flex-wrap:wrap}
.tx-promo-al-email{
  flex:1;min-width:0;padding:12px 14px;border:none;border-radius:10px;
  font-family:'DM Sans',sans-serif;font-size:.92rem;color:var(--tx-ink);
}
.tx-promo-al-btn{
  font-family:'Outfit',sans-serif;font-weight:800;font-size:.92rem;color:#fff;
  background:var(--betclic-red);border:none;border-radius:10px;padding:12px 18px;
  cursor:pointer;transition:transform .2s ease,background .2s ease;white-space:nowrap;
}
.tx-promo-al-btn:hover{transform:scale(1.03);background:var(--betclic-red-hover)}
.tx-promo--compact .tx-promo-al-form{flex-direction:column}
.tx-promo--compact .tx-promo-al-btn{width:100%}
.tx-promo-al-msg{font-size:.8rem;margin:10px 0 0;min-height:0;color:#fff}
.tx-promo-al-msg.is-error{color:#ffd5da}
.tx-promo-al-msg.is-ok{color:#c7f9d8}
.tx-promo-al-note{font-size:.7rem;opacity:.8;margin:8px 0 0}
.tx-promo-al-hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.tx-promo-al-srlabel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* =========================================================
   V23.1 — STICKY BARS (4 variantes, couleur de marque par cible)
   1 cible affichée par page ; hauteur cohérente ; mobile only.
   Pas de fond sombre neutre derrière une couleur de marque.
   ========================================================= */
.tx-promo-st{display:none}
@media(max-width:768px){
  .tx-promo-st{
    display:block;position:fixed;bottom:0;left:0;right:0;z-index:9999;
    font-family:'DM Sans',sans-serif;
    box-shadow:0 -4px 20px rgba(0,0,0,.22);
    -webkit-tap-highlight-color:transparent;
  }
  body.tx-has-promo-sticky{padding-bottom:122px}
}
.tx-promo-st a{text-decoration:none}
.tx-promo-st__legal{
  font-size:.7rem;line-height:1.3;text-align:center;
  color:rgba(255,255,255,.7);margin:0;padding:4px 12px 0;
}
.tx-promo-st__legal a{color:rgba(255,255,255,.85);text-decoration:underline}
.tx-promo-st__arrow{font-size:1.5rem;color:#fff;font-weight:700;flex-shrink:0;line-height:1}

/* A.1 — Betclic solo : ÉLÉGANT (fond clair, rouge dosé en accents) */
.tx-promo-st__main{display:flex;align-items:center;gap:12px}
.tx-promo-st--betclic{
  background:#fff;border-top:3px solid var(--betclic-red);
  padding:10px 14px 6px;box-shadow:0 -4px 20px rgba(26,14,46,.12);
}
.tx-promo-st-bc__logo{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  background:var(--betclic-red);padding:7px 10px;border-radius:8px;
}
.tx-promo-st-bc__logo img{display:block;height:16px;width:auto}
.tx-promo-st-bc__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;line-height:1.2}
.tx-promo-st-bc__txt b{font-family:'Outfit',sans-serif;font-weight:800;font-size:.95rem;color:var(--tx-ink)}
.tx-promo-st-bc__txt span{font-size:.78rem;color:#5a4a6b}
.tx-promo-st-bc__cta{
  flex-shrink:0;display:inline-flex;align-items:center;gap:5px;
  font-family:'Outfit',sans-serif;font-weight:800;font-size:.95rem;color:#fff;
  background:var(--betclic-red);padding:9px 14px;border-radius:10px;
}
.tx-promo-st-bc__cta-arrow{font-size:1.05rem;line-height:1}
.tx-promo-st--betclic .tx-promo-st__legal{color:#9a8aad;padding-top:5px}
.tx-promo-st--betclic .tx-promo-st__legal a{color:var(--tx-violet)}

/* A.2 — Hellotickets solo : violet Ticketix */
.tx-promo-st--ht{background:linear-gradient(135deg,#7c3aed 0%,#9333ea 100%);padding:12px 16px 8px}
.tx-promo-st--ht .tx-promo-st__main{justify-content:space-between}
.tx-promo-st-ht__txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.tx-promo-st-ht__price{font-family:'Outfit',sans-serif;font-weight:900;font-size:1.05rem;color:#fff;line-height:1.1}
.tx-promo-st-ht__title{font-size:.78rem;color:rgba(255,255,255,.85);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.tx-promo-st-ht__cta{flex-shrink:0;font-family:'Outfit',sans-serif;font-weight:800;font-size:.9rem;color:var(--tx-violet);background:#fff;padding:9px 14px;border-radius:10px}
.tx-promo-st__reassure{font-size:.7rem;color:rgba(255,255,255,.8);text-align:center;margin:0;padding:6px 12px 0}

/* A.3 — Alerte : violet Ticketix + signature de marque */
.tx-promo-st--alert{background:linear-gradient(135deg,#2d1b4d 0%,var(--tx-violet) 100%);padding:10px 14px 8px}
.tx-promo-st-al__row1{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tx-promo-st-al__mark{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;background:#fff;color:var(--tx-violet);
  font-family:'Outfit',sans-serif;font-weight:900;font-size:.82rem;letter-spacing:-.02em;
}
.tx-promo-st-al__head{font-family:'Outfit',sans-serif;font-weight:500;font-size:.95rem;color:#fff;line-height:1.2}
.tx-promo-st-al__row2{display:flex;gap:8px;align-items:center}
.tx-promo-st-al__email{flex:1;min-width:0;padding:10px 12px;border:none;border-radius:10px;font-size:.9rem;color:var(--tx-ink)}
.tx-promo-st-al__btn{
  flex-shrink:0;font-family:'Outfit',sans-serif;font-weight:800;font-size:.88rem;
  color:var(--tx-violet);background:#fff;border:none;border-radius:10px;padding:10px 16px;white-space:nowrap;cursor:pointer;
}
.tx-promo-st-al__msg{text-align:center;font-size:.78rem;color:#fff;margin:6px 0 0}
.tx-promo-st-al__msg:empty{display:none}
.tx-promo-st-al__msg.is-ok{color:#c7f9d8}
.tx-promo-st-al__msg.is-error{color:#ffd5da}
.tx-promo-st-al__note{font-size:.7rem;color:rgba(255,255,255,.75);text-align:center;margin:6px 0 0}

/* A.4 — Dual : violet (HT) + rouge (Betclic), prix + cote auto, 18+ commun */
.tx-promo-st-dual__split{display:flex}
.tx-promo-st-dual__half{
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:9px 8px;color:#fff;text-align:center;
}
.tx-promo-st-dual__ht{background:linear-gradient(135deg,#7c3aed 0%,#9333ea 100%)}
.tx-promo-st-dual__bc{background:var(--betclic-red)}
.tx-promo-st-dual__lbl{font-size:.7rem;font-weight:600;opacity:.85;line-height:1.1}
.tx-promo-st-dual__strong{
  font-family:'Outfit',sans-serif;font-weight:900;font-size:.95rem;line-height:1.1;
  max-width:46vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tx-promo-st-dual__bc-logo{height:15px;width:auto;display:block;margin:1px 0}
.tx-promo-st-dual__sub{font-size:.72rem;font-weight:600;opacity:.9;line-height:1.15}
.tx-promo-st--dual .tx-promo-st__legal{background:#1a0e2e;padding:5px 12px;margin:0}

/* Safe-area iOS */
@supports(padding:max(0px)){
  .tx-promo-st--betclic,.tx-promo-st--ht,.tx-promo-st--alert{padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .tx-promo-st--dual .tx-promo-st__legal{padding-bottom:max(5px,env(safe-area-inset-bottom))}
}

/* =========================================================
   Accessibilité — mouvement réduit
   ========================================================= */
@media(prefers-reduced-motion:reduce){
  .tx-promo *,
  .tx-promo-st *{transition:none !important;animation:none !important}
  .tx-promo-cote:hover,.tx-promo-bc-cta:hover,.tx-promo-ht-cta:hover,.tx-promo-al-btn:hover{transform:none !important}
}
