/* Homepage specific entry file */
@import url('./common.css');

/* Homepage layout restore / refinement */
.home-page .hero.hero-photo{
  min-height:100vh !important;
  height:100vh !important;
}
.home-page .hero-photo .hero-bg{
  background-image:url('../assets/hero-full-real-bg.png') !important;
  background-size:cover !important;
  background-position:center center !important;
}
.home-page .hero-photo .hero-overlay{
  background:linear-gradient(
    90deg,
    rgba(7,17,31,.66) 0%,
    rgba(7,17,31,.56) 30%,
    rgba(9,22,38,.40) 52%,
    rgba(10,24,42,.20) 78%,
    rgba(10,24,42,.10) 100%
  ) !important;
}
.home-page .hero-photo .hero-shell{
  width:min(1280px,calc(100% - 48px));
  padding-left:clamp(88px,9vw,148px) !important;
}
.home-page .hero-copy-wide h1{
  max-width:820px !important;
  font-size:clamp(42px,4.8vw,50px) !important;
  line-height:1.04 !important;
}
.home-page .hero-copy-wide .lead{
  max-width:720px !important;
  font-size:18px !important;
  line-height:1.72 !important;
}
.home-page .hero-eyebrow{
  background:rgba(255,255,255,.12) !important;
  border-color:rgba(255,255,255,.20) !important;
  color:#fff !important;
}

