/* Lightweight movement and interaction layer. Loaded only on supported pages. */
:root{--jbt-motion-distance:28px;--jbt-motion-duration:.72s;--jbt-parallax-y:0px}
.simple-hero:before,.home-packages-cta:before{content:"";position:absolute;inset:-12%;pointer-events:none;background:radial-gradient(circle at 18% 20%,rgba(39,199,216,.16),transparent 34%),radial-gradient(circle at 82% 70%,rgba(239,61,122,.15),transparent 31%);transform:translate3d(0,var(--jbt-parallax-y),0);will-change:transform}
.simple-hero-grid,.home-packages-cta .container{position:relative;z-index:2}
.jbt-hero-copy>*{opacity:0;transform:translateY(24px);animation:jbtHeroIn .72s cubic-bezier(.2,.7,.2,1) forwards}
.jbt-hero-copy>*:nth-child(2){animation-delay:.1s}.jbt-hero-copy>*:nth-child(3){animation-delay:.18s}.jbt-hero-copy>*:nth-child(4){animation-delay:.26s}.jbt-hero-copy>*:nth-child(5){animation-delay:.34s}
.jbt-hero-devices{position:relative;min-height:440px;background:transparent;border:0;box-shadow:none;padding:0;opacity:0;transform:translate3d(32px,18px,0) scale(.97);animation:jbtDeviceIn .9s .2s cubic-bezier(.2,.75,.2,1) forwards}
.jbt-laptop{position:absolute;left:0;top:35px;width:88%;filter:drop-shadow(0 28px 35px rgba(0,0,0,.35))}
.jbt-laptop-screen{position:relative;padding:10px 10px 18px;background:#171a20;border-radius:18px 18px 8px 8px;border:1px solid rgba(255,255,255,.18)}
.jbt-laptop-screen img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top;border-radius:8px}
.jbt-laptop-camera{position:absolute;z-index:2;top:5px;left:50%;width:4px;height:4px;border-radius:50%;background:#59606c}
.jbt-laptop-base{width:108%;height:18px;margin-left:-4%;background:linear-gradient(#d9dce2,#8e949e);border-radius:2px 2px 50% 50%;box-shadow:inset 0 2px rgba(255,255,255,.7)}
.jbt-phone{position:absolute;right:1%;bottom:12px;width:26%;padding:8px;background:#12151b;border:2px solid #444b57;border-radius:27px;box-shadow:0 22px 40px rgba(0,0,0,.38);animation:jbtFloat 5s ease-in-out infinite}
.jbt-phone-screen{overflow:hidden;border-radius:19px;background:#fff}.jbt-phone-screen img{width:100%;aspect-ratio:9/16;object-fit:cover;object-position:top}
.jbt-phone-speaker{width:32%;height:4px;border-radius:99px;background:#555c67;margin:0 auto 6px}
.jbt-project-chip{position:absolute;left:7%;bottom:5px;padding:12px 16px;border-radius:14px;background:rgba(255,255,255,.94);color:var(--dark);box-shadow:0 15px 35px rgba(0,0,0,.22);backdrop-filter:blur(8px)}
.jbt-project-chip strong,.jbt-project-chip span{display:block}.jbt-project-chip span{font-size:.76rem;color:var(--muted)}
.home-packages-cta{position:relative;overflow:hidden;padding:60px 0;background:linear-gradient(135deg,#111b31,#25204e);color:#fff}
.home-packages-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:38px;padding:34px;border:1px solid rgba(255,255,255,.12);border-radius:26px;background:rgba(255,255,255,.055);backdrop-filter:blur(10px)}
.home-packages-cta h2{margin:0 0 8px;font:700 clamp(2rem,4vw,3.35rem)/1.08 Georgia,"Times New Roman",serif;letter-spacing:-.035em}.home-packages-cta p{max-width:760px;margin:0;color:#dce4ef}
.jbt-reveal{opacity:0;transform:translateY(var(--jbt-motion-distance));transition:opacity var(--jbt-motion-duration) ease,transform var(--jbt-motion-duration) cubic-bezier(.2,.7,.2,1)}.jbt-reveal.is-visible{opacity:1;transform:none}
.portfolio-card-pro{transition:transform .35s ease,box-shadow .35s ease}.portfolio-card-pro:hover{transform:translateY(-7px);box-shadow:0 24px 55px rgba(10,16,32,.15)}
.device-stage{position:relative;overflow:hidden}.portfolio-hover-overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,rgba(9,15,30,.2),rgba(101,72,255,.76));opacity:0;text-decoration:none;transition:opacity .3s ease}.portfolio-hover-overlay span{padding:10px 16px;border:1px solid rgba(255,255,255,.7);border-radius:999px;color:#fff;font-weight:850;transform:translateY(10px);transition:transform .3s ease}.portfolio-card-pro:hover .portfolio-hover-overlay,.portfolio-hover-overlay:focus{opacity:1}.portfolio-card-pro:hover .portfolio-hover-overlay span,.portfolio-hover-overlay:focus span{transform:none}
.package-simple-card{position:relative;transform-style:preserve-3d;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.package-simple-card:hover,.package-simple-card:focus-within{box-shadow:0 25px 55px rgba(10,16,32,.15);border-color:rgba(101,72,255,.3)}.package-simple-card>*{transform:translateZ(10px)}
@keyframes jbtHeroIn{to{opacity:1;transform:none}}@keyframes jbtDeviceIn{to{opacity:1;transform:none}}@keyframes jbtFloat{50%{transform:translateY(-8px)}}
@media(max-width:980px){.jbt-hero-devices{min-height:390px}.home-packages-cta-inner{align-items:flex-start}.jbt-laptop{width:82%}.jbt-phone{width:24%}}
@media(max-width:700px){:root{--jbt-motion-distance:18px;--jbt-motion-duration:.55s}.jbt-hero-devices{min-height:285px;margin-top:20px}.jbt-laptop{width:92%;top:10px}.jbt-phone{width:27%;right:0;bottom:5px;animation:none}.jbt-project-chip{display:none}.home-packages-cta-inner{display:block;padding:26px}.home-packages-cta .button{margin-top:22px}.portfolio-card-pro:hover{transform:none}.portfolio-hover-overlay{display:none}.package-simple-card{transform:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.jbt-hero-copy>*,.jbt-hero-devices,.jbt-phone{animation:none!important;opacity:1!important;transform:none!important}.jbt-reveal{opacity:1!important;transform:none!important;transition:none!important}.simple-hero:before,.home-packages-cta:before{transform:none!important}.portfolio-card-pro,.portfolio-hover-overlay,.portfolio-hover-overlay span,.package-simple-card{transition:none!important;transform:none!important}}

/* v3.7: simple responsive device presentation update.
   Keep the existing hero layout; only refine laptop and phone orientation. */
.jbt-hero-devices{
  perspective:1400px;
  perspective-origin:52% 45%;
}
.jbt-laptop{
  left:1%;
  top:38px;
  width:87%;
  transform-origin:50% 65%;
  transform:rotateY(-5deg);
}
.jbt-phone{
  right:0;
  bottom:10px;
  width:25%;
  transform-origin:50% 70%;
  transform:rotateY(-4deg);
  animation:jbtFloatSide 5s ease-in-out infinite;
}
@keyframes jbtFloatSide{
  0%,100%{transform:rotateY(-4deg) translateY(0)}
  50%{transform:rotateY(-4deg) translateY(-7px)}
}
@media(max-width:980px){
  .jbt-laptop{width:84%;transform:rotateY(-4deg)}
  .jbt-phone{width:24%;transform:rotateY(-3deg)}
}
@media(max-width:700px){
  .jbt-hero-devices{perspective:none}
  .jbt-laptop{width:91%;left:0;top:12px;transform:none}
  .jbt-phone{width:27%;right:0;bottom:4px;transform:none;animation:none}
}
@media(prefers-reduced-motion:reduce){
  .jbt-laptop,.jbt-phone{transform:none!important;animation:none!important}
}

/* v3.8: cleaner device mockups only. No project label or caption. */
.jbt-project-chip{display:none!important}
.jbt-hero-devices{
  min-height:430px;
  perspective:1600px;
  perspective-origin:50% 45%;
}
.jbt-laptop{
  left:1%;
  top:34px;
  width:86%;
  transform:rotateY(-2.25deg) rotateX(.4deg);
  transform-origin:50% 70%;
  filter:drop-shadow(0 30px 34px rgba(0,0,0,.34));
}
.jbt-laptop-screen{
  padding:8px 8px 13px;
  border-radius:15px 15px 6px 6px;
  background:linear-gradient(145deg,#252a31,#080a0d 72%);
  border:1px solid rgba(255,255,255,.24);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.8);
}
.jbt-laptop-screen:after{
  content:"";
  position:absolute;
  inset:8px;
  pointer-events:none;
  border-radius:6px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.jbt-laptop-screen img{
  aspect-ratio:16/9;
  border-radius:6px;
}
.jbt-laptop-camera{
  top:3px;
  width:3px;
  height:3px;
  background:#69717c;
}
.jbt-laptop-base{
  position:relative;
  width:112%;
  height:20px;
  margin-left:-6%;
  background:linear-gradient(180deg,#eef0f3 0%,#b5bac2 48%,#777e88 100%);
  border-radius:2px 2px 55% 55%;
  box-shadow:inset 0 2px rgba(255,255,255,.8),0 8px 11px rgba(0,0,0,.22);
}
.jbt-laptop-base:after{
  content:"";
  position:absolute;
  left:43%;
  top:1px;
  width:14%;
  height:4px;
  border-radius:0 0 7px 7px;
  background:rgba(80,86,95,.36);
}
.jbt-phone{
  right:0;
  bottom:20px;
  width:24%;
  padding:6px;
  border-radius:30px;
  background:linear-gradient(145deg,#626a75,#0a0c10 28%,#191d23 72%,#767e88);
  border:1px solid rgba(255,255,255,.36);
  box-shadow:0 24px 42px rgba(0,0,0,.42),inset 0 0 0 1px rgba(0,0,0,.78);
  transform:rotateY(-1.5deg);
  animation:none;
}
.jbt-phone-screen{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  background:#fff;
}
.jbt-phone-screen:before{
  content:"";
  position:absolute;
  z-index:3;
  left:50%;
  top:0;
  width:45%;
  height:15px;
  transform:translateX(-50%);
  border-radius:0 0 10px 10px;
  background:#080a0d;
}
.jbt-phone-screen img{
  aspect-ratio:9/18.5;
  object-position:top center;
}
.jbt-phone-speaker{display:none}
@media(max-width:980px){
  .jbt-hero-devices{min-height:375px}
  .jbt-laptop{width:83%;top:30px;transform:rotateY(-2deg)}
  .jbt-phone{width:24%;bottom:15px;transform:none}
}
@media(max-width:700px){
  .jbt-hero-devices{min-height:280px;perspective:none}
  .jbt-laptop{width:90%;left:0;top:10px;transform:none}
  .jbt-phone{width:25%;right:0;bottom:4px;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .jbt-laptop,.jbt-phone{transform:none!important}
}

/* v4.0.1: final premium device-frame override. Kept last so motion styles
   cannot restore the older v3.8 frame appearance. */
.jbt-hero-devices{position:relative;min-height:430px;perspective:1500px;perspective-origin:50% 48%;isolation:isolate}
.jbt-laptop{position:absolute;z-index:1;left:1%;top:34px;width:88%;transform:rotateY(-5deg) rotateX(1deg);transform-origin:50% 72%;filter:drop-shadow(0 32px 30px rgba(0,0,0,.38))}
.jbt-laptop-screen{position:relative;overflow:hidden;padding:11px 11px 15px;aspect-ratio:auto;background:linear-gradient(145deg,#2b3037 0,#050608 58%,#20242b 100%);border:1px solid rgba(255,255,255,.42);border-radius:20px 20px 8px 8px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.8),inset 0 0 18px rgba(255,255,255,.07)}
.jbt-laptop-screen:after{inset:11px 11px 15px;border-radius:9px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.jbt-laptop-screen img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:top center;border-radius:9px;filter:none}
.jbt-laptop-camera{display:block;top:5px;left:50%;width:5px;height:5px;margin-left:-2px;background:#172235;box-shadow:0 0 0 1px #020304,0 0 3px rgba(72,142,220,.75)}
.jbt-laptop-base{position:relative;width:110%;height:20px;margin-left:-5%;background:linear-gradient(180deg,#f5f6f7 0,#c3c8cd 48%,#858c94 74%,#e2e4e6 100%);border-radius:2px 2px 14px 14px;box-shadow:inset 0 2px rgba(255,255,255,.9),0 8px 12px rgba(0,0,0,.24)}
.jbt-laptop-base:after{left:40%;top:0;width:20%;height:5px;background:linear-gradient(180deg,#9ba1a7,#e7e9eb);border-radius:0 0 7px 7px}
.jbt-phone{position:absolute;z-index:4;right:0;bottom:10px;width:25%;padding:7px;background:linear-gradient(145deg,#4c535c,#07080a 38%,#20242a 75%,#707780);border:1px solid rgba(255,255,255,.52);border-radius:34px;box-shadow:0 28px 42px rgba(0,0,0,.48),inset 0 0 0 1px #030405;transform:rotateY(-4deg) rotateZ(1deg);animation:none}
.jbt-phone-screen{position:relative;overflow:hidden;border-radius:27px;background:#fff}
.jbt-phone-screen:before{left:50%;top:6px;width:42%;height:16px;transform:translateX(-50%);border-radius:999px;background:#050607;box-shadow:0 1px 2px rgba(255,255,255,.12)}
.jbt-phone-screen img{display:block;width:100%;height:auto;aspect-ratio:9/19.5;object-fit:cover;object-position:top center;filter:none}
.jbt-phone-speaker{display:none}
@media(max-width:980px){.jbt-hero-devices{min-height:385px}.jbt-laptop{top:30px;width:85%;transform:rotateY(-4deg)}.jbt-phone{width:24%;bottom:12px}}
@media(max-width:700px){.jbt-hero-devices{min-height:282px;perspective:1000px}.jbt-laptop{left:0;top:10px;width:91%;transform:rotateY(-2deg)}.jbt-laptop-screen{padding:7px 7px 10px;border-radius:13px 13px 6px 6px}.jbt-laptop-screen:after{inset:7px 7px 10px;border-radius:6px}.jbt-laptop-base{height:13px}.jbt-phone{right:0;bottom:4px;width:26%;padding:5px;border-radius:23px;transform:none}.jbt-phone-screen{border-radius:18px}.jbt-phone-screen:before{top:4px;height:10px}}
@media(prefers-reduced-motion:reduce){.jbt-laptop{transform:rotateY(-5deg) rotateX(1deg)!important}.jbt-phone{transform:rotateY(-4deg) rotateZ(1deg)!important}}

/* v4.0.2: keep the phone unambiguously in front on desktop and laptop views. */
.jbt-hero-devices{isolation:isolate;transform-style:preserve-3d}
.jbt-laptop{z-index:1!important;transform:rotateY(-5deg) rotateX(1deg) translateZ(0)}
.jbt-phone{z-index:50!important;transform:rotateY(-4deg) rotateZ(1deg) translateZ(90px)}
@media(max-width:980px) and (min-width:701px){.jbt-laptop{z-index:1!important;transform:rotateY(-4deg) translateZ(0)}.jbt-phone{z-index:50!important;transform:rotateY(-3deg) translateZ(90px)}}
@media(max-width:700px){.jbt-laptop{z-index:1!important}.jbt-phone{z-index:50!important;transform:translateZ(50px)}}
@media(prefers-reduced-motion:reduce){.jbt-laptop{z-index:1!important;transform:rotateY(-5deg) rotateX(1deg) translateZ(0)!important}.jbt-phone{z-index:50!important;transform:rotateY(-4deg) rotateZ(1deg) translateZ(90px)!important}}
