/* Dysons v3 — motion layer: video heroes, entrances, marquee, ribbon, scroll reveals */
.dj-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.dj-photohero__bg,.dj-splithero__media{background:#1d1a16}

/* hero entrances + slow zoom on still heroes */
@keyframes djZoom{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes djUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.dj-photohero__bg img,.dj-splithero__media img{animation:djZoom 14s cubic-bezier(.2,.6,.2,1) both}
.dj-photohero__content>*,.dj-splithero__copy>*{animation:djUp 1s cubic-bezier(.2,.7,.2,1) both}
.dj-photohero__content>:nth-child(2),.dj-splithero__copy>:nth-child(2){animation-delay:.12s}
.dj-photohero__content>:nth-child(3),.dj-splithero__copy>:nth-child(3){animation-delay:.24s}
.dj-photohero__content>:nth-child(4),.dj-splithero__copy>:nth-child(4){animation-delay:.36s}
.dj-photohero__content>:nth-child(5),.dj-splithero__copy>:nth-child(5){animation-delay:.48s}
.dj-photohero--video{min-height:min(88vh,52rem)}
.dj-photohero--video .dj-photohero__bg::after{background:linear-gradient(90deg,rgb(15 13 11/.78) 0,rgb(15 13 11/.5) 42%,rgb(15 13 11/.12) 78%)}
@media (max-width:767px){.dj-photohero--video{min-height:82vh}.dj-photohero--video .dj-photohero__bg::after{background:linear-gradient(180deg,rgb(15 13 11/.25),rgb(15 13 11/.8))}}

/* scroll cue */
.dj-scrollcue{position:absolute;left:50%;bottom:1.6rem;z-index:2;width:1px;height:3.4rem;background:rgb(255 255 255/.22);overflow:hidden;transform:translateX(-50%)}
.dj-scrollcue span{position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--gold-light);animation:djCue 2.2s ease-in-out infinite}
@keyframes djCue{to{top:100%}}

/* marquee band */
.dj-marquee{background:var(--ink);overflow:hidden;white-space:nowrap;padding:1.05rem 0;border-top:1px solid rgb(212 187 135/.2)}
.dj-marquee__track{display:inline-flex;align-items:center;animation:djMarq 46s linear infinite}
.dj-marquee__track>*{margin-right:2.2rem}
.dj-marquee span{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,1rem + .5vw,1.45rem);color:#f1e7d4}
.dj-marquee i{font-style:normal;font-size:.55rem;color:var(--gold)}
@keyframes djMarq{to{transform:translateX(-50%)}}

/* lifestyle ribbon */
.dj-ribbon-sec .dj-title{margin-bottom:var(--pm-space-8)}
.dj-ribbon{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.dj-ribbon__track{display:flex;align-items:flex-start;width:max-content;animation:djMarq 70s linear infinite;padding-bottom:2.5rem}
.dj-ribbon:hover .dj-ribbon__track{animation-play-state:paused}
.dj-ribbon figure{margin:0 1.1rem 0 0;width:clamp(12rem,21vw,18.5rem);aspect-ratio:4/5;overflow:hidden;background:var(--cream-3)}
.dj-ribbon figure:nth-child(even){margin-top:2.5rem}
.dj-ribbon img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.dj-ribbon figure:hover img{transform:scale(1.06)}
.dj-ribbon-sec .dj-more{margin-top:1rem;padding:0 var(--pm-gutter)}

/* video band */
.dj-band--video{position:relative;overflow:hidden;isolation:isolate;padding-block:var(--pm-space-20)}
.dj-band--video>.dj-vid{z-index:-2}
.dj-band--video::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgb(18 16 14/.74),rgb(18 16 14/.84))}

/* header on scroll */
.dj-header{transition:box-shadow .35s,background-color .35s}
.dj-header__inner{transition:min-height .35s}
.dj-logo img{transition:height .35s}
.dj-header.is-scrolled{box-shadow:0 8px 30px rgb(23 22 20/.08)}
.dj-header.is-scrolled .dj-header__inner{min-height:4rem}
@media (min-width:1100px){.dj-header.is-scrolled .dj-logo img{height:2.9rem}}

/* cards + tiles */
.dj-card{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.dj-card:hover{transform:translateY(-5px)}
.dj-tile__label{transition:letter-spacing .4s,color .3s}
.dj-tile:hover .dj-tile__label{letter-spacing:.3em;color:var(--gold-text)}

/* scroll reveals (classes added by motion.js only to below-the-fold elements) */
.dj-rv{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rv-d,0s)}
.dj-rv.is-in{opacity:1;transform:none}
.dj-row__img{overflow:hidden}
.dj-row__img.dj-rv{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.3s cubic-bezier(.7,0,.2,1)}
.dj-row__img.dj-rv.is-in{clip-path:inset(0)}
.dj-row__img.dj-rv img{transform:scale(1.18);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.dj-row__img.dj-rv.is-in img{transform:none}
.dj-title.dj-rv::after{width:0;transition:width 1s .35s cubic-bezier(.2,.7,.2,1)}
.dj-title.dj-rv.is-in::after{width:3rem}

@media (prefers-reduced-motion:reduce){
  .dj-marquee__track,.dj-ribbon__track,.dj-scrollcue span,.dj-photohero__bg img,.dj-splithero__media img,.dj-photohero__content>*,.dj-splithero__copy>*{animation:none}
  .dj-ribbon{overflow-x:auto}
  .dj-rv,.dj-row__img.dj-rv,.dj-row__img.dj-rv img{opacity:1;transform:none;clip-path:none;transition:none}
}

/* carousel arrows: theme button padding was squashing the icon to zero width */
.pm-carousel__arrow{padding:0;width:3rem;height:3rem;min-width:3rem;display:inline-grid;place-items:center}
.pm-carousel__arrow svg{flex:none}
@media (max-width:767px){.dj-scrollcue{display:none}}

/* v4: high-res logo (cropped wordmark + ornament), sized up for presence */
.dj-logo img{height:3rem}
@media (min-width:1100px){.dj-logo img{height:3.9rem}.dj-header.is-scrolled .dj-logo img{height:3.1rem}}
.dj-footer__logo img{height:4.6rem}