/* Fix homepage after CSS split: these homepage-only classes were not loaded */
.section-soft{
  background:#F8FBFF;
}
.home-intro-section{
  background:#fff;
}
.split-feature{
  display:grid;
  grid-template-columns:1fr .92fr;
  gap:64px;
  align-items:center;
}
.split-copy h2,
.industry-copy h2,
.exp-heading h2{
  margin-top:18px;
}
.split-copy p,
.industry-copy p,
.exp-heading p{
  color:#64748B;
  max-width:620px;
}
.line-points{
  margin-top:34px;
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}
.line-points div{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:28px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.line-points strong{
  color:var(--navy);
  font-size:19px;
}
.line-points span{
  color:#64748B;
}
.system-visual{
  border-radius:34px;
  background:linear-gradient(180deg,#fff,#F8FAFC);
  border:1px solid rgba(226,232,240,.9);
  box-shadow:0 28px 80px rgba(11,31,58,.12);
  padding:26px;
  overflow:hidden;
  position:relative;
}
.system-visual:before{
  content:"";
  position:absolute;
  inset:auto -80px -100px auto;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(37,99,235,.16),transparent 70%);
}
.system-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:22px;
  color:var(--navy);
  font-weight:900;
}
.system-top strong{
  font-size:44px;
  color:var(--blue);
  letter-spacing:-.06em;
}
.system-map{
  height:240px;
  border-radius:24px;
  background:
    linear-gradient(rgba(37,99,235,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(37,99,235,.06) 1px,transparent 1px),
    #F8FBFF;
  background-size:34px 34px;
  position:relative;
  display:grid;
  place-items:center;
}
.system-map svg{
  width:92%;
  height:auto;
}
.node{
  position:absolute;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 0 8px rgba(6,182,212,.12);
}
.node-a{left:13%;bottom:25%}
.node-b{left:43%;top:24%;background:var(--orange);box-shadow:0 0 0 8px rgba(245,158,11,.12)}
.node-c{right:26%;top:30%;background:var(--red);box-shadow:0 0 0 8px rgba(239,68,68,.10)}
.node-d{right:10%;bottom:34%;background:var(--green);box-shadow:0 0 0 8px rgba(16,185,129,.12)}
.system-legend{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}
.system-legend span{
  border-radius:999px;
  padding:8px 12px;
  background:#EFF6FF;
  color:#2563EB;
  font-weight:800;
  font-size:13px;
}

/* Why strip on homepage */
.why-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid rgba(11,31,58,.12);
  border-bottom:1px solid rgba(11,31,58,.12);
}
.why-strip article{
  padding:34px 34px 34px 0;
  border-right:1px solid rgba(11,31,58,.12);
}
.why-strip article + article{
  padding-left:34px;
}
.why-strip article:last-child{
  border-right:0;
}
.why-strip span,
.industry-list span,
.exp-columns span{
  color:var(--blue);
  font-weight:900;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.why-strip h3{
  margin:14px 0 12px;
}
.why-strip p{
  color:#64748B;
  margin:0;
}

/* Industry flow */
.industry-flow{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:64px;
  align-items:start;
}
.industry-copy{
  position:sticky;
  top:110px;
}
.industry-list{
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}
.industry-list div{
  display:grid;
  grid-template-columns:58px 190px 1fr;
  gap:24px;
  align-items:start;
  padding:24px 0;
  border-bottom:1px solid var(--line);
}
.industry-list strong{
  color:var(--navy);
  font-size:20px;
}
.industry-list em{
  font-style:normal;
  color:#64748B;
}

/* Experience split */
.exp-split{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:64px;
  align-items:start;
}
.exp-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.exp-columns div{
  min-height:340px;
  border-radius:32px;
  padding:34px;
  background:linear-gradient(180deg,#fff,#F8FAFC);
  border:1px solid var(--line);
  box-shadow:0 18px 50px rgba(11,31,58,.07);
}
.exp-columns h3{
  margin:18px 0 14px;
}
.exp-columns p{
  color:#64748B;
  margin:0;
}

/* Advantages rail */
.home-advantage-rail .container{
  overflow:hidden;
}
.adv-rail{
  display:flex;
  align-items:stretch;
  gap:18px;
  width:max-content;
  max-width:none;
  overflow:hidden;
  padding:6px 2px 22px;
  will-change:transform;
  animation:advRailMarquee var(--marquee-duration, 36s) linear infinite;
}
.adv-rail:hover{
  animation-play-state:paused;
}
.adv-rail div{
  flex:0 0 clamp(240px, 18vw, 320px);
  border-radius:26px;
  padding:26px;
  min-height:230px;
  background:var(--navy);
  color:white;
}
.adv-rail div:nth-child(even){
  background:#123966;
}
.adv-rail strong{
  display:block;
  font-size:20px;
  line-height:1.25;
  color:white;
  margin-bottom:14px;
}
.adv-rail span{
  display:block;
  color:#BFD1E5;
}
@keyframes advRailMarquee{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(calc(-1 * var(--marquee-distance, 0px)),0,0)}
}

@media(max-width:980px){
  .home-page .hero-photo .hero-shell{
    padding-left:40px !important;
  }
  .split-feature,
  .industry-flow,
  .exp-split{
    grid-template-columns:1fr;
    gap:36px;
  }
  .industry-copy{
    position:static;
  }
  .why-strip,
  .exp-columns{
    grid-template-columns:1fr;
  }
  .adv-rail{
    width:auto;
    max-width:100%;
    overflow-x:auto;
    animation:none;
    padding-bottom:18px;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .adv-rail::-webkit-scrollbar{display:none;}
  .why-strip article,
  .why-strip article + article{
    padding:26px 0;
    border-right:0;
    border-bottom:1px solid rgba(11,31,58,.12);
  }
  .why-strip article:last-child{
    border-bottom:0;
  }
}
@media(max-width:640px){
  .home-page .hero.hero-photo{
    height:auto !important;
    min-height:100svh !important;
  }
  .home-page .hero-photo .hero-shell{
    width:min(100% - 28px,1280px);
    padding-left:12px !important;
  }
  .home-page .hero-copy-wide h1{
    font-size:clamp(30px,8.2vw,38px) !important;
    line-height:1.08 !important;
  }
  .home-page .hero-copy-wide .lead{
    font-size:16px !important;
  }
  .line-points div,
  .industry-list div{
    grid-template-columns:1fr;
    gap:8px;
  }
  .system-map{
    height:190px;
  }
  .exp-columns div{
    min-height:auto;
    padding:26px;
  }
}


/* homepage industries mosaic redesign */
.home-industries-mosaic{
  background:#fff;
}
.industry-mosaic-layout{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:72px;
  align-items:center;
}
.home-industries-mosaic .industry-copy{
  position:static;
  max-width:520px;
}
.home-industries-mosaic .industry-copy h2{
  margin-top:18px;
}
.home-industries-mosaic .industry-copy p{
  color:#64748B;
  max-width:520px;
  margin-bottom:32px;
}
.industry-mosaic-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  align-items:center;
}
.industry-tile{
  margin:0;
  aspect-ratio:1 / 1;
  border-radius:20px;
  overflow:hidden;
  background:#F3F7FB;
  box-shadow:0 14px 36px rgba(11,31,58,.08);
  border:1px solid rgba(226,232,240,.9);
  transform:translateY(0);
  transition:transform .28s ease, box-shadow .28s ease;
}
.industry-tile:nth-child(4n+2),
.industry-tile:nth-child(4n+4){
  transform:translateY(14px);
}
.industry-tile:hover{
  transform:translateY(-4px) scale(1.01);
  box-shadow:0 20px 44px rgba(11,31,58,.12);
}
.industry-tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media(max-width:1100px){
  .industry-mosaic-layout{
    grid-template-columns:1fr;
    gap:38px;
  }
}
@media(max-width:760px){
  .industry-mosaic-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .industry-tile:nth-child(4n+2),
  .industry-tile:nth-child(4n+4){
    transform:none;
  }
}


/* ===== FINAL OVERRIDE: full-width compact CTA band across pages ===== */
.cta-full-section,
.services-cta-section,
.why-bottom-section{
  width:100vw !important;
  max-width:100vw !important;
  min-height:200px !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding:0 !important;
  background:#2563EB !important;
  overflow:hidden !important;
  position:relative !important;
  border-radius:0 !important;
}

.cta-full-section::before,
.services-cta-section::before,
.why-bottom-section::before{
  content:"" !important;
  position:absolute !important;
  width:260px !important;
  height:260px !important;
  right:7vw !important;
  top:-92px !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(255,255,255,.32), rgba(255,255,255,.10) 44%, rgba(255,255,255,0) 72%) !important;
  pointer-events:none !important;
  z-index:1 !important;
  animation:jlCtaFloatOne 7s ease-in-out infinite !important;
}

