/* Christmas homepage campaign, independent of the base stylesheet. */
.festive-decoration{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:visible}
.festive-flight-stage{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.festive-ornaments{position:absolute;inset:0 0 auto;height:205px;--festive-tilt:0deg}
.festive-hanger{position:absolute;top:-2px;left:42%;width:64px;height:192px;transform:rotate(var(--festive-tilt));transform-origin:50% 0;transition:transform .4s ease-out}
.ornament-sway{position:relative;display:block;width:100%;height:100%;transform-origin:50% 0;animation:ornament-sway 10s ease-in-out infinite;animation-delay:-3s}
.festive-hanger svg{position:relative;z-index:1;display:block;width:100%;height:100%;overflow:visible}
.ornament-cord{display:none}
.ornament-cap{fill:#b79766}.ornament-ball{fill:#eee0c7;stroke:#b79766;stroke-width:.8}
.ornament-detail{fill:none;stroke:#b79766;stroke-width:.65;opacity:.75}
.ornament-glint{fill:none;stroke:#fff6e5;stroke-width:1.7;stroke-linecap:round;opacity:.8}
.ornament-burgundy{left:55%;width:54px;height:162px}.ornament-burgundy .ornament-ball{fill:#6f343a}.ornament-burgundy .ornament-sway{animation-duration:12s;animation-delay:-7s}
.ornament-brass{left:68%;width:60px;height:180px}.ornament-brass .ornament-ball{fill:#c6a36a}.ornament-brass .ornament-sway{animation-duration:11s;animation-delay:-1s}
@keyframes ornament-sway{0%,100%{transform:rotate(-2.4deg)}50%{transform:rotate(2.4deg)}}
.festive-sleigh{position:absolute;left:0;top:0;width:clamp(360px,42vw,620px);aspect-ratio:4/3;transform:translate3d(-110%,calc(69svh - 50%),0) rotate(-2deg);visibility:hidden}
.sleigh-player,.sleigh-player>svg{display:block;width:100%;height:100%}
.festive-sleigh.is-flying{visibility:visible;animation:sleigh-flight 10s cubic-bezier(.42,0,.75,1) both}
@keyframes sleigh-flight{from{transform:translate3d(-110%,calc(69svh - 50%),0) rotate(-2deg)}to{transform:translate3d(calc(100vw + 20px),calc(22svh - 50%),0) rotate(-8deg)}}
/* Varied lengths and finishes across the full top edge. */
.festive-hanger:nth-child(1){left:17%;width:50px;height:161px}
.festive-hanger:nth-child(2){left:29%;width:54px;height:192px}
.festive-hanger:nth-child(3){left:41%;width:60px;height:180px}
.festive-hanger:nth-child(4){left:53%;width:54px;height:162px}
.festive-hanger:nth-child(5){left:65%;width:64px;height:205px}
.festive-hanger:nth-child(6){left:77%;width:54px;height:173px}
.festive-hanger:nth-child(7){left:89%;width:46px;height:151px}
.festive-hanger:nth-child(5) .ornament-sway{animation-duration:13s;animation-delay:-6s}
.festive-hanger:nth-child(7) .ornament-sway{animation-duration:14s;animation-delay:-9s}
.festive-decoration.is-resting .ornament-sway{animation-play-state:paused}
body.menu-open .festive-decoration,body:has(#lightbox[open]) .festive-decoration{visibility:hidden}
@media(max-width:600px){
 .festive-ornaments{height:165px}.festive-hanger{left:42%;width:38px;height:140px}
 .ornament-burgundy{left:55%;width:32px;height:124px}.ornament-brass{left:68%;width:36px;height:162px}
 .festive-hanger svg{height:100%;width:100%}
 .festive-hanger:nth-child(1){left:6%;width:34px;height:140px}
 .festive-hanger:nth-child(2){left:24%;width:32px;height:124px}
 .festive-hanger:nth-child(3){left:42%;width:38px;height:162px}
 .festive-hanger:nth-child(4){left:60%;width:32px;height:126px}
 .festive-hanger:nth-child(5){left:78%;width:36px;height:150px}
 .festive-hanger:nth-child(n+6){display:none}
 .festive-sleigh{width:360px;top:0}
 .seasonal-hero .cannes-slide h2{font-size:41px;line-height:1.05}
}
@media(prefers-reduced-motion:reduce){
 .festive-hanger{transform:none;transition:none}.ornament-sway{animation:none}
 .festive-sleigh,.festive-sleigh.is-flying{display:none;animation:none}
}

/* Native CSS cords reach the screen edge without SVG viewport clipping on iOS. */
:root{--phone-safe-top:env(safe-area-inset-top,0px)}
html:has(body.home),body.home{background:#21170f}
body.home main{background:var(--cream)}
.festive-hanger{top:calc(var(--phone-safe-top) - 2px)}
.ornament-sway::before{content:"";position:absolute;left:50%;top:-100vh;bottom:28%;width:1px;transform:translateX(-50%);background:#b79766;pointer-events:none}
@media(max-width:600px){
 .site-header{height:calc(105px + var(--phone-safe-top));padding-top:calc(25px + var(--phone-safe-top))}
 #navigation{padding-top:calc(25px + var(--phone-safe-top));padding-bottom:calc(25px + env(safe-area-inset-bottom,0px))}
 #lightbox{padding-top:calc(55px + var(--phone-safe-top))}
 #lightbox .pill{top:calc(10px + var(--phone-safe-top))}
 .booking-help{bottom:calc(20px + env(safe-area-inset-bottom,0px))}
}
