/* Jetstream layout helpers. Hooks are element IDs set in Elementor > Advanced > CSS ID. */

/* Full-bleed copy columns align to the 1340 content grid */
[id^="jsBleed"]{padding-left:max(40px,calc((100vw - 1340px)/2 + 20px))!important}
@media(max-width:1024px){[id^="jsBleed"]{padding-left:24px!important;padding-right:24px!important}}

/* Timeline centre spine */
#jsTimeline{position:relative}
#jsTimeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-1px);background:linear-gradient(180deg,rgba(212,175,55,0) 0%,rgba(212,175,55,.45) 10%,rgba(212,175,55,.45) 90%,rgba(212,175,55,0) 100%);pointer-events:none}
[id^="jsTlRow"]{position:relative}
[id^="jsTlRow"]::after{content:"";position:absolute;left:50%;top:48px;width:15px;height:15px;border-radius:50%;background:#D4AF37;border:4px solid #FBF9F3;transform:translateX(-50%);z-index:2}
@media(max-width:900px){#jsTimeline{padding-left:44px}#jsTimeline::before{left:15px}[id^="jsTlRow"]::after{left:15px;top:26px}}

/* Card hover lift */
[id^="jsLift"]{transition:transform .5s cubic-bezier(.22,.7,.3,1),box-shadow .5s cubic-bezier(.22,.7,.3,1);will-change:transform}
[id^="jsLift"]:hover{transform:translateY(-6px)}

/* Slow image zoom inside a rounded frame */
[id^="jsZoom"]{overflow:hidden}
[id^="jsZoom"] img{transition:transform 1.1s cubic-bezier(.22,.7,.3,1);display:block;width:100%}
[id^="jsZoom"]:hover img{transform:scale(1.045)}

@media(prefers-reduced-motion:reduce){[id^="jsLift"],[id^="jsZoom"] img{transition:none!important}[id^="jsLift"]:hover{transform:none}[id^="jsZoom"]:hover img{transform:none}}