.cta-full-section::after,
.services-cta-section::after,
.why-bottom-section::after{
  content:"" !important;
  position:absolute !important;
  width:210px !important;
  height:82px !important;
  left:9vw !important;
  bottom:-24px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, rgba(255,255,255,.20), rgba(255,255,255,.05)) !important;
  pointer-events:none !important;
  z-index:1 !important;
  transform:rotate(-10deg) !important;
  animation:jlCtaFloatTwo 6.2s ease-in-out infinite !important;
}

.cta-full-section > .container,
.services-cta-section > .container,
.why-bottom-section > .container{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  position:relative !important;
  z-index:2 !important;
}

.cta-full-section .cta-band,
.services-cta-section .services-cta-band,
.why-bottom-section .why-bottom-band{
  width:100% !important;
  max-width:1180px !important;
  height:200px !important;
  min-height:200px !important;
  margin:0 auto !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:32px !important;
  overflow:hidden !important;
  color:#fff !important;
}

.cta-full-section .cta-band::before,
.cta-full-section .cta-band::after,
.services-cta-section .services-cta-band::before,
.services-cta-section .services-cta-band::after,
.why-bottom-section .why-bottom-band::before,
.why-bottom-section .why-bottom-band::after{
  display:none !important;
}

.cta-full-section .cta-band > div,
.services-cta-section .services-cta-band > div,
.why-bottom-section .why-bottom-band > div{
  position:relative !important;
  z-index:3 !important;
}

