/* Decoración de Halloween compartida por todas las páginas públicas. */
body { background: #fffcf7; }
.site-header { border-top: 3px solid #d96b23; }
.halloween-banner { position: relative; isolation: isolate; overflow: hidden; flex-shrink: 0; color: #fff4dc; background: #291c36; border-bottom: 3px solid #d96b23; }
.halloween-banner .halloween-inner { min-height: 94px; display: flex; align-items: center; justify-content: center; gap: 24px; padding-block: 14px; text-align: center; }
.halloween-copy { display: flex; flex-direction: column; gap: 3px; }
.halloween-copy strong { color: #ffd191; font-size: clamp(1.1rem, 2.4vw, 1.45rem); letter-spacing: .025em; line-height: 1.3; }
.halloween-copy span { font-size: .88rem; line-height: 1.5; }
.halloween-art { width: 90px; height: 66px; flex-shrink: 0; }
.halloween-art:last-child { transform: scaleX(-1); }
.halloween-banner::before, .halloween-banner::after { content: ''; position: absolute; z-index: -1; width: 125px; height: 125px; top: -65px; border: 1px solid #705672; border-radius: 50%; box-shadow: 0 0 0 18px #291c36, 0 0 0 19px #705672, 0 0 0 38px #291c36, 0 0 0 39px #705672; opacity: .45; }
.halloween-banner::before { left: -65px; }
.halloween-banner::after { right: -65px; }
#site-navigation a[aria-current="page"] { color: #874013; box-shadow: 0 2px #d96b23; }
#site-navigation a.nav-feature { background: #fff4e5; border-color: #edcba4; color: #733711; }
#site-navigation a.nav-feature:hover, #site-navigation a.nav-feature[aria-current="page"] { background: #ffe7c8; border-color: #b75717; color: #733711; }
.page-heading h1::after { content: ''; display: block; width: 64px; height: 4px; margin: 16px auto 0; border-radius: 4px; background: linear-gradient(90deg, #e78226 0 65%, #583466 65%); }
.need-card { border-top-color: #c76622; background: #fff8ee; }
.sector-card, .branch-card { border-color: #e9d5bd; }
.home-hero-image { border: 2px solid #e9c698; }
.site-footer { position: relative; background: #f6efE7; border-top: 3px solid #d96b23; }
.site-footer::before { content: ''; display: block; width: 76px; height: 56px; margin: -12px auto 22px; background: url('../Img/optimized/halloween-pumpkin.svg') center / contain no-repeat; }
@media (max-width: 640px) {
 .halloween-banner .halloween-inner { min-height: 84px; gap: 10px; padding-block: 12px; }
 .halloween-art { width: 49px; height: 48px; }
 .halloween-art:last-child { display: none; }
 .halloween-copy { text-align: left; }
 .halloween-copy span { font-size: .78rem; }
}
@media print { .halloween-banner, .site-footer::before { display: none; } body { background: #fff; } }

/* Una pequeña noche encantada: ilustraciones ligeras, sin interceptar clics. */
.halloween-banner { background: radial-gradient(ellipse at 15% 0%, #59406b, transparent 55%), #24172f; }
.halloween-banner .halloween-inner { min-height: 156px; padding-block: 42px 30px; position: relative; z-index: 1; pointer-events: none; }
.halloween-copy strong { text-shadow: 0 2px 14px #160e22; }
.halloween-copy span { text-shadow: 0 1px 5px #160e22; }
.halloween-scene { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.halloween-moon { position: absolute; width: 73px; height: 73px; left: 7%; top: 16px; border-radius: 50%; background: #ffe8b4; box-shadow: 0 0 28px #ffe8b455, inset -15px -5px #e9c995; }
.halloween-moon::after { content: ''; position: absolute; inset: 16px 22px 36px 16px; border-radius: 50%; background: #d9b77966; box-shadow: 16px 25px 0 -3px #d9b77966; }
.flying-bat { position: absolute; width: 60px; height: 34px; color: #100c1b; filter: drop-shadow(0 1px 1px #c2a2d188); animation: halloween-flight 15s linear infinite; left: -10%; top: 8px; }
.flying-bat svg { width: 100%; height: 100%; overflow: visible; }
.bat-wing { transform-box: fill-box; animation: halloween-flap .38s ease-in-out infinite alternate; }
.bat-wing-left { transform-origin: right center; }
.bat-wing-right { transform-origin: left center; }
.bat-two { width: 39px; animation-duration: 19s; animation-delay: -8s; top: 21px; }
.bat-three { width: 47px; animation-duration: 23s; animation-delay: -16s; top: 4px; }
.banner-ghost { position: absolute; right: 8%; bottom: 18px; width: 49px; animation: halloween-float 4s ease-in-out infinite; filter: drop-shadow(0 0 10px #d4c4ef66); }
.halloween-stars { position: absolute; right: 22%; top: 6px; color: #ffdaa1; letter-spacing: 8px; font-size: 17px; }
.halloween-spider { position: absolute; right: 3%; top: 0; width: 1px; height: 46px; background: #ddc8df88; transform-origin: top; animation: halloween-spider 6s ease-in-out infinite; }
.halloween-spider i { position: absolute; bottom: -9px; left: -7px; width: 15px; height: 19px; border-radius: 50%; background: #160f20; box-shadow: 0 0 0 1px #ae8fb1; }
.halloween-spider i::before, .halloween-spider i::after { content: ''; position: absolute; inset: 4px -7px; border-top: 2px solid #b999be; border-bottom: 2px solid #b999be; transform: rotate(25deg); }
.halloween-spider i::after { transform: rotate(-25deg); }
.halloween-motion { position: absolute; z-index: 2; right: 12px; bottom: 7px; padding: 3px 9px; min-height: 28px; border: 1px solid #b29cb9; border-radius: 20px; background: #302039; color: #fff0d5; font: 12px/1.5 system-ui, sans-serif; cursor: pointer; }
.halloween-motion:hover { background: #53365f; }
.halloween-visitor { position: fixed; z-index: 10; left: 12px; top: 62%; width: 58px; pointer-events: none; animation: halloween-float 5s ease-in-out infinite; filter: drop-shadow(0 3px 8px #513a6333); }
.halloween-visitor svg { display: block; width: 100%; }
.halloween-visitor span { display: block; color: #674079; font: 700 12px system-ui, sans-serif; text-align: center; }
@keyframes halloween-flight { 0% { left: -10%; transform: translateY(0) rotate(-8deg); } 25% { transform: translateY(10px) rotate(6deg); } 50% { transform: translateY(-3px) rotate(-5deg); } 75% { transform: translateY(12px) rotate(8deg); } 100% { left: 110%; transform: translateY(0) rotate(-8deg); } }
@keyframes halloween-flap { to { transform: scaleY(.3); } }
@keyframes halloween-float { 0%, 100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-15px) rotate(5deg); } }
@keyframes halloween-spider { 0%, 100% { transform: translateY(-12px) rotate(-5deg); } 50% { transform: translateY(9px) rotate(5deg); } }
.halloween-paused .halloween-scene *, .halloween-paused .halloween-visitor { animation-play-state: paused !important; }
@media (max-width: 1280px) { .halloween-visitor { display: none; } }
@media (max-width: 640px) {
 .halloween-banner .halloween-inner { min-height: 165px; padding: 49px 35px 36px 0; gap: 8px; }
 .halloween-copy strong { font-size: 1.03rem; }
 .halloween-copy span { font-size: .75rem; }
 .halloween-moon { width: 37px; height: 37px; left: 7%; top: 7px; }
 .banner-ghost { width: 29px; right: 3%; bottom: 50px; }
 .halloween-art { width: 43px; }
 .halloween-stars { right: 15%; font-size: 12px; }
 .halloween-motion { min-height: 32px; bottom: 2px; }
}
@media (prefers-reduced-motion: reduce) {
 html:not(.halloween-paused) .halloween-scene *, html:not(.halloween-paused) .halloween-visitor { animation-duration: 30s; }
}
@media print { .halloween-visitor { display: none; } }
