/* Desktop layout. The scene controller enables natural reading for a
   narrow or short window; the full-screen presentation is otherwise untouched. */
body.is-desktop-flow {
  --desktop-flow-header:72px;
  --desktop-flow-chapters:54px;
  overscroll-behavior-y:auto;
  overflow-x:clip;
}
body.is-desktop-flow .scene-deck { height:auto;min-height:0;overflow:visible;isolation:auto; }
body.is-desktop-flow .scene-deck > .scene-view {
  position:relative!important;inset:auto!important;
  width:100%!important;height:auto!important;min-height:0!important;
  margin:0!important;padding:0!important;overflow:visible;contain:none;
  transform:none!important;visibility:visible!important;
  pointer-events:auto!important;z-index:auto!important;
  scroll-margin-top:calc(var(--desktop-flow-header) + var(--desktop-flow-chapters) + 20px);
}
body.is-desktop-flow .scene-view > .scene-inner {
  position:relative;height:auto;min-height:100svh;overflow:visible;
  justify-content:center;padding:84px 0;transform:none!important;
}
body.is-desktop-flow :is(#services,#cases,#approach) > .scene-inner {
  height:auto;min-height:100svh;overflow:visible;padding:84px 0;
}
body.is-desktop-flow .scene-view .scene-inner > .shell,
body.is-desktop-flow :is(.faq-section,.contact-section,.service-footer) > .shell {
  width:min(1280px,calc(100% - 80px));height:auto;min-height:0;margin-inline:auto;
}
body.is-desktop-flow .scene-motion { transform:none!important; }
body.is-desktop-flow .preview-label { display:none; }

/* Keep all chapter controls, without a fixed left rail over the content. */
body.is-desktop-flow .service-header {
  position:fixed;inset:0 0 auto;transform:none;
  width:100%;height:var(--desktop-flow-header);padding:0 32px;
  gap:24px;background:#090e14f5;border-bottom:1px solid #ffffff0c;
  backdrop-filter:blur(18px);justify-content:space-between;
}
body.is-desktop-flow .service-header nav { display:none; }
body.is-desktop-flow .service-header .header-brand,
body.is-desktop-flow .service-header .header-contact { opacity:1;visibility:visible;pointer-events:auto; }
body.is-desktop-flow .service-header .header-brand img { width:126px;height:auto;filter:none; }
body.is-desktop-flow .service-header .header-actions { margin-left:auto;gap:14px; }
body.is-desktop-flow .header-contact { min-height:40px;font-size:12px; }
body.is-desktop-flow .language-button {
  min-height:38px;font-size:12px;color:#f3cdad;
  background:#e9b48418;border-color:#e6b38d80;
}
body.is-desktop-flow .scene-chrome {
  position:fixed;inset:var(--desktop-flow-header) 0 auto;
  height:var(--desktop-flow-chapters);padding:0 32px;
  display:flex;align-items:center;gap:0;background:#0b121af5;
  border-bottom:1px solid #ffffff12;opacity:1;visibility:visible;
  transform:none;pointer-events:auto;backdrop-filter:blur(18px);
}
body.is-desktop-flow .scene-chrome * { pointer-events:auto; }
body.is-desktop-flow .scene-index {
  display:flex;flex-direction:row;align-items:center;width:100%;gap:25px;
  overflow-x:auto;overflow-y:hidden;padding:8px 0;scrollbar-width:none;
}
body.is-desktop-flow .scene-index::-webkit-scrollbar { display:none; }
body.is-desktop-flow[data-scene-active] .scene-chrome .scene-index button {
  flex:none;gap:8px;min-height:34px;padding:5px 0;
  font-size:12px;line-height:1.5;color:#93a1b1;white-space:nowrap;
}
body.is-desktop-flow[data-scene-active] .scene-chrome .scene-index button[aria-current] {
  color:#f0c399;padding-left:0;
}
body.is-desktop-flow .scene-index button::before { display:none; }
body.is-desktop-flow .scene-index .chapter-number { font-size:10px; }
body.is-desktop-flow .scene-position,body.is-desktop-flow .scene-cue { display:none; }

