/* Trust Co. — badge promotionnel animé (voir promo.js) */
.pb-hote{pointer-events:none}
.pb-fixe{position:fixed;z-index:70;top:72px;right:8px;width:240px}
@media (max-width:900px){
  .pb-fixe{top:66px;right:4px;width:150px}
  }

/* ---- Thèmes */
.pb{container-type:inline-size;position:relative;width:100%;aspect-ratio:1;font-family:inherit;user-select:none;-webkit-user-select:none;visibility:hidden}
.pb.on,.pb.off{visibility:visible}
.pb.off{visibility:hidden}

/* ---- Structure */
.pb-body{position:absolute;inset:0;filter:drop-shadow(0 12px 18px rgba(8,28,54,.28))}
.pb{animation:pb-flotte 4.2s ease-in-out infinite}
@keyframes pb-flotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

/* ---- Textes (machine à écrire) */
.pb-l{position:relative;display:block;white-space:nowrap}
.pb-g{display:block;visibility:hidden;font-style:normal}
.pb-ty{position:absolute;left:0;right:0;top:0;text-align:center}
.pb-ty.cur::after{content:"";display:inline-block;width:.07em;height:.95em;margin-left:.05em;vertical-align:-.12em;background:currentColor;animation:pb-cur .45s steps(1) infinite}
@keyframes pb-cur{50%{opacity:0}}

