/* Halloween season skin — loaded only while PetyeuTheme::season() === 'halloween'. Pure CSS, no layout impact. */

.season-halloween { --hw-purple: #2b1055; --hw-purple-2: #7a2e8e; --hw-orange: #e8467c; }

/* Top ribbon */
.hw-ribbon { background: linear-gradient(90deg, #2b1055, #7a2e8e 50%, #e8467c); color: #fff; text-align: center; font-size: 13px; font-weight: 700; padding: 6px 12px; letter-spacing: .2px; position: relative; z-index: 60; }
.hw-ribbon span { display: inline-block; animation: hw-bob 2.4s ease-in-out infinite; }
.hw-ribbon span:nth-child(2) { animation-delay: .8s; }

/* Hanging bats + cobweb on the top corners of the page */
.hw-deco { position: absolute; top: 0; left: 0; right: 0; height: 0; z-index: 55; pointer-events: none; }
.hw-web { position: absolute; top: 0; width: 120px; height: 120px; opacity: .55; }
.hw-web.l { left: 0; } .hw-web.r { right: 0; transform: scaleX(-1); }
.hw-bat { position: absolute; top: 0; font-size: 26px; transform-origin: 50% 0; animation: hw-swing 3.2s ease-in-out infinite; }
.hw-bat::before { content: ''; position: absolute; left: 50%; top: -60px; width: 1px; height: 60px; background: rgba(43, 16, 85, .45); }

/* Falling emoji layer */
.hw-fall { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 40; }
.hw-fall i { position: absolute; top: -40px; font-style: normal; opacity: .85; animation: hw-drop linear infinite; will-change: transform; }

/* Themed sections */
.season-halloween .wrap-section.fssection { background: linear-gradient(135deg, #2b1055 0%, #7a2e8e 55%, #e8467c 130%); }
.season-halloween .wrap-section.fssection .fssection_box { background: transparent; }
.season-halloween .fssection_heading { color: #ffd56b; text-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.season-halloween .wrapdmcap_heading h2::before { content: '🎃'; margin-right: 6px; font-size: 22px; }
.season-halloween .wrapdmcap:nth-child(even) .wrapdmcap_heading h2::before { content: '🦇'; }
.season-halloween .homecats_item:hover .homecats_ico { animation: hw-wiggle .5s ease; }
.season-halloween .sp_tt:hover, .season-halloween .grid-product > div:hover { animation: hw-wiggle .5s ease; }
.season-halloween .wrapdmcap { box-shadow: 0 4px 18px rgba(122, 46, 142, .14); }

@keyframes hw-drop { 0% { transform: translate3d(0, -40px, 0) rotate(0); } 100% { transform: translate3d(var(--dx, 30px), 105vh, 0) rotate(360deg); } }
@keyframes hw-swing { 0%, 100% { transform: rotate(-9deg); } 50% { transform: rotate(9deg); } }
@keyframes hw-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes hw-wiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-2.5deg); } 75% { transform: rotate(2.5deg); } }

@media (max-width: 767px) {
  .hw-web { width: 70px; height: 70px; }
  .hw-bat { font-size: 20px; }
  .hw-fall i:nth-child(n+8) { display: none; }
  .hw-ribbon { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .hw-fall { display: none; }
  .hw-ribbon span, .hw-bat, .season-halloween * { animation: none !important; }
}
