/* ==========================================================================
   Charte Upword — complement aux presets Divi 5
   Genere automatiquement. Ne pas editer a la main : regenere a chaque passe.
   Cette feuille est exclue de l'optimisation CSS LiteSpeed.
   ========================================================================== */

.up-sec{position:relative}
.up-alt{background:linear-gradient(180deg,#fff 0,#F5F7FC clamp(40px,6vw,88px),#F5F7FC calc(100% - clamp(40px,6vw,88px)),#fff 100%)!important}
.up-alt + .up-alt{background:#F5F7FC!important}

/* ---------- Pastille ---------- */
.up-badge .et_pb_text_inner{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;
  border-radius:999px;background:linear-gradient(103deg,#EEF3FF 0%,#E9ECFF 45%,#FFEFF5 100%);
  border:1px solid rgba(47,95,208,.14);line-height:1.4}
.up-badge .et_pb_text_inner > *{margin:0}
.up-badge .et_pb_text_inner::before{content:"";width:7px;height:7px;border-radius:50%;flex:none;
  background:linear-gradient(135deg,#2F5FD0,#D1004E);animation:upPulse 2.6s ease-in-out infinite}
@keyframes upPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}
.up-badge-nuit .et_pb_text_inner{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3)}
.up-badge-nuit .et_pb_text_inner::before{background:#FFFFFF;box-shadow:0 0 0 3px rgba(255,255,255,.22)}

/* ---------- Cartes ---------- */
.up-carte{position:relative;overflow:hidden;
  transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s ease,border-color .28s ease}
.up-carte::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,#2F5FD0,#D1004E);transform:scaleX(0);transform-origin:left;
  transition:transform .35s ease;z-index:2}
.up-carte:hover{transform:translateY(-6px)}
.up-carte:hover::before{transform:scaleX(1)}
.up-carte-nuit::before{background:linear-gradient(90deg,#8FB4FF,#FFFFFF)}

/* ---------- Boutons : survol sobre, sans bascule de couleur ---------- */
a.up-btn, .up-btn a.et_pb_button{
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
a.up-btn:hover, .up-btn a.et_pb_button:hover{transform:translateY(-2px)}
a.up-btn-primaire, .up-btn-primaire a.et_pb_button{box-shadow:0 8px 20px rgba(209,0,78,.22)}
a.up-btn-primaire:hover, .up-btn-primaire a.et_pb_button:hover{box-shadow:0 12px 26px rgba(209,0,78,.30)}
a.up-btn-clair:hover, .up-btn-clair a.et_pb_button:hover{box-shadow:0 12px 26px rgba(0,0,0,.18)}

/* ---------- Apparition au scroll ---------- */
.up-anim .up-rv{opacity:0;transform:translateY(18px);
  transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.up-anim .up-rv.up-in{opacity:1;transform:none}

/* ---------- Texte rotatif du titre (repris du CSS personnalise) ---------- */
.up-rotate{display:inline-grid;text-align:center}
.up-rotate > span{grid-area:1 / 1;white-space:nowrap;color:#FD005E;opacity:0;
  transform:translateY(14px);animation:upFade 15s infinite}
.up-rotate > span:nth-child(1){animation-delay:0s}
.up-rotate > span:nth-child(2){animation-delay:3s}
.up-rotate > span:nth-child(3){animation-delay:6s}
.up-rotate > span:nth-child(4){animation-delay:9s}
.up-rotate > span:nth-child(5){animation-delay:12s}
.up-q{color:#FFFFFF;font-style:normal;font-weight:inherit}
@keyframes upFade{
  0%{opacity:0;transform:translateY(14px)}
  3%{opacity:1;transform:translateY(0)}
  20%{opacity:1;transform:translateY(0)}
  23%{opacity:0;transform:translateY(-14px)}
  100%{opacity:0;transform:translateY(-14px)}
}

@media (prefers-reduced-motion: reduce){
  .up-carte:hover{transform:none}
  .up-badge .et_pb_text_inner::before{animation:none}
  .up-anim .up-rv{opacity:1;transform:none;transition:none}
  a.up-btn:hover, .up-btn a.et_pb_button:hover{transform:none}
  .up-rotate > span{animation:none}
  .up-rotate > span:nth-child(1){opacity:1;transform:none}
}
