/* ===== Affiche (dimensions natives en px) ===== */
.poster{
  --navy:#0b1f5c; --navy2:#07143f; --sky:#9db8ff; --red:#e3122b; --white:#fff;
  position:relative; overflow:hidden; color:#fff;
  font-family:'Barlow Condensed','Arial Narrow',sans-serif;
  background:
    radial-gradient(110% 70% at 85% -5%, rgba(64,110,255,.55) 0%, transparent 60%),
    radial-gradient(90% 60% at -10% 110%, rgba(40,80,220,.45) 0%, transparent 60%),
    linear-gradient(165deg,#1a3a9a 0%,#10297a 38%,#0a1c5a 70%,#06113a 100%);
  display:flex; flex-direction:column;
}
.poster *{box-sizing:border-box}
.poster .bg{position:absolute; inset:0; pointer-events:none; z-index:0}
.poster .stripes{position:absolute; inset:-20%; background:repeating-linear-gradient(118deg, rgba(255,255,255,.045) 0 70px, transparent 70px 170px)}
.poster .band{position:absolute; left:-15%; width:130%; height:70px; transform:rotate(-5deg);
  background:linear-gradient(90deg, transparent 0%, rgba(90,140,255,.55) 30%, rgba(140,180,255,.65) 55%, transparent 100%); filter:blur(1px)}
.poster .wm{position:absolute; opacity:.07; filter:grayscale(1) brightness(2.2)}
.poster .col-a,.poster .col-b{position:relative; z-index:1}
.poster > .p-top,.poster > .p-foot{position:relative; z-index:1}

/* chips haut */
.p-top{display:flex; justify-content:space-between; align-items:center; gap:24px}
.p-chip{font-weight:800; text-transform:uppercase; letter-spacing:.5px; line-height:1; white-space:nowrap; border-radius:12px}
.p-chip.solid{background:#fff; color:var(--navy)}
.p-chip.outline{border:4px solid #fff; background:rgba(5,15,50,.55); color:#fff}

/* titre */
.p-title{font-family:'Anton','Barlow Condensed',sans-serif; font-weight:400; line-height:.9; margin:0; text-transform:uppercase; text-align:center; letter-spacing:1px;
  text-shadow:0 8px 0 rgba(3,10,40,.55)}
.p-title em{font-style:normal; color:var(--sky)}
.p-date{display:flex; align-items:center; justify-content:center; gap:22px; font-weight:800; text-transform:uppercase; letter-spacing:1px}
.p-date .time{background:#fff; color:var(--navy); border-radius:12px; line-height:1}

/* équipes */
.p-teams{display:grid; grid-template-columns:1fr auto 1fr; align-items:start}
.team{display:flex; flex-direction:column; align-items:center; text-align:center; min-width:0}
.logo-card{background:#fff; border-radius:34px; display:flex; align-items:center; justify-content:center; box-shadow:0 18px 40px rgba(0,0,0,.35); overflow:hidden}
.logo-card img{display:block; width:100%; height:100%; min-height:0; object-fit:contain}
.logo-card .initials{font-family:'Anton',sans-serif; color:var(--navy); letter-spacing:2px}
.tname{font-weight:800; text-transform:uppercase; line-height:1.02; margin-top:.55em; letter-spacing:.5px}
.tsub{font-weight:700; text-transform:uppercase; color:var(--sky); letter-spacing:1px; margin-top:.15em}
.vs{align-self:center; display:grid; place-items:center; border-radius:50%; background:linear-gradient(160deg,#4a7bff,#2a55e6); border:10px solid #fff;
  font-family:'Anton',sans-serif; color:#fff; box-shadow:0 14px 40px rgba(0,0,0,.35)}

/* infos */
.p-info{display:grid; grid-template-columns:auto 1fr; align-items:stretch}
.rdv{background:#fff; color:var(--navy); border-radius:26px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center}
.rdv .lbl{font-weight:800; text-transform:uppercase; letter-spacing:1px}
.rdv .rdv-time{font-family:'Anton',sans-serif; color:var(--red); line-height:.95}
.lieu{border:4px solid rgba(157,184,255,.85); background:rgba(4,12,45,.7); border-radius:26px; display:flex; flex-direction:column; justify-content:center; min-width:0}
.lieu .lbl{font-weight:700; text-transform:uppercase; color:var(--sky); letter-spacing:1px}
.lieu .salle{font-weight:800; text-transform:uppercase; line-height:1.02}
.lieu .adr{font-family:'Barlow',sans-serif; font-weight:500; line-height:1.3; color:#eef2ff}

/* joueurs */
.p-players{border:3px solid rgba(157,184,255,.35); background:rgba(4,12,45,.45); border-radius:28px}
.p-players h2{margin:0; text-align:center; font-family:'Anton',sans-serif; font-weight:400; text-transform:uppercase; letter-spacing:1px}
.p-players h2 em{font-style:normal; color:var(--sky)}
.p-grid{display:grid; grid-template-columns:repeat(var(--cols,4),1fr)}
.p-grid span{background:#fff; color:var(--navy); border-radius:12px; text-align:center; font-weight:800; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:clip; line-height:1}

/* pied */
.p-foot{background:#fff; color:var(--navy); display:flex; align-items:center; justify-content:center; font-family:'Anton',sans-serif; text-transform:uppercase; letter-spacing:4px}
.p-foot i{display:inline-block; border-radius:50%; background:#2d5bff}

/* ========== FORMAT HAUTEUR 1080×1920 ========== */
.poster.fmt-story{width:1080px; height:1920px; padding:70px 60px 0}
.fmt-story .col-a,.fmt-story .col-b{display:contents}
.fmt-story .p-top{order:1}
.fmt-story .p-title{order:2; font-size:calc(180px*var(--k,1)); margin-top:calc(46px*var(--k,1))}
.fmt-story .p-title .l2{display:block; font-size:calc(248px*var(--k,1)); line-height:.86}
.fmt-story .p-date{order:3; font-size:62px; margin-top:calc(28px*var(--k,1))}
.fmt-story .p-date .time{padding:12px 22px 10px; font-size:62px}
.fmt-story .p-teams{order:4; margin-top:calc(54px*var(--k,1)); gap:18px}
.fmt-story .logo-card{width:380px; height:calc(290px*var(--k,1)); padding:24px}
.fmt-story .initials{font-size:130px}
.fmt-story .tname{font-size:50px}
.fmt-story .tsub{font-size:34px}
.fmt-story .vs{width:190px; height:190px; font-size:92px; margin-top:55px}
.fmt-story .p-info{order:5; margin-top:calc(46px*var(--k,1)); gap:26px}
.fmt-story .rdv{width:320px; padding:26px 16px}
.fmt-story .rdv .lbl{font-size:36px}
.fmt-story .rdv .rdv-time{font-size:calc(124px*var(--k,1)); margin-top:6px}
.fmt-story .lieu{padding:26px 30px}
.fmt-story .lieu .lbl{font-size:30px}
.fmt-story .lieu .salle{font-size:50px; margin-top:8px}
.fmt-story .lieu .adr{font-size:30px; margin-top:8px}
.fmt-story .p-players{order:6; margin-top:calc(40px*var(--k,1)); padding:calc(28px*var(--k,1)) 28px calc(30px*var(--k,1))}
.fmt-story .p-players h2{font-size:calc(64px*var(--k,1)); margin-bottom:calc(22px*var(--k,1))}
.fmt-story .p-grid{gap:calc(15px*var(--k,1))}
.fmt-story .p-grid span{font-size:calc(var(--pf,44px)*var(--k,1)); padding:calc(15px*var(--k,1)) 8px calc(13px*var(--k,1))}
.fmt-story .p-foot{order:7; margin:auto -60px 0; height:130px; font-size:58px; gap:30px}
.fmt-story .p-foot i{width:22px; height:22px}
.fmt-story .band{top:840px}
.fmt-story .wm{width:1000px; right:-330px; top:560px}

/* ========== FORMAT POST 1080×1350 ========== */
.poster.fmt-post{width:1080px; height:1350px; padding:44px 56px 0}
.fmt-post .col-a,.fmt-post .col-b{display:contents}
.fmt-post .p-top{order:1}
.fmt-post .p-chip{font-size:34px}
.fmt-post .p-title{order:2; font-size:calc(150px*var(--k,1)); margin-top:calc(22px*var(--k,1))}
.fmt-post .p-title .l2{display:inline}
.fmt-post .p-date{order:3; font-size:50px; margin-top:12px}
.fmt-post .p-date .time{padding:9px 18px 7px; font-size:50px}
.fmt-post .p-teams{order:4; margin-top:calc(30px*var(--k,1)); gap:14px}
.fmt-post .logo-card{width:300px; height:calc(220px*var(--k,1)); padding:20px}
.fmt-post .initials{font-size:100px}
.fmt-post .tname{font-size:40px}
.fmt-post .tsub{font-size:28px}
.fmt-post .vs{width:150px; height:150px; font-size:72px; margin-top:35px; border-width:8px}
.fmt-post .p-info{order:5; margin-top:calc(28px*var(--k,1)); gap:20px}
.fmt-post .rdv{width:270px; padding:16px 12px}
.fmt-post .rdv .lbl{font-size:30px}
.fmt-post .rdv .rdv-time{font-size:96px; margin-top:4px}
.fmt-post .lieu{padding:16px 24px}
.fmt-post .lieu .lbl{font-size:25px}
.fmt-post .lieu .salle{font-size:40px; margin-top:4px}
.fmt-post .lieu .adr{font-size:25px; margin-top:4px}
.fmt-post .p-players{order:6; margin-top:calc(24px*var(--k,1)); padding:calc(18px*var(--k,1)) 22px calc(22px*var(--k,1))}
.fmt-post .p-players h2{font-size:calc(50px*var(--k,1)); margin-bottom:calc(14px*var(--k,1))}
.fmt-post .p-grid{gap:calc(12px*var(--k,1))}
.fmt-post .p-grid span{font-size:calc(var(--pf,34px)*var(--k,1)); padding:calc(11px*var(--k,1)) 6px calc(9px*var(--k,1))}
.fmt-post .p-foot{order:7; margin:auto -56px 0; height:84px; font-size:42px; gap:22px}
.fmt-post .p-foot i{width:16px; height:16px}
.fmt-post .band{top:560px}
.fmt-post .wm{width:760px; right:-250px; top:380px}

/* ========== FORMAT LARGEUR 1920×1080 ========== */
.poster.fmt-wide{width:1920px; height:1080px; padding:52px 70px 0}
.fmt-wide .p-chip{font-size:38px}
.fmt-wide .main{display:grid; grid-template-columns:840px 1fr; gap:60px; margin-top:26px; position:relative; z-index:1}
.fmt-wide .col-a{display:flex; flex-direction:column}
.fmt-wide .col-b{display:flex; flex-direction:column}
.fmt-wide .p-title{font-size:calc(190px*var(--k,1)); text-align:left}
.fmt-wide .p-title .l2{display:block; font-size:calc(244px*var(--k,1)); line-height:.86}
.fmt-wide .p-date{justify-content:flex-start; font-size:58px; margin-top:24px}
.fmt-wide .p-date .time{padding:11px 20px 9px; font-size:58px}
.fmt-wide .p-info{margin-top:36px; gap:22px}
.fmt-wide .rdv{width:280px; padding:18px 12px}
.fmt-wide .rdv .lbl{font-size:32px}
.fmt-wide .rdv .rdv-time{font-size:110px; margin-top:4px}
.fmt-wide .lieu{padding:20px 26px}
.fmt-wide .lieu .lbl{font-size:27px}
.fmt-wide .lieu .salle{font-size:44px; margin-top:6px}
.fmt-wide .lieu .adr{font-size:27px; margin-top:6px}
.fmt-wide .p-teams{gap:14px}
.fmt-wide .logo-card{width:330px; height:calc(250px*var(--k,1)); padding:22px}
.fmt-wide .initials{font-size:110px}
.fmt-wide .tname{font-size:44px}
.fmt-wide .tsub{font-size:30px}
.fmt-wide .vs{width:160px; height:160px; font-size:78px; margin-top:45px; border-width:8px}
.fmt-wide .p-players{margin-top:calc(28px*var(--k,1)); padding:calc(18px*var(--k,1)) 22px calc(22px*var(--k,1))}
.fmt-wide .p-players h2{font-size:calc(50px*var(--k,1)); margin-bottom:calc(14px*var(--k,1))}
.fmt-wide .p-grid{gap:calc(12px*var(--k,1))}
.fmt-wide .p-grid span{font-size:calc(var(--pf,34px)*var(--k,1)); padding:calc(11px*var(--k,1)) 6px calc(9px*var(--k,1))}
.fmt-wide .p-foot{margin:auto -70px 0; height:92px; font-size:46px; gap:26px}
.fmt-wide .p-foot i{width:16px; height:16px}
.fmt-wide .band{top:430px}
.fmt-wide .wm{width:980px; left:-220px; top:260px}
.fmt-story .main,.fmt-post .main{display:contents}
.p-chip{padding:.36em .55em .3em}
.fmt-story .p-chip{font-size:42px}
.p-players.hidden{display:none}
.lieu .salle.long{letter-spacing:0}

.poster .p-title,.poster .p-date,.poster .p-teams,.poster .p-info,.poster .p-players{position:relative;z-index:1}
.tname{text-wrap:balance}
.fmt-wide .col-b{justify-content:flex-start}
.no-players.fmt-story .p-teams,.no-players.fmt-post .p-teams{margin-top:auto}
.no-players.fmt-story .p-info,.no-players.fmt-post .p-info{margin-bottom:auto}
.no-players.fmt-story .p-foot,.no-players.fmt-post .p-foot{margin-top:0}
.no-players.fmt-wide .col-b{justify-content:center}

/* ================= AFFICHES ANNONCE / PROGRAMME / RÉSULTATS ================= */
.poster.ann{--gold1:#ffe27a; --gold2:#f4b400; background:
  radial-gradient(80% 50% at 50% 30%, rgba(40,90,230,.55), transparent 70%),
  linear-gradient(180deg,#0a1f6b 0%,#0b2a8f 45%,#0a2280 70%,#071650 100%)}
.ann .lionbg{position:absolute; left:50%; transform:translateX(-50%); opacity:.13; filter:grayscale(1) brightness(1.6) blur(1px)}
.ann .shade{position:absolute; inset:0; background:linear-gradient(180deg, rgba(4,10,40,.35) 0%, transparent 25%, transparent 55%, rgba(4,12,50,.75) 100%)}
.gold{background:linear-gradient(180deg,var(--gold1) 0%,#ffd23a 45%,var(--gold2) 100%); -webkit-background-clip:text; background-clip:text; color:transparent}
.script{font-family:'Kaushan Script',cursive; color:#fff; text-shadow:0 6px 18px rgba(0,0,0,.35)}
.ann .z{position:relative; z-index:2}
.logostack{position:absolute; background:rgba(5,20,80,.75); border-radius:0 0 18px 0; display:flex; flex-direction:column; align-items:center; z-index:3}
.logostack img{object-fit:contain; display:block}
.logostack hr{border:0; border-top:3px solid rgba(255,255,255,.7); margin:0}
.ann-date{position:absolute; text-align:center; font-family:'Barlow Condensed',sans-serif; font-weight:800; line-height:.95; z-index:3; text-shadow:0 4px 18px rgba(0,0,0,.4)}
.ann-date .h{color:#ffd23a}
.photos{position:absolute; display:flex; justify-content:center; align-items:flex-end; z-index:1}
.photos .ph{position:relative; height:100%; display:flex; align-items:flex-end; justify-content:center; flex:0 0 auto}
.photos .ph img{height:100%; width:auto; max-width:none; object-fit:contain; display:block; filter:drop-shadow(0 20px 30px rgba(0,0,0,.45));
  -webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 99%); mask-image:linear-gradient(180deg,#000 78%,transparent 99%)}
.photos .ph .nm{position:absolute; bottom:6%; left:50%; transform:translateX(-50%); font-family:'Anton',sans-serif; color:#fff; opacity:.0}
.photos .ph.empty{align-items:center}
.photos .ph.empty div{border:4px dashed rgba(255,255,255,.35); border-radius:30px; display:grid; place-items:center; color:rgba(255,255,255,.6); font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase; text-align:center}
.nextgame{position:absolute; left:0; right:0; text-align:center; z-index:2}
.nextgame .t{font-family:'Anton',sans-serif; line-height:1.05; letter-spacing:2px; filter:drop-shadow(0 8px 0 rgba(3,10,40,.45))}
.nextgame .script{position:absolute; transform:rotate(-8deg); white-space:nowrap}
.matchbar{position:absolute; z-index:3}
.matchbar .comp{font-family:'Barlow Condensed',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:.5px}
.matchbar .bar{background:linear-gradient(90deg,#1f62ff,#1747d6 60%,#123bb8); display:flex; align-items:center; justify-content:center; font-family:'Barlow Condensed',sans-serif; font-weight:800; text-transform:uppercase; box-shadow:0 10px 30px rgba(0,0,0,.35)}
.matchbar .bar .v{font-family:'Kaushan Script',cursive; font-weight:400; opacity:.9}
.venue{position:absolute; left:0; right:0; text-align:center; font-family:'Barlow',sans-serif; z-index:3; text-shadow:0 2px 10px rgba(0,0,0,.4)}
.venue b{font-weight:700; display:block}
.site{position:absolute; left:0; right:0; text-align:center; font-family:'Barlow',sans-serif; letter-spacing:4px; font-weight:600; z-index:3}
.sponsors{position:absolute; left:14px; right:14px; bottom:14px; background:#fff; border-radius:10px; display:flex; align-items:center; justify-content:space-around; gap:10px; z-index:4; overflow:hidden}
.sponsors img{object-fit:contain; flex:0 1 auto; min-width:0}

/* liste programme / résultats */
.lst .head{position:relative; z-index:2}
.lst .h1{font-family:'Anton',sans-serif; line-height:1.05; letter-spacing:1px; padding-top:.06em}
.lst .r .lab{padding-top:.1em}
.lst .h2{display:inline-block; transform:rotate(-7deg)}
.lst .lieu-t{display:flex; align-items:center; gap:.4em; font-family:'Anton',sans-serif; text-transform:uppercase; border-bottom:4px solid #fff; padding-bottom:.08em}
.lst .lieu-t svg{width:1.3em; height:1.3em}
.lst .ephb-corner{position:absolute; top:0; background:rgba(5,20,80,.85); border-radius:0 0 16px 16px; z-index:3; display:grid; place-items:center}
.lst .ephb-corner img{width:100%; height:100%; object-fit:contain}
.rows{position:relative; z-index:2; display:flex; flex-direction:column}
.r{display:grid; align-items:center}
.r .lab{display:flex; align-items:center; gap:.35em; font-family:'Anton',sans-serif; text-transform:uppercase; white-space:nowrap}
.r .lab i{display:inline-block; width:0; height:0; border-style:solid; border-color:transparent transparent transparent #ffc61a}
.r .mid{min-width:0}
.r .comp{font-family:'Barlow Condensed',sans-serif; font-weight:800; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.r .line{display:flex; align-items:center}
.r .vs2{font-family:'Kaushan Script',cursive; color:#fff; opacity:.9}
.r .opp{flex:1; min-width:0; background:linear-gradient(90deg,#1f62ff 0%,#1747d6 70%,rgba(23,71,214,0) 100%); font-family:'Barlow Condensed',sans-serif; font-weight:800; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.r .opp small{font-weight:600; opacity:.8; margin-left:.4em}
.r .hr{font-family:'Barlow Condensed',sans-serif; font-weight:800; color:#e9ffe0; text-align:right; white-space:nowrap}
.r .sc{font-family:'Anton',sans-serif; border-radius:12px; text-align:center; white-space:nowrap; color:#fff}
.r .sc.w{background:#1fae54} .r .sc.d{background:#6b7796} .r .sc.l{background:#d7263d} .r .sc.n{background:rgba(255,255,255,.15); color:#cfd8ff}
.r .day{font-family:'Barlow Condensed',sans-serif; font-weight:700; color:#9db8ff; text-transform:uppercase}
.lst .empty-note{font-family:'Barlow Condensed',sans-serif; font-weight:700; text-align:center; opacity:.7}

/* v3 : FFHB, pastille, badge division, photos */
.ann .ffhb{position:absolute; z-index:10; display:flex; flex-direction:column; align-items:center}
.ann .ffhb img{display:block; filter:drop-shadow(0 3px 8px rgba(0,0,0,.35))}
.divbadge{position:absolute; top:0; z-index:10; background:linear-gradient(180deg,#0d2f9c,#0a2380); border:3px solid #fff; border-top:0; border-radius:0 0 16px 16px;
  display:flex; flex-direction:column; align-items:center; color:#fff; text-align:center; box-shadow:0 10px 30px rgba(0,0,0,.35)}
.divbadge img{display:block}
.divbadge .dt{font-family:'Barlow Condensed',sans-serif; font-weight:700; letter-spacing:2px; opacity:.85; margin-top:4px; line-height:1}
.divbadge .dc{font-family:'Anton',sans-serif; line-height:1.05; letter-spacing:1px}
.divbadge .dl{width:80%; border-top:2px solid #fff; margin:4px 0 6px}
.divbadge .ds{font-family:'Barlow Condensed',sans-serif; font-weight:700; line-height:1.05; text-transform:uppercase}
.logostack2{position:absolute; z-index:10; display:flex; flex-direction:column; align-items:center}
.logostack2 hr{border:0; border-top:3px solid rgba(255,255,255,.75)}
.logostack2 img{display:block; object-fit:contain}
.logostack2 img.past{filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}
img.wl{filter:drop-shadow(3px 0 0 #fff) drop-shadow(-3px 0 0 #fff) drop-shadow(0 3px 0 #fff) drop-shadow(0 -3px 0 #fff) drop-shadow(0 6px 12px rgba(0,0,0,.4))}
.wl-ini{display:grid; place-items:center; border:5px solid #fff; border-radius:50%; font-family:'Anton',sans-serif; color:#fff; background:rgba(255,255,255,.08)}
.ann .ann-date{z-index:20; text-shadow:0 4px 14px rgba(0,0,0,.6)}
.photos2{position:absolute; z-index:1}
.photos2 .ph{position:absolute; bottom:0; display:flex; align-items:flex-end; justify-content:center}
.photos2 .ph img{width:100%; height:100%; object-fit:contain; object-position:50% 100%; display:block; filter:drop-shadow(0 18px 28px rgba(0,0,0,.5));
  -webkit-mask-image:linear-gradient(180deg,#000 80%,transparent 99%); mask-image:linear-gradient(180deg,#000 80%,transparent 99%)}
.photos2 .ph-empty{width:86%; height:62%; border:4px dashed rgba(255,255,255,.35); border-radius:28px; display:grid; place-items:center; color:rgba(255,255,255,.6); font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase; text-align:center; font-size:30px; margin-bottom:10%}
.ann .nextgame{z-index:9}
.past-corner{position:absolute; z-index:5}
.past-corner img{width:100%; display:block; filter:drop-shadow(0 8px 18px rgba(0,0,0,.5))}
.ffhb-l{position:absolute; z-index:6; display:flex; flex-direction:column; align-items:center}
.ffhb-l img{display:block; filter:drop-shadow(0 3px 8px rgba(0,0,0,.35))}
.divlogo{position:absolute; top:14px; z-index:10; display:grid; place-items:center}
.divlogo img{max-width:100%; max-height:100%; object-fit:contain; filter:drop-shadow(0 8px 18px rgba(0,0,0,.45))}
.ann .matchbar,.ann .venue,.ann .site{z-index:9}
/* logo collectif (Mini Hand / Baby Hand / affiche club) en haut à droite */
.divlogo{position:absolute; z-index:10}
.divlogo img{width:100%; height:100%; object-fit:contain; display:block}
/* style fluo pour affiches du club */
.poster.fluo .gold{background:linear-gradient(180deg,#b6ff3b 0%,#39ff14 40%,#ff2bd6 100%); -webkit-background-clip:text; background-clip:text; color:transparent; filter:drop-shadow(0 0 18px rgba(57,255,20,.45))}
.poster.fluo .script{color:#ff4fe0 !important; text-shadow:0 0 18px rgba(255,43,214,.7)}
.poster.fluo .matchbar .bar{background:linear-gradient(90deg,#ff2bd6,#7b2bff 50%,#00e5ff) !important}
.poster.fluo .bg .shade{background:radial-gradient(ellipse at 50% 40%, rgba(40,0,80,.35), rgba(5,0,25,.85)) !important}
.poster.fluo .ann-date .h{color:#39ff14 !important}
/* ===== pôle arbitres ===== */
.poster.arb{--k:1; color:#0b2a6b; font-family:'Barlow',sans-serif}
.poster.arb .arb-bg{position:absolute; inset:0; background:linear-gradient(180deg,#eef2f8 0%,#e3eaf5 100%)}
.poster.arb .arb-bg::after{content:''; position:absolute; inset:0; background:repeating-linear-gradient(135deg, rgba(20,82,176,.035) 0 22px, transparent 22px 44px)}
.poster.arb .ahead{position:absolute; left:0; right:0; top:0; background:linear-gradient(135deg,#0b2a6b,#1452b0); display:flex; align-items:center; gap:28px; padding:0 44px; border-bottom:8px solid #5bb8f5; z-index:3}
.poster.arb .ahead .ap{flex:none; filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}
.poster.arb .ahead .at{flex:1; min-width:0; color:#fff}
.poster.arb .ahead .t1{font-family:'Anton',sans-serif; line-height:1; letter-spacing:1px}
.poster.arb .ahead .t2{font-family:'Barlow Condensed',sans-serif; font-weight:800; color:#5bb8f5; letter-spacing:2px; margin-top:8px; line-height:1}
.poster.arb .ahead .af{flex:none; display:flex; flex-direction:column; align-items:center}
.poster.arb .arb-body{position:absolute; z-index:2; display:flex; flex-direction:column; gap:calc(26px*var(--k))}
.poster.arb .adate{display:flex; align-items:center; gap:14px; background:#0b2a6b; color:#fff; border-radius:14px; padding:calc(12px*var(--k)) 22px; font-family:'Anton',sans-serif; font-size:calc(40px*var(--k)); letter-spacing:1px; line-height:1}
.poster.arb .adate svg{width:calc(38px*var(--k)); height:calc(38px*var(--k)); flex:none}
.poster.arb .adate em{font-style:normal; color:#5bb8f5}
.poster.arb .acards{display:grid; gap:calc(16px*var(--k)) 20px; margin-top:calc(14px*var(--k))}
.poster.arb .acard{background:#fff; border:2px solid #bccae0; border-radius:14px; overflow:hidden; box-shadow:0 6px 18px rgba(11,42,107,.12)}
.poster.arb .ah{background:#1452b0; color:#fff; text-align:center; font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:calc(36px*var(--k)); padding:calc(8px*var(--k)) 10px; text-transform:uppercase; letter-spacing:1px; line-height:1.05}
.poster.arb .ar{display:flex; align-items:center; gap:12px; padding:calc(9px*var(--k)) 16px; font-size:calc(27px*var(--k)); line-height:1.15}
.poster.arb .ar + .ar{border-top:1px solid #e2e9f4}
.poster.arb .ar.l{background:#e2e9f4; font-weight:700; font-size:calc(29px*var(--k))}
.poster.arb .ar svg{width:calc(30px*var(--k)); height:calc(30px*var(--k)); flex:none; color:#1452b0}
.poster.arb .ar span{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1}
.poster.arb .ar .hr{float:right; color:#d61f2c; margin-left:10px}
.poster.arb .aempty{text-align:center; font-size:40px; font-style:italic; color:#5a6478; margin-top:200px}
.poster.arb .asite{position:absolute; left:0; right:0; text-align:center; font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:30px; letter-spacing:4px; color:#1452b0; z-index:2}
.poster.arb .t2 .pg{background:#5bb8f5;color:#0b2a6b;border-radius:10px;padding:0 12px;margin-left:10px}

/* ========== FORMAT WHATSAPP CARRÉ 1080×1080 ========== */
.poster.fmt-square{width:1080px; height:1080px; padding:34px 44px 0}
.fmt-square .p-chip{font-size:28px}
.fmt-square .main{display:grid; grid-template-columns:500px 1fr; column-gap:22px; grid-template-areas:"title title" "date date" "teams teams" "info players"; position:relative; z-index:1; margin-top:calc(10px*var(--k,1))}
.fmt-square .col-a,.fmt-square .col-b{display:contents}
.fmt-square .p-title{grid-area:title; font-size:calc(118px*var(--k,1)); line-height:.95}
.fmt-square .p-title .l2{display:inline}
.fmt-square .p-date{grid-area:date; font-size:44px; margin-top:calc(8px*var(--k,1))}
.fmt-square .p-date .time{padding:8px 16px 6px; font-size:44px}
.fmt-square .p-teams{grid-area:teams; margin-top:calc(20px*var(--k,1)); gap:12px}
.fmt-square .logo-card{width:250px; height:calc(160px*var(--k,1)); padding:16px}
.fmt-square .initials{font-size:80px}
.fmt-square .tname{font-size:32px}
.fmt-square .tsub{font-size:22px}
.fmt-square .vs{width:116px; height:116px; font-size:56px; margin-top:24px; border-width:7px}
.fmt-square .p-info{grid-area:info; margin-top:calc(20px*var(--k,1)); gap:14px; flex-direction:column; align-items:stretch}
.fmt-square .rdv{width:auto; padding:12px 12px; display:flex; align-items:center; justify-content:center; gap:18px}
.fmt-square .rdv .lbl{font-size:28px}
.fmt-square .rdv .rdv-time{font-size:calc(84px*var(--k,1)); margin-top:0}
.fmt-square .lieu{padding:14px 20px}
.fmt-square .lieu .lbl{font-size:22px}
.fmt-square .lieu .salle{font-size:32px; margin-top:4px}
.fmt-square .lieu .adr{font-size:23px; margin-top:4px}
.fmt-square .p-players{grid-area:players; margin-top:calc(20px*var(--k,1)); padding:calc(14px*var(--k,1)) 16px calc(16px*var(--k,1))}
.fmt-square .p-players h2{font-size:calc(36px*var(--k,1)); margin-bottom:calc(10px*var(--k,1))}
.fmt-square .p-grid{gap:calc(8px*var(--k,1))}
.fmt-square .p-grid span{font-size:calc(var(--pf,28px)*var(--k,1)); padding:calc(8px*var(--k,1)) 4px calc(6px*var(--k,1))}
.fmt-square .p-foot{position:absolute; left:0; right:0; bottom:0; margin:0; height:72px; font-size:36px; gap:20px}
.fmt-square .p-foot i{width:14px; height:14px}
.fmt-square .band{top:420px}
.fmt-square .wm{width:640px; right:-200px; top:300px}
.no-players.fmt-square .p-info{grid-column:1/-1; flex-direction:row; align-items:stretch; justify-content:center}
.no-players.fmt-square .rdv{flex-direction:column; gap:0; width:300px}
.no-players.fmt-square .p-teams{margin-top:calc(50px*var(--k,1))}
.no-players.fmt-square .p-info{margin-top:calc(40px*var(--k,1))}
.fmt-square .p-info{display:grid; grid-template-columns:1fr; grid-auto-rows:auto}
.no-players.fmt-square .p-info{grid-template-columns:300px 1fr; max-width:900px; margin-left:auto; margin-right:auto; width:100%}
/* maillot numéro (convocation) */
.p-grid.with-num span{display:grid; grid-template-columns:2.05em 1fr; align-items:center; justify-items:start; column-gap:.3em; text-align:left; padding-left:.3em !important; padding-right:.2em !important}
.p-grid.with-num span{overflow:hidden; text-overflow:clip}
.jz{position:relative; display:grid; place-items:center; width:2.05em; height:2.05em; margin:-.42em 0; font-style:normal}
.jz svg{position:absolute; inset:0; width:100%; height:100%; fill:#2c55c8; stroke:#0b1f5c; stroke-width:2.2; stroke-linejoin:round}
.jz b{position:relative; color:#fff; font-size:.92em; font-weight:800; margin-top:.3em; letter-spacing:-.03em; line-height:1}

/* ===== Match end ===== */
.me .me-score{position:absolute; z-index:12; display:flex; align-items:center; justify-content:center}
.me .me-lg{display:flex; align-items:center; justify-content:center; flex:none}
.me .me-lg img{object-fit:contain; filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}
.me .me-mid{display:flex; flex-direction:column; align-items:center}
.me .me-num{font-family:'Anton',sans-serif; line-height:1; color:#fff; white-space:nowrap; letter-spacing:2px; text-shadow:0 8px 0 rgba(3,10,40,.45)}
.me .me-num .gold{text-shadow:none; filter:drop-shadow(0 8px 0 rgba(3,10,40,.45))}
.me .me-num i{font-style:normal; margin:0 .14em; opacity:.85}
.me .me-res{margin-top:.35em; font-family:'Barlow Condensed',sans-serif; font-weight:800; letter-spacing:2px; color:#fff; border-radius:999px; box-shadow:0 8px 22px rgba(0,0,0,.35); white-space:nowrap}
.me .me-res.w{background:linear-gradient(90deg,#16a34a,#1fae54)} .me .me-res.d{background:linear-gradient(90deg,#6b7796,#8390b0)} .me .me-res.l{background:linear-gradient(90deg,#b91c2f,#d7263d)} .me .me-res.n{background:rgba(255,255,255,.18)}
.me .me-ph{position:absolute; z-index:5; display:flex; align-items:flex-end; justify-content:center}
.me .me-ph img{display:block; object-fit:contain; filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}
.me .me-ph.framed{align-items:center}
.me .me-ph.framed img{border:6px solid #fff; border-radius:22px; box-shadow:0 20px 50px rgba(0,0,0,.45); filter:none}
.me .me-ph-empty{width:70%; height:80%; align-self:center; display:grid; place-items:center; border:4px dashed rgba(255,255,255,.35); border-radius:24px; color:rgba(255,255,255,.6); font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase}
.me .nextgame{z-index:9}

/* ===== Octobre Rose (thème activable) ===== */
.poster.rose{--navy:#9b0f4e; --navy2:#6e0b34; --sky:#ffd1e3; --gold1:#ffffff; --gold2:#ffc2da;
  background:radial-gradient(110% 70% at 85% -5%, rgba(255,170,205,.55) 0%, transparent 60%),
    radial-gradient(90% 60% at -10% 110%, rgba(255,120,175,.45) 0%, transparent 60%),
    linear-gradient(165deg,#f0609c 0%,#d42a73 38%,#a8154f 70%,#6e0b34 100%) !important}
.poster.rose.ann{background:radial-gradient(80% 50% at 50% 30%, rgba(255,150,195,.55), transparent 70%),
    linear-gradient(180deg,#e04588 0%,#c81f68 45%,#a8154f 70%,#6e0b34 100%) !important}
.poster.rose .band{background:linear-gradient(90deg, transparent 0%, rgba(255,170,205,.5) 30%, rgba(255,215,232,.6) 55%, transparent 100%)}
.poster.rose .gold{background:linear-gradient(180deg,#ffffff 0%,#fff0f6 50%,#ffc8de 100%); -webkit-background-clip:text; background-clip:text; color:transparent}
.poster.rose .p-title{text-shadow:0 8px 0 rgba(90,0,35,.5)}
.poster.rose .nextgame .t,.poster.rose .me .me-num .gold{filter:drop-shadow(0 8px 0 rgba(90,0,35,.5))}
.poster.rose .me .me-num{text-shadow:0 8px 0 rgba(90,0,35,.5)}
.poster.rose .ann-date .h{color:#fff}
.poster.rose .ann .shade,.poster.rose .shade{background:linear-gradient(180deg, rgba(90,0,35,.25) 0%, transparent 25%, transparent 55%, rgba(80,0,32,.7) 100%)}
.poster.rose .logostack,.poster.rose .lst .ephb-corner{background:rgba(110,8,52,.8)}
.poster.rose .matchbar .bar{background:linear-gradient(90deg,#7d0a3c,#9b0f4e 60%,#7d0a3c)}
.poster.rose .r .opp{background:linear-gradient(90deg,#8a0b43 0%,#a3124f 70%,rgba(163,18,79,0) 100%)}
.poster.rose .r .day{color:#ffe0ec}
.poster.rose .r .lab i{border-color:transparent transparent transparent #fff}
.poster.rose .r .hr{color:#fff}
.poster.rose .r .sc.n{color:#ffe0ec}
.poster.rose .divbadge{background:linear-gradient(180deg,#b3155a,#7d0a3c)}
.poster.rose .p-chip.outline{background:rgba(110,8,52,.55)}
.poster.rose .lieu{border-color:rgba(255,205,225,.9); background:rgba(100,5,42,.55)}
.poster.rose .p-players{border-color:rgba(255,205,225,.5); background:rgba(100,5,42,.4)}
.poster.rose .jz svg{fill:#e0337e; stroke:#7d0a3c}
.poster.rose .vs{background:#9b0f4e !important}
.poster.rose .rose-rib{position:absolute; z-index:0; pointer-events:none; width:46%; aspect-ratio:100/160; right:-6%; bottom:6%; opacity:.13;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20160%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M50%206C35%206%2025%2017%2025%2031c0%2012%207%2025%2015%2037L12%20136l17%2014%2021-42%2021%2042%2017-14-28-68c8-12%2015-25%2015-37C75%2017%2065%206%2050%206zm0%2014c7%200%2011%205%2011%2011%200%208-5%2017-11%2026-6-9-11-18-11-26%200-6%204-11%2011-11z%22/%3E%3C/svg%3E") center/contain no-repeat; transform:rotate(-12deg)}
.poster.rose.fmt-wide .rose-rib{width:26%; right:2%; bottom:4%}
.poster.rose.me .rose-rib{right:auto; left:-8%}
.poster.rose .rose-tag{position:absolute; z-index:30; display:flex; align-items:center; gap:.35em; font-family:'Barlow Condensed',sans-serif; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9b0f4e; background:#fff; border-radius:999px; padding:.28em .8em .24em .55em; box-shadow:0 6px 18px rgba(80,0,32,.35); line-height:1; white-space:nowrap}
.poster.rose .rose-tag svg{height:1.25em; width:auto; fill:#e0337e}
.poster.rose .rose-in{display:inline-flex; align-items:center; gap:.3em; vertical-align:middle; margin-right:.6em; color:inherit}
.poster.rose .rose-in svg{height:1.2em; width:auto; fill:#ff9cc5}
.poster.rose .p-foot .rose-in svg{fill:#e0337e}
.poster.rose .p-foot{color:#9b0f4e}
.poster.rose .p-foot{white-space:nowrap}
.poster.rose .p-foot > *{white-space:nowrap; flex:none}
.poster.rose .p-foot .rose-in{font-size:.72em; letter-spacing:3px; margin-right:.2em; padding-right:.6em; border-right:3px solid rgba(155,15,78,.3)}
.poster.rose .p-foot i{background:#e0337e}

/* ---------- Fond choix 1 : regard du lion ---------- */
.poster .lion-bg{position:absolute; inset:0; background-position:center top; background-size:cover; background-repeat:no-repeat}

/* ---------- lever de rideau (annonce) ---------- */
.lever{position:absolute; z-index:11; text-align:center; color:#fff; font-family:'Barlow',sans-serif; text-shadow:0 2px 10px rgba(0,0,0,.55)}
.lever .lv-h{font-weight:800; text-decoration:underline; text-underline-offset:.18em; text-decoration-thickness:.09em; letter-spacing:.02em; line-height:1.1}
.lever .lv-t{font-weight:800; color:#ffe14a; line-height:1.15; margin-top:.1em}
.poster.rose .lever .lv-t{color:#fff}
.lever .lv-e{display:flex; align-items:flex-end; justify-content:center; gap:.3em; line-height:1.05; margin-top:.05em}
.lever .lv-e .script{transform:rotate(-4deg); display:inline-block; white-space:nowrap}
.lever .lv-e i{font-family:'Kaushan Script',cursive; font-style:normal; padding-bottom:.4em}
.lever .lv-a{font-weight:800; line-height:1.15; margin-top:.15em; white-space:nowrap}
.divbadge.img{display:flex; flex-direction:column; align-items:center}
/* VS dessiné + bandeau ajusté */
.matchbar .bar{white-space:nowrap; overflow:hidden; box-sizing:border-box}
.matchbar .bar>span{white-space:nowrap; line-height:1}
.matchbar .bar .v{display:flex; align-items:center; opacity:1}
.vsg{display:block; height:1.05em; width:auto; overflow:visible; filter:drop-shadow(0 3px 6px rgba(0,0,0,.35))}
.r .vs2{display:inline-flex; align-items:center; vertical-align:middle}
.r .vs2 .vsg{height:.95em}
.vs .vsg{height:.9em}
/* annonce : titre League Gothic, cadre des logos */
.ann .nextgame .t{font-family:'League Gothic','Anton',sans-serif; line-height:1; letter-spacing:3px}
.lsframe{background:rgba(5,16,58,.62); border-radius:0 10px 10px 0; box-shadow:0 10px 30px rgba(0,0,0,.25)}
.poster.rose .lsframe{background:rgba(60,0,26,.55)}
.ann .nextgame .script{-webkit-text-stroke:.025em currentColor; z-index:3}
.sponsors.banner{display:flex; align-items:center; justify-content:center; box-sizing:border-box}
.sponsors.banner img{width:100%; height:100%; max-width:none; object-fit:contain; display:block}
/* ===== Convocation jeunes : trombinoscope / photos + liste ===== */
.cvx{--k:1; color:#fff; font-family:'Barlow Condensed',sans-serif; position:relative; overflow:hidden; background:#0a1c5a}
.cvx .cvx-shade{position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,30,120,.25),rgba(8,26,110,.72) 62%,rgba(5,18,80,.95))}
.poster.rose.cvx .cvx-shade{background:linear-gradient(180deg,rgba(120,10,60,.2),rgba(110,8,50,.7) 62%,rgba(80,5,35,.95))}
.cvx-in{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; gap:calc(14px*var(--u)*var(--k))}
.cvx-top{display:flex; justify-content:space-between; gap:12px}
.cvx-chip{font-weight:800; text-transform:uppercase; white-space:nowrap; line-height:1; border-radius:calc(12px*var(--u)); padding:calc(9px*var(--u)) calc(16px*var(--u)); font-size:calc(26px*var(--u))}
.cvx-chip.solid{background:#fff; color:#0b1f5c; font-size:calc(38px*var(--u)); padding:calc(11px*var(--u)) calc(22px*var(--u)); letter-spacing:.5px; box-shadow:0 6px 16px rgba(0,0,0,.35)}
.cvx-chip.outline{border:calc(2.5px*var(--u)) solid #fff; background:rgba(8,22,80,.75); font-size:calc(26px*var(--u)); align-self:center; overflow:hidden; text-overflow:ellipsis; min-width:0}
.cvx-title{font-family:'League Gothic','Anton',sans-serif; font-size:calc(132px*var(--u)*var(--k)); line-height:.92; letter-spacing:calc(3px*var(--u)); text-align:center; white-space:nowrap; text-shadow:0 8px 20px rgba(0,0,0,.35)}
.cvx-title em{font-style:normal; color:#9cc0ff}
.cvx-teams{overflow:hidden; display:flex; align-items:center; justify-content:center; gap:.45em; font-weight:800; text-transform:uppercase; white-space:nowrap; line-height:1}
.cvx-teams b{flex:none}
.cvx-lg{flex:none; width:2.1em; height:2.1em; display:flex; align-items:center; justify-content:center}
.cvx-lg img{max-width:100%; max-height:100%; object-fit:contain; filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
.cvx-lg .ini{width:100%; height:100%; border-radius:50%; background:#fff; color:#0b1f5c; display:flex; align-items:center; justify-content:center; font-size:.7em}
.cvx-vs{flex:none; display:flex}.cvx-vs .vsg{height:1.15em}
.cvx-row{display:flex; flex-wrap:wrap; gap:calc(12px*var(--u)); justify-content:center; align-items:stretch}
.cvx-pills{display:flex; gap:calc(12px*var(--u)); flex-wrap:wrap; justify-content:center}
.cvx-pill{background:#fff; color:#0b1f5c; font-weight:800; border-radius:calc(12px*var(--u)); padding:calc(8px*var(--u)) calc(18px*var(--u)); font-size:calc(30px*var(--u)*var(--k)); white-space:nowrap; display:flex; align-items:center}
.cvx-pill.red{background:#e11d2e; color:#fff}
.cvx-lieu{background:rgba(5,16,58,.78); border:calc(2px*var(--u)) solid #7ea2ff; border-radius:calc(12px*var(--u)); padding:calc(8px*var(--u)) calc(16px*var(--u)); display:flex; flex-direction:column; justify-content:center; font-size:calc(19px*var(--u)*var(--k)); line-height:1.2; font-family:'Barlow',sans-serif}
.cvx-lieu small{font:700 calc(14px*var(--u)) 'Barlow Condensed'; letter-spacing:2px; color:#9cc0ff; text-transform:uppercase}
.cvx-lieu b{font-family:'Barlow Condensed'; font-size:1.2em; text-transform:uppercase}
/* trombinoscope */
.cvx-grid{display:grid; justify-content:center; align-content:center; flex:1; min-height:0; overflow:hidden; --cw:150px}
.cvx-card{width:var(--cw); height:calc(var(--cw) / .74); position:relative; border-radius:calc(16px*var(--u)); overflow:hidden; background:linear-gradient(180deg,#2d63f2,#0f2d9a); border:calc(3px*var(--u)) solid #fff; box-shadow:0 10px 24px rgba(0,0,0,.3)}
.poster.rose .cvx-card{background:linear-gradient(180deg,#d2357a,#7a0d3c)}
.cvx-card img{position:absolute; left:0; right:0; top:3%; bottom:18%; width:100%; height:79%; object-fit:contain; object-position:50% 100%}
.cvx-noph{position:absolute; inset:16% 20% 30%; display:flex; align-items:center; justify-content:center; opacity:.85}
.cvx-noph .jz{width:100%; height:100%}.cvx-noph .jz svg{width:100%; height:100%}
.cvx-num{font-size:calc(var(--cw)*.2); position:absolute; left:.25em; top:.1em; font-family:'League Gothic','Anton'; color:#ffd84a; line-height:1; text-shadow:0 2px 6px rgba(0,0,0,.6)}
.cvx-nm{font-size:var(--nf,20px); position:absolute; left:0; right:0; bottom:0; height:18%; background:#fff; color:#0b1f5c; font-weight:800; text-transform:uppercase; display:flex; align-items:center; justify-content:center; white-space:nowrap; overflow:hidden; padding:0 4px; line-height:1}
.cvx-empty{font-size:calc(30px*var(--u)); opacity:.7}
.cvx-slogan{text-align:center; font:400 calc(54px*var(--u)) 'League Gothic'; letter-spacing:4px; background:#fff; color:#0b1f5c; margin:0 calc(-40px*var(--u)) calc(-40px*var(--u)); padding:calc(18px*var(--u)) 0}
/* photos + liste */
.cvx.mix .cvx-in{display:grid; grid-template-columns:56% 1fr; grid-template-rows:1fr auto; gap:calc(16px*var(--u))}
.cvx.mix .cvx-left{grid-column:1; grid-row:1; display:flex; flex-direction:column; gap:calc(14px*var(--u)*var(--k)); justify-content:flex-start}
.cvx.mix .cvx-title{text-align:left; font-size:calc(118px*var(--u)*var(--k))}
.cvx.mix .cvx-teams{justify-content:flex-start; flex-wrap:wrap; white-space:normal}
.cvx.mix .cvx-pills{justify-content:flex-start}
.cvx-list{grid-column:1 / 3; grid-row:2; background:rgba(5,16,58,.84); border:calc(2px*var(--u)) solid #7ea2ff; border-radius:calc(16px*var(--u)); padding:calc(12px*var(--u)) calc(16px*var(--u)) calc(16px*var(--u))}
.cvx-list.hidden{display:none}
.cvx-list h2{margin:0 0 calc(10px*var(--u)); font-size:calc(32px*var(--u)*var(--k)); font-weight:800; text-transform:uppercase; line-height:1}
.cvx-list h2 em{font-style:normal; color:#9cc0ff}.cvx-list h2 small{font-size:.65em; color:#9cc0ff}
.cvx-chips{display:grid; grid-template-columns:repeat(var(--cols),minmax(0,1fr)); gap:calc(10px*var(--u)*var(--k)) calc(10px*var(--u))}
.cvx-chips span{display:flex; align-items:center; gap:calc(8px*var(--u)); background:#fff; color:#0b1f5c; border-radius:calc(10px*var(--u)); padding:calc(4px*var(--u)) calc(10px*var(--u)) calc(4px*var(--u)) calc(4px*var(--u)); min-width:0; height:calc(46px*var(--u)*var(--k))}
.cvx-chips .jz{flex:none; width:calc(40px*var(--u)*var(--k)); height:calc(38px*var(--u)*var(--k))}
.cvx-chips b{flex:1; min-width:0; white-space:nowrap; overflow:hidden; font-size:calc(26px*var(--u)*var(--k)); text-transform:uppercase; line-height:1}
.cvx-photos{position:relative; grid-column:2; grid-row:1; min-height:0; margin:0 calc(-30px*var(--u)) calc(-24px*var(--u)) calc(-40px*var(--u)); z-index:0}
.cvx.mix .cvx-left,.cvx.mix .cvx-list{position:relative; z-index:1}
.cvx-ph{position:absolute; bottom:0; left:50%; transform:translateX(-50%) translate(var(--dx,0%),var(--dy,0%)) scale(var(--s,1)); transform-origin:50% 100%; height:100%; width:auto; max-width:64%; object-fit:contain; object-position:50% 100%; filter:drop-shadow(0 18px 26px rgba(0,0,0,.5))}
.cvx-photos.n1 .p0{max-width:96%}
.cvx-photos.n2 .p0{left:31%; height:92%}.cvx-photos.n2 .p1{left:69%}
.cvx-photos.n3 .p0{left:22%; height:86%}.cvx-photos.n3 .p1{left:50%; z-index:2}.cvx-photos.n3 .p2{left:78%; height:86%}
.cvx-photos.n4 .p0{left:15%; height:84%}.cvx-photos.n4 .p1{left:38%; z-index:2}.cvx-photos.n4 .p2{left:62%; z-index:2}.cvx-photos.n4 .p3{left:85%; height:84%}
.cvx-ph.solo{height:70%; max-width:80%; bottom:12%; opacity:.9}
/* formats */
.cvx.mix.fmt-story .cvx-in{grid-template-columns:1fr; grid-template-rows:auto 1fr auto}
.cvx.mix.fmt-story .cvx-left{grid-row:1}
.cvx.mix.fmt-story .cvx-title{text-align:center}.cvx.mix.fmt-story .cvx-teams,.cvx.mix.fmt-story .cvx-pills{justify-content:center}
.cvx.mix.fmt-story .cvx-list{grid-column:1; grid-row:3}
.cvx.mix.fmt-story .cvx-photos{grid-column:1; grid-row:2; margin:0 calc(-40px*var(--u)) calc(-24px*var(--u))}
.cvx.mix.fmt-wide .cvx-in{grid-template-columns:44% 1fr; grid-template-rows:auto 1fr}
.cvx.mix.fmt-wide .cvx-list{grid-column:1; grid-row:2}
.cvx.mix.fmt-wide .cvx-photos{grid-row:1 / 3; margin-bottom:calc(-36px*var(--u))}
.cvx.mix .cvx-title em{color:#ffd84a}
.cvx-badge{font-weight:700; text-transform:uppercase; font-size:calc(22px*var(--u)*var(--k)); color:#cfe0ff; letter-spacing:1px; line-height:1.1}
.cvx-vsbox{display:flex; flex-direction:column; gap:.25em; font-weight:800; text-transform:uppercase; line-height:1}
.cvx-vsbox > div{display:flex; align-items:center; gap:.4em; white-space:nowrap}
.cvx-vsbox .cvx-lg{width:1.7em; height:1.7em}
.cvx-vsbox .cvx-vs{padding-left:.35em}.cvx-vsbox .cvx-vs .vsg{height:.9em}
.cvx.mix.fmt-story .cvx-vsbox{align-items:center}
.cvx.mix.fmt-story .cvx-top{justify-content:center}.cvx.mix.fmt-story .cvx-badge{text-align:center}
.cvx.mix.fmt-wide .cvx-ph{max-width:36%}.cvx.mix.fmt-wide .cvx-photos.n1 .p0,.cvx.mix.fmt-wide .cvx-photos.n2 .cvx-ph{max-width:60%}

.poster.rose.cvx .cvx-in{bottom:calc(54px*var(--u))}.poster.rose.cvx .cvx-slogan{margin-bottom:0}
.cvx-photos.n3 .cvx-ph{max-width:46%}.cvx-photos.n4 .cvx-ph{max-width:36%}

.cvx-title em.y{color:#ffd84a}
.cvx-card img{transform-origin:50% 100%}
.cvx-card.cdr-sel{outline:calc(6px*var(--u)) solid #ffd84a; outline-offset:calc(3px*var(--u))}


.cvx-chip.stack{display:flex; flex-direction:column; align-items:center; gap:calc(4px*var(--u)); border:calc(4px*var(--u)) solid #fff; outline:calc(3px*var(--u)) solid #fff; outline-offset:calc(4px*var(--u)); padding:calc(10px*var(--u)) calc(22px*var(--u)) calc(9px*var(--u)); margin:calc(6px*var(--u))}
.cvx-chip.stack b{font-size:calc(52px*var(--u)); line-height:.9; letter-spacing:1px}
.cvx-chip.stack small{font-size:calc(26px*var(--u)); line-height:1; font-weight:800; letter-spacing:1.5px; border-top:calc(2px*var(--u)) solid #0b1f5c; padding-top:calc(5px*var(--u))}
.cvx-top{align-items:flex-start}

.cvx-ph.cdr-sel{outline:calc(5px*var(--u)) dashed #ffd84a; outline-offset:calc(4px*var(--u))}
.cvx.mix .cvx-lieu{font-size:calc(27px*var(--u)*var(--k)); padding:calc(12px*var(--u)) calc(20px*var(--u)); gap:calc(4px*var(--u))}
.cvx.mix .cvx-lieu small{font-size:calc(18px*var(--u)*var(--k))}
.cvx.mix .cvx-lieu b{font-size:1.25em}
/* 9:16 : WhatsApp recadre l'aperçu au centre -> on garde l'essentiel dans la zone centrale */
.cvx.fmt-story .cvx-in{padding-top:175px !important; padding-bottom:175px !important}
.cvx.trombi.fmt-story .cvx-in{padding-bottom:0 !important}
.cvx.trombi.fmt-story .cvx-slogan{font-family:'League Gothic','Anton',sans-serif; font-size:calc(58px*var(--u)); margin:calc(10px*var(--u)) calc(-40px*var(--u)) 0; height:150px; flex:none; display:flex; align-items:center; justify-content:center; padding:0}
.poster.rose.cvx.trombi.fmt-story .cvx-in{bottom:0}
.poster.rose.cvx.trombi.fmt-story .cvx-slogan{padding-bottom:50px}

/* ---- Photos + liste façon C ---- */
.cvx.mix .cvx-in{grid-template-columns:52% 1fr}
.cvx.mix .cvx-left{gap:calc(14px*var(--u)*var(--k))}
.cvx-top.c{justify-content:flex-start; gap:calc(10px*var(--u))}
.cvx-top.c .cvx-chip.solid{font-size:calc(26px*var(--u)); padding:calc(9px*var(--u)) calc(16px*var(--u)); box-shadow:none}
.cvx.mix .cvx-title{font-size:calc(150px*var(--u)*var(--k)); line-height:.88; margin-top:calc(4px*var(--u))}
.cvx-script{font-family:'Kaushan Script',cursive; font-size:calc(58px*var(--u)*var(--k)); line-height:1; margin:calc(-22px*var(--u)) 0 0 calc(170px*var(--u)); transform:rotate(-6deg); text-shadow:0 4px 12px rgba(0,0,0,.4); white-space:nowrap; -webkit-text-stroke:1px #fff}
.cvx-opp{display:flex; align-items:center; gap:calc(16px*var(--u)); margin-top:calc(14px*var(--u)*var(--k))}
.cvx-opp .cvx-lg{width:calc(96px*var(--u)*var(--k)); height:calc(96px*var(--u)*var(--k))}
.cvx-opp .cvx-vs .vsg{height:calc(46px*var(--u)*var(--k))}
.cvx-opp .nm{display:flex; flex-direction:column; min-width:0; font-size:calc(38px*var(--u)*var(--k))}
.cvx-opp .nm b{font-weight:800; text-transform:uppercase; line-height:1}
.cvx-opp .nm small{font:700 calc(18px*var(--u)) 'Barlow Condensed'; letter-spacing:2px; color:#9cc0ff; margin-top:4px}
.cvx-times{display:grid; grid-template-columns:1fr 1fr; gap:calc(14px*var(--u))}
.cvx-times .t{border-radius:calc(14px*var(--u)); padding:calc(12px*var(--u)) calc(10px*var(--u)); text-align:center; display:flex; flex-direction:column; align-items:center; gap:calc(4px*var(--u)); box-shadow:0 8px 20px rgba(0,0,0,.25)}
.cvx-times .t small{font-weight:800; font-size:calc(20px*var(--u)*var(--k)); letter-spacing:.5px; line-height:1; white-space:nowrap}
.cvx-times .t b{font-family:'League Gothic','Anton',sans-serif; font-weight:400; font-size:calc(84px*var(--u)*var(--k)); line-height:.95; letter-spacing:1px}
.cvx-times .w{background:#fff; color:#0b1f5c}.cvx-times .r{background:#e11d2e; color:#fff}
.cvx.mix .cvx-lieu{font-size:calc(25px*var(--u)*var(--k))}
.cvx.mix .cvx-lieu b{font-size:1.15em}
/* photos plus grandes : elles débordent sur la gauche, derrière le texte */
.cvx.mix .cvx-photos{grid-column:2; grid-row:1; margin:calc(150px*var(--u)) calc(-40px*var(--u)) calc(-30px*var(--u)) calc(-50px*var(--u))}
.cvx.mix .cvx-ph{max-width:none !important}
.cvx.mix .cvx-photos.n1 .p0{left:55%; height:100%}
.cvx.mix .cvx-photos.n2 .p0{left:32%; height:82%}.cvx.mix .cvx-photos.n2 .p1{left:72%; height:100%; z-index:2}
.cvx.mix .cvx-photos.n3 .p0{left:26%; height:72%; z-index:1}.cvx.mix .cvx-photos.n3 .p1{left:52%; height:86%; z-index:0}.cvx.mix .cvx-photos.n3 .p2{left:84%; height:104%; z-index:2}
.cvx.mix .cvx-photos.n4 .p0{left:18%; height:66%; z-index:1}.cvx.mix .cvx-photos.n4 .p1{left:42%; height:78%; z-index:0}.cvx.mix .cvx-photos.n4 .p2{left:64%; height:90%; z-index:2}.cvx.mix .cvx-photos.n4 .p3{left:88%; height:100%; z-index:3}
.cvx.mix.fmt-story .cvx-photos{margin:0 calc(-40px*var(--u)) calc(-24px*var(--u))}
.cvx.mix.fmt-story .cvx-script{margin-left:0; text-align:center}
.cvx.mix.fmt-story .cvx-top.c,.cvx.mix.fmt-story .cvx-opp{justify-content:center}
.cvx.mix.fmt-wide .cvx-in{grid-template-columns:46% 1fr}
.cvx.mix.fmt-wide .cvx-photos{margin:calc(60px*var(--u)) calc(-40px*var(--u)) calc(-36px*var(--u)) calc(20px*var(--u))}

.lst .lst-sub{display:flex;justify-content:space-between;align-items:center}
.lst .pg-pill{font-family:'Anton',sans-serif;text-transform:uppercase;background:#ffcc00;color:#0a1c5a;border-radius:999px;padding:.12em .7em;letter-spacing:.5px}

/* cadrage actif seulement quand « Modifier les photos » est coché */
.ph-edit .cvx-ph,.ph-edit .cvx.trombi .cvx-card{cursor:pointer; touch-action:none}
.ph-edit .cvx-card.cdr-sel{cursor:grab}
