/* =====================================================================
   🎃 ハロウィン季節テーマ（html.season-halloween のときだけ有効）
   ・halloween.js が期間中だけ html に season-halloween を付けます
   ・元のデザインに戻すには index.html の「季節テーマ」2行を消すだけ
   ===================================================================== */
html.season-halloween {
  --pink-100: #f4ecff;
  --pink-200: #e4d2ff;
  --pink-300: #cfaefc;
  --pink-400: #b179f2;
  --pink-500: #9346dd;
  --pink-600: #7a2fc9;
  --cream: #fbf7ff;
  --gold: #ffa94d;
}
html.season-halloween body { background: linear-gradient(180deg, #fbf7ff 0%, #fff6ee 100%); }
html.season-halloween .top-bar { background: linear-gradient(90deg, #6d28d9, #f97316, #a855f7, #6d28d9); background-size: 300% 100%; }
html.season-halloween header { border-bottom-color: #ffb36b; }
html.season-halloween .section-title .en { color: #f97316; }
html.season-halloween .floating-hearts span { opacity: .75; filter: drop-shadow(0 2px 3px rgba(80, 30, 120, .25)); }

/* ヒーロー：ハロウィンの夜空 */
html.season-halloween .hero {
  background:
    linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.55) 45%, rgba(251,247,255,.95) 100%),
    url(hero-bg.webp) center 30% / cover no-repeat;
}
html.season-halloween .hero::before { opacity: .35; }
html.season-halloween .hero { padding-top: 150px; }
html.season-halloween .hero-tagline span { text-shadow: 0 2px 0 #fff, 0 0 18px #fff; }
html.season-halloween .hero-sub { text-shadow: 0 0 10px #fff, 0 0 4px #fff; font-weight: 700; }
html.season-halloween .hero-deal { border-color: #f97316; color: #7a2fc9; }
.hw-garland { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: min(1000px, 110%); z-index: 3; pointer-events: none; animation: hwSwing 4s ease-in-out infinite; transform-origin: 50% 0; }
@keyframes hwSwing { 0%, 100% { transform: translateX(-50%) rotate(-.6deg); } 50% { transform: translateX(-50%) rotate(.6deg); } }
.hw-ribbon { display: inline-block; margin: 0 auto 10px; padding: 6px 18px; border-radius: 999px; font-family: 'Pacifico', cursive; font-size: 18px; color: #fff; background: linear-gradient(135deg, #f97316, #9346dd); box-shadow: 0 0 0 3px #fff, 0 8px 20px rgba(122, 47, 201, .3); letter-spacing: .02em; }
.hw-trio { display: block; width: min(560px, 92%); margin: 6px auto 18px; filter: drop-shadow(0 10px 18px rgba(90, 30, 140, .25)); animation: hwBob 3.6s ease-in-out infinite; }
@keyframes hwBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.hw-pumpkins { position: absolute; left: 2%; bottom: 10px; width: min(260px, 32vw); z-index: 2; pointer-events: none; filter: drop-shadow(0 6px 12px rgba(200, 90, 20, .3)); }
.hw-ghost { position: absolute; right: 4%; top: 22%; width: min(150px, 22vw); z-index: 2; pointer-events: none; animation: hwFloat 5s ease-in-out infinite; filter: drop-shadow(0 8px 14px rgba(90, 30, 140, .2)); }
@keyframes hwFloat { 0%, 100% { transform: translate(0, 0) rotate(-4deg); } 50% { transform: translate(-10px, -16px) rotate(4deg); } }
.hw-sec-garland { display: block; width: min(900px, 100%); margin: -40px auto 10px; pointer-events: none; opacity: .95; }
html.season-halloween .guide { background: linear-gradient(180deg, #fff 0%, #fff4ea 60%, #f8f0ff 100%); }
html.season-halloween .gs-num { background: linear-gradient(135deg, #f97316, #9346dd); }
html.season-halloween .deal-box { background: linear-gradient(135deg, #fff3e6, #f6eeff); border-color: #ffa94d; }
html.season-halloween footer { background: linear-gradient(135deg, #5b21b6, #9346dd 55%, #f97316); }
.hw-footer-pumpkins { display: block; width: 180px; margin: -110px auto 10px; position: relative; z-index: 2; pointer-events: none; }
@media (max-width: 768px) {
  html.season-halloween .hero { padding-top: 70px; }
  .hw-ghost { top: 14%; right: 2%; }
  .hw-pumpkins { bottom: 4px; }
  .hw-ribbon { font-size: 15px; }
  .hw-sec-garland { margin-top: -26px; }
  .hw-footer-pumpkins { width: 140px; margin-top: -90px; }
}
