/* Approved homepage backgrounds; foreground and motif geometry are independent. */
.hero-background,.background-join,.copy-contrast{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-background{z-index:-3;opacity:.78;mask-image:linear-gradient(to right,#000 0%,#000 57%,transparent 78%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 57%,transparent 78%)}
.hero-background picture,.hero-background img{display:block;width:100%;height:100%}
.hero-background img{object-fit:cover;object-position:50% 50%;max-width:none}
.background-join{z-index:-2;overflow:visible}
.join-route{fill:none;stroke:url(#join-tone);stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.join-context{display:none;fill:none;stroke:#CBD5E1;stroke-width:1.3;opacity:.8}
.copy-contrast{z-index:-1;overflow:visible}
.copy-contrast rect{fill:#F7F9FC}
.candidate-04 .hero-background{opacity:.66;mask-image:linear-gradient(to right,#000 0%,#000 51%,transparent 70%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 51%,transparent 70%)}
.candidate-06 .hero-background{opacity:.94}
@media(max-width:599px){
 .hero-background{height:calc(100% - 100px);opacity:.66;mask-image:linear-gradient(to bottom,#000 0%,#000 66%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 66%,transparent 100%)}
 .hero-background img{object-position:50% 50%}
 .candidate-04 .hero-background{opacity:.61;mask-image:linear-gradient(to bottom,#000 0%,#000 64%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 64%,transparent 100%)}
 .candidate-06 .hero-background{opacity:.9}
 .background-join{display:none}
}

/* No-image fallback keeps the live foreground on the approved hero surface. */
.background-join[hidden]{display:none}
.hero-background img[data-load-failed]{visibility:hidden}