.cta-full-section .cta-band > div::after,
.services-cta-section .services-cta-band > div::after,
.why-bottom-section .why-bottom-band > div::after{
  content:"" !important;
  position:absolute !important;
  right:24px !important;
  top:18px !important;
  width:86px !important;
  height:86px !important;
  border-radius:24px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.03)) !important;
  transform:rotate(18deg) !important;
  pointer-events:none !important;
  animation:jlCtaFloatThree 8s ease-in-out infinite !important;
}

.cta-full-section .cta-band h2,
.services-cta-section .services-cta-band h2,
.why-bottom-section .why-bottom-band h2{
  margin:0 0 10px !important;
  
  color:#fff !important;
  font-size:clamp(30px, 3vw, 30px) !important;
  line-height:1.08 !important;
  letter-spacing:-.04em !important;
}

.cta-full-section .cta-band p,
.services-cta-section .services-cta-band p,
.why-bottom-section .why-bottom-band p{
  margin:0 !important;
  max-width:980px !important;
  color:rgba(255,255,255,.92) !important;
  font-size:16px !important;
  line-height:1.7 !important;
}

.cta-full-section .cta-band .btn,
.cta-full-section .cta-band .btn-light,
.services-cta-section .services-cta-band .btn,
.services-cta-section .services-cta-band .btn-light,
.why-bottom-section .why-bottom-band .btn,
.why-bottom-section .why-bottom-band .btn-light{
  position:relative !important;
  z-index:3 !important;
  background:#fff !important;
  color:#2563EB !important;
  border-color:#fff !important;
  white-space:nowrap !important;
  box-shadow:0 12px 24px rgba(15,23,42,.14) !important;
}

@keyframes jlCtaFloatOne{
  0%,100%{transform:translate3d(0,0,0) scale(1);}
  50%{transform:translate3d(-10px,12px,0) scale(1.05);}
}
@keyframes jlCtaFloatTwo{
  0%,100%{transform:rotate(-10deg) translate3d(0,0,0);}
  50%{transform:rotate(-6deg) translate3d(14px,-8px,0);}
}
@keyframes jlCtaFloatThree{
  0%,100%{transform:rotate(18deg) translate3d(0,0,0);}
  50%{transform:rotate(10deg) translate3d(6px,10px,0);}
}

@media(max-width:960px){
  .cta-full-section,
  .services-cta-section,
  .why-bottom-section,
  .cta-full-section .cta-band,
  .services-cta-section .services-cta-band,
  .why-bottom-section .why-bottom-band{
    height:auto !important;
    min-height:220px !important;
  }
  .cta-full-section .cta-band,
  .services-cta-section .services-cta-band,
  .why-bottom-section .why-bottom-band{
    grid-template-columns:1fr !important;
    padding:34px 24px !important;
  }
  .cta-full-section .cta-band > div::after,
  .services-cta-section .services-cta-band > div::after,
  .why-bottom-section .why-bottom-band > div::after{
    display:none !important;
  }
}

@media(max-width:640px){
  .cta-full-section,
  .services-cta-section,
  .why-bottom-section,
  .cta-full-section .cta-band,
  .services-cta-section .services-cta-band,
  .why-bottom-section .why-bottom-band{
    min-height:auto !important;
  }
  .cta-full-section .cta-band,
  .services-cta-section .services-cta-band,
  .why-bottom-section .why-bottom-band{
    padding:28px 18px !important;
  }
  .cta-full-section .cta-band h2,
  .services-cta-section .services-cta-band h2,
  .why-bottom-section .why-bottom-band h2{
    font-size:clamp(24px,8vw,34px) !important;
  }
}


