/* Navidad: estilos acotados; las tablas y los controles conservan su contraste. */
body.hupi-christmas{--christmas-red:#a91f32;--christmas-pine:#103f35;--christmas-gold:#f4ce78;--christmas-cream:#fff9ed}
.christmas-lights{position:fixed;top:0;left:0;width:100%;height:23px;z-index:1041;pointer-events:none;display:flex;justify-content:space-around;overflow:hidden;border-top:2px solid #214b38}
.christmas-lights i{width:8px;height:12px;flex:none;border-radius:3px 3px 7px 7px;position:relative;top:2px;background:var(--bulb);box-shadow:0 0 10px 2px var(--bulb);animation:christmas-glow 3.4s ease-in-out infinite alternate;animation-delay:var(--delay)}
.christmas-lights i:before{content:'';position:absolute;top:-4px;left:2px;width:4px;height:4px;background:#254b37}
.christmas-fireflies{position:fixed;inset:0;pointer-events:none;z-index:1038;width:100%;height:100%;opacity:.7}
.christmas-palm{position:absolute;right:85px;bottom:-24px;width:230px;height:155px;color:#acd38c;opacity:.2;z-index:-1;pointer-events:none;transform-origin:90% 100%;animation:christmas-palm-sway 9s ease-in-out infinite alternate}
.christmas-banner{position:relative;isolation:isolate;overflow:hidden;color:#fff9ed;background:radial-gradient(ellipse at 75% 25%,#407a57 0,transparent 50%),linear-gradient(115deg,#0a302b,#18533e 65%,#0a302b);border:1px solid #d6ad5770;border-radius:18px;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 12px 30px #07352918}
.christmas-banner:before,.christmas-banner:after{content:'✦';position:absolute;z-index:-1;font-size:170px;line-height:1;color:#f4ce7812;right:120px;top:-24px;animation:christmas-star 8s ease-in-out infinite alternate}
.christmas-banner:after{right:20px;top:30px;font-size:100px;animation-delay:-4s}
.christmas-banner .christmas-eyebrow{display:block;color:#f4ce78;letter-spacing:.18em;text-transform:uppercase;font:700 10px/1.5 Arial,sans-serif;margin-bottom:5px}
.christmas-banner h2{color:#fff9ed!important;font:500 clamp(23px,3vw,38px)/1.15 Georgia,serif!important;margin:0 0 6px!important;letter-spacing:-.025em!important}
.christmas-banner p{font:400 13px/1.6 Arial,sans-serif!important;color:#e2eee3!important;margin:0!important;max-width:620px}
.christmas-banner .christmas-seal{border:1px solid #e9c67588;border-radius:50%;width:82px;height:82px;flex:none;display:grid;place-content:center;text-align:center;color:#f4ce78;font:600 13px/1.4 Georgia,serif;transform:rotate(8deg);box-shadow:inset 0 0 0 5px #1b503a,inset 0 0 0 6px #e9c67544}
.christmas-banner .christmas-seal b{display:block;font-size:26px;line-height:1.2}
.christmas-banner{flex-wrap:wrap}
.christmas-banner>div:first-child{flex:1;min-width:0}
.christmas-village{flex:0 0 100%;display:grid;grid-template-columns:1fr 1.12fr 1fr;gap:20px;border-top:1px solid #f4ce7833;padding-top:6px;position:relative}
.christmas-scene{margin:0!important;min-width:0;position:relative;text-align:center}
.christmas-scene svg{display:block;width:100%;height:174px;overflow:visible}
.christmas-scene figcaption{font:600 10px/1.5 Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#f4ce78;margin-top:2px}
.christmas-scene-star{animation:christmas-scene-twinkle 3.8s ease-in-out infinite alternate}
.christmas-scene-star:nth-child(2n){animation-delay:-1.8s}
.christmas-baubles{animation:christmas-scene-twinkle 2.7s ease-in-out infinite alternate}
.christmas-santa-wave{transform-box:fill-box;transform-origin:75% 100%;animation:christmas-wave 3.6s ease-in-out infinite}
.christmas-kings{animation:christmas-procession 6s ease-in-out infinite alternate}
.hupi-christmas-admin .christmas-village{gap:12px;padding-top:2px}
.hupi-christmas-admin .christmas-scene svg{height:117px}
.hupi-christmas-admin .christmas-scene figcaption{font-size:9px}
.christmas-public-banner{max-width:1240px;margin:18px auto 0;width:calc(100% - 40px)}
body.hupi-christmas-public #nav{border-top:3px solid #d4af60;background:#123f35!important;box-shadow:0 5px 26px #123f3526}
body.hupi-christmas-public .hero{background:#103f35!important;position:relative;padding-top:clamp(2.5rem,5vw,4rem)}
body.hupi-christmas-public .hero .accent{background:none!important;-webkit-text-fill-color:#f4ce78!important;color:#f4ce78!important}
body.hupi-christmas-public .hero-bg{opacity:1;background:radial-gradient(ellipse at 0 20%,#33724e77,transparent 55%),radial-gradient(ellipse at 100% 80%,#8e344933,transparent 50%),linear-gradient(140deg,#103f35,#0b2829)!important}
body.hupi-christmas-public .hero-lede{color:#e2eee3!important}
body.hupi-christmas-public .boarding-tag{color:#f4ce78;border-color:#f4ce7877}
body.hupi-christmas-public .blip{background:#f4ce78}
body.hupi-christmas-public .hero:after{content:'✧';position:absolute;right:5%;top:28px;color:#c39a42;font-size:72px;line-height:1;pointer-events:none;animation:christmas-star 6s ease-in-out infinite alternate}
body.hupi-christmas-public .pill:not(.pill-ghost){background:#a91f32!important;border-color:#a91f32!important;color:white!important}
body.hupi-christmas-public .travel-search-band{background:#fff9ed!important}
body.hupi-christmas-public .pq-band{background:linear-gradient(180deg,#fff9ed,#fff)!important}
body.hupi-christmas-public .brand{position:relative}
body.hupi-christmas-public .brand:after{content:'✦';color:#a91f32;font-size:24px;position:absolute;right:-15px;top:0;transform:rotate(15deg)}
body.hupi-christmas-admin .main-header,body.hupi-christmas-admin .brand-link{background:linear-gradient(100deg,#123f35,#246149)!important;color:#fff8e8!important;border-color:#d5b16188!important}
body.hupi-christmas-admin .main-header .navbar-nav .nav-link,body.hupi-christmas-admin .main-header .nav-link,body.hupi-christmas-admin .brand-link .brand-text{color:#fff8e8!important}
body.hupi-christmas-admin .main-sidebar{background:linear-gradient(175deg,#102e28,#183a30 65%,#351f27)!important}
body.hupi-christmas-admin .nav-sidebar>.nav-item>.nav-link.active{background:#a91f32!important;color:#fff!important;box-shadow:0 3px 12px #6d0c2833}
body.hupi-christmas-admin .content-wrapper{background:radial-gradient(ellipse at 100% 0,#f5e5c2aa,transparent 45%),#f8f6f0!important}
body.hupi-christmas-admin .content-wrapper>.content:before,body.hupi-christmas-admin .content-wrapper>.content:after{display:none!important}
body.hupi-christmas-admin .christmas-banner{margin:0 16px 18px;padding:15px 22px;border-radius:14px}
body.hupi-christmas-admin .christmas-banner h2{font-size:25px!important}
body.hupi-christmas-admin .christmas-banner .christmas-seal{width:64px;height:64px;font-size:11px}
body.hupi-christmas-admin .christmas-banner .christmas-seal b{font-size:22px}
body.hupi-christmas-admin .card:not(.card-danger):not(.card-warning){border-top-color:#b99a55}
body.hupi-christmas-admin .card-header{border-bottom-color:#d7bf8260}
body.hupi-christmas-admin .brand-link:after{content:'✦';position:absolute;right:14px;top:17px;color:#f4ce78;font-size:22px}
.christmas-effects-toggle{position:fixed;left:16px;bottom:14px;z-index:1040;border:1px solid #d1b373;border-radius:24px;background:#143f34;color:#fff7df;padding:9px 14px;font:600 11px/1.2 Arial,sans-serif;box-shadow:0 4px 16px #122f3826;cursor:pointer;display:flex;align-items:center;gap:7px}
.christmas-effects-toggle:hover{background:#9e2334;color:white}
.christmas-effects-toggle:focus-visible{outline:3px solid #e8bc53;outline-offset:3px}
.hupi-christmas-admin .christmas-effects-toggle{left:auto;right:16px}
.christmas-effects-toggle span:first-child{color:#f4ce78;font-size:17px}
body.christmas-still .christmas-fireflies{display:none}
body.christmas-still .christmas-lights i,body.christmas-still .christmas-banner:before,body.christmas-still .christmas-banner:after,body.christmas-still .christmas-palm,body.christmas-still .hero:after{animation:none!important}
@keyframes christmas-glow{from{opacity:.55;filter:brightness(.85)}to{opacity:1;filter:brightness(1.25)}}
@keyframes christmas-star{from{opacity:.45;transform:rotate(-5deg) scale(.96)}to{opacity:1;transform:rotate(8deg) scale(1.04)}}
@keyframes christmas-palm-sway{from{transform:rotate(-3deg)}to{transform:rotate(4deg)}}
@keyframes christmas-scene-twinkle{from{opacity:.55;filter:drop-shadow(0 0 1px #ffcf7050)}to{opacity:1;filter:drop-shadow(0 0 5px #ffcf7090)}}
@keyframes christmas-wave{0%,50%,100%{transform:rotate(0)}15%,35%{transform:rotate(-10deg)}25%{transform:rotate(5deg)}}
@keyframes christmas-procession{from{transform:translateX(-3px)}to{transform:translateX(3px)}}
body.christmas-still .christmas-village *{animation:none!important}
@media(max-width:600px){.christmas-village{grid-template-columns:1fr 1fr;gap:12px 8px;padding-top:8px}.christmas-scene svg{height:120px}.christmas-scene figcaption{font-size:8px;letter-spacing:.03em}.christmas-scene-nativity{grid-column:1/-1;grid-row:2}.christmas-scene-nativity svg{height:134px}.hupi-christmas-admin .christmas-scene svg{height:94px}.hupi-christmas-admin .christmas-scene-nativity svg{height:110px}.hupi-christmas-admin .christmas-scene figcaption{font-size:8px}}
@media(max-width:600px){body.hupi-christmas-public .hero:after{font-size:30px;top:8px;right:18px}}
@media(max-width:600px){.christmas-public-banner{width:calc(100% - 24px);margin-top:12px}.christmas-banner{padding:17px;gap:12px;border-radius:13px}.christmas-banner p{font-size:11px!important}.christmas-banner .christmas-seal{width:58px;height:58px;font-size:10px}.christmas-banner .christmas-seal b{font-size:21px}body.hupi-christmas-admin .christmas-banner{margin:0 8px 12px;padding:13px}body.hupi-christmas-admin .christmas-banner h2{font-size:22px!important}body.hupi-christmas-admin .christmas-banner .christmas-seal{display:none}.christmas-effects-toggle{padding:7px 10px;bottom:10px;font-size:10px}.christmas-lights i:nth-child(2n){display:none}}
@media(prefers-reduced-motion:reduce){.christmas-lights i,.christmas-banner:before,.christmas-banner:after,.christmas-palm,.christmas-village *,body.hupi-christmas .hero:after{animation:none!important}.christmas-fireflies{display:none!important}}
@media print{.christmas-lights,.christmas-fireflies,.christmas-banner,.christmas-effects-toggle{display:none!important}body.hupi-christmas .content-wrapper{background:white!important}}
