/* Shared components */
.kicker{
  display:flex;
  align-items:center;
  gap:10px;
  color:#ffb7ba;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:14px;
}
.kicker:before{
  content:"";
  width:28px;height:3px;background:var(--red)
}
.kicker-dark{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--red);
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:14px;
}
.kicker-dark:before{
  content:"";
  width:28px;height:3px;background:var(--red)
}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:var(--blue-dark);color:#fff}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-dark);color:#fff}
.btn-text{color:var(--blue);font-weight:900}
/* image-led unified hero */
.hero{
  position:relative;
  overflow:hidden;
  color:var(--ink);
  min-height:680px;
  background-image:url("../images/home/hero.png");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(270deg,
      rgba(241,246,250,.76) 0%,
      rgba(235,242,248,.62) 23%,
      rgba(220,231,240,.38) 40%,
      rgba(160,181,199,.16) 56%,
      rgba(22,42,58,.03) 76%),
    linear-gradient(180deg,
      rgba(18,40,57,.02) 0%,
      rgba(18,40,57,.00) 58%,
      rgba(18,40,57,.14) 100%);
}
.hero:after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:5px;
  background:linear-gradient(90deg,var(--blue) 0 84%,var(--red) 84% 100%);
}
.hero-inner{
  position:relative;
  z-index:1;
  min-height:680px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding:70px 0;
}
.hero-content{
  width:min(620px,49%);
  margin-left:auto;
  padding:0;
}
.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--blue);
  font-size:11px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-bottom:15px;
}
.hero-kicker:before{
  content:"";
  width:30px;
  height:3px;
  background:var(--red);
}
.hero h1{
  max-width:620px;
  margin-bottom:18px;
  color:#17222d;
  text-shadow:none;
}
.hero h1 .blue-word{
  color:var(--blue);
}
.hero p{
  max-width:575px;
  color:#475766;
  font-size:17px;
  margin-bottom:26px;
  text-shadow:none;
}
.hero .actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.hero .btn-blue{
  background:var(--blue);
}
.hero .btn-red{
  background:var(--red);
}
.hero-trust{
  margin-top:32px;
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  color:#485865;
  font-size:12px;
}
.hero-trust span{
  display:flex;
  align-items:center;
  gap:8px;
}
.hero-trust span:before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--blue);
}
.hero-trust span:nth-child(2):before{
  background:var(--red);
}
.hero-trust span:nth-child(3):before{
  background:#60798e;
}


/* products */
.products{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}
.product{
  padding:0 28px 0 0;
}
.product + .product{
  padding-left:28px;
  border-left:1px solid var(--line);
}
.product-image{
  aspect-ratio:4/3;
  background:#dce1e6;
  margin-bottom:22px;
  display:grid;
  place-items:center;
  color:#6b7882;
  font-size:12px;
  font-weight:900;
}
.product .label{
  color:var(--red);
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:7px;
}
.product h3{font-size:25px;margin-bottom:9px}
.product p{font-size:14px}


/* factory story */
.story{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:54px;
  align-items:center;
}
.story-image{
  min-height:500px;
  background:#d8dde2;
  position:relative;
}
.story-image:before{
  content:"REAL FACTORY / SLING FABRICATION PHOTO";
  position:absolute;inset:0;
  display:grid;place-items:center;
  color:#697680;
  font-size:12px;
  font-weight:900;
}
.story-side .bigline{
  width:54px;height:5px;
  background:var(--blue);
  margin-bottom:26px;
}
.story-list{
  margin-top:28px;
  display:grid;
  gap:0;
}
.story-item{
  padding:18px 0;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:40px 1fr;
  gap:16px;
}
.story-item b{
  color:var(--red);
  font-size:11px;
  letter-spacing:.1em;
}
.story-item strong{
  display:block;
  margin-bottom:4px;
}
.story-item p{
  margin:0;
  font-size:13px;
}


/* applications */
.application-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr .9fr;
  gap:22px;
}
.application{
  min-height:300px;
  background:#e1e5e9;
  position:relative;
  overflow:hidden;
}
.application:before{
  content:"INDUSTRIAL APPLICATION PHOTO";
  position:absolute;inset:0;
  display:grid;place-items:center;
  color:#6a7781;
  font-size:12px;font-weight:900;
}
.app-overlay{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:24px;
  background:linear-gradient(180deg,transparent,rgba(17,24,39,.92));
  color:#fff;
}
.app-overlay span{
  color:#ff6b6f;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
}
.app-overlay h3{
  margin:8px 0 4px;
  font-size:25px;
}
.app-overlay p{
  color:#d6dde3;
  font-size:13px;
  margin:0;
}


/* trust */
.proof{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:52px;
  align-items:center;
}
.proof-copy .accent{
  width:54px;height:5px;background:var(--red);margin-bottom:26px
}
.proof-items{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px 34px;
  margin-top:30px;
}
.proof-item strong{
  color:var(--blue);
  font-size:24px;
  display:block;
  margin-bottom:5px;
}
.proof-item span{
  font-size:13px;
  color:#6d7883;
}
.proof-image{
  min-height:430px;
  background:#dce1e6;
  position:relative;
}
.proof-image:before{
  content:"INSPECTION / TESTING / PACKING PHOTO";
  position:absolute;inset:0;
  display:grid;place-items:center;
  color:#6c7882;
  font-size:12px;font-weight:900
}