/* ===== Advantage marquee cards with 70% photo backgrounds ===== */
.home-advantage-rail .adv-rail{
  overflow:visible;
}
.home-advantage-rail .adv-rail div{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.home-advantage-rail .adv-rail div::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:inherit;
  background-size:cover;
  background-position:center;
  opacity:.70;
}
.home-advantage-rail .adv-rail div::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg, rgba(7,20,38,.82) 0%, rgba(7,20,38,.62) 58%, rgba(7,20,38,.50) 100%),
    linear-gradient(180deg, rgba(37,99,235,.18), rgba(7,20,38,.44));
}
.home-advantage-rail .adv-rail div:nth-child(1),
.home-advantage-rail .adv-rail div:nth-child(7){
  background-image:url('../assets/adv-bg-01-ai-monitoring.png') !important;
}
.home-advantage-rail .adv-rail div:nth-child(2),
.home-advantage-rail .adv-rail div:nth-child(8){
  background-image:url('../assets/adv-bg-02-dual-scenario.png') !important;
}
.home-advantage-rail .adv-rail div:nth-child(3),
.home-advantage-rail .adv-rail div:nth-child(9){
  background-image:url('../assets/adv-bg-03-field-experience.png') !important;
}
.home-advantage-rail .adv-rail div:nth-child(4),
.home-advantage-rail .adv-rail div:nth-child(10){
  background-image:url('../assets/adv-bg-04-hardware.png') !important;
}
.home-advantage-rail .adv-rail div:nth-child(5),
.home-advantage-rail .adv-rail div:nth-child(11){
  background-image:url('../assets/adv-bg-05-cost-loss.png') !important;
}
.home-advantage-rail .adv-rail div:nth-child(6),
.home-advantage-rail .adv-rail div:nth-child(12){
  background-image:url('../assets/adv-bg-06-safety-level.png') !important;
}
.home-advantage-rail .adv-rail strong,
.home-advantage-rail .adv-rail span{
  position:relative;
  z-index:2;
  text-shadow:0 2px 12px rgba(0,0,0,.28);
}
.home-advantage-rail .adv-rail strong{
  color:#fff !important;
}
.home-advantage-rail .adv-rail span{
  color:rgba(255,255,255,.88) !important;
}


