/* Natural document scroll remains the source of all existing text timelines. */
body.prot-stacked-sections > section.prot-stack-card {
 position:sticky!important;
 top:var(--prot-stack-top,0px);
 z-index:var(--prot-stack-index,1);
 box-shadow:0 -18px 45px rgba(0,0,0,.28);
 background-color:var(--black,#100e0e);
 isolation:isolate;
}
body.prot-stacked-sections > section.prot-stack-card.contact {
 background-color:transparent;
}
body.prot-stacked-sections > section.prot-stack-card .prot-scene-fade {
 --prot-scene-blend:1!important;
}
body.prot-stacked-sections .prot-bottom-bar,
body.prot-stacked-sections > footer {
 position:relative;
 z-index:20;
}
body.prot-stacked-sections .prot-footer-surface{position:relative;z-index:20}
body.prot-stacked-sections.prot-common-active > section.prot-stack-card{background-color:transparent}
/* Fixed video/canvas descendants must be clipped to their own section.
   A stacking context alone does not stop an off-screen fixed video covering
   the viewport. clip-path clips descendants without changing fixed pin geometry. */
body.prot-stacked-sections > section.prot-stack-card{clip-path:inset(0)}

/* 0.53.45: Tona in och ut – texten styrs med filter: opacity() så att sektionernas egna
   textanimationer (som använder opacity) får vara kvar. */
body.prot-stacked-sections > section.prot-stack-card.prot-text-fading :is(.hero__content > :not(.hero__scroll-indicator),.hero__late > :not(.hero__scroll-indicator),.intro__content,.video-transition__text,.vt-more,.prot-portfolio-cta,.cinematic__content,.services__inner,.contact__content,.prot-sec-pin){filter:opacity(var(--prot-text-fade,1))}
body.prot-stacked-sections > section.prot-stack-card.prot-text-gone :is(.hero__content > :not(.hero__scroll-indicator),.hero__late > :not(.hero__scroll-indicator),.intro__content,.video-transition__text,.vt-more,.prot-portfolio-cta,.cinematic__content,.services__inner,.contact__content){pointer-events:none}

/* 0.53.45: Tona in och ut – sektionerna överlappar en skärmhöjd i stället för att glida in. */
body.prot-stack-fade > section.prot-stack-card + section.prot-stack-card{margin-top:-100vh;margin-top:-100svh}
body.prot-stack-fade > section.prot-stack-card{box-shadow:none}
body.prot-stack-fade > section.prot-stack-card + section.prot-stack-card{opacity:0}
body.prot-stack-fade .intro__video-wrap{-webkit-mask-image:none!important;mask-image:none!important}
body.prot-stack-fade .prot-soft-dim,body.prot-stack-fade .prot-soft-feather{display:none!important}

/* 0.53.45: Sektioner vars innehåll inte står still (Tjänster, Kontakt och en kort Presentation)
   får ett tomt utrymme överst som är lika långt som toningen. Innehållet glider då upp på sin
   plats medan sektionen tonar in, i stället för att hinna skrolla förbi osynligt. */
body.prot-stack-fade > section.services.prot-stack-card .services__inner{padding-top:calc(85vh + 2.5rem)}
body.prot-home.prot-stack-fade > section.contact.prot-stack-card{padding-top:calc(85vh + var(--prot-label-top) + 1.25rem)}
body.prot-home.prot-stack-fade > section.intro.prot-stack-card:not(.prot-len-long){padding-top:calc(85vh + var(--prot-label-top) + 2.75rem)}
body.prot-home.prot-stack-fade > section.contact.prot-stack-card{padding-bottom:calc(22vh + 3rem)}
body.prot-stack-fade > section.services.prot-stack-card .services__inner{padding-bottom:55vh}