/* editorial */
.editorial{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:44px;
}
.featured-image{
  min-height:340px;
  background:#dde2e7;
  margin-bottom:20px;
  display:grid;place-items:center;
  color:#697680;
  font-size:12px;font-weight:900;
}
.article-tag{
  color:var(--red);
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.featured h3{
  font-size:31px;
  margin:9px 0 12px;
}
.article-list{
  display:grid;
}
.article-item{
  padding:18px 0;
  border-top:1px solid var(--line);
}
.article-item:first-child{border-top:0;padding-top:0}
.article-item h3{
  font-size:19px;
  margin:7px 0 7px;
}
.article-item p{font-size:13px;margin:0}


/* CTA */
.final{
  padding:86px 0;
  background:#f2f4f6;
}
.cta{
  display:grid;
  grid-template-columns:1fr auto;
  gap:36px;
  align-items:center;
  background:#fff;
  padding:38px 42px;
  position:relative;
}
.cta:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:7px;background:var(--red);
}
.cta:after{
  content:"";
  position:absolute;
  top:0;left:7px;
  width:110px;height:4px;background:var(--blue);
}
.cta h2{font-size:35px;margin-bottom:8px}
.cta p{margin:0;max-width:760px}


/* v13 / animated real-world application scene */
.application-story{
  position:relative;
  height:330vh;
  margin:0 0 34px;
}
.application-stage{
  position:sticky;
  top:0;
  height:100vh;
  min-height:680px;
  overflow:hidden;
  background:#0f1720;
  box-shadow:inset 0 0 0 1px rgba(17,24,39,.08);
}
.application-scene{
  position:absolute;
  inset:-3%;
  background-image:
    linear-gradient(90deg,rgba(6,17,31,.42) 0%,rgba(6,17,31,.13) 38%,rgba(6,17,31,.05) 60%,rgba(6,17,31,.28) 100%),
    url("../images/home/application-scene.png");
  background-size:cover;
  background-position:center center;
  transform:scale(1.025);
  will-change:transform,filter;
}
.application-stage:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(8,23,42,.02),rgba(8,23,42,.00) 52%,rgba(8,23,42,.52) 100%);
}
.app-cinematic-top{
  position:absolute;
  z-index:5;
  left:34px;
  right:34px;
  top:28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.app-cinematic-top .left{
  display:flex;
  align-items:center;
  gap:10px;
}
.app-cinematic-top .left:before{
  content:"";
  width:28px;
  height:3px;
  background:var(--red);
}
.app-cinematic-top .right{
  color:rgba(255,255,255,.72);
}
.app-intro{
  position:absolute;
  z-index:6;
  left:5.5%;
  bottom:8%;
  width:min(650px,80%);
  color:#fff;
  transition:opacity .08s linear,transform .08s linear;
}
.app-intro .mini{
  color:#ffb7ba;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:13px;
}
.app-intro h3{
  margin:0;
  max-width:620px;
  font-size:clamp(38px,5vw,68px);
  line-height:1.02;
  letter-spacing:-.035em;
  color:#fff;
}
.app-intro p{
  margin:18px 0 0;
  max-width:560px;
  color:rgba(255,255,255,.78);
  font-size:15px;
}
.app-progress{
  position:absolute;
  z-index:7;
  right:27px;
  top:50%;
  transform:translateY(-50%);
  width:3px;
  height:180px;
  background:rgba(255,255,255,.24);
  overflow:hidden;
}
.app-progress i{
  display:block;
  width:100%;
  height:0;
  background:var(--red);
}
.app-detail-card{
  position:absolute;
  z-index:7;
  top:16%;
  right:5%;
  width:280px;
  padding:18px;
  background:rgba(9,22,38,.72);
  color:#fff;
  border-left:4px solid var(--blue);
  opacity:0;
  transform:translateY(-10px);
  backdrop-filter:blur(8px);
}
.app-detail-card b{
  display:block;
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.app-detail-card p{
  margin:7px 0 0;
  font-size:13px;
  line-height:1.5;
  color:rgba(255,255,255,.72);
}
.app-hotspot{
  position:absolute;
  z-index:6;
  display:flex;
  align-items:center;
  gap:10px;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
}
.app-hotspot .dot{
  width:13px;
  height:13px;
  border-radius:50%;
  border:2px solid #fff;
  background:rgba(11,79,179,.66);
  box-shadow:0 0 0 6px rgba(255,255,255,.12);
}
.app-hotspot .line{
  width:52px;
  height:1px;
  background:rgba(255,255,255,.76);
}
.app-hotspot .txt{
  min-width:210px;
  max-width:260px;
  padding:11px 13px;
  background:rgba(9,22,38,.68);
  color:#fff;
  border-left:3px solid var(--red);
  backdrop-filter:blur(7px);
}
.app-hotspot .txt strong{
  display:block;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.app-hotspot .txt small{
  display:block;
  margin-top:4px;
  font-size:11px;
  line-height:1.45;
  color:rgba(255,255,255,.7);
}
#cwrsHot1{left:31%;top:27%}
#cwrsHot2{left:39%;top:52%}
#cwrsHot3{left:56%;top:71%}
.app-rope-lines{
  position:absolute;
  inset:0;
  z-index:4;
  opacity:0;
  pointer-events:none;
}
.app-rope-lines svg{
  width:100%;
  height:100%;
}
.app-rope-lines path{
  fill:none;
  stroke:rgba(255,255,255,.55);
  stroke-width:2;
  stroke-linecap:round;
}
.app-rope-lines .blue{
  stroke:var(--blue);
  stroke-width:2.6;
}
.app-scroll-note{
  position:absolute;
  z-index:6;
  right:34px;
  bottom:28px;
  color:rgba(255,255,255,.74);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.app-scroll-note:before{
  content:"";
  display:inline-block;
  width:38px;
  height:1px;
  background:rgba(255,255,255,.6);
  margin:0 10px 3px 0;
}
.application-grid.application-grid-v13{
  margin-top:0;
}
.application-grid-v13 .application{
  min-height:230px;
  background:#dfe4e8;
  border-top:4px solid var(--blue);
}
.application-grid-v13 .application:nth-child(2){
  border-top-color:var(--red);
}
.application-grid-v13 .application:nth-child(3){
  border-top-color:#64748b;
}
.application-grid-v13 .application:before{
  content:"";
}
.application-grid-v13 .app-overlay{
  background:linear-gradient(180deg,rgba(17,24,39,.04),rgba(17,24,39,.92));
}
@media(max-width:900px){
  .application-story{height:260vh}
  .application-stage{min-height:620px}
  .app-detail-card{display:none}
  .app-intro{left:24px;bottom:56px;width:calc(100% - 48px)}
  .app-cinematic-top{left:24px;right:24px}
  .app-hotspot .txt{min-width:150px;max-width:180px}
  #cwrsHot1{left:18%;top:26%}
  #cwrsHot2{left:24%;top:49%}
  #cwrsHot3{left:40%;top:68%}
}
@media(max-width:640px){
  .application-story{height:230vh}
  .application-stage{height:86vh;min-height:560px}
  .app-cinematic-top .right{display:none}
  .app-intro h3{font-size:42px}
  .app-hotspot .line{width:30px}
  .app-hotspot .txt small{display:none}
  .app-progress{right:14px}
  .app-scroll-note{display:none}
}



/* v14 / full-width cinematic application breakout */
.application-story{
  width:100vw;
  max-width:none;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:0;
  margin-bottom:42px;
}

.application-stage{
  width:100%;
  border-radius:0;
  box-shadow:none;
}

.application-scene{
  inset:-2%;
  background-size:cover;
  background-position:center center;
}

/* Keep cinematic UI aligned with the site's content system even though the image is full bleed */
.app-cinematic-top,
.app-intro{
  max-width:var(--max);
}

.app-cinematic-top{
  left:max(34px, calc((100vw - var(--max))/2));
  right:max(34px, calc((100vw - var(--max))/2));
}

.app-intro{
  left:max(34px, calc((100vw - var(--max))/2));
}

.app-detail-card{
  right:max(34px, calc((100vw - var(--max))/2));
}

.app-scroll-note{
  right:max(34px, calc((100vw - var(--max))/2));
}

.app-progress{
  right:18px;
}

@media(max-width:1240px){
  .app-cinematic-top{
    left:20px;
    right:20px;
  }
  .app-intro{
    left:20px;
  }
  .app-detail-card{
    right:20px;
  }
  .app-scroll-note{
    right:20px;
  }
}

@media(max-width:900px){
  .application-story{
    margin-bottom:30px;
  }
  .app-intro{
    left:24px;
  }
}



/* v15 / first-screen composition
   topline + utility + header + hero = exactly one viewport height */
:root{
  --topline-h:5px;
  --utility-h:34px;
  --header-h:84px;
}

.topline{
  height:var(--topline-h);
}

.utility .wrap{
  height:var(--utility-h);
  min-height:var(--utility-h);
}

.header-inner{
  height:var(--header-h);
  min-height:var(--header-h);
}

/* Desktop: the four blocks together equal 100vh */
.hero{
  min-height:calc(100vh - var(--topline-h) - var(--utility-h) - var(--header-h));
  height:calc(100vh - var(--topline-h) - var(--utility-h) - var(--header-h));
}

/* Avoid a small overflow caused by viewport rounding */
@supports (height:100dvh){
  .hero{
    min-height:calc(100dvh - var(--topline-h) - var(--utility-h) - var(--header-h));
    height:calc(100dvh - var(--topline-h) - var(--utility-h) - var(--header-h));
  }
}

/* On shorter laptop screens keep hero content usable without changing
   the intended first-screen relationship on normal desktop heights. */
@media (max-width:900px){
  .hero{
    height:auto;
    min-height:620px;
  }
}