/* ===== Soft edge fade for advantage marquee ===== */
.home-advantage-rail .container{
  position:relative;
}
.home-advantage-rail .container::before,
.home-advantage-rail .container::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:72px;
  z-index:5;
  pointer-events:none;
}
.home-advantage-rail .container::before{
  left:0;
  background:linear-gradient(90deg, #F5F7FB 0%, rgba(245,247,251,0.96) 30%, rgba(245,247,251,0.72) 55%, rgba(245,247,251,0) 100%);
}
.home-advantage-rail .container::after{
  right:0;
  background:linear-gradient(270deg, #F5F7FB 0%, rgba(245,247,251,0.96) 30%, rgba(245,247,251,0.72) 55%, rgba(245,247,251,0) 100%);
}
@media (max-width:980px){
  .home-advantage-rail .container::before,
  .home-advantage-rail .container::after{
    width:40px;
  }
}


/* ===== Edge fade fixed: apply only on image card row, not on title area ===== */
.home-advantage-rail{
  background:#fff !important;
}
.home-advantage-rail .container::before,
.home-advantage-rail .container::after{
  display:none !important;
}
.adv-rail-window{
  position:relative;
  overflow:hidden;
  width:100%;
  padding:6px 0 22px;
}
.adv-rail-window::before,
.adv-rail-window::after{
  content:"";
  position:absolute;
  top:0;
  bottom:22px;
  width:86px;
  z-index:8;
  pointer-events:none;
}
.adv-rail-window::before{
  left:0;
  background:linear-gradient(90deg, #fff 0%, rgba(255,255,255,.88) 30%, rgba(255,255,255,.48) 62%, rgba(255,255,255,0) 100%);
}
.adv-rail-window::after{
  right:0;
  background:linear-gradient(270deg, #fff 0%, rgba(255,255,255,.88) 30%, rgba(255,255,255,.48) 62%, rgba(255,255,255,0) 100%);
}
.adv-rail-window .adv-rail{
  padding:0 !important;
}
@media(max-width:980px){
  .adv-rail-window::before,
  .adv-rail-window::after{
    width:42px;
  }
}


/* restored homepage-specific motion */
.system-map svg path:last-child{
  stroke-dasharray:620;
  stroke-dashoffset:620;
  animation:jlLineDraw 2.4s ease forwards, jlLineGlow 4s ease-in-out infinite 2.4s;
}
.node{
  animation:jlNodePulse 2.8s ease-in-out infinite;
}
.node-b{animation-delay:.25s}
.node-c{animation-delay:.5s}
.node-d{animation-delay:.75s}

@keyframes jlLineDraw{
  to{stroke-dashoffset:0;}
}
@keyframes jlLineGlow{
  50%{filter:drop-shadow(0 0 10px rgba(37,99,235,.45));}
}
@keyframes jlNodePulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.16);}
}


/* ===== Gapless marquee refinement ===== */
.adv-rail-window{
  overflow:hidden;
}
.adv-rail{
  display:flex;
  flex-wrap:nowrap;
  min-width:max-content;
  width:max-content;
}
.adv-rail > div{
  flex:0 0 clamp(240px, 18vw, 320px);
}


/* ===== TRUE seamless marquee: fixed duplicated track, no runtime gap ===== */
.home-advantage-rail .container{
  overflow:hidden !important;
}
.adv-rail-window{
  position:relative !important;
  overflow:hidden !important;
  width:100% !important;
  padding:6px 0 22px !important;
}
.adv-rail-track{
  --card-w: clamp(260px, 20vw, 340px);
  --gap: 18px;
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:var(--gap) !important;
  width:max-content !important;
  min-width:max-content !important;
  padding:0 !important;
  overflow:visible !important;
  animation:advTrueMarquee 42s linear infinite !important;
  will-change:transform !important;
  transform:translate3d(0,0,0);
}
.adv-rail-window:hover .adv-rail-track{
  animation-play-state:paused !important;
}
.adv-rail-track .adv-card{
  flex:0 0 var(--card-w) !important;
  width:var(--card-w) !important;
  min-width:var(--card-w) !important;
  height:230px !important;
  min-height:230px !important;
  border-radius:26px !important;
  padding:26px !important;
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.adv-rail-track .adv-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:inherit;
  background-size:cover;
  background-position:center;
  opacity:.70;
}
.adv-rail-track .adv-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg, rgba(7,20,38,.82) 0%, rgba(7,20,38,.62) 58%, rgba(7,20,38,.50) 100%),
    linear-gradient(180deg, rgba(37,99,235,.18), rgba(7,20,38,.44));
}
.adv-rail-track .adv-card-1{background-image:url('../assets/adv-bg-01-ai-monitoring.png') !important;}
.adv-rail-track .adv-card-2{background-image:url('../assets/adv-bg-02-dual-scenario.png') !important;}
.adv-rail-track .adv-card-3{background-image:url('../assets/adv-bg-03-field-experience.png') !important;}
.adv-rail-track .adv-card-4{background-image:url('../assets/adv-bg-04-hardware.png') !important;}
.adv-rail-track .adv-card-5{background-image:url('../assets/adv-bg-05-cost-loss.png') !important;}
.adv-rail-track .adv-card-6{background-image:url('../assets/adv-bg-06-safety-level.png') !important;}
.adv-rail-track .adv-card strong,
.adv-rail-track .adv-card span{
  position:relative !important;
  z-index:2 !important;
  text-shadow:0 2px 12px rgba(0,0,0,.28) !important;
}
.adv-rail-track .adv-card strong{
  display:block !important;
  color:#fff !important;
  font-size:20px !important;
  line-height:1.25 !important;
  margin-bottom:14px !important;
}
.adv-rail-track .adv-card span{
  display:block !important;
  color:rgba(255,255,255,.88) !important;
}
.adv-rail-window::before,
.adv-rail-window::after{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  bottom:22px !important;
  width:86px !important;
  z-index:8 !important;
  pointer-events:none !important;
}
.adv-rail-window::before{
  left:0 !important;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.88) 30%,rgba(255,255,255,.48) 62%,rgba(255,255,255,0) 100%) !important;
}
.adv-rail-window::after{
  right:0 !important;
  background:linear-gradient(270deg,#fff 0%,rgba(255,255,255,.88) 30%,rgba(255,255,255,.48) 62%,rgba(255,255,255,0) 100%) !important;
}

/* Move exactly the width of one 6-card group: 6 cards + 6 gaps.
   The duplicated track starts at the exact same visual point, so no blank gap appears. */
@keyframes advTrueMarquee{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(calc(-1 * (6 * var(--card-w) + 6 * var(--gap))),0,0);}
}
@media(max-width:980px){
  .adv-rail-track{
    animation:none !important;
    overflow-x:auto !important;
    width:auto !important;
    min-width:0 !important;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .adv-rail-track::-webkit-scrollbar{display:none;}
  .adv-rail-track .adv-card:nth-child(n+7){
    display:none !important;
  }
  .adv-rail-window::before,
  .adv-rail-window::after{
    width:42px !important;
  }
}

.cta-full-section .cta-band,
.services-cta-section .services-cta-band,
.why-bottom-section .why-bottom-band {
    width: 100% !important;
    max-width: 1180px !important;
    height: 200px !important;
    min-height: 200px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 32px !important;
    overflow: hidden !important;
    color: #fff !important;
}
/* final CTA band override */
.cta-full-section,
.services-cta-section,
.why-bottom-section{
    width:100% !important;
    min-height:200px !important;
    padding:0 !important;
    margin:0 !important;
    background:#2563eb !important;
    background-image:radial-gradient(circle at 86% 24%,rgba(255,255,255,.18) 0 58px,transparent 60px),linear-gradient(90deg,#2563eb 0%,#2563eb 100%) !important;
    position:relative !important;
    overflow:hidden !important;
}
.cta-full-section::before,
.services-cta-section::before,
.why-bottom-section::before{
    content:"" !important;
    position:absolute !important;
    left:8.5% !important;
    bottom:-48px !important;
    width:210px !important;
    height:86px !important;
    border-radius:26px !important;
    background:rgba(255,255,255,.14) !important;
    transform:rotate(-10deg) !important;
    pointer-events:none !important;
}
.cta-full-section::after,
.services-cta-section::after,
.why-bottom-section::after{
    content:"" !important;
    position:absolute !important;
    right:27.5% !important;
    top:70px !important;
    width:82px !important;
    height:82px !important;
    border-radius:18px !important;
    border:1px solid rgba(255,255,255,.28) !important;
    background:rgba(255,255,255,.08) !important;
    transform:rotate(18deg) !important;
    pointer-events:none !important;
}
.cta-full-section .container,
.services-cta-section .container,
.why-bottom-section .container{
    height:200px !important;
}
.cta-full-section .cta-band,
.services-cta-section .services-cta-band,
.why-bottom-section .why-bottom-band{
    width:100% !important;
    max-width:1180px !important;
    height:200px !important;
    min-height:200px !important;
    margin:0 auto !important;
    padding:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    background-image:none !important;
    box-shadow:none !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center !important;
    gap:32px !important;
    overflow:hidden !important;
    color:#fff !important;
    position:relative !important;
    z-index:1 !important;
}
.cta-full-section .cta-band h2,
.services-cta-section .services-cta-band h2,
.why-bottom-section .why-bottom-band h2{
    color:#fff !important;
    font-size:clamp(26px,2.2vw,36px) !important;
    line-height:1.18 !important;
    margin:0 0 12px !important;
    text-shadow:0 2px 12px rgba(0,0,0,.15) !important;
}
.cta-full-section .cta-band p,
.services-cta-section .services-cta-band p,
.why-bottom-section .why-bottom-band p{
    color:rgba(255,255,255,.92) !important;
    max-width:850px !important;
    margin:0 !important;
    line-height:1.8 !important;
}
.cta-full-section .cta-band .btn,
.cta-full-section .cta-band .btn-light,
.services-cta-section .services-cta-band .btn,
.services-cta-section .services-cta-band .btn-light,
.why-bottom-section .why-bottom-band .btn,
.why-bottom-section .why-bottom-band .btn-light{
    background:#fff !important;
    color:#0755ff !important;
    border-color:#fff !important;
    box-shadow:0 12px 24px rgba(15,23,42,.14) !important;
    white-space:nowrap !important;
}
@media(max-width:960px){
  .cta-full-section,.services-cta-section,.why-bottom-section{min-height:220px !important;}
  .cta-full-section .container,.services-cta-section .container,.why-bottom-section .container{height:auto !important;}
  .cta-full-section .cta-band,.services-cta-section .services-cta-band,.why-bottom-section .why-bottom-band{height:auto !important;min-height:220px !important;grid-template-columns:1fr !important;padding:34px 24px !important;}
}
@media(max-width:640px){
  .cta-full-section .cta-band,.services-cta-section .services-cta-band,.why-bottom-section .why-bottom-band{min-height:220px !important;padding:28px 18px !important;}
}

.logo-mark{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
}
.logo-mark:after{display:none !important;}
.logo-mark img{
  width:44px !important;
  height:44px !important;
  display:block !important;
  object-fit:contain !important;
}
.logo-mark svg{display:none !important;}
@media(max-width:640px){.logo-mark img{width:38px !important;height:38px !important;}}

.logo-mark img{
  width:70% !important;
  height:70% !important;
  object-fit:contain !important;
  margin:auto !important;
}

/* logo frame restore, image 70% */
.brand .logo-mark{
  width:44px !important;
  height:44px !important;
  border-radius:15px !important;
  background:linear-gradient(135deg,var(--navy),var(--blue)) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:white !important;
  box-shadow:0 16px 36px rgba(11,31,58,.22) !important;
  overflow:hidden !important;
  position:relative !important;
}
.home-page .header.header-overlay .logo-mark{
  background:rgba(255,255,255,.12) !important;
  box-shadow:0 18px 36px rgba(0,0,0,.18) !important;
  border:1px solid rgba(255,255,255,.18) !important;
}
.sub-page .header.header-overlay .logo-mark{
  background:linear-gradient(135deg,var(--navy),var(--blue)) !important;
  box-shadow:0 16px 36px rgba(11,31,58,.22) !important;
}
.brand .logo-mark:after{display:none !important;}
.brand .logo-mark img,
.home-page .header.header-overlay .logo-mark img,
.sub-page .header.header-overlay .logo-mark img,
.footer .logo-mark img{
  width:30.8px !important;
  height:30.8px !important;
  max-width:70% !important;
  max-height:70% !important;
  object-fit:contain !important;
  margin:auto !important;
  position:relative !important;
  z-index:2 !important;
}
@media(max-width:640px){
  .brand .logo-mark{width:38px !important;height:38px !important;}
  .brand .logo-mark img,
  .home-page .header.header-overlay .logo-mark img,
  .sub-page .header.header-overlay .logo-mark img,
  .footer .logo-mark img{width:26.6px !important;height:26.6px !important;}
}
/* Logo white background override */
.brand .logo-mark,
.home-page .header.header-overlay .logo-mark,
.sub-page .header.header-overlay .logo-mark,
.footer .logo-mark{
  background:#fff !important;
  background-color:#fff !important;
  border:1px solid rgba(11,31,58,.10) !important;
  box-shadow:0 10px 24px rgba(11,31,58,.14) !important;
}
.brand .logo-mark:after,
.home-page .header.header-overlay .logo-mark:after,
.sub-page .header.header-overlay .logo-mark:after,
.footer .logo-mark:after{display:none !important;}
/* Brand one-line name override */
.brand > span:not(.logo-mark){
  white-space:nowrap !important;
  line-height:1.15 !important;
  letter-spacing:0 !important;
}
.brand > span:not(.logo-mark) small{
  display:inline !important;
  font-size:inherit !important;
  letter-spacing:0 !important;
}
@media(max-width:640px){
  .brand > span:not(.logo-mark){font-size:13px !important;}
}
