/* Seasonal colors and prepared logos follow the Colombian calendar. */
html[data-season="new-year"] { --green:#286b62; --dark:#194d4c; --yellow:#f5cf73; --soft:#eaf4ee; --white:#fffdf8; --line:rgba(25,77,76,.18); }
html[data-season="carnival"] { --green:#78468b; --dark:#50365d; --yellow:#f8d064; --soft:#f5eafa; --white:#fffaf5; --line:rgba(80,54,93,.18); }
html[data-season="women"] { --green:#784b75; --dark:#503953; --yellow:#f1d48b; --soft:#f8eef4; --white:#fffaf7; --line:rgba(80,57,83,.18); }
html[data-season="easter"] { --green:#627855; --dark:#405642; --yellow:#e5d78e; --soft:#eff3e9; --white:#fffdf8; --line:rgba(64,86,66,.18); }
html[data-season="children"] { --green:#286a78; --dark:#214a59; --yellow:#ffd66e; --soft:#e9f5f4; --white:#fffdf7; --line:rgba(33,74,89,.18); }
html[data-season="mothers"] { --green:#a23e5d; --dark:#63394b; --yellow:#f7ce83; --soft:#fbedf0; --white:#fffaf8; --line:rgba(99,57,75,.18); }
html[data-season="fathers"] { --green:#315e7d; --dark:#264660; --yellow:#f2cf78; --soft:#ecf2f7; --white:#fffdf8; --line:rgba(38,70,96,.18); }
html[data-season="love"] { --green:#943c5a; --dark:#58394c; --yellow:#f8d788; --soft:#fcecf0; --white:#fffaf8; --line:rgba(88,57,76,.18); }
html[data-season="halloween"] { --green:#98501f; --dark:#352b38; --yellow:#ffd071; --soft:#fff0df; --white:#fffaf4; --line:rgba(53,43,56,.18); }
html[data-season="christmas"] { --green:#236d56; --dark:#174b49; --yellow:#f8d479; --soft:#e9f4ee; --white:#fffdf7; --line:rgba(23,75,73,.18); }

.seasonal-ribbon { position:relative; z-index:2; background:var(--green); color:var(--white); }
.seasonal-ribbon-inner { width:min(100% - 48px,1180px); min-height:47px; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:6px 17px; margin:auto; padding:8px 0; }
.seasonal-ribbon-icon { color:var(--yellow); font-size:21px; line-height:1; }
.seasonal-ribbon-title { margin:0 auto 0 0; font-size:13px; font-weight:800; letter-spacing:.01em; }
.seasonal-ribbon a { color:var(--white); font-size:12px; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.seasonal-ribbon button { min-height:31px; padding:5px 9px; border:1px solid rgba(255,255,255,.55); border-radius:7px; background:transparent; color:var(--white); font:inherit; font-size:11px; font-weight:700; cursor:pointer; }
.seasonal-ribbon button:hover,.seasonal-ribbon button:focus-visible { background:var(--yellow); border-color:var(--yellow); color:var(--dark); }
.seasonal-particles { position:fixed; inset:0; width:100vw; height:100vh; height:100dvh; z-index:20; overflow:hidden; pointer-events:none; }
.seasonal-particles span { position:absolute; top:-8vh; left:var(--particle-x); color:var(--yellow); font-size:var(--particle-size); opacity:.82; -webkit-text-stroke:.7px #3b2540; text-shadow:0 1px 3px #3b2540; animation:seasonal-fall var(--particle-duration) linear var(--particle-delay) infinite; }
html[data-effect="snow"] .seasonal-particles span { color:#fff; opacity:.86; -webkit-text-stroke:1px #275563; text-shadow:0 1px 4px #275563; }
html[data-effect="heart"] .seasonal-particles span { color:#d9557b; -webkit-text-stroke:.8px #572538; text-shadow:0 1px 3px #572538; }
html[data-effect="bat"] .seasonal-particles span { display:block; width:var(--particle-size); height:var(--particle-size); background:url("assets/halloween-bat.svg") center / contain no-repeat; opacity:.93; -webkit-text-stroke:0; filter:drop-shadow(0 1px 2px rgba(0,0,0,.55)); }
.seasonal-burst { position:absolute; right:14%; top:0; z-index:3; color:var(--yellow); font-size:34px; pointer-events:none; animation:seasonal-pop .75s ease-out forwards; }
.seasonal-halloween-celebration { position:fixed; inset:0; z-index:30; display:grid; place-items:center; pointer-events:none; background:radial-gradient(circle at center,rgba(255,196,84,.28),transparent 55%); animation:seasonal-pumpkin-pop 3.2s ease-in-out forwards; }
.seasonal-halloween-celebration img { display:block; width:min(78vmin,600px); height:auto; filter:drop-shadow(0 0 24px rgba(255,155,43,.6)); }
@keyframes seasonal-fall { from { transform:translate3d(0,-8vh,0) rotate(-9deg); } to { transform:translate3d(var(--particle-drift),116vh,0) rotate(12deg); } }
@keyframes seasonal-pop { from { opacity:1; transform:scale(.3) rotate(-25deg); } to { opacity:0; transform:translateY(-48px) scale(2.6) rotate(25deg); } }
@keyframes seasonal-pumpkin-pop { 0% { opacity:0; transform:scale(.45) rotate(-8deg); } 12% { opacity:1; transform:scale(1.04) rotate(3deg); } 75% { opacity:1; transform:scale(1) rotate(0); } 100% { opacity:0; transform:scale(1.12) rotate(5deg); } }

/* The campaign viewer follows the same palette while keeping flyer artwork intact. */
.campaign-header { background:var(--white); border-color:var(--line); }
.campaign-header a:last-child { color:var(--green); }
.campaign-shell,body:has(.campaign-shell) { background:var(--white); }
.campaign-shell { color:var(--dark); }
.campaign-viewer { background:var(--white); border-color:var(--line); }
.campaign-controls button,.campaign-controls select { border-color:var(--line); background:var(--soft); color:var(--dark); }

@media (max-width:680px) {
  .seasonal-ribbon-inner { width:min(100% - 32px,1180px); justify-content:flex-start; gap:5px 10px; }
  .seasonal-ribbon-title { flex:1 1 calc(100% - 40px); font-size:12px; }
  .seasonal-particles span:nth-child(n+19) { display:none; }
  .seasonal-halloween-celebration img { width:min(85vw,420px); }
}
@media (prefers-reduced-motion:reduce) {
  .seasonal-celebrate { display:none!important; }
  .seasonal-particles,.seasonal-burst,.seasonal-halloween-celebration { display:none!important; }
}
