/* FIXEN overrides */
.fixen-wordmark{display:block;width:72%;margin:0 auto 0 0}
.footer__logo-content{position:static!important;transform:none!important;margin-top:32px}
/* hide legacy favorites widget */
a[href="#favourites"],.header__nav-first[aria-label="Favorites"]{display:none!important}
/* hero subtitle: sits in the x-e gap of the spread letters */
@media (min-width: 568px){
  .l-intro__content-text{left:39%;width:calc(var(--grid-col) * 5 + var(--grid-gutter) * 4)}
}

/* ---- boot: amblem centered -> zoom into its white area -> white ---- */
.preloader--landing .preloader__content-logo{display:none!important}
.preloader--landing .preloader__content{background:#0d0d0c!important}
.preloader--landing .preloader__progress{background-color:#efece7!important}
.fx-boot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.fx-boot-logo{display:block;width:200px;height:200px;transform-origin:48.5% 15.9%;animation:fx-boot-zoom 2.6s cubic-bezier(.55,0,.2,1) .4s both}
@media (max-width:567px){.fx-boot-logo{width:140px;height:140px}}
@keyframes fx-boot-zoom{
  0%{transform:scale(1)}
  38%{transform:scale(1)}
  100%{transform:scale(170)}
}
.fx-boot::after{content:"";position:absolute;inset:0;background:#fff;opacity:0;animation:fx-boot-white 2.6s cubic-bezier(.55,0,.2,1) .4s both}
@keyframes fx-boot-white{0%,86%{opacity:0}100%{opacity:1}}

/* ---- persistent fixed logo: spread center -> docks to the corner, never disappears ---- */
.fx-logo{position:fixed;inset:0;pointer-events:none;z-index:10}
.fx-lg-d,.fx-lg-m{position:absolute;height:auto;overflow:visible}
.fx-lg-d{left:var(--spacing-layout);top:50svh;transform:translateY(-50%);width:calc((100% - var(--spacing-layout) * 2) * .41)}
.fx-lg-m{left:var(--spacing-layout);top:42.1212121212svh;transform:translateY(-50%);width:calc((100% - var(--spacing-layout) * 2) * .77)}
@keyframes fx-dock-d{to{left:calc(var(--spacing-layout) + var(--grid-col) * 2 + var(--grid-gutter) * 2);top:22px;transform:translateY(0);width:197px}}
@keyframes fx-dock-m{to{left:var(--spacing-layout);top:20px;transform:translateY(0);width:112px}}
body:has(.preloader--landing.is-hidden) .fx-lg-d{animation:fx-dock-d 2.4s cubic-bezier(.16,1,.3,1) .2s both}
body:has(.preloader--landing.is-hidden) .fx-lg-m{animation:fx-dock-m 2.4s cubic-bezier(.16,1,.3,1) .2s both}
.modal--menu .modal__logo{display:none!important}
@media print{.fx-logo{display:none}}

/* ---- letters: hold spread under the preloader, converge char-by-char once it lifts ---- */
body:has(.preloader--landing:not(.is-hidden)) .fx-i{transform:translateX(686.5px)}
body:has(.preloader--landing:not(.is-hidden)) .fx-x{transform:translateX(1401px)}
body:has(.preloader--landing:not(.is-hidden)) .fx-e{transform:translateX(2152.5px)}
body:has(.preloader--landing:not(.is-hidden)) .fx-n{transform:translateX(2858px)}
body:has(.preloader--landing:not(.is-hidden)) .fx-i-m{transform:translateX(120.25px)}
body:has(.preloader--landing:not(.is-hidden)) .fx-x-m{transform:translateX(268.5px)}
body:has(.preloader--landing:not(.is-hidden)) .fx-e-m{transform:translateX(453.75px)}
body:has(.preloader--landing:not(.is-hidden)) .fx-n-m{transform:translateX(593px)}
@keyframes fx-in-i{from{transform:translateX(686.5px)}to{transform:translateX(0)}}
@keyframes fx-in-x{from{transform:translateX(1401px)}to{transform:translateX(0)}}
@keyframes fx-in-e{from{transform:translateX(2152.5px)}to{transform:translateX(0)}}
@keyframes fx-in-n{from{transform:translateX(2858px)}to{transform:translateX(0)}}
@keyframes fx-in-i-m{from{transform:translateX(120.25px)}to{transform:translateX(0)}}
@keyframes fx-in-x-m{from{transform:translateX(268.5px)}to{transform:translateX(0)}}
@keyframes fx-in-e-m{from{transform:translateX(453.75px)}to{transform:translateX(0)}}
@keyframes fx-in-n-m{from{transform:translateX(593px)}to{transform:translateX(0)}}
body:has(.preloader--landing.is-hidden) .fx-i{animation:fx-in-i 1.8s cubic-bezier(.16,1,.3,1) .1s both}
body:has(.preloader--landing.is-hidden) .fx-x{animation:fx-in-x 2s cubic-bezier(.16,1,.3,1) .22s both}
body:has(.preloader--landing.is-hidden) .fx-e{animation:fx-in-e 2.2s cubic-bezier(.16,1,.3,1) .34s both}
body:has(.preloader--landing.is-hidden) .fx-n{animation:fx-in-n 2.4s cubic-bezier(.16,1,.3,1) .46s both}
body:has(.preloader--landing.is-hidden) .fx-i-m{animation:fx-in-i-m 1.8s cubic-bezier(.16,1,.3,1) .1s both}
body:has(.preloader--landing.is-hidden) .fx-x-m{animation:fx-in-x-m 2s cubic-bezier(.16,1,.3,1) .22s both}
body:has(.preloader--landing.is-hidden) .fx-e-m{animation:fx-in-e-m 2.2s cubic-bezier(.16,1,.3,1) .34s both}
body:has(.preloader--landing.is-hidden) .fx-n-m{animation:fx-in-n-m 2.4s cubic-bezier(.16,1,.3,1) .46s both}

body:has(#menu:not(.is-hidden)) .fx-logo{opacity:1!important;transform:none!important}
/* life intro paragraph: 3-line copy overflows the original 2.13em box onto the media below - lift it */
@media (min-width: 568px){
  .l-life-text{transform:translateY(-2.4em)}
}
/* local <video> parity with prior iframe styling */
.background video{pointer-events:none}
/* local video is instant - hide the (old-frame) placeholder wherever a local <video> exists */
.background:has(video) .background__placeholder,
.background:has(video) picture{opacity:0!important;visibility:hidden!important}
/* menu + callback drawer backgrounds: fill the whole panel (were top-anchored, half-height) */
.modal--menu .modal__background-image .background,
#callback .background{position:absolute!important;inset:0!important;height:100%!important;width:100%!important}
.modal--menu .modal__background-image .background img,
#callback .background img{height:100%!important;width:100%!important;object-fit:cover!important;object-position:center!important;aspect-ratio:unset!important}
/* rotate-gate: phones must be landscape. Portrait phone -> show rotate message; landscape phone -> show site */
@media (max-width:567px) and (max-aspect-ratio:13/9){
  .turn-message{display:flex!important}
}
@media (max-width:1024px) and (min-aspect-ratio:13/9){
  .turn-message{display:none!important}
}
/* short landscape phones: use PC-style full-bleed backgrounds (not the portrait mobile column) */
@media (max-width:979px) and (max-height:415px) and (min-aspect-ratio:13/9){
  .background--cover.is-hidden--sm-down{display:block!important}
  .l-intro-background-mobile,
  .background--cover.is-hidden--md-up{display:none!important}
}
/* people carousel deco: was a ~59vw floating half element -> full-cover background behind the photos */
.l-people-carousel-deco__deco{inset:0!important;top:0!important;width:100%!important;height:100%!important;transform:none!important}
.l-people-carousel-deco__deco img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;aspect-ratio:unset!important}
/* carousel section: clean wave as FULL-section bg (not just behind the carousel), hide weird floating deco */
.section:has(.l-people-carousel){position:relative;isolation:isolate}
.section:has(.l-people-carousel)::before{content:"";position:absolute;inset:0;z-index:-1;background:#fff url(/assets/images/media/landing/6.people/deco@xxxl.webp) center center / cover no-repeat}
.l-people-carousel-deco__deco{display:none!important}
