/* The atmosphere follows the date; controls and content keep their own space. */
.seasonal-icon{width:100%;height:100%;display:block;overflow:visible}
.fest-line{stroke:var(--fest-ink);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fest-gold-line{stroke:var(--fest-gold);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.fest-gold{fill:var(--fest-gold);stroke:color-mix(in srgb,var(--fest-gold) 70%,var(--fest-ink));stroke-width:1.2}
.fest-red{fill:var(--fest-red);stroke:color-mix(in srgb,var(--fest-red) 70%,var(--fest-ink));stroke-width:1.2}
.fest-mint{fill:var(--fest-mint);stroke:var(--fest-green);stroke-width:1.2}
.fest-green{fill:var(--fest-green);stroke:color-mix(in srgb,var(--fest-green) 65%,#071d16);stroke-width:1.2}
html[data-season]:not([data-season=none]){--season-strength:1;--seasonal-wash:color-mix(in srgb,var(--fest-gold) 8%,var(--skin-paper))}
html[data-season][data-seasonal-level=quiet]{--season-strength:.58}
html[data-season][data-seasonal-level=immersive]{--season-strength:1.3}
.seasonal-invitation{position:relative;display:flex;align-items:center;gap:17px;min-height:83px;padding:15px 27px;margin:0 auto 16px;border:1px solid color-mix(in srgb,var(--fest-gold) 48%,var(--line));border-radius:16px;background:linear-gradient(105deg,var(--skin-card),var(--seasonal-wash));box-shadow:0 6px 25px color-mix(in srgb,var(--fest-ink) 4%,transparent);color:var(--ink)}
.seasonal-invitation-symbol{width:48px;height:48px;flex:none;filter:drop-shadow(0 3px 3px #2a182214)}
.seasonal-invitation-copy{display:grid;gap:6px;min-width:0;flex:1}
.seasonal-invitation-copy small{font-size:8px;font-weight:850;letter-spacing:1.7px;color:var(--teal);line-height:1.7}
.seasonal-invitation-copy strong{font-size:15px;line-height:1.55;font-weight:650;letter-spacing:-.2px;overflow-wrap:anywhere}
.seasonal-plan-button{display:flex;align-items:center;justify-content:space-between;gap:19px;flex:none;background:var(--skin-solid);color:var(--skin-on-solid);border:0;border-radius:9px;min-height:39px;padding:10px 16px;font:750 10px var(--skin-ui-font)}
.seasonal-plan-button>span{font-size:17px;line-height:1}
.seasonal-plan-button:hover{filter:brightness(1.15)}
.seasonal-hero-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3;border-radius:inherit}
.seasonal-hero-scene *{pointer-events:none}
.seasonal-light-string{position:absolute;left:0;top:-3px;width:100%;height:91px;overflow:visible;filter:drop-shadow(0 2px 3px #0e1a2550)}
.seasonal-bulb{filter:drop-shadow(0 0 4px var(--bulb-color));animation:seasonal-lamplight 5.8s ease-in-out infinite;animation-delay:var(--bulb-delay)}
.seasonal-hero-seal{position:absolute;right:5.2%;top:110px;width:114px;height:142px;display:grid;place-items:center;align-content:center;gap:3px;transform:rotate(8deg);filter:drop-shadow(0 6px 8px #08191e36)}
.seasonal-hero-seal>.seasonal-icon{width:103px;height:103px}
.seasonal-hero-seal>span{font-size:8px;letter-spacing:1.4px;text-transform:uppercase;color:#fff8dd;background:#142e31cf;border:1px solid #e8c4778c;border-radius:20px;padding:6px 10px;white-space:nowrap}
.seasonal-hanging{position:absolute;top:0;width:64px;height:90px;display:flex;align-items:end;transform-origin:50% 0;animation:seasonal-sway 9s ease-in-out infinite}
.seasonal-hanging:before{content:"";position:absolute;left:50%;top:0;height:40px;width:1px;background:var(--fest-gold)}
.seasonal-hanging-one{right:23%;height:139px;animation-delay:-3s}
.seasonal-hanging-two{right:3%;height:72px;width:43px;animation-delay:-7s}
.seasonal-hanging>.seasonal-icon{height:71px;position:relative;filter:drop-shadow(0 4px 4px #132b2920)}
.seasonal-hero-cluster{position:absolute;right:28%;bottom:100px;width:145px;height:106px;display:flex;align-items:end;gap:0;filter:drop-shadow(0 6px 5px #14322d35)}
.seasonal-hero-cluster>.seasonal-icon{width:42px;height:54px;flex:none;transform:rotate(-10deg)}
.seasonal-hero-cluster>.seasonal-icon:nth-child(2){width:77px;height:106px;margin:0 -7px;transform:rotate(3deg)}
.seasonal-hero-cluster>.seasonal-icon:last-child{width:47px;height:62px;transform:rotate(12deg)}
.seasonal-motion-control{position:absolute;right:18px;top:17px;z-index:5;display:flex;gap:6px;align-items:center;min-height:30px;padding:7px 10px;border:1px solid #fff4ca5c;border-radius:20px;background:#122e3bc9;backdrop-filter:blur(9px);color:#fff8e8;font:650 9px var(--skin-ui-font);cursor:pointer}
.seasonal-motion-control>span{font-size:11px;line-height:1}
.seasonal-motion-control:disabled{opacity:.8;cursor:default}
.seasonal-motion-control:hover{background:#122e3b}
html[data-season]:not([data-season=none]) .hero-side-note{display:none}
.seasonal-wallpaper-wrap{position:absolute;inset:0;overflow:hidden;opacity:calc(.25 * var(--season-strength,1))}
.seasonal-wallpaper{position:absolute;inset:0;overflow:hidden}
html[data-season]:not([data-season=none]) .drawing-season-pattern{display:none}
html[data-season]:not([data-season=none]) #cpa-theme-art{--drawing-opacity:.14;--drawing-color-opacity:.23}
html[data-seasonal-level=immersive] .seasonal-wallpaper-wrap{opacity:.42}
html[data-color-mode=dark] .seasonal-wallpaper-wrap{opacity:calc(.24 * var(--season-strength,1))}
.seasonal-section-symbol{display:inline-block;width:32px;height:32px;margin-right:11px;vertical-align:-5px;filter:drop-shadow(0 2px 2px #3227170c)}
.seasonal-section-symbol>.seasonal-icon{display:block}
html[data-season]:not([data-season=none]) .offer-card{border:1px solid color-mix(in srgb,var(--fest-gold) 30%,var(--line));box-shadow:0 8px 30px color-mix(in srgb,var(--fest-ink) 6%,transparent)}
html[data-season]:not([data-season=none]) .offer-card:hover{border-color:var(--fest-gold);box-shadow:0 14px 35px color-mix(in srgb,var(--fest-ink) 12%,transparent)}
html[data-season]:not([data-season=none]) .card-badge{border:1px solid color-mix(in srgb,var(--fest-gold) 52%,transparent);box-shadow:0 3px 12px #05192b0f}
html[data-season]:not([data-season=none]) .benefit-icon,html[data-season]:not([data-season=none]) .service-icon{border:1px solid color-mix(in srgb,var(--fest-gold) 40%,var(--line))}
html[data-season]:not([data-season=none]) .contact-section{border:1px solid color-mix(in srgb,var(--fest-gold) 65%,transparent);box-shadow:0 16px 50px color-mix(in srgb,var(--fest-ink) 10%,transparent)}
.footer-main{position:relative}
.seasonal-footer{display:flex;align-items:center;gap:5px;position:absolute;right:11px;top:-28px;width:120px;height:70px;pointer-events:none}
.seasonal-footer>.seasonal-icon{width:37px;height:52px;transform:rotate(-10deg)}
.seasonal-footer>.seasonal-icon:nth-child(2){width:48px;height:63px;transform:translateY(-7px) rotate(8deg)}
/* Traveling light runs along the same paths as the aircraft. */
.world-routes path.world-route-glow{stroke:var(--fest-glow);stroke-width:1.7;stroke-dasharray:3 14;stroke-linecap:round;opacity:calc(.62 * var(--season-strength));filter:drop-shadow(0 0 3px var(--fest-glow));animation:seasonal-route-light 28s linear infinite;animation-delay:var(--route-delay)}
html[data-season=natal] .world-flight,html[data-season=reveillon] .world-flight{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--fest-glow) 75%,transparent))}
html[data-seasonal-lights=false] .world-routes path.world-route-glow{display:none}
html[data-seasonal-lights=false] :is(.world-flight,.seasonal-bulb){filter:none}
html[data-seasonal-lights=false] .seasonal-bulb{animation:none}
html[data-seasonal-lights=false] .world-spark{display:none}
/* Christmas: evergreen, cherry red, warm lamps and gold ribbon. */
html[data-season=natal] .hero{outline:1px solid color-mix(in srgb,var(--fest-gold) 62%,transparent);outline-offset:4px;box-shadow:0 16px 50px #23443220}
html[data-season=natal] .hero-shade{background:linear-gradient(90deg,#103d30fa 0%,#173e31de 33%,#12352b36 73%)}
html[data-season=natal] .hero-content{padding-top:70px}
html[data-season=natal] .hero-title-highlight,html[data-season=natal] #hero-title-highlight{color:#f7d98f}
html[data-season=natal] .button-yellow{background:linear-gradient(120deg,#edcc85,#ffe5a7 48%,#e0b460);color:#33301e}
html[data-season=natal] .seasonal-invitation{border-left:4px solid #b73849}
html[data-season=natal] .seasonal-invitation-copy small{color:var(--teal)}
html[data-season=natal] .travel-navigation>button.active{box-shadow:inset 0 -3px 0 var(--fest-red)}
/* Easter: a more colorful garden, scalloped accents and painted eggs. */
html[data-season=pascoa] .seasonal-invitation{background:linear-gradient(105deg,var(--skin-card),color-mix(in srgb,var(--fest-red) 9%,var(--skin-paper)),color-mix(in srgb,var(--fest-mint) 11%,var(--skin-paper)));border-color:color-mix(in srgb,var(--fest-red) 35%,var(--line))}
html[data-season=pascoa] .hero-shade{background:linear-gradient(90deg,#432859f5 0%,#654273d1 35%,#6e487130 76%)}
html[data-season=pascoa] .hero{outline:2px solid color-mix(in srgb,var(--fest-red) 45%,transparent);outline-offset:4px}
html[data-season=pascoa] .seasonal-hero-seal{width:121px;height:153px;top:70px;right:5%;transform:rotate(-8deg)}
html[data-season=pascoa] .seasonal-hero-seal>.seasonal-icon{width:112px;height:112px}
.seasonal-swag{position:absolute;top:9px;left:43%;right:0;display:flex;justify-content:space-around;align-items:flex-start;gap:15px}
.seasonal-swag>span{width:28px;height:32px;transform:translateY(calc(17px + (var(--swag-i) * 9px)));filter:drop-shadow(0 3px 2px #172c3320)}
html[data-season=pascoa] .card-price button{border-radius:50%;background:var(--fest-red);color:#382c34}
html[data-season=pascoa] .seasonal-section-symbol{width:36px;height:36px;vertical-align:-8px}
/* New Year's Eve: a night-sky frame, champagne highlights and bursts of light. */
html[data-season=reveillon] .hero{outline:1px solid #cbaa63;outline-offset:4px}
html[data-season=reveillon] .hero-shade{background:linear-gradient(90deg,#10273efc 0%,#15344bdc 35%,#14314d30 76%)}
html[data-season=reveillon] .seasonal-hero-seal{right:6%;top:65px;width:144px;height:165px}
html[data-season=reveillon] .seasonal-hero-seal>.seasonal-icon{width:137px;height:137px;animation:seasonal-firework 9s ease-in-out infinite}
html[data-season=reveillon] .seasonal-hanging{animation:seasonal-firework 12s ease-in-out infinite;height:135px;width:100px;top:35px;right:25%;}
html[data-season=reveillon] .seasonal-hanging:before{display:none}
html[data-season=reveillon] .seasonal-hanging-one>.seasonal-icon{height:110px}
html[data-season=reveillon] .seasonal-hanging-two{right:1%;width:45px;top:22px;height:60px}
html[data-season=reveillon] .button-yellow{background:linear-gradient(115deg,#e0bb73,#fff0bd,#dbb36b);color:#233345}
/* Brazilian dates: saturated color, streamers and paper lanterns. */
html[data-season=carnaval] .hero-shade{background:linear-gradient(100deg,#51246bf7,#7a3576b5 43%,#573e790c 83%)}
html[data-season=carnaval] .seasonal-invitation{border-left:4px solid var(--fest-red)}
html[data-season=carnaval] .seasonal-hero-seal{width:145px;top:85px}
html[data-season=carnaval] .seasonal-hero-seal>.seasonal-icon{width:138px;height:125px}
html[data-season=carnaval] .seasonal-swag{left:20%;right:8%}
html[data-season=junina] .hero-shade{background:linear-gradient(90deg,#153c3df5,#28554cc9 43%,#234d2e10 82%)}
html[data-season=junina] .seasonal-invitation{border:1px dashed color-mix(in srgb,var(--fest-red) 65%,var(--line))}
html[data-season=junina] .seasonal-light-string{height:100px}
html[data-season=junina] .seasonal-hero-seal{top:89px}
/* Bounded particles animate only transform and opacity, never intercept clicks. */
#seasonal-particles{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.seasonal-hero-particles{position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent 28%,#000 66%)}
.seasonal-particle{position:absolute;display:block;left:var(--x);top:-18px;width:var(--size);height:var(--size);background:var(--particle-color);border-radius:50%;opacity:0;animation:seasonal-fall var(--duration) linear infinite;animation-delay:var(--delay);pointer-events:none}
.particle-snow{background:#fffcdf;box-shadow:0 0 3px #f3c66e80}
.particle-petal{width:calc(var(--size) * 1.7);height:calc(var(--size) * 2);border-radius:80% 0 80% 20%;background:var(--fest-red);opacity:.5}
.particle-confetti{border-radius:1px;width:calc(var(--size) * .65);height:calc(var(--size) * 1.9)}
.particle-spark{width:3px;height:3px;box-shadow:0 0 5px var(--fest-glow)}
@keyframes seasonal-fall{0%{transform:translate3d(0,-20px,0) rotate(var(--particle-turn));opacity:0}12%{opacity:.65}85%{opacity:.45}100%{transform:translate3d(calc(55px * var(--drift)),105vh,0) rotate(calc(var(--particle-turn) + 150deg));opacity:0}}
@keyframes seasonal-lamplight{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes seasonal-sway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes seasonal-route-light{to{stroke-dashoffset:-340}}
@keyframes seasonal-firework{0%,100%{opacity:.48;transform:scale(.88) rotate(-4deg)}45%,65%{opacity:1;transform:scale(1.06) rotate(4deg)}}
html[data-seasonal-level=quiet] :is(.seasonal-hero-cluster,.seasonal-hanging-two,.seasonal-swag>span:nth-child(even),.seasonal-particle:nth-child(even)){display:none}
html[data-seasonal-level=quiet] .seasonal-hero-seal{opacity:.8}
html[data-seasonal-level=immersive] .seasonal-hero-seal{filter:drop-shadow(0 0 10px color-mix(in srgb,var(--fest-glow) 55%,transparent))}
html[data-seasonal-ornaments=false] .seasonal-hero-scene{display:none}
html[data-seasonal-particles=false] .seasonal-particle{display:none}
html[data-seasonal-particles=false] .world-spark{display:none}
html[data-seasonal-ornaments=false] .world-sleigh{display:none}
/* Pausing is available on the hero even when the general appearance menu is hidden. */
html[data-motion=off] :is(.seasonal-bulb,.seasonal-hanging,.world-route-glow,.seasonal-hero-seal>.seasonal-icon),html[data-page-hidden=true] :is(.seasonal-bulb,.seasonal-hanging,.world-route-glow,.seasonal-hero-seal>.seasonal-icon,.seasonal-particle){animation-play-state:paused!important}
html[data-motion=off] .seasonal-particle{display:none}
@media(prefers-reduced-motion:reduce){.seasonal-bulb,.seasonal-hanging,.world-route-glow,.seasonal-hero-seal>.seasonal-icon{animation:none!important}.seasonal-particle{display:none!important}}
@media(max-width:960px){.seasonal-invitation-copy strong{font-size:13px}.seasonal-invitation{padding:13px 18px;gap:12px}.seasonal-invitation-symbol{width:41px;height:41px}.seasonal-plan-button{padding:9px 12px;font-size:9px}.seasonal-hanging-one{right:24%}.seasonal-hero-seal{right:4%;width:91px}.seasonal-hero-seal>.seasonal-icon{width:88px;height:88px}}
@media(max-width:680px){
  .seasonal-invitation{display:grid;grid-template-columns:33px minmax(0,1fr);gap:7px 11px;padding:12px 14px;margin-bottom:14px;border-radius:14px;min-height:0}
  .seasonal-invitation-symbol{width:33px;height:38px;grid-row:1/3;align-self:start;margin-top:5px}
  .seasonal-invitation-copy{gap:3px}.seasonal-invitation-copy small{font-size:6px;letter-spacing:1px}.seasonal-invitation-copy strong{font-size:12px;line-height:1.55;letter-spacing:0}
  .seasonal-plan-button{grid-column:2;justify-content:start;gap:9px;padding:2px 0;min-height:26px;background:none;color:var(--teal);font-size:9px;width:max-content;border-radius:4px}.seasonal-plan-button>span{font-size:13px}
  .seasonal-light-string{height:54px;width:160%;max-width:none;left:-30%}
  .seasonal-hero-cluster{display:none}
  .seasonal-motion-control{top:12px;right:11px;font-size:8px;min-height:28px;padding:6px 8px}
  .seasonal-hanging-one{right:17%;width:42px;height:106px}.seasonal-hanging-two{right:2%;height:59px;width:30px}.seasonal-hanging>.seasonal-icon{height:51px}
  .seasonal-hero-seal{right:14px;top:auto;bottom:115px;width:67px;height:89px;opacity:.95}.seasonal-hero-seal>.seasonal-icon{width:66px;height:66px}.seasonal-hero-seal>span{display:none}
  html[data-season=natal] .hero-content{padding-top:63px}
  html[data-season=pascoa] .seasonal-hero-seal,html[data-season=reveillon] .seasonal-hero-seal,html[data-season=carnaval] .seasonal-hero-seal,html[data-season=junina] .seasonal-hero-seal{width:67px;height:89px;right:12px;top:auto;bottom:118px}
  html[data-season=pascoa] .seasonal-hero-seal>.seasonal-icon,html[data-season=reveillon] .seasonal-hero-seal>.seasonal-icon,html[data-season=carnaval] .seasonal-hero-seal>.seasonal-icon{width:67px;height:67px}
  .seasonal-swag{left:30%;right:5%;top:5px;gap:7px}.seasonal-swag>span{width:17px;height:25px;transform:translateY(calc(4px + (var(--swag-i) * 7px)))}.seasonal-swag>span:nth-child(2n){display:none}
  html[data-season=reveillon] .seasonal-hanging-one{right:9%;top:70px;width:68px;height:70px}html[data-season=reveillon] .seasonal-hanging-one>.seasonal-icon{height:68px}html[data-season=reveillon] .seasonal-hanging-two{right:31%;width:27px;height:37px;top:45px}
  html[data-season=junina] .seasonal-light-string{height:65px}
  .seasonal-section-symbol,html[data-season=pascoa] .seasonal-section-symbol{width:26px;height:26px;vertical-align:-5px;margin-right:8px}
  .seasonal-wallpaper-wrap{width:165%;height:165%;transform:scale(.61);transform-origin:top left}
  .world-routes path.world-route-glow{stroke-width:1.3;opacity:.5}
  .seasonal-footer{right:6px;top:-24px;width:85px;height:48px}.seasonal-footer>.seasonal-icon{width:25px;height:36px}.seasonal-footer>.seasonal-icon:nth-child(2){width:34px;height:43px}
}
