#xmas-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
}
#xmas-modal.is-open{display:block}

/* Overlay plus premium */
.xmas-overlay{
  position:absolute;
  inset:0;
  background:rgba(16, 24, 40, .65);
  backdrop-filter: blur(4px);
}

/* Carte */
.xmas-box{
  position:relative;
  width:min(720px, calc(100% - 40px));
  margin:12vh auto 0;
  background:#fff;
  padding:38px 42px;
  border-radius:22px;
  text-align:center;
  box-shadow:0 40px 120px rgba(0,0,0,.35);
}

/* Petit badge */
.xmas-badge{
  width:56px;height:56px;
  margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;
  border-radius:16px;
  background:rgba(16, 24, 40, .06);
  font-size:28px;
}

/* Typo */
.xmas-box h2{
  margin:0 0 10px;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-0.02em;
}
.xmas-text{
  margin:0 0 14px;
  font-size:16px;
  line-height:1.7;
  color:rgba(16,24,40,.85);
}
.xmas-note{
  margin:8px 0 0;
  font-size:13px;
  color:rgba(16,24,40,.60);
}

/* Bouton fermer (X) discret */
.xmas-close{
  position:absolute;
  top:14px; right:14px;
  width:42px; height:42px;
  border-radius:14px;
  border:0;
  cursor:pointer;
  background:rgba(16,24,40,.06);
  color:rgba(16,24,40,.75);
  font-size:22px;
}
.xmas-close:hover{
  background:rgba(16,24,40,.10);
}

/* CTA */
.xmas-btn{
  margin-top:18px;
  padding:12px 18px;
  border-radius:14px;
  border:0;
  cursor:pointer;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
  font-size:13px;
  background:#16a34a; /* vert propre */
  color:#fff;
}
.xmas-btn:hover{filter:brightness(.95)}

/* Mobile */
@media (max-width:560px){
  .xmas-box{
    margin:14vh auto 0;
    padding:26px 22px;
    border-radius:18px;
  }
  .xmas-box h2{font-size:22px}
}