/* A real canvas area and the original vector mark's aspect ratio. */
body.is-desktop-flow #intro > .scene-inner { display:block;padding:0;min-height:0; }
body.is-desktop-flow #intro .brand-intro-sticky {
  position:relative;top:auto;height:max(640px,100svh);min-height:640px;
}
body.is-desktop-flow #intro .brand-intro-lockup { width:min(78vw,880px);top:50%;max-width:none; }
body.is-desktop-flow #intro .brand-intro-lockup img { width:100%;height:auto; }
body.is-desktop-flow #intro .brand-intro-tagline {
  font-size:12px;line-height:1.7;max-width:calc(100vw - 48px);
  white-space:normal;text-align:center;
}
body.is-desktop-flow #top > .scene-inner {
  min-height:max(740px,100svh);padding-top:174px;padding-bottom:100px;
}
body.is-desktop-flow #top .hero-grid { height:auto;min-height:0;top:0; }
body.is-desktop-flow #top .hero-copy { width:55%;padding:0; }
body.is-desktop-flow #top .hero-copy h1 { font-size:clamp(64px,7.2vw,104px);line-height:1.12;margin:0 0 25px; }
html[lang=en] body.is-desktop-flow #top .hero-copy h1 { font-size:clamp(56px,6.2vw,88px); }
body.is-desktop-flow #top .hero-line { font-size:21px;line-height:1.55; }
body.is-desktop-flow #top .hero-description { max-width:520px;font-size:16px;line-height:1.8; }
body.is-desktop-flow #top .hero-actions { flex-wrap:wrap;gap:20px 26px; }
body.is-desktop-flow #top .hero-actions :is(.button,.text-button) { font-size:14px; }
body.is-desktop-flow #top .hero-visual {
  position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;opacity:1;
}

/* Panels grow with their text, rather than subtracting from viewport height. */
body.is-desktop-flow #services .heading-row,
body.is-desktop-flow #approach .heading-row,
body.is-desktop-flow #cases .cases-heading {
  display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-top:0;
}
body.is-desktop-flow :is(#services,#approach) .heading-row h2,
body.is-desktop-flow #cases .cases-heading h2 { font-size:clamp(36px,4.3vw,52px);line-height:1.22;margin:0; }
body.is-desktop-flow :is(#services,#approach) .heading-row > p,
body.is-desktop-flow #cases .cases-heading > p {
  display:block;flex:0 1 320px;max-width:360px;margin:0;font-size:15px;line-height:1.8;
}
body.is-desktop-flow #services .ref-services-layout {
  height:auto;min-height:0;max-height:none;
  grid-template-columns:30% minmax(0,1fr);grid-template-rows:auto;
  gap:30px;margin-top:32px;padding:24px;overflow:visible;
  background:var(--noe-surface);border-color:var(--noe-line);
}
body.is-desktop-flow #services .work-selectors { display:flex;gap:7px;justify-content:flex-start;min-height:0; }
body.is-desktop-flow #services .work-row,
body.is-desktop-flow #services .work-row:is(.is-active,:hover) {
  flex:0 0 auto;min-height:58px;flex-direction:row;align-items:center;
  justify-content:space-between;gap:12px;padding:12px 18px;
}
body.is-desktop-flow #services .work-row strong { font-size:22px;line-height:1.4;overflow-wrap:anywhere; }
html[lang=en] body.is-desktop-flow #services .work-row strong { font-size:20px; }
body.is-desktop-flow #services .ref-document-stage { height:auto;max-height:none;min-height:0;overflow:visible; }
body.is-desktop-flow #services .ref-document-stage::after { display:none; }
body.is-desktop-flow #services .ref-document {
  height:auto;min-height:100%;max-height:none;border-radius:8px;
  background:var(--noe-bg);border-color:var(--noe-line);
}
body.is-desktop-flow #services .ref-document-body {
  height:auto;min-height:400px;padding:34px;display:flex;
  flex-direction:column;justify-content:flex-start;
}
body.is-desktop-flow #services .ref-document-body > * { flex-shrink:0; }
body.is-desktop-flow #services .ref-document-body h3 { font-size:28px;line-height:1.35;margin-bottom:18px; }
body.is-desktop-flow #services .ref-document-paragraph { font-size:16px;line-height:1.8;min-height:0;max-width:62ch; }
body.is-desktop-flow #services .ref-document-tasks { margin-top:24px;gap:12px; }
body.is-desktop-flow #services .ref-document-tasks li { font-size:16px;line-height:1.65;white-space:normal; }
body.is-desktop-flow #services .ref-document-paragraph mark { white-space:normal; }

