/* Cloudswired Hero Framer: a tall section (the scroll run) whose stage stays pinned under the header. */
.cshf{--gx:clamp(24px,5vw,96px);position:relative;height:var(--cshf-run-d,400vh);background:var(--cshf-bg,#0b1028);color:var(--cshf-text,#fff)}
.cshf-stage{position:sticky;top:var(--cshf-top,0px);height:calc(100vh - var(--cshf-top,0px));height:calc(100svh - var(--cshf-top,0px));overflow:hidden}
.cshf-poster img,.cshf canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;margin:0;max-width:none;border:0;border-radius:0}
.cshf canvas{opacity:0;transition:opacity .3s}.cshf canvas.ready{opacity:1}

/* Shade behind the text, on the side of the text block on screen (data-side, set by the script); it cross-fades when
   a block on the other side comes in. s-port is the portrait-screen shade. */
.cshf-shade{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s}
.cshf-shade.s-left{background:linear-gradient(90deg,var(--cshf-shade-c) 0%,color-mix(in srgb,var(--cshf-shade-c) 66%,transparent) 30%,transparent 58%)}
.cshf-shade.s-right{background:linear-gradient(270deg,var(--cshf-shade-c) 0%,color-mix(in srgb,var(--cshf-shade-c) 66%,transparent) 30%,transparent 58%)}
.cshf-shade.s-center{background:radial-gradient(ellipse 60% 55% at 50% 50%,color-mix(in srgb,var(--cshf-shade-c) 80%,transparent) 0%,transparent 100%)}
.cshf[data-side=left] .s-left,.cshf[data-side=right] .s-right,.cshf[data-side=center] .s-center{opacity:var(--cshf-shade,.75)}

/* Captions: one at a time, shown between data-in and data-out (share of the scroll run). */
.cshf-cap{position:absolute;top:50%;width:min(var(--cshf-capw,44vw),600px);opacity:0;transform:translateY(calc(-50% + 14px));transition:opacity .45s,transform .45s;pointer-events:none;color:var(--cshf-text,#fff)}
.cshf-cap.on{opacity:1;transform:translateY(-50%);pointer-events:auto}
.cshf-cap.at-left{left:var(--gx)}
.cshf-cap.at-right{right:var(--gx);text-align:right}
.cshf-cap.at-right .cshf-act{justify-content:flex-end}
.cshf-cap.at-center{left:50%;width:min(80vw,820px);text-align:center;transform:translate(-50%,calc(-50% + 14px))}
.cshf-cap.at-center.on{transform:translate(-50%,-50%)}
.cshf-cap.at-center .cshf-act{justify-content:center}
.cshf .cshf-lb{margin:0 0 16px;font-size:14px;line-height:1.4;font-weight:600;color:var(--cshf-label,#7fc8f0)}
.cshf .cshf-lb:before{content:'';display:inline-block;width:6px;height:6px;background:var(--cshf-accent,#ed1c24);margin:0 10px 2px 0;vertical-align:middle}
.cshf .cshf-title{margin:0 0 18px;padding:0;font-family:inherit;font-weight:800;line-height:1.04;letter-spacing:-.03em;color:var(--cshf-text,#fff)}
.cshf .cshf-xl{font-size:clamp(38px,4.4vw,64px)}
.cshf .cshf-l{font-size:clamp(30px,3.2vw,48px);font-weight:700;line-height:1.08}
.cshf .cshf-tx{margin:0;max-width:520px;font-size:17px;line-height:1.7;color:color-mix(in srgb,var(--cshf-text,#fff) 85%,transparent)}
.cshf-cap.at-center .cshf-tx{margin-inline:auto}
.cshf-cap.at-right .cshf-tx{margin-left:auto}
.cshf .cshf-act{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 0}
.cshf .cshf-act a{display:inline-flex;align-items:center;gap:10px;padding:18px 26px;font-size:14px;line-height:1;font-weight:700;letter-spacing:.04em;text-decoration:none;transition:background .25s,color .25s,border-color .25s,filter .25s}
.cshf .cshf-b1{background:var(--cshf-accent,#ed1c24);color:var(--cshf-b1-text,#fff)}.cshf .cshf-b1:hover{filter:brightness(.92);color:var(--cshf-b1-text,#fff)}
.cshf-pill .cshf-act a{border-radius:999px}
.cshf .cshf-nt{margin:20px 0 0;max-width:520px;font-size:13px;line-height:1.6;color:color-mix(in srgb,var(--cshf-text,#fff) 58%,transparent)}
.cshf-cap.at-center .cshf-nt{margin-inline:auto}.cshf-cap.at-right .cshf-nt{margin-left:auto}
.cshf .cshf-b2{border:1px solid color-mix(in srgb,var(--cshf-text,#fff) 55%,transparent);color:var(--cshf-text,#fff)}.cshf .cshf-b2:hover{background:var(--cshf-text,#fff);color:var(--cshf-bg,#0b1028)}

.cshf-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:color-mix(in srgb,var(--cshf-text,#fff) 80%,transparent);transition:opacity .3s}
.cshf-hint span{width:1px;height:34px;background:linear-gradient(transparent,var(--cshf-text,#fff));animation:cshfHint 1.8s ease-in-out infinite}
.cshf.moved .cshf-hint{opacity:0}
@keyframes cshfHint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* Portrait screens: captions over the top of the frame (split = buttons pinned to the bottom). */
@media (orientation:portrait){
	.cshf{height:var(--cshf-run-m,360vh)}
	.cshf-hint{display:none}
	.cshf .cshf-cap{left:20px;right:20px;top:24px;width:auto;text-align:left;transform:translateY(14px)}
	.cshf .cshf-cap.on{transform:none}
	.cshf .cshf-cap .cshf-act{justify-content:flex-start}
	.cshf .cshf-cap .cshf-tx{margin-inline:0}
	.cshf[data-side] .cshf-shade{opacity:0}
	.cshf[data-side] .cshf-shade.s-port{opacity:var(--cshf-shade,.75);background:linear-gradient(180deg,var(--cshf-shade-c) 0%,color-mix(in srgb,var(--cshf-shade-c) 62%,transparent) 34%,transparent 52%,transparent 72%,color-mix(in srgb,var(--cshf-shade-c) 70%,transparent) 100%)}
	.cshf-m-split .cshf-cap.has-act{bottom:24px;display:flex;flex-direction:column}
	.cshf-m-split .cshf-cap .cshf-act{margin-top:auto;flex-direction:column}
	.cshf-m-bottom .cshf-cap{top:auto;bottom:24px}
	.cshf-m-bottom[data-side] .cshf-shade.s-port{background:linear-gradient(0deg,var(--cshf-shade-c) 0%,color-mix(in srgb,var(--cshf-shade-c) 62%,transparent) 36%,transparent 60%)}
	.cshf .cshf-lb{margin-bottom:10px;font-size:13px}
	.cshf .cshf-xl{font-size:clamp(32px,9vw,44px);margin-bottom:12px}
	.cshf .cshf-l{font-size:clamp(26px,7.4vw,36px);margin-bottom:10px}
	.cshf .cshf-tx{font-size:15px}
	.cshf .cshf-act a{justify-content:center;padding:17px 14px}
	.cshf-m-split .cshf-act a,.cshf-m-bottom .cshf-act a{width:100%;box-sizing:border-box}
}
@media (orientation:landscape) and (max-height:560px){.cshf .cshf-tx{display:none}.cshf .cshf-xl,.cshf .cshf-l{font-size:32px}}

/* Reduced motion, the Elementor editor and no JavaScript: a still screen with the last frame. */
.cshf.still{height:auto}.cshf.still .cshf-stage{position:relative;top:0}.cshf.still .cshf-hint{display:none}
