/* Per-calendar styles; FREE code and server-side date lock are unchanged. */
.vdcc-calendar.vdcc-pro-active .vdcc-door:not(.vdcc-locked){background:var(--vdcc-pro-open)!important}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-locked{background:var(--vdcc-pro-locked)!important}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-advent{border:3px solid #ffe2a0!important;box-shadow:0 0 0 3px rgba(255,199,65,.48),0 0 22px rgba(255,203,92,.8),0 3px 12px rgba(0,0,0,.34)!important;z-index:2}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-advent .vdcc-door-number{color:#fff9d1}
.vdcc-calendar.vdcc-pro-snow .vdcc-scene::after{content:"";position:absolute;inset:-60% 0 0;z-index:4;pointer-events:none;opacity:.55;background-image:radial-gradient(2px 2px at 15px 25px,#fff 95%,transparent),radial-gradient(3px 3px at 85px 100px,#fff 95%,transparent),radial-gradient(2px 2px at 140px 75px,#fff 95%,transparent),radial-gradient(4px 4px at 185px 175px,#fff 90%,transparent);background-size:220px 220px,260px 260px,320px 320px,380px 380px;animation:vdcc-pro-snowfall 16s linear infinite}
@keyframes vdcc-pro-snowfall{from{transform:translate3d(0,-12%,0)}to{transform:translate3d(25px,38%,0)}}
/* Dramatic PRO animations play BEFORE FREE opens its content modal. */
.vdcc-calendar.vdcc-pro-active .vdcc-door[class*="vdcc-pro-opening-"]{z-index:5!important;pointer-events:none;backface-visibility:visible;will-change:transform,opacity,filter}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-swing{transform-origin:0% 50%;animation:vdcc-pro-door-swing 1.05s cubic-bezier(.24,.74,.23,1) forwards!important}
@keyframes vdcc-pro-door-swing{
  0%{transform:translate(-50%,-50%) perspective(650px) rotateY(0);filter:brightness(1)}
  35%{transform:translate(-50%,-50%) perspective(650px) rotateY(-35deg);filter:brightness(1.6)}
  78%,100%{transform:translate(-50%,-50%) perspective(650px) rotateY(-112deg);filter:brightness(1.3)}
}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-magic{animation:vdcc-pro-door-magic 1.1s cubic-bezier(.22,.68,.15,1) forwards!important}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-magic::after{content:"✦ ✧ ✦";position:absolute;left:50%;top:50%;white-space:nowrap;font-size:clamp(18px,4vw,36px);color:#fff1a1;text-shadow:0 0 14px #ffdd54,0 0 26px #ffad2f;pointer-events:none;animation:vdcc-pro-door-sparkles 1.1s ease-out forwards}
@keyframes vdcc-pro-door-magic{
  0%{transform:translate(-50%,-50%) scale(1) rotate(0);filter:brightness(1);opacity:1}
  37%{transform:translate(-50%,-50%) scale(1.65) rotate(10deg);filter:brightness(2.2);opacity:1}
  75%{transform:translate(-50%,-50%) scale(2.05) rotate(-15deg);filter:brightness(2.5);opacity:.78}
  100%{transform:translate(-50%,-50%) scale(.18) rotate(35deg);filter:brightness(2);opacity:0}
}
@keyframes vdcc-pro-door-sparkles{
  0%{transform:translate(-50%,-50%) scale(.4);opacity:0}
  30%{transform:translate(-50%,-110%) scale(1);opacity:1}
  100%{transform:translate(-50%,-190%) scale(2.5);opacity:0}
}
.vdcc-calendar.vdcc-pro-active .vdcc-door.vdcc-pro-opening-flip{animation:vdcc-pro-door-flip .95s cubic-bezier(.23,.8,.25,1) forwards!important}
@keyframes vdcc-pro-door-flip{
  0%{transform:translate(-50%,-50%) perspective(600px) rotateX(0) rotateZ(0) scale(1);opacity:1}
  35%{transform:translate(-50%,-50%) perspective(600px) rotateX(190deg) rotateZ(-18deg) scale(1.45);opacity:1}
  75%{transform:translate(-50%,-50%) perspective(600px) rotateX(520deg) rotateZ(20deg) scale(1.35);opacity:1}
  100%{transform:translate(-50%,-50%) perspective(600px) rotateX(720deg) rotateZ(0) scale(.24);opacity:0}
}
@media(prefers-reduced-motion:reduce){
 .vdcc-calendar.vdcc-pro-snow .vdcc-scene::after,.vdcc-calendar.vdcc-pro-active .vdcc-door[class*="vdcc-pro-opening-"]{animation:none!important;will-change:auto}
}