body.is-desktop-flow #cases .scene-inner > .shell { display:block;height:auto;min-height:0; }
body.is-desktop-flow #cases .industry-navigation-head {
  display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;margin:28px 0 14px;
}
body.is-desktop-flow #cases .industry-navigation-head > strong,
body.is-desktop-flow #cases .industry-enquiry { font-size:14px;line-height:1.6; }
body.is-desktop-flow #cases .industry-tabs {
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;
  grid-auto-columns:auto;gap:12px;overflow:visible;margin:0 0 36px;padding:0;
}
body.is-desktop-flow #cases .industry-tabs button {
  width:auto;min-width:0;min-height:146px;padding:16px;grid-template-rows:22px auto auto;gap:8px;
}
body.is-desktop-flow #cases .industry-tabs button > span { font-size:18px;line-height:1.4;white-space:normal;min-height:0; }
body.is-desktop-flow #cases .industry-tabs .industry-tag { font-size:13px;line-height:1.6; }
body.is-desktop-flow #cases .industry-panel {
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  grid-template-rows:auto;gap:36px;align-items:start;position:relative;
  flex:none;min-height:0;height:auto;
}
body.is-desktop-flow #cases .industry-copy { width:auto;max-width:none; }
body.is-desktop-flow #cases .industry-copy h3 { font-size:36px;line-height:1.3;margin:15px 0; }
html[lang=en] body.is-desktop-flow #cases .industry-copy h3 { font-size:34px; }
body.is-desktop-flow #cases #industry-panel p[data-industry-description] { max-width:62ch;font-size:16px;line-height:1.8; }
body.is-desktop-flow #cases #industry-panel .industry-copy > .industry-tasks { font-size:15px;line-height:1.8;margin:18px 0; }
body.is-desktop-flow #cases #industry-panel .industry-copy .button {
  position:relative;inset:auto;margin:20px 0 0;min-height:50px;
  min-width:0;max-width:100%;padding:12px 18px;font-size:15px;
}
body.is-desktop-flow #cases #industry-panel .industry-copy .industry-scope {
  position:static;max-width:60ch;font-size:13px;line-height:1.7;margin-top:14px;
}
body.is-desktop-flow #cases .industry-art {
  position:relative;inset:auto;width:100%;height:auto;min-height:480px;
  margin:0;opacity:1;pointer-events:auto;overflow:visible;
}
body.is-desktop-flow #cases .homepage-model {
  position:relative;inset:auto;width:100%;height:390px!important;min-height:390px!important;
}
body.is-desktop-flow #cases .industry-art > .industry-tasks {
  position:absolute;inset:390px 0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  font-size:13px;line-height:1.7;gap:16px;margin:0;padding-top:14px;
}
body.is-desktop-flow #cases .homepage-model .spatial-note { bottom:8px;font-size:11px; }
body.is-desktop-flow #cases .sector-showcase,
body.is-desktop-flow #cases .has-project-showcase .industry-art { height:auto;min-height:0;max-height:none; }
body.is-desktop-flow #cases .sector-showcase { grid-template-rows:auto;align-content:start; }
body.is-desktop-flow #cases .sector-result-card { height:auto;min-height:0;max-height:none; }
body.is-desktop-flow #cases .sector-result-image { flex:none;min-height:0;aspect-ratio:1.6; }
body.is-desktop-flow #cases .has-two-projects .sector-result-image { aspect-ratio:1.15; }
body.is-desktop-flow #cases .sector-result-copy h4 { font-size:23px;line-height:1.4; }
body.is-desktop-flow #cases .sector-result-copy p { font-size:14px;line-height:1.7; }