/* ---- Effets annexes */
.pb-fx{position:absolute;inset:-12%;pointer-events:none;overflow:visible}
.pb-sp{position:absolute;width:3.6cqw;height:3.6cqw;margin:-1.8cqw 0 0 -1.8cqw;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);opacity:0;animation:pb-scint 1.8s ease-in-out infinite;animation-delay:var(--d);filter:drop-shadow(0 0 3px #fff)}
@keyframes pb-scint{0%,100%{opacity:0;transform:scale(.2) rotate(0)}50%{opacity:1;transform:scale(var(--s,1)) rotate(90deg)}}
.pb-fl{position:absolute;top:-4%;width:var(--w);height:var(--w);border-radius:50%;background:#fff;opacity:.9;animation:pb-neige var(--t) linear infinite;animation-delay:var(--d);filter:blur(.3px)}
@keyframes pb-neige{0%{transform:translate(0,0);opacity:0}10%{opacity:.95}100%{transform:translate(var(--x),112cqw);opacity:.2}}
.pb-bm{position:absolute;width:0;height:0}
.pb-bm i{position:absolute;left:0;top:0;width:1.4cqw;height:1.4cqw;border-radius:50%;background:var(--c);box-shadow:0 0 6px var(--c);animation:pb-boom 1.2s cubic-bezier(.1,.7,.3,1) forwards}
@keyframes pb-boom{0%{transform:translate(0,0) scale(1);opacity:1}70%{opacity:1}100%{transform:translate(var(--x),var(--y)) scale(.2);opacity:0}}

/* ---- Quatre mouvements d'entrée / sortie, et mouvement des satellites */
.pb:not(.on) .pb-body{opacity:0}
.pb.on .pb-body{opacity:1}
.pb.v0 .pb-body{animation:pb-in0 .95s cubic-bezier(.2,1.15,.3,1) both,pb-out0 .65s ease-in 4.4s forwards}
.pb.v1 .pb-body{animation:pb-in1 1s ease-out both,pb-out1 .65s ease-in 4.4s forwards}
.pb.v2 .pb-body{animation:pb-in2 .95s cubic-bezier(.2,1,.3,1) both,pb-out2 .65s ease-in 4.4s forwards}
.pb.v3 .pb-body{transform-origin:50% 0;animation:pb-in3 1.2s ease-out both,pb-out3 .65s ease-in 4.4s forwards}
@keyframes pb-in0{from{transform:scale(.15) rotate(-220deg);opacity:0}55%{opacity:1}to{transform:none}}
@keyframes pb-out0{to{transform:scale(.15) rotate(220deg);opacity:0}}
@keyframes pb-in1{0%{transform:translateY(-150%);opacity:0}45%{transform:translateY(0);opacity:1}60%{transform:translateY(-14%)}75%{transform:translateY(0)}86%{transform:translateY(-5%)}100%{transform:translateY(0)}}
@keyframes pb-out1{to{transform:translateY(-150%) rotate(10deg);opacity:0}}
@keyframes pb-in2{from{transform:perspective(900px) rotateY(110deg) scale(.55);opacity:0}to{transform:perspective(900px) rotateY(0) scale(1);opacity:1}}
@keyframes pb-out2{to{transform:perspective(900px) rotateY(-110deg) scale(.55);opacity:0}}
@keyframes pb-in3{0%{transform:rotate(-60deg) translateY(-20%);opacity:0}35%{transform:rotate(30deg);opacity:1}60%{transform:rotate(-15deg)}80%{transform:rotate(6deg)}100%{transform:none}}
@keyframes pb-out3{to{transform:scale(1.5);opacity:0;filter:blur(8px)}}

.pb-x{position:absolute;top:2%;left:2%;width:26px;height:26px;border:0;border-radius:50%;background:rgba(10,22,36,.72);color:#fff;font-size:17px;line-height:1;cursor:pointer;pointer-events:auto;z-index:2;opacity:.85}
.pb-x:hover{opacity:1}

@media (prefers-reduced-motion:reduce){
  .pb,.pb *{animation:none!important}
  .pb:not(.on) .pb-body{opacity:1}
}

/* ===== Scènes propres à chaque occasion (formes différentes du badge QR) ===== */
.pb-l{position:relative;display:block;white-space:nowrap}
.pb-big{font-size:calc(var(--f,15)*1cqw);font-weight:800;line-height:1}

/* -- Bon début de mois : feuillet de calendrier */
.cal{position:absolute;left:14%;right:14%;top:15%;bottom:11%;display:flex;flex-direction:column;background:#fff;border-radius:3.6cqw;overflow:hidden;box-shadow:0 0 0 .5cqw rgba(11,59,102,.1);animation:cal-bal 4s ease-in-out infinite;transform-origin:50% 0}
@keyframes cal-bal{0%,100%{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}
.cal-head{background:linear-gradient(135deg,#0f3a68,#2a6bb0);color:#fff;padding:10.5cqw 3cqw 3.4cqw;text-align:center;font-weight:700;font-size:4.6cqw;letter-spacing:.1em;text-transform:uppercase}
.cal-head .pb-ty{top:0}
.cal-rings{position:absolute;z-index:2;top:2.2cqw;left:0;right:0;display:flex;justify-content:space-around;padding:0 15cqw}
.cal-rings i{width:3.2cqw;height:7.5cqw;border-radius:2cqw;background:linear-gradient(90deg,#f4f6f8,#8e99a4);box-shadow:0 .6cqw 1cqw rgba(0,0,0,.3)}
.cal-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.6cqw;padding:0 3cqw;text-align:center}
.cal-main .pb-big{color:#144b86}
.cal-main .pb-sub{font-size:6.6cqw;font-weight:800;color:#d62839;text-transform:uppercase;letter-spacing:.04em}
.cal-foot{padding:0 0 5cqw;display:flex;justify-content:center}
.cal-foot .pb-btn{font-size:4.2cqw;font-weight:700;color:#144b86;background:#eef4fa;padding:1.8cqw 4.2cqw;border-radius:99px;border:.4cqw solid rgba(214,40,57,.35)}
.cal-foot .pb-btn .pb-ty{top:1.8cqw}
.pb-ty{text-align:center}
.cal-curl{position:absolute;right:0;bottom:0;width:10cqw;height:10cqw;background:linear-gradient(315deg,#fff 50%,#d3e3f0 50%);border-top-left-radius:2.4cqw;box-shadow:-.6cqw -.6cqw 1.4cqw rgba(0,0,0,.14)}
.cal-sh{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.7) 50%,transparent 60%);transform:translateX(-120%);animation:pb-glisse 4s ease-in-out 1.2s infinite}
@keyframes pb-glisse{0%,40%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

/* -- Black Friday : ruban-banderole noir et or, incliné */
.bfr{position:absolute;left:0;right:0;top:27%;height:45%;transform:rotate(-6deg);filter:drop-shadow(0 2.6cqw 3cqw rgba(0,0,0,.35))}
.bfr::before{content:"";position:absolute;inset:-.9cqw;background:linear-gradient(90deg,#e11d2e,#2a6bb0,#e11d2e);clip-path:polygon(0 0,100% 0,95.5% 50%,100% 100%,0 100%,4.5% 50%)}
.bfr-in{position:absolute;inset:0;display:flex;align-items:center;gap:3cqw;padding:5.5cqw 10cqw;background:linear-gradient(180deg,#14407a,#071a33);clip-path:polygon(0 0,100% 0,95.5% 50%,100% 100%,0 100%,4.5% 50%);overflow:hidden}
.bfr-bd{position:absolute;left:0;right:0;height:2.8cqw;background:repeating-linear-gradient(135deg,#e11d2e 0 2.6cqw,#0b2447 2.6cqw 5.2cqw);background-size:7.4cqw 100%;animation:bfr-ruban 1.4s linear infinite}
.bfr-b1{top:0}.bfr-b2{bottom:0;animation-direction:reverse}
@keyframes bfr-ruban{to{background-position:7.4cqw 0}}
.bfr-left{flex:0 0 auto}
.bfr-left .pb-big{color:#fff;text-shadow:0 0 1.4cqw rgba(255,90,100,.9),0 0 4cqw rgba(225,29,46,.6);animation:pb-neon 1.5s steps(1) infinite}
@keyframes pb-neon{0%,17%,21%,62%,100%{opacity:1}19%,64%{opacity:.5}}
.bfr-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.6cqw;align-items:flex-start}
.bfr-right .pb-l{width:100%}
.bfr-right .pb-ty,.bfr-right .pb-g{text-align:left}
.bfr-right .pb-ty{left:0;right:auto}
.bfr-right .pb-tag{display:inline-block;width:auto;background:#e11d2e;padding:1cqw 2.2cqw;border-radius:.8cqw;font-size:4.2cqw;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.bfr-right .pb-sub{font-size:5.6cqw;font-weight:800;letter-spacing:.06em;color:#fff}
.bfr-right .pb-btn{font-size:3.5cqw;font-weight:800;color:#fff;letter-spacing:.04em;border-top:.35cqw solid rgba(255,255,255,.4);padding-top:1.4cqw}
.bfr-right .pb-btn .pb-ty{top:1.75cqw}
.bfr-sh{position:absolute;top:0;bottom:0;left:0;width:30%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-140%) skewX(-18deg);animation:bfr-sh 2.6s ease-in-out 1s infinite}
@keyframes bfr-sh{0%,35%{transform:translateX(-140%) skewX(-18deg)}100%{transform:translateX(420%) skewX(-18deg)}}

/* -- Noël : étiquette-cadeau suspendue, guirlande lumineuse et neige */
.nl{position:absolute;left:19%;right:19%;top:1%;bottom:5%;transform-origin:50% 0;animation:nl-bal 3.4s ease-in-out infinite}
@keyframes nl-bal{0%,100%{transform:rotate(-3.2deg)}50%{transform:rotate(3.2deg)}}
.nl-str{position:absolute;left:50%;top:0;width:.9cqw;height:13cqw;margin-left:-.45cqw;background:linear-gradient(#ffe9a0,#c79a2a)}
.nl-tag{position:absolute;left:0;right:0;top:11cqw;bottom:0;background:linear-gradient(160deg,#ea3a49,#a10f22);clip-path:polygon(20% 0,80% 0,100% 11%,100% 100%,0 100%,0 11%);filter:drop-shadow(0 2cqw 2.4cqw rgba(0,0,0,.3))}
.nl-hole{position:absolute;left:50%;top:3.2cqw;width:5cqw;height:5cqw;margin-left:-2.5cqw;border-radius:50%;background:#fff3d6;box-shadow:inset 0 .4cqw .8cqw rgba(0,0,0,.35),0 0 0 1cqw #d6a92f}
.nl-in{position:absolute;left:4.5cqw;right:4.5cqw;top:12cqw;bottom:7cqw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.2cqw;border:.7cqw dashed rgba(255,255,255,.75);border-radius:2cqw;text-align:center;padding:0 1cqw}
.nl-in .pb-tag{font-size:5.2cqw;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#ffe9a0}
.nl-in .pb-big{color:#fff;text-shadow:0 .6cqw 1.2cqw rgba(0,0,0,.3)}
.nl-in .pb-sub{font-size:6cqw;font-weight:700;color:#fff3d6}
.nl-in .pb-btn{font-size:3.8cqw;font-weight:800;color:#a10f22;background:linear-gradient(100deg,#fff,#ffe9e9);padding:1.5cqw 3.2cqw;border-radius:99px}
.nl-in .pb-btn .pb-ty{top:1.5cqw}
.nl-lights{position:absolute;left:5%;right:5%;bottom:2.4cqw;display:flex;justify-content:space-between}
.nl-lights i{width:2.6cqw;height:2.6cqw;border-radius:50%;background:#ffd36b;box-shadow:0 0 1.6cqw #ffd36b;animation:nl-amp 1.1s ease-in-out infinite;animation-delay:calc(var(--i)*-.14s)}
.nl-lights i:nth-child(3n+2){background:#fff;box-shadow:0 0 1.6cqw #fff}.nl-lights i:nth-child(3n){background:#9cc2ff;box-shadow:0 0 1.6cqw #9cc2ff}
@keyframes nl-amp{0%,100%{opacity:.25}50%{opacity:1}}

/* -- Bonne année : ticket marine et or, feux d'artifice */
.tk{position:absolute;left:2%;right:2%;top:25%;height:50%;filter:drop-shadow(0 2.6cqw 3cqw rgba(5,12,40,.4))}
.tk-in{position:absolute;inset:0;display:flex;flex-direction:column;background:linear-gradient(160deg,#1a4fa8,#0a1f55);border-radius:3cqw;overflow:hidden;
  -webkit-mask:radial-gradient(circle at 0 50%,#0000 4.4cqw,#000 4.6cqw) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,#0000 4.4cqw,#000 4.6cqw) right/51% 100% no-repeat;mask:radial-gradient(circle at 0 50%,#0000 4.4cqw,#000 4.6cqw) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,#0000 4.4cqw,#000 4.6cqw) right/51% 100% no-repeat}
.tk-in::before{content:"";position:absolute;inset:2cqw;border:.45cqw solid rgba(255,206,92,.9);border-radius:2cqw;pointer-events:none}
.tk-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.8cqw;padding:3cqw 8cqw 0;text-align:center}
.tk-main .pb-tag{font-size:4.6cqw;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#ffd76a}
.tk-main .pb-big{filter:drop-shadow(0 .6cqw 1.2cqw rgba(0,0,0,.35))}
.tk-main .pb-big .pb-ty{background:linear-gradient(180deg,#fff2b8,#ffd76a 55%,#d9a521);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.tk-main .pb-big .pb-ty.cur::after{background:#ffd76a;-webkit-text-fill-color:initial}
.tk-main .pb-sub{font-size:6.4cqw;font-weight:700;letter-spacing:.3em;color:#fff;text-transform:uppercase}
.tk-foot{position:relative;margin:0 4.2cqw 4.2cqw;padding:2cqw 2cqw;text-align:center;border-top:.4cqw dashed rgba(255,206,92,.75)}
.tk-foot .pb-btn{font-size:3.6cqw;font-weight:700;letter-spacing:.1em;color:#ffd76a;text-transform:uppercase}
.tk-foot .pb-btn .pb-ty{top:0}
.tk-sh{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.tk-sh::after{content:"";position:absolute;top:0;bottom:0;left:0;width:26%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.3),transparent);transform:translateX(-140%) skewX(-18deg);animation:bfr-sh 3s ease-in-out 1s infinite}
.pb-ty.cur::after{content:"";display:inline-block;width:.07em;height:.95em;margin-left:.05em;vertical-align:-.12em;background:currentColor;-webkit-text-fill-color:currentColor;animation:pb-cur .45s steps(1) infinite}
