/* SOULU FLOW NKO | 0.4.1.275
   RESPONSIVE CONTRACT: 769px+ only. Hero (#top) and mobile <=768px untouched.
   Journey JS, stage assembly, scroll tracking and route SVG geometry untouched.
   No nested scrolling on journey cards or columns.
   Width ranges documented below. Height handled separately.
*/
@media (min-width:769px){
 :root{--sf275-rail-w:78px;--sf275-rail-scale:1;--sf275-rail-x:12px;--sf275-rail-y:50%;--sf275-rail-gap:20px;
 --sf275-route-pad:clamp(24px,3.3vw,56px);--sf275-route-col:clamp(235px,21vw,390px);--sf275-route-gap:clamp(16px,2vw,34px);
 --sf275-scene-gap:clamp(14px,1.7vw,32px);--sf275-scene-title:clamp(28px,2.55vw,45px);
 --sf275-card-text:clamp(10px,.82vw,13px);--sf275-card-pad:clamp(10px,1vw,17px);
 --sf275-content-max:1600px}
 /* Side rail - stable viewport anchor and never over content */
 body .sf-side-nav{
   position:fixed!important;left:var(--sf275-rail-x)!important;right:auto!important;
   top:var(--sf275-rail-y)!important;bottom:auto!important;
   width:var(--sf275-rail-w)!important;min-width:0!important;max-width:var(--sf275-rail-w)!important;
   transform:translateY(-50%) scale(var(--sf275-rail-scale))!important;
   transform-origin:left center!important;z-index:80!important;
   padding:7px 5px!important;border-radius:16px!important;
 }
 body .sf-side-nav a{min-height:32px!important;padding:5px 3px!important;font-size:9px!important;line-height:1.15!important;border-radius:10px!important}
 body .sf-side-nav a+a{margin-top:2px!important}
 body .sf-side-nav svg{width:16px!important;height:16px!important}
 /* All content sections must reserve the side rail's space. */
 #modules,#pricing,#configurator{scroll-margin-top:100px}
 #modules .sf-wrap,#pricing .sf-wrap,#configurator .sf-wrap{
   box-sizing:border-box;max-width:var(--sf275-content-max)!important;
   width:calc(100% - 2*var(--sf275-route-pad) - var(--sf275-rail-gap))!important;
   margin-left:max(calc(var(--sf275-route-pad) + var(--sf275-rail-gap)),calc((100% - var(--sf275-content-max))/2))!important;
   margin-right:auto!important;
 }
 #modules :is(.sf-modules,.sf-module,.sf-core-card),#pricing :is(.sf-sales-models,.sf-sales-card,.sf-bundle-grid,.sf-bundle),
 #configurator :is(.sf-config-layout,.sf-config-main,.sf-config-summary,.sf-config-option){min-width:0;max-width:100%}
 #modules .sf-modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:clamp(12px,1.3vw,20px)}
 #modules .sf-core-card{grid-column:1/-1}
 #modules .sf-module{height:auto;min-height:110px;overflow-wrap:break-word}
 #pricing .sf-sales-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.5vw,24px)}
 #pricing .sf-sales-card{height:auto;min-height:0}
 #pricing .sf-bundle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:clamp(12px,1.3vw,20px)}
 #configurator .sf-config-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.85fr);gap:clamp(16px,2vw,30px)}
 #configurator .sf-config-option{overflow-wrap:break-word}
 #configurator .sf-config-summary{max-height:none!important;overflow:visible!important}
 /* Route: original assembly / visibility transitions are left intact.
    Geometry only: no overflow:auto, no overflow-y:scroll, no forced heights of story parts. */
 #route.nj-root{max-width:1880px;box-sizing:border-box;padding-left:var(--sf275-route-pad);padding-right:var(--sf275-route-pad)}
 #route.nj-root .nj-sticky{grid-template-columns:var(--sf275-route-col) minmax(0,1fr);gap:var(--sf275-route-gap)}
 #route.nj-root .nj-scene{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:var(--sf275-scene-gap)}
 #route.nj-root .nj-main,#route.nj-root .nj-scenes,#route.nj-root .nj-scene,
 #route.nj-root .nj-copy,#route.nj-root .nj-visual{min-width:0}
 #route.nj-root .nj-copy,#route.nj-root .nj-visual,#route.nj-root .nr-screen{
   overflow-y:visible!important;overscroll-behavior:auto!important;
 }
 #route.nj-root .nj-copy h2{font-size:var(--sf275-scene-title);line-height:1.07}
 #route.nj-root .nj-description{font-size:var(--sf275-card-text);line-height:1.45}
 #route.nj-root .nj-actions{gap:clamp(5px,.65vh,10px);margin-bottom:clamp(7px,1vh,15px)}
 #route.nj-root .nj-actions p{font-size:clamp(9px,.75vw,12px);line-height:1.38}
 #route.nj-root .nj-actions b{font-size:clamp(10px,.78vw,12px)}
 #route.nj-root .nj-auto{padding:var(--sf275-card-pad)}
 #route.nj-root .nj-visual{gap:clamp(8px,1.2vh,18px)}
 #route.nj-root .nj-crop .nj-app-content{padding:var(--sf275-card-pad)}
 #route.nj-root .nj-crop .nj-app-content h3{font-size:clamp(12px,1.04vw,18px)}
 #route.nj-root .nj-crop .nj-ui-row{font-size:clamp(9px,.68vw,11px);padding:clamp(5px,.7vh,10px) 0}
 #route.nj-root .nj-crop .nj-ui-field{padding:clamp(6px,.6vw,12px)}
 #route.nj-root .nj-dialog{max-height:calc(100dvh - 50px);overflow:auto}
}
/* 2560x1440 and wider: generous spacing */
@media (min-width:2300px){:root{--sf275-rail-w:90px;--sf275-rail-x:20px;--sf275-route-pad:64px;--sf275-route-col:420px;--sf275-scene-gap:36px;--sf275-scene-title:46px;--sf275-content-max:1780px}}
/* 1920x1080 through 2299 */
@media (min-width:1850px) and (max-width:2299px){:root{--sf275-rail-w:82px;--sf275-rail-x:16px;--sf275-route-col:370px;--sf275-route-pad:46px;--sf275-scene-gap:26px}}
/* 1728x1117, 1600x900, 1536x864 */
@media (min-width:1500px) and (max-width:1849px){:root{--sf275-rail-w:74px;--sf275-rail-x:12px;--sf275-route-col:clamp(255px,19vw,330px);--sf275-route-pad:38px;--sf275-scene-gap:20px;--sf275-scene-title:clamp(28px,2.3vw,37px)}}
/* 1440x900, 1366x768 */
@media (min-width:1320px) and (max-width:1499px){:root{--sf275-rail-w:68px;--sf275-rail-x:9px;--sf275-route-col:clamp(220px,18vw,270px);--sf275-route-pad:28px;--sf275-route-gap:15px;--sf275-scene-gap:13px;--sf275-scene-title:clamp(26px,2.25vw,33px);--sf275-card-text:11px;--sf275-card-pad:9px}}
/* 1280x800, 1280x720, 1194x834 */
@media (min-width:1100px) and (max-width:1319px){:root{--sf275-rail-w:64px;--sf275-rail-x:6px;--sf275-route-col:clamp(175px,16vw,215px);--sf275-route-pad:18px;--sf275-route-gap:12px;--sf275-scene-gap:10px;--sf275-scene-title:clamp(23px,2.35vw,29px);--sf275-card-text:10px;--sf275-card-pad:8px}
 #route.nj-root .nj-crop .nj-app-top{padding:5px 9px}
 #route.nj-root .nj-crop .nj-app-content>p{margin-bottom:5px}
 #route.nj-root .nj-preview-open{padding:5px 9px}
 #route.nj-root .nr-scene-footer{margin-top:6px}
 #configurator .sf-config-layout{grid-template-columns:minmax(0,1.4fr) minmax(265px,.85fr)}
}
/* 1024x1366, 1024x768 - original static journey mode, no forced slide changes */
@media (min-width:900px) and (max-width:1099px){:root{--sf275-rail-w:60px;--sf275-rail-x:6px;--sf275-route-pad:20px;--sf275-route-col:180px;--sf275-scene-title:30px}
 #route.nj-root .nj-sticky{display:block}
 #route.nj-root .nj-scene{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 #route.nj-root .nj-visual{min-height:560px}
 #modules .sf-modules{grid-template-columns:repeat(2,minmax(0,1fr))}
 #pricing .sf-sales-models{grid-template-columns:repeat(2,minmax(0,1fr))}
 #configurator .sf-config-layout{grid-template-columns:minmax(0,1fr)}
}
/* Tablet portrait 834x1194, 820x1180, 768x1024: >768px keeps mobile untouched */
@media (min-width:769px) and (max-width:899px){:root{--sf275-rail-w:54px;--sf275-rail-x:4px;--sf275-route-pad:18px;--sf275-scene-title:28px}
 #route.nj-root .nj-sticky{display:block}
 #route.nj-root .nj-scene{grid-template-columns:minmax(0,1fr);gap:16px}
 #route.nj-root .nj-visual{min-height:680px}
 #modules .sf-modules{grid-template-columns:repeat(2,minmax(0,1fr))}
 #pricing .sf-sales-models{grid-template-columns:minmax(0,1fr)}
 #configurator .sf-config-layout{grid-template-columns:minmax(0,1fr)}
}
/* Height classes: short laptop windows. Never enable independent route scrolling. */
@media (min-width:1100px) and (max-height:900px){:root{--sf275-scene-title:clamp(24px,2.15vw,36px);--sf275-card-pad:9px}
 #route.nj-root .nj-copy .nr-subtitle{font-size:clamp(11px,.95vw,14px)}
 #route.nj-root .nj-crop .nj-app-content>p{margin-bottom:6px}
 #route.nj-root .nj-toolbar{margin-bottom:4px}
 #route.nj-root .nj-visual{gap:8px}
}
@media (min-width:1100px) and (max-height:800px){:root{--sf275-scene-title:clamp(23px,2vw,32px);--sf275-card-pad:7px}
 #route.nj-root .nj-copy .nr-subtitle{margin-bottom:5px}
 #route.nj-root .nj-description{margin-bottom:7px;line-height:1.35}
 #route.nj-root .nj-copy .nj-eyebrow{padding:4px 7px;margin-bottom:5px}
 #route.nj-root .nj-auto{padding:7px}
 #route.nj-root .nj-crop .nj-app-content h3{font-size:13px}
 #route.nj-root .nj-visual-head{margin-bottom:3px}
 #route.nj-root .nr-scene-footer{height:29px;margin-top:4px}
}
@media (min-width:1100px) and (max-height:700px){:root{--sf275-scene-title:24px;--sf275-card-text:10px}
 #route.nj-root .nj-visual{gap:6px}
 #route.nj-root .nj-crop .nj-ui-row{padding:4px 0}
}

/* Override the 1536-only legacy fixed-width composition that breaks interpolation.
   Do not override .nr-story-part animation variables or transform timing. */
@media (min-width:1500px) and (max-width:1570px) and (min-height:830px) and (max-height:900px){
 #route.nj-root{width:auto!important;max-width:1880px!important;padding-left:var(--sf275-route-pad)!important;padding-right:var(--sf275-route-pad)!important;--nj-h:calc(100dvh - var(--nj-top) - 20px)!important}
 #route.nj-root .nj-sticky{width:100%!important;height:var(--nj-h)!important;margin-left:0!important;grid-template-columns:var(--sf275-route-col) minmax(0,1fr)!important;gap:var(--sf275-route-gap)!important;transform:none!important}
 #route.nj-root .nj-main{width:auto!important;max-width:none!important;min-width:0!important}
 #route.nj-root .nj-sticky>.nr-route-column{transform:none!important;padding-right:0!important}
 #route.nj-root .nj-scene{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)!important;gap:var(--sf275-scene-gap)!important}
}