body.is-desktop-flow #approach .ref-automation { margin-top:32px;padding:20px; }
body.is-desktop-flow #approach .ref-automation-stage { width:100%;max-width:none; }
body.is-desktop-flow #approach .ref-automation-map { width:100%;height:auto; }
body.is-desktop-flow #approach .ref-approach-steps { grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin-top:32px; }
body.is-desktop-flow #approach .ref-approach-steps h3 { font-size:22px;line-height:1.4;min-height:0; }
body.is-desktop-flow #approach .ref-approach-steps p { font-size:15px;line-height:1.8; }
body.is-desktop-flow .faq-section { padding:84px 0;scroll-margin-top:146px; }
body.is-desktop-flow .faq-grid { gap:50px; }
body.is-desktop-flow .faq-grid h2 { font-size:44px;line-height:1.25; }
body.is-desktop-flow .faq-intro { font-size:16px;line-height:1.8; }
body.is-desktop-flow .faq-list summary { font-size:17px;line-height:1.65; }
body.is-desktop-flow .faq-list details p { font-size:16px;line-height:1.8; }
body.is-desktop-flow .contact-section { padding:84px 0;scroll-margin-top:146px; }
body.is-desktop-flow .contact-section h2 { font-size:60px;line-height:1.25; }
body.is-desktop-flow .contact-bottom { gap:32px; }
body.is-desktop-flow .contact-bottom p { font-size:17px;line-height:1.8; }

@media (max-width:1100px) {
  body.is-desktop-flow #approach .ref-approach-steps { grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 38px; }
}
@media (max-width:900px) {
  body.is-desktop-flow .service-header,body.is-desktop-flow .scene-chrome { padding-inline:24px; }
  body.is-desktop-flow .scene-view .scene-inner > .shell,
  body.is-desktop-flow :is(.faq-section,.contact-section,.service-footer) > .shell { width:calc(100% - 48px); }
  body.is-desktop-flow .scene-view > .scene-inner { padding:72px 0;min-height:0; }
  body.is-desktop-flow :is(#services,#cases,#approach) > .scene-inner { padding:72px 0;min-height:0; }
  body.is-desktop-flow #intro .brand-intro-sticky { height:max(640px,100svh); }
  body.is-desktop-flow #top > .scene-inner { min-height:0;padding:170px 0 56px;flex-direction:column; }
  body.is-desktop-flow #top .hero-copy { width:100%; }
  body.is-desktop-flow #top .hero-copy h1 { font-size:66px; }
  html[lang=en] body.is-desktop-flow #top .hero-copy h1 { font-size:58px; }
  body.is-desktop-flow #top .hero-grid { order:0;flex:none; }
  body.is-desktop-flow #top .hero-visual { position:relative;inset:auto;order:1;flex:none;height:420px;margin:24px 0 0;opacity:1; }
  body.is-desktop-flow #top .hero-visual canvas { transform:translateX(-19%); }
  body.is-desktop-flow #top .orb-capability-field { left:50%;top:43%;width:min(80vw,340px);height:min(80vw,340px); }
  body.is-desktop-flow #top .hero-visual::after { background:linear-gradient(#090e14 0%,transparent 18%,transparent 78%,#090e14 100%); }
  body.is-desktop-flow #top .hero-actions { position:relative;z-index:3; }
  body.is-desktop-flow :is(#services,#approach) .heading-row,
  body.is-desktop-flow #cases .cases-heading { display:block; }
  body.is-desktop-flow :is(#services,#approach) .heading-row > p,
  body.is-desktop-flow #cases .cases-heading > p { max-width:62ch;margin-top:20px;font-size:16px; }
  body.is-desktop-flow #services .ref-services-layout { grid-template-columns:minmax(0,1fr);gap:24px;padding:22px; }
  body.is-desktop-flow #services .work-selectors { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
  body.is-desktop-flow #services .work-row,
  body.is-desktop-flow #services .work-row:is(.is-active,:hover) { min-height:60px;flex:none;padding:12px;gap:8px; }
  body.is-desktop-flow #services .work-row strong { font-size:20px; }
  html[lang=en] body.is-desktop-flow #services .work-row strong { font-size:18px; }
  body.is-desktop-flow #services .work-row::after { display:none; }
  body.is-desktop-flow #services .ref-document-body { min-height:330px;padding:28px; }
  body.is-desktop-flow #cases .industry-panel { grid-template-columns:minmax(0,1fr);gap:32px; }
  body.is-desktop-flow #cases .industry-copy { max-width:680px; }
  body.is-desktop-flow #cases .industry-art { min-height:510px; }
  body.is-desktop-flow #cases .homepage-model { height:430px!important;min-height:430px!important; }
  body.is-desktop-flow #cases .industry-art > .industry-tasks { top:430px; }
  body.is-desktop-flow #cases .has-project-showcase .industry-art { min-height:0; }
  body.is-desktop-flow #cases .sector-result-image { aspect-ratio:1.85; }
  body.is-desktop-flow .faq-grid { grid-template-columns:minmax(0,1fr);gap:34px; }
  body.is-desktop-flow .contact-bottom { align-items:flex-start;flex-direction:column; }
}
@media (max-width:600px) {
  body.is-desktop-flow { --desktop-flow-header:68px; }
  body.is-desktop-flow .service-header { padding-inline:20px;gap:12px; }
  body.is-desktop-flow .header-brand img { width:106px; }
  body.is-desktop-flow .service-header .header-actions { gap:8px; }
  body.is-desktop-flow .header-contact { min-height:38px;font-size:11px;gap:8px;padding:8px 10px; }
  body.is-desktop-flow .language-button { font-size:11px;padding:7px 10px; }
  body.is-desktop-flow .scene-chrome { padding-inline:20px; }
  body.is-desktop-flow .scene-index { gap:21px; }
  body.is-desktop-flow .scene-view .scene-inner > .shell,
  body.is-desktop-flow :is(.faq-section,.contact-section,.service-footer) > .shell { width:calc(100% - 40px); }
  body.is-desktop-flow #intro .brand-intro-lockup { width:84vw; }
  body.is-desktop-flow #intro .brand-intro-tagline { font-size:11px;letter-spacing:.06em; }
  body.is-desktop-flow #top .hero-copy h1 { font-size:56px; }
  html[lang=en] body.is-desktop-flow #top .hero-copy h1 { font-size:47px; }
  body.is-desktop-flow #top .hero-line { font-size:19px; }
  body.is-desktop-flow #top .hero-actions { gap:18px; }
  body.is-desktop-flow :is(#services,#approach) .heading-row h2,
  body.is-desktop-flow #cases .cases-heading h2 { font-size:34px; }
  body.is-desktop-flow #services .ref-services-layout { padding:14px;gap:18px; }
  body.is-desktop-flow #services .work-selectors { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.is-desktop-flow #services .work-row strong { font-size:19px; }
  html[lang=en] body.is-desktop-flow #services .work-row strong { font-size:17px; }
  body.is-desktop-flow #services .ref-document-body { padding:22px;min-height:0; }
  body.is-desktop-flow #services .ref-document-body h3 { font-size:25px; }
  body.is-desktop-flow #services .ref-document-paragraph,
  body.is-desktop-flow #services .ref-document-tasks li { font-size:15px; }
  body.is-desktop-flow #cases .industry-tabs { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
  body.is-desktop-flow #cases .industry-tabs button { min-height:150px;padding:13px; }
  body.is-desktop-flow #cases .industry-tabs button > span { font-size:17px; }
  body.is-desktop-flow #cases .industry-tabs .industry-tag { font-size:12px; }
  body.is-desktop-flow #cases .industry-copy h3,
  html[lang=en] body.is-desktop-flow #cases .industry-copy h3 { font-size:31px; }
  body.is-desktop-flow #cases .industry-art { min-height:470px; }
  body.is-desktop-flow #cases .homepage-model { height:340px!important;min-height:340px!important; }
  body.is-desktop-flow #cases .industry-art > .industry-tasks { top:340px;grid-template-columns:minmax(0,1fr);gap:9px;font-size:13px; }
  body.is-desktop-flow #cases .sector-showcase.has-two-projects { grid-template-columns:minmax(0,1fr); }
  body.is-desktop-flow #cases .has-two-projects .sector-result-image { aspect-ratio:1.6; }
  body.is-desktop-flow #cases .industry-copy .ip-case-action { max-width:100%; }
  body.is-desktop-flow #cases .industry-copy .case-portal-button { width:100%;gap:16px; }
  body.is-desktop-flow #approach .ref-automation { padding:12px 0;overflow-x:auto; }
  body.is-desktop-flow #approach .ref-automation-stage { width:660px;max-width:none; }
  body.is-desktop-flow #approach .ref-approach-steps { gap:28px 20px; }
  body.is-desktop-flow #approach .ref-approach-steps article { grid-template-columns:20px minmax(0,1fr);gap:8px; }
  body.is-desktop-flow #approach .ref-approach-steps h3 { font-size:19px; }
  body.is-desktop-flow #approach .ref-approach-steps p { font-size:14px;line-height:1.75; }
  body.is-desktop-flow .faq-grid h2 { font-size:36px; }
  body.is-desktop-flow .contact-section h2 { font-size:44px; }
  body.is-desktop-flow .contact-bottom p { font-size:16px; }
}
/* Anchor the first readable line below the two fixed bars, without double padding. */
body.is-desktop-flow .scene-deck > .scene-view,
body.is-desktop-flow :is(#faq,#contact){scroll-margin-top:calc(var(--desktop-flow-header) + var(--desktop-flow-chapters) - 64px)}
body.is-desktop-flow[data-scene-active] .service-header .header-brand img{filter:none}
body.is-desktop-flow[data-scene-active] .service-header .language-button{color:#f3cdad;background:#e9b48418;border-color:#e6b38d80}
body.is-desktop-flow[data-scene-active] .service-header .header-contact{background:#e7b88f;color:#27231f}
body.is-desktop-flow .scene-deck{overflow-x:clip;overflow-y:visible}

/* Keep the short implementation descriptions free of single-character last lines. */
[data-desktop-ecosystem] #approach .ref-approach-steps p { text-wrap:balance; }

/* Keep two reading columns only while the words and the Life Core have room. */
@media (min-width:901px) and (max-width:1279px) {
  body.is-desktop-flow #top > .scene-inner { min-height:0;padding:170px 0 64px;flex-direction:column; }
  body.is-desktop-flow #top .hero-grid { order:0;flex:none; }
  body.is-desktop-flow #top .hero-copy { width:100%; }
  body.is-desktop-flow #top .hero-copy h1 { font-size:82px; }
  html[lang=en] body.is-desktop-flow #top .hero-copy h1 { font-size:72px; }
  body.is-desktop-flow #top .hero-visual { position:relative;inset:auto;order:1;flex:none;height:500px;margin:28px 0 0;opacity:1; }
  body.is-desktop-flow #top .hero-visual canvas { transform:translateX(-19%); }
  body.is-desktop-flow #top .orb-capability-field { left:50%;top:43%;width:400px;height:400px; }
  body.is-desktop-flow #top .hero-visual::after { background:linear-gradient(#090e14 0%,transparent 18%,transparent 78%,#090e14 100%); }
}
body:not(.is-desktop-flow) #top .hero-description { max-width:min(480px,33vw); }
html[lang=en] body:not(.is-desktop-flow) #top .hero-copy h1 { font-size:clamp(76px,6vw,94px); }
html[lang=en] body:not(.is-desktop-flow) #top .hero-line { font-size:clamp(18px,1.4vw,23px); }
@media (min-width:1280px) and (max-width:1399px) {
  body:not(.is-desktop-flow) #top .hero-copy h1 { font-size:94px; }
  html[lang=en] body:not(.is-desktop-flow) #top .hero-copy h1 { font-size:76px; }
}

@media (max-width:1279px) {
  body.is-desktop-flow #top .hero-orb { overflow:hidden; }
  body.is-desktop-flow #top .hero-visual canvas { position:absolute;left:-88%;top:-21.5%;width:200%;height:150%;transform:none; }
}
