/* ---------- Tokens ---------- */
:root{

  --jm-bg:#0b0d12;
  --jm-surface:#12151c;
  --jm-surface-2:#171b24;
  --jm-border:rgba(255,255,255,.08);
  --jm-border-strong:rgba(255,255,255,.16);

  --jm-text:#ffffff;
  --jm-text-2:#c9d0db;
  --jm-line:rgba(255,255,255,.32);

  --jm-primary:#5b9cff;         --jm-primary-rgb:91 156 255;
  --jm-primary-deep:#3d7ff0;    --jm-primary-deep-rgb:61 127 240;
  --jm-primary-strong:#8ab8ff;  --jm-primary-strong-rgb:138 184 255;
  --jm-secondary:#c8f169;       --jm-secondary-rgb:200 241 105;
  --jm-grad:linear-gradient(120deg,var(--jm-primary),var(--jm-primary-deep));
  --jm-grad-accent:linear-gradient(110deg,var(--jm-primary),var(--jm-secondary));
  --jm-ink-on-primary:#0b0d12;

  --jm-green:var(--jm-secondary); --jm-green-rgb:var(--jm-secondary-rgb);

  --jm-amber:var(--jm-primary);
  --jm-ember:var(--jm-primary-deep);
  --jm-amber-strong:var(--jm-primary-strong);
  --jm-ink-on-amber:var(--jm-ink-on-primary);

  --jm-font:"Inter","Segoe UI Variable Text","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  --jm-font-display:"Space Grotesk","Inter","Segoe UI",sans-serif;

  --jm-fs-h1:clamp(2.3rem,3.6vw + 1rem,3.8rem);
  --jm-fs-h2:clamp(1.85rem,2.6vw + .9rem,2.7rem);
  --jm-fs-h3:clamp(1.2rem,.8vw + 1rem,1.45rem);
  --jm-fs-lede:clamp(1.05rem,.45vw + .95rem,1.22rem);
  --jm-fs-body:clamp(1rem,.2vw + .96rem,1.0625rem);
  --jm-fs-small:.875rem;

  --jm-radius:10px;
  --jm-radius-sm:8px;
  --jm-shadow:0 14px 34px rgba(0,0,0,.4);
  --jm-ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Base ---------- */
html{scroll-behavior:auto}
html,body{max-width:100%;overflow-x:clip}
body{
  position:relative;
  background:var(--jm-bg-dyn,var(--jm-bg));

  color:var(--jm-text) !important;
  font-family:var(--jm-font);
  font-size:var(--jm-fs-body);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
body :is(h1,h2,h3,h4,h5,h6,p,a,li,span,div,button,input,textarea,select,label,blockquote,figcaption,cite,em,strong,small,td,th):not([class*="fa-"]){
  font-family:var(--jm-font) !important;
}

body :is(h1,h2,h3,h4,h5,h6):not([class*="fa-"]),
body :is(h1,h2,h3,h4,h5,h6) :is(span,a,em,strong):not([class*="fa-"]),
body .jm-price p,
body .jm-stat .elementor-counter-number-wrapper,
body .jm-stat .elementor-counter-number-wrapper span{
  font-family:var(--jm-font-display) !important;
}

body .elementor-widget-heading .elementor-heading-title{color:var(--jm-text)}
::selection{background:var(--jm-primary);color:var(--jm-ink-on-primary)}
:focus-visible{outline:2px solid var(--jm-primary);outline-offset:3px;border-radius:4px}
.skip-link:focus{background:var(--jm-primary);color:var(--jm-ink-on-primary);padding:.6em 1em;z-index:999}

/* ---------- Scroll progress bar ---------- */
#jm-progress{
  position:fixed;top:0;left:0;width:100%;height:2px;z-index:300;
  background:var(--jm-grad-accent);
  transform:scaleX(0);transform-origin:0 50%;pointer-events:none;
}

/* ---------- Cursor tracer ---------- */
#jm-cur{
  position:fixed;left:0;top:0;width:30px;height:30px;margin:-15px 0 0 -15px;
  border-radius:50%;border:1.5px solid rgb(var(--jm-primary-rgb) / .5);
  box-shadow:0 0 22px rgb(var(--jm-primary-rgb) / .22),inset 0 0 10px rgb(var(--jm-primary-rgb) / .1);
  z-index:400;pointer-events:none;opacity:0;
  transition:width .25s var(--jm-ease),height .25s var(--jm-ease),margin .25s var(--jm-ease),
             border-color .25s var(--jm-ease),background .25s var(--jm-ease),opacity .35s var(--jm-ease);
}
#jm-cur::after{
  content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;
  border-radius:50%;background:var(--jm-primary);box-shadow:0 0 8px var(--jm-primary);
}
#jm-cur.jm-on{opacity:1}
#jm-cur.jm-hot{
  width:48px;height:48px;margin:-24px 0 0 -24px;
  border-color:rgb(var(--jm-primary-strong-rgb) / .85);background:rgb(var(--jm-primary-rgb) / .07);
}

/* ---------- Typography helpers ---------- */
.jm-h1 .elementor-heading-title{font-size:var(--jm-fs-h1);font-weight:700;line-height:1.08;letter-spacing:-.02em}
.jm-h2 .elementor-heading-title{font-size:var(--jm-fs-h2);font-weight:700;line-height:1.12;letter-spacing:-.015em}
.jm-h3 .elementor-heading-title{font-size:var(--jm-fs-h3);font-weight:600;line-height:1.3;letter-spacing:-.005em}

.jm-hl{
  background:var(--jm-grad-accent);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}

body .jm-eyebrow .elementor-heading-title{
  font-family:var(--jm-font) !important;
  font-size:.78rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--jm-secondary);
}
.jm-lede p{font-size:var(--jm-fs-lede);color:#edf1f6;line-height:1.65}
.jm-muted p,.jm-muted li{color:var(--jm-text-2)}

.jm-topics-list ul{
  column-count:3;column-gap:40px;list-style:none;margin:0;padding:0;
}
.jm-topics-list li{
  break-inside:avoid;position:relative;padding:6px 0 6px 22px;line-height:1.5;
}
.jm-topics-list li::before{
  content:"";position:absolute;left:0;top:16px;width:8px;height:8px;
  border-radius:50%;background:var(--jm-secondary);
}
@media(max-width:900px){.jm-topics-list ul{column-count:2}}
@media(max-width:600px){.jm-topics-list ul{column-count:1}}
.jm-text p{color:var(--jm-text)}
.jm-text p+p{margin-top:1em}
body .jm-price p{
  font-size:1.35rem;font-weight:700;letter-spacing:-.01em;
  background:var(--jm-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;display:inline-block;
}

/* ---------- White hairline section separators ---------- */
.jm-sepline{
  display:block;position:absolute;top:0;left:50%;translate:-50% 0;z-index:2;
  width:min(1140px,92vw);height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--jm-line) 18%,var(--jm-line) 82%,transparent);
}

/* ---------- H2 icons ---------- */
.jm-h2-lastword{white-space:nowrap}
.jm-h2-icon{
  display:inline-block;width:.82em;height:.82em;margin-left:.45em;
  vertical-align:-.1em;color:var(--jm-primary);
}
.jm-h2-icon svg{display:block;width:100%;height:100%}
.jm-js .jm-h2-icon{
  opacity:0;transform:translateY(18px);
  transition:opacity .6s var(--jm-ease),transform .6s var(--jm-ease);
}
.jm-js .jm-h2.jm-in .jm-h2-icon,.jm-js .jm-in .jm-h2-icon{opacity:.65;transform:none}

/* ---------- Buttons ---------- */
.jm-btn .elementor-button,.jm-btn-ghost .elementor-button{
  border-radius:var(--jm-radius-sm);
  font-weight:600;font-size:1rem;letter-spacing:.01em;
  padding:.9em 1.6em;border:1px solid transparent;
  position:relative;overflow:hidden;
  text-decoration:none !important;
  transition:box-shadow .55s var(--jm-ease),background .25s var(--jm-ease),border-color .25s var(--jm-ease),filter .25s var(--jm-ease);
}
.jm-btn .elementor-button-content-wrapper,.jm-btn-ghost .elementor-button-content-wrapper{
  position:relative;z-index:1;display:inline-flex;align-items:center;
}
.jm-btn .elementor-button{background:var(--jm-grad);box-shadow:0 0 0 rgb(var(--jm-primary-rgb) / 0)}
.jm-btn .elementor-button,.jm-btn .elementor-button:hover,.jm-btn .elementor-button:focus,.jm-btn .elementor-button:active{
  color:var(--jm-ink-on-primary) !important;
}
.jm-btn .elementor-button:hover,.jm-btn .elementor-button:focus-visible{
  box-shadow:0 12px 30px rgb(var(--jm-primary-rgb) / .32);filter:brightness(1.06);
}
.jm-btn .elementor-button:active{box-shadow:none;filter:brightness(.97)}

.jm-btn-ghost .elementor-button{background:transparent !important;border-color:rgb(var(--jm-primary-rgb) / .4)}
.jm-btn-ghost .elementor-button,.jm-btn-ghost .elementor-button:hover,.jm-btn-ghost .elementor-button:focus,.jm-btn-ghost .elementor-button:active{
  color:var(--jm-primary-strong) !important;
}
.jm-btn-ghost .elementor-button:hover,.jm-btn-ghost .elementor-button:focus-visible{
  background:rgb(var(--jm-primary-rgb) / .09) !important;border-color:var(--jm-primary);
  box-shadow:0 10px 26px rgba(0,0,0,.35);
}

.jm-btn .elementor-button-content-wrapper::after,.jm-btn-ghost .elementor-button-content-wrapper::after{
  content:"\2192";display:inline-block;max-width:0;opacity:0;overflow:hidden;
  margin-left:0;transform:translateX(-8px);
  transition:max-width .3s var(--jm-ease),margin-left .3s var(--jm-ease),opacity .25s var(--jm-ease),transform .3s var(--jm-ease);
}
.jm-btn .elementor-button:hover .elementor-button-content-wrapper::after,
.jm-btn .elementor-button:focus-visible .elementor-button-content-wrapper::after,
.jm-btn .elementor-button:active .elementor-button-content-wrapper::after,
.jm-btn-ghost .elementor-button:hover .elementor-button-content-wrapper::after,
.jm-btn-ghost .elementor-button:focus-visible .elementor-button-content-wrapper::after,
.jm-btn-ghost .elementor-button:active .elementor-button-content-wrapper::after{
  max-width:1.4em;margin-left:.55em;opacity:1;transform:none;
}
.jm-noarrow .elementor-button-content-wrapper::after{content:none !important}

/* ---------- Cards ---------- */
.jm-card{
  background:var(--jm-surface);
  border:1px solid var(--jm-border);
  border-radius:var(--jm-radius);
  position:relative;overflow:clip;
  box-shadow:0 0 0 rgba(0,0,0,0);
  transition:transform .3s var(--jm-ease),border-color .3s var(--jm-ease),box-shadow .55s var(--jm-ease) !important;
}
.jm-card:hover{transform:translateY(-4px);border-color:var(--jm-border-strong);box-shadow:var(--jm-shadow)}
.jm-card-static:hover{transform:none;box-shadow:none;border-color:var(--jm-border)}
.jm-card > .elementor-widget-wrap{position:relative;z-index:1}

.jm-card::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1.3px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 95% 75% at 50% 42%,#000 28%,transparent 78%);
  mask-image:radial-gradient(ellipse 95% 75% at 50% 42%,#000 28%,transparent 78%);
}

.jm-orb{
  position:absolute;pointer-events:none;z-index:0;
  width:var(--s,180px);height:var(--s,180px);
  top:var(--t,auto);right:var(--r,auto);bottom:var(--b,auto);left:var(--l,auto);
  border-radius:var(--br,58% 42% 63% 37%/45% 55% 40% 60%);
  filter:blur(var(--bl,22px));opacity:var(--op,.55);scale:1;
  transform:translate3d(var(--ix,0px),var(--iy,0px),0);
  transition:scale 1s var(--jm-ease),opacity 1s var(--jm-ease);
}
.jm-orb-ba{animation:jm-bob-a var(--d,10s) ease-in-out var(--y,0s) infinite alternate,
           jm-rot var(--rd,60s) linear infinite var(--rv,normal)}
.jm-orb-bb{animation:jm-bob-b var(--d,12s) ease-in-out var(--y,0s) infinite alternate,
           jm-rot var(--rd,58s) linear infinite var(--rv,reverse)}

.jm-orb-drift{animation:jm-drift-c var(--d,15s) ease-in-out var(--y,0s) infinite alternate,
              jm-rot var(--rd,80s) linear infinite var(--rv,normal)}
@keyframes jm-drift-c{from{translate:0 0}to{translate:var(--dx,-70px) var(--dy,50px)}}
.jm-orb-a1{background:radial-gradient(circle at 42% 42%,rgb(var(--jm-primary-rgb) / .26),rgb(var(--jm-primary-rgb) / .09))}

.jm-orb-a2{background:radial-gradient(circle at 58% 58%,rgb(var(--jm-secondary-rgb) / .08),rgb(var(--jm-secondary-rgb) / .025))}
.jm-orb-w{background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.17),rgba(255,255,255,.03) 68%);opacity:.85}
.jm-card:hover .jm-orb{scale:1.2;opacity:.95}

.jm-card .jm-orb{display:none}
@keyframes jm-bob-a{from{translate:0 0}to{translate:-14px 12px}}
@keyframes jm-bob-b{from{translate:0 0}to{translate:12px -10px}}
@keyframes jm-rot{to{rotate:360deg}}

/* ---------- Process steps ---------- */
.jm-flow-row{--jm-flow-gap:40px}
.elementor-section > .elementor-container:has(> .jm-flow-step){display:flex;flex-wrap:nowrap;gap:0 var(--jm-flow-gap);align-items:stretch}
.jm-flow-step{
  position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;
  border:1.5px solid var(--jm-border-strong);border-radius:var(--jm-radius);
}
.jm-flow-step > .elementor-widget-wrap{flex:1 1 auto;align-content:flex-start !important}
.jm-flow-step .jm-eyebrow{margin-bottom:6px !important}
.jm-flow-step .jm-eyebrow .elementor-heading-title{font-size:.66rem;letter-spacing:.15em}
.jm-flow-step .jm-h3{margin:0 !important}
.jm-flow-step .jm-h3 .elementor-heading-title{font-size:1.02rem;line-height:1.3}
.jm-flow-step .jm-muted{margin-top:8px !important}
.jm-flow-step .jm-muted p{font-size:.83rem;line-height:1.5}
.jm-flow-step-1{background:var(--jm-surface)}
.jm-flow-step-2{background:#131925;border-color:rgb(var(--jm-primary-rgb) / .2)}
.jm-flow-step-3{background:#141d2e;border-color:rgb(var(--jm-primary-rgb) / .3)}
.jm-flow-step-4{background:#162239;border-color:rgb(var(--jm-primary-rgb) / .4)}
.jm-flow-step.jm-flow-final{
  background:
    radial-gradient(130% 90% at 100% 0%,rgb(var(--jm-primary-strong-rgb) / .28),transparent 60%),
    linear-gradient(160deg,#21427f 0%,#1a3263 48%,#142647 100%);
  border-color:rgb(var(--jm-primary-rgb) / .7);
  box-shadow:0 18px 44px rgb(var(--jm-primary-deep-rgb) / .22),inset 0 1px 0 rgba(255,255,255,.12);
}
.jm-flow-step:not(.jm-flow-final)::after{
  content:"\2192";position:absolute;top:50%;right:calc(-1 * var(--jm-flow-gap) / 2);
  translate:50% -50%;font-size:1.3rem;line-height:1;color:var(--jm-line);pointer-events:none;
}
@media (min-width:901px){
  .jm-js .jm-flow-step:not(.jm-flow-final)::after{opacity:0}
  .jm-js .jm-flow-step.jm-in:not(.jm-flow-final)::after{animation:jm-flow-arrow .5s cubic-bezier(.2,.8,.2,1) forwards}
  .jm-js .jm-flow-row .jm-flow-step-2.jm-in{transition-delay:.35s}
  .jm-js .jm-flow-row .jm-flow-step-3.jm-in{transition-delay:.7s}
  .jm-js .jm-flow-row .jm-flow-step-4.jm-in{transition-delay:1.05s}
  .jm-js .jm-flow-row .jm-flow-step-5.jm-in{transition-delay:1.4s}
  .jm-js .jm-flow-step-1.jm-in::after{animation-delay:.2s}
  .jm-js .jm-flow-step-2.jm-in::after{animation-delay:.55s}
  .jm-js .jm-flow-step-3.jm-in::after{animation-delay:.9s}
  .jm-js .jm-flow-step-4.jm-in::after{animation-delay:1.25s}
}
@keyframes jm-flow-arrow{0%{opacity:0;translate:calc(50% - 10px) -50%}100%{opacity:1;translate:50% -50%}}
@media (max-width:900px){
  .elementor-section > .elementor-container:has(> .jm-flow-step){flex-wrap:wrap;row-gap:26px}
  .jm-flow-step{flex:1 1 100%}
  .jm-flow-step:not(.jm-flow-final)::after{
    content:"";top:100%;right:auto;left:50%;translate:-50% 0;
    width:0;height:26px;border-left:1.5px solid var(--jm-line);
  }
}
@media (prefers-reduced-motion:reduce){.jm-js .jm-flow-step:not(.jm-flow-final)::after{opacity:1;animation:none}}

.elementor-section > .elementor-container:has(> .jm-card){gap:28px}

.elementor-section > .elementor-container:has(> .jm-card) > .elementor-column{min-width:0}

.elementor-inner-section .jm-card > .elementor-widget-wrap{display:flex;flex-direction:column;flex-wrap:nowrap}
.elementor-inner-section .jm-card > .elementor-widget-wrap > .elementor-widget-button:not(.elementor-widget-button + .elementor-widget-button){margin-top:auto !important;padding-top:18px}
@media (min-width:768px){
  .elementor-inner-section > .elementor-container:has(> .jm-card) > .elementor-column{width:auto;flex:1 1 0}

  .elementor-column.elementor-col-58{width:58%}
  .elementor-column.elementor-col-42{width:42%}
}

.jm-ratecard.jm-ratecard{--align-self:flex-start;align-self:flex-start}

.jm-chip{
  display:inline-flex;align-items:center;gap:.55em;position:relative;
  font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--jm-text-2);
}
.jm-chip::before{
  content:"";width:.55em;height:.55em;border-radius:50%;flex:none;
  background:var(--jm-green);box-shadow:0 0 10px var(--jm-green),0 0 22px rgb(var(--jm-green-rgb) / .4);
  animation:jm-pulse 2.6s ease-in-out infinite;
}
@keyframes jm-pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* ---------- Header ---------- */
.elementor-location-header{position:fixed;top:0;left:0;right:0;z-index:100}
.elementor-location-header .elementor-top-section{margin-bottom:0 !important}
body.admin-bar .elementor-location-header{top:32px}
.elementor-location-header .elementor-section{
  background:transparent;min-height:0;padding:.4rem 0;
  transition:background .25s var(--jm-ease),box-shadow .25s var(--jm-ease);
}
.elementor-location-header.jm-scrolled .elementor-section{
  background:rgba(11,13,18,.8);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--jm-border);
}
.elementor-location-header .elementor-background-overlay{display:none}
.elementor-location-header .elementor-icon-list-icon{display:none}
.elementor-location-header .elementor-icon-list-items{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem}
.elementor-location-header .elementor-icon-list-item{margin:0 !important}
.elementor-location-header .elementor-icon-list-item a{
  padding:.5em .95em;border-radius:var(--jm-radius-sm);
  transition:background .18s var(--jm-ease);
}
.elementor-location-header .elementor-icon-list-item a:hover{background:rgba(255,255,255,.07)}
.elementor-location-header .elementor-icon-list-text{color:var(--jm-text);font-size:.95rem;font-weight:500;transition:color .18s var(--jm-ease)}
.elementor-location-header .elementor-icon-list-item.jm-nav-active .elementor-icon-list-text,
.elementor-location-header .elementor-icon-list-item a:hover .elementor-icon-list-text{color:var(--jm-primary) !important}
.elementor-location-header .elementor-icon-list-item:last-child a{
  background:var(--jm-grad);display:inline-flex;align-items:center;
  transform:scale(1);transition:transform .22s var(--jm-ease),filter .22s var(--jm-ease);
}
.elementor-location-header .elementor-icon-list-item:last-child a:hover,
.elementor-location-header .elementor-icon-list-item:last-child a:focus-visible{
  transform:scale(1.06);filter:brightness(1.12);
}
.elementor-location-header .elementor-icon-list-item:last-child a:active{transform:scale(1.02)}
.elementor-location-header .elementor-icon-list-item:last-child.jm-nav-active .elementor-icon-list-text,
.elementor-location-header .elementor-icon-list-item:last-child a:hover .elementor-icon-list-text,
.elementor-location-header .elementor-icon-list-item:last-child .elementor-icon-list-text{color:var(--jm-ink-on-primary) !important}
@media (max-width:767px){

  .elementor-location-header{position:static;background:var(--jm-bg)}
  body.admin-bar .elementor-location-header{top:auto}
  .elementor-location-header .elementor-icon-list-items{justify-content:center;gap:0;padding-right:.3em}
  .elementor-location-header .elementor-icon-list-item a{padding:.4em .4em}
  .elementor-location-header .elementor-icon-list-text{font-size:.85rem}

  .elementor-location-header img{height:44px !important;width:auto !important;max-width:none}
}

/* ---------- Default (non-Elementor) page template ---------- */
@media (min-width:768px){
  body.page-template-default .site-main{padding-top:150px}
}
body.page-template-default .site-main{padding-bottom:72px}

/* ---------- Hero / glow sections ---------- */
.jm-hero{
  position:relative;overflow:clip;
  background-image:
    radial-gradient(ellipse 95% 75% at 50% 42%,transparent 28%,var(--jm-bg-dyn,var(--jm-bg)) 78%),
    radial-gradient(rgba(255,255,255,.06) 1px,transparent 1.3px);
  background-size:auto,26px 26px;
}
.jm-hero::before,.jm-hero::after{
  content:"";position:absolute;pointer-events:none;will-change:transform;
  filter:blur(46px);
}
.jm-hero::before{
  width:var(--h1s,40vw);height:var(--h1s,40vw);max-width:620px;max-height:620px;
  top:var(--h1t,-12%);right:var(--h1r,-4%);
  translate:var(--hox1,0px) var(--hoy1,0px);
  border-radius:var(--h1br,58% 42% 63% 37%/45% 55% 40% 60%);
  background:radial-gradient(circle at 45% 45%,rgb(var(--jm-primary-rgb) / .19),rgb(var(--jm-primary-rgb) / .05));
  animation:jm-drift-a var(--h1d,13s) ease-in-out infinite alternate,
            jm-rot var(--h1rd,90s) linear infinite;
}
.jm-hero::after{
  width:var(--h2s,30vw);height:var(--h2s,30vw);max-width:460px;max-height:460px;
  bottom:var(--h2b,-24%);left:var(--h2l,-14%);
  translate:var(--hox2,0px) var(--hoy2,0px);
  border-radius:var(--h2br,42% 58% 37% 63%/55% 45% 60% 40%);
  background:radial-gradient(circle at 55% 55%,rgb(var(--jm-secondary-rgb) / .065),rgb(var(--jm-secondary-rgb) / .02));
  animation:jm-drift-b var(--h2d,18s) ease-in-out infinite alternate,
            jm-rot var(--h2rd,110s) linear infinite reverse;
}
@keyframes jm-drift-a{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-12vw,9vh,0) scale(1.22)}
}
@keyframes jm-drift-b{
  from{transform:translate3d(0,0,0) scale(1.12)}
  to{transform:translate3d(10vw,-8vh,0) scale(.9)}
}
.jm-hero > .elementor-container{position:relative;z-index:1}

.jm-surface{background:var(--jm-surface)}

.jm-band{border:0;position:relative;overflow:clip}
.jm-band > .elementor-container{position:relative;z-index:1}

.jm-band:hover .jm-orb{scale:1.15;opacity:.85}

/* ---------- Logo wall ---------- */
.jm-hero > .elementor-container > .elementor-column,
.jm-hero > .elementor-container > .elementor-column > .elementor-widget-wrap{
  position:static;
}
.jm-logolabel{text-align:center;margin-bottom:16px;margin-top:0}
.jm-logolabel .elementor-heading-title{
  font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--jm-text-2) !important;
}
.jm-logobox{
  display:block;max-width:940px;margin:0 auto;
  background:#fff !important;
  border-radius:18px;
  box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.jm-logobox > .elementor-widget-wrap{padding:22px 28px !important}

.jm-logostrip .swiper-slide{display:flex;align-items:center;justify-content:center;padding:16px 0}
.jm-logostrip .swiper-slide img{max-height:54px;width:auto;object-fit:contain}
@media (max-width:767px){

  .jm-logobox{margin:0;border-radius:14px}
  .jm-logobox > .elementor-widget-wrap{padding:16px 14px !important}
  .jm-logostrip .swiper-slide img{max-height:38px}
}

/* ---------- Mobile polish ---------- */
@media (max-width:767px){

  .jm-hero .elementor-widget-button{display:inline-block;width:auto;vertical-align:middle}
  .jm-btn .elementor-button,.jm-btn-ghost .elementor-button{padding:.75em 1.15em;font-size:.92rem}

  .jm-testimonials .elementor-testimonial__text{font-size:1rem !important;line-height:1.6}

  [data-elementor-type="wp-page"] .elementor-widget-spacer{display:none}
  .jm-lede{margin-bottom:12px !important}
  .jm-topics-list{margin-top:0 !important}

  body.home [data-elementor-type="wp-page"] > .elementor-section:first-child{padding-top:28px !important}

  .jm-form-cta{margin-top:8px !important}
}

/* ---------- Portfolio single-post ---------- */
.elementor-element-bee4081{margin-top:100px !important;margin-bottom:0 !important}
.elementor-element-bee4081 > .elementor-container{flex-wrap:wrap !important}
.elementor-element-bee4081 > .elementor-container > .elementor-element-6589f69{
  width:100% !important;max-width:100% !important;flex-basis:100% !important;
}
.elementor-element-6589f69 > .elementor-element-populated{padding-bottom:0 !important}
@media(max-width:767px){
  .elementor-element-bee4081{margin-top:0 !important}
}

/* ---------- Portfolio tiles ---------- */
.jm-loop .elementor-loop-container{gap:20px !important}
.jm-loop .e-loop-item{
  background:var(--jm-surface);
  border-radius:var(--jm-radius);overflow:hidden;
  border:1px solid var(--jm-border);
  box-shadow:0 0 0 rgba(0,0,0,0);
  transition:transform .3s var(--jm-ease),border-color .3s var(--jm-ease),box-shadow .55s var(--jm-ease) !important;

  display:flex;
}
.jm-loop .e-loop-item > .elementor-element{
  width:100%;display:flex;align-items:center;
  padding:18px 22px !important;
}
.jm-loop .e-loop-item:hover{transform:translateY(-4px);border-color:var(--jm-border-strong);box-shadow:0 16px 40px rgba(0,0,0,.38)}

.jm-loop .e-loop-item > .elementor-element{padding:0 !important;align-items:stretch}
.jm-loop .e-loop-item .elementor-widget-wrap{flex-direction:column;flex-wrap:nowrap;padding:0 !important}
.jm-loop .jm-tile-img{margin:0 !important;width:100%}
.jm-loop .jm-tile-img a{display:block;overflow:hidden;border-bottom:1px solid var(--jm-border)}
.elementor .jm-loop .jm-tile-img img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top;border-radius:0;transition:transform .5s var(--jm-ease)}
.jm-loop .e-loop-item:hover .jm-tile-img img{transform:scale(1.03)}
.jm-loop .jm-tile-title{padding:16px 20px 20px;margin:0 !important}
@media (prefers-reduced-motion:reduce){.jm-loop .e-loop-item:hover .jm-tile-img img{transform:none}}
.jm-tile-title .elementor-heading-title{font-size:1.02rem;font-weight:600;line-height:1.45}
.jm-tile-title a{color:var(--jm-text);transition:color .18s var(--jm-ease)}
.jm-loop .e-loop-item:hover .jm-tile-title a{color:var(--jm-primary)}

.jm-leavebar{position:fixed;left:0;top:0;height:3px;width:0;z-index:100000;pointer-events:none;
  background:linear-gradient(90deg,var(--jm-primary),var(--jm-secondary));box-shadow:0 0 10px rgb(var(--jm-primary-rgb) / .6);opacity:0}
.jm-leaving .jm-leavebar{opacity:1;animation:jm-leave 8s cubic-bezier(.1,.7,.2,1) forwards}
@keyframes jm-leave{0%{width:0}10%{width:35%}40%{width:70%}100%{width:92%}}
.jm-mm-card.is-going{border-color:rgb(var(--jm-primary-rgb) / .8) !important;box-shadow:0 0 0 3px rgb(var(--jm-primary-rgb) / .22) !important}
.jm-leaving,.jm-leaving a{cursor:progress}

.jm-loop.jm-loading .elementor-loop-container{opacity:.45;transition:opacity .2s var(--jm-ease)}
.jm-loop .elementor-loop-container.jm-page-in{animation:jm-page-in .45s var(--jm-ease)}
@keyframes jm-page-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.jm-loop .elementor-loop-container.jm-page-in{animation:none}}

.jm-filter .e-filter-item{
  border:1px solid var(--jm-border-strong) !important;border-radius:var(--jm-radius-sm) !important;
  padding:.4em 1em !important;font-weight:500 !important;font-size:.92rem !important;
  color:var(--jm-text-2) !important;
  transition:color .18s var(--jm-ease),border-color .18s var(--jm-ease),background .18s var(--jm-ease);
}
.jm-filter .e-filter-item:hover{color:var(--jm-text) !important;border-color:var(--jm-primary) !important}
.jm-filter .e-filter-item[aria-pressed="true"]{
  color:var(--jm-ink-on-primary) !important;background:var(--jm-grad) !important;border-color:transparent !important;
}

/* ---------- FAQ ---------- */
.jm-faq .elementor-toggle-item{
  background:var(--jm-surface);border:1px solid var(--jm-border) !important;
  border-radius:var(--jm-radius);margin-bottom:10px;overflow:hidden;
}

.jm-faq .elementor-tab-title{
  display:flex;align-items:center;gap:.7em;
  padding:1em 1.25em;border:none !important;
  color:#fff !important;font-weight:600 !important;
  font-size:1.05rem !important;text-transform:none !important;
}
.jm-faq .elementor-tab-title .elementor-toggle-icon{flex:none;color:var(--jm-primary)}
.jm-faq .elementor-tab-title a.elementor-toggle-title,
.jm-faq .elementor-tab-title a.elementor-toggle-title:hover,
.jm-faq .elementor-tab-title.elementor-active a.elementor-toggle-title{
  color:#fff !important;text-decoration:none !important;border-bottom:0 !important;
}
.jm-faq .elementor-tab-content{
  border:none !important;padding:0 1.25em 1.1em;
  color:var(--jm-text-2) !important;font-size:1rem !important;
}

/* ---------- Forms ---------- */
.jm-form .elementor-field-group label{color:var(--jm-text-2);font-size:var(--jm-fs-small);font-weight:600;margin-bottom:.35em}
.jm-form input,.jm-form textarea,.jm-form select{
  background:var(--jm-surface-2) !important;color:var(--jm-text) !important;
  border:1px solid var(--jm-border-strong) !important;border-radius:var(--jm-radius-sm) !important;
  padding:.8em 1em !important;font-size:1rem !important;
  transition:border-color .18s var(--jm-ease),box-shadow .18s var(--jm-ease);
}
.jm-form input:focus,.jm-form textarea:focus,.jm-form select:focus{
  border-color:var(--jm-primary) !important;box-shadow:0 0 0 3px rgb(var(--jm-primary-rgb) / .18);outline:none;
}
.jm-form ::placeholder{color:rgba(232,234,238,.35) !important}
.jm-form .elementor-button[type="submit"]{
  background:var(--jm-grad);color:var(--jm-ink-on-primary) !important;border-radius:var(--jm-radius-sm);
  font-weight:600;padding:.9em 1.6em;text-decoration:none !important;
  transition:box-shadow .55s var(--jm-ease),filter .25s var(--jm-ease);
}
.jm-form .elementor-button[type="submit"]:hover{box-shadow:0 12px 30px rgb(var(--jm-primary-rgb) / .32);filter:brightness(1.06)}

.jm-form-cta{max-width:none;width:100%;margin:26px 0 0;text-align:left}
.jm-form-cta .elementor-field-group{margin-bottom:14px}

.jm-form .elementor-select-wrapper,.jm-form .elementor-select-wrapper select{width:100% !important}
.jm-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),.jm-form select{
  height:auto !important;min-height:0 !important;line-height:1.4 !important;box-shadow:none;
}
.jm-form .elementor-select-wrapper::before{color:var(--jm-text-2);right:14px}
.jm-form .elementor-field-type-submit{margin-top:14px}
/* ---------- Testimonials ---------- */
.jm-testimonials{position:relative}

.jm-testimonials::before{
  content:"\201C";position:absolute;left:104px;top:var(--jm-quotetop,20px);z-index:3;pointer-events:none;
  font-family:var(--jm-font-display) !important;
  font-size:7rem;line-height:1;font-weight:700;
  color:var(--jm-primary);
}

.jm-testimonials::after{
  content:"";position:absolute;z-index:2;pointer-events:none;
  width:230px;height:230px;right:-34px;bottom:-22px;
  border-radius:56% 44% 61% 39%/47% 57% 43% 53%;
  filter:blur(24px);opacity:.85;
  transform:translate3d(var(--tbx,0px),var(--tby,0px),0);
  background:radial-gradient(circle at 45% 45%,rgb(var(--jm-primary-rgb) / .34),rgb(var(--jm-secondary-rgb) / .08));
  animation:jm-bob-b 11s ease-in-out infinite alternate,jm-rot 70s linear infinite;
}
@media (max-width:767px){
  .jm-testimonials::before{font-size:4.6rem;left:52px}
  .jm-testimonials::after{width:150px;height:150px;right:-18px;bottom:-14px}
}
.jm-testimonials .swiper-slide{height:auto;padding:6px 2px 2px}
.jm-testimonials .swiper-pagination{display:none !important}
.jm-testimonials .elementor-testimonial{
  background:#fff;border-radius:var(--jm-radius);
  padding:30px 30px 24px;height:100%;
  box-shadow:0 12px 32px rgba(0,0,0,.3);
}
.jm-testimonials .elementor-testimonial__text{color:#23252b !important;font-size:1.05rem;line-height:1.65}
.jm-testimonials .elementor-testimonial__name{color:#1c1e24 !important;font-weight:700}
.jm-testimonials .elementor-testimonial__title{color:#565b66 !important}
/* ---------- Stats ---------- */
.jm-stats{padding-top:0 !important}
/* About's counter row sits between two hairlines: the same gap above and below it (pages.py pad "tight").
   Beats Elementor's per-element padding, so it reaches live without a database push. */
body .elementor-section.elementor-top-section.jm-stats-sec{padding-bottom:20px}
@media (max-width:767px){body .elementor-section.elementor-top-section.jm-stats-sec{padding-bottom:8px}}
body .jm-stat .elementor-counter{
  display:flex;align-items:center;justify-content:center;gap:16px;text-align:left;
}
body .jm-stat .elementor-counter-number-wrapper{
  font-size:2.3rem;font-weight:700;flex:none;letter-spacing:-.02em;
  background:var(--jm-grad-accent);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
body .jm-stat .elementor-counter-title{
  color:var(--jm-text-2);font-size:.88rem;line-height:1.45;max-width:230px;

  text-align:center;
}
@media (min-width:768px){

  .jm-stats > .elementor-container > .elementor-column{width:33.3333%}
  .jm-stats .elementor-column:not(:first-child){border-left:1px solid rgba(255,255,255,.18)}
}

/* ---------- Wire path (home page only) ---------- */
#jm-wire{position:absolute;top:0;left:0;width:100%;z-index:2;pointer-events:none}
#jm-wire svg{display:block;width:100%;height:100%;overflow:visible}
.jm-wire-path{fill:none;stroke:rgb(var(--jm-primary-rgb) / .30);stroke-width:1.5}
.jm-wire-trail-glow{fill:none;stroke:rgb(var(--jm-primary-rgb) / .28);stroke-width:5;stroke-linecap:round}
.jm-wire-trail{fill:none;stroke:rgb(var(--jm-primary-strong-rgb) / .9);stroke-width:1.5;stroke-linecap:round}
#jm-wire-dot{fill:var(--jm-primary);filter:drop-shadow(0 0 6px rgb(var(--jm-primary-rgb) / .95));transition:opacity .45s var(--jm-ease)}
#jm-wire-dot.jm-wire-dot-arrived{opacity:0}
.jm-wire-cp{
  fill:var(--jm-bg);stroke:rgb(var(--jm-primary-rgb) / .75);stroke-width:1.5;
  transition:fill .5s var(--jm-ease),stroke .5s var(--jm-ease),filter .5s var(--jm-ease);
}
.jm-wire-cp.lit{fill:#fff;stroke:#fff;filter:drop-shadow(0 0 7px rgba(255,255,255,.95))}

.jm-wire-cp-final.lit{fill:var(--jm-green);stroke:var(--jm-green);filter:drop-shadow(0 0 8px rgb(var(--jm-green-rgb) / .95))}
@media (max-width:1359px){#jm-wire{display:none}}

/* ---------- Chat button + message panel ---------- */
#jm-chat-btn{
  appearance:none;-webkit-appearance:none;
  position:fixed;right:24px;bottom:28px;z-index:60;
  width:56px;height:56px;border-radius:50%;padding:0;border:0;cursor:pointer;
  display:grid;place-items:center;
  background:var(--jm-primary);color:var(--jm-ink-on-primary);
  box-shadow:none;
  transition:transform .25s var(--jm-ease),filter .2s var(--jm-ease);
}
#jm-chat-btn[hidden]{display:none}
#jm-chat-btn:hover{filter:brightness(1.08);transform:translateY(-2px)}
#jm-chat-btn:focus-visible{outline:2px solid var(--jm-secondary);outline-offset:3px}

#jm-chat-btn svg{grid-area:1 / 1;width:26px;height:26px;display:block;
  transition:transform .38s cubic-bezier(.34,1.3,.5,1),opacity .22s var(--jm-ease)}
#jm-chat-btn .jm-chat-x{width:22px;height:22px;opacity:0;transform:rotate(-90deg) scale(.4)}
#jm-chat-btn[aria-expanded="true"] .jm-chat-x{opacity:1;transform:none}
#jm-chat-btn[aria-expanded="true"] .jm-chat-bubble{opacity:0;transform:rotate(90deg) scale(.4)}

.jm-chat{
  position:fixed;right:24px;bottom:96px;z-index:60;width:min(380px,calc(100vw - 32px));
  background:var(--jm-surface);border:1px solid var(--jm-border-strong);border-radius:16px;
  box-shadow:0 24px 60px rgba(0,0,0,.55);padding:22px 22px 20px;
  transform-origin:bottom right;
  opacity:0;visibility:hidden;transform:translateY(10px) scale(.97);
  transition:opacity .28s var(--jm-ease),transform .32s var(--jm-ease),visibility 0s linear .32s;
}
.jm-chat.is-open{
  opacity:1;visibility:visible;transform:none;
  transition:opacity .28s var(--jm-ease),transform .32s var(--jm-ease),visibility 0s linear 0s;
}
.jm-chat h2{font-family:var(--jm-font-display);font-size:1.15rem;font-weight:600;color:var(--jm-text);margin:0 0 4px}
.jm-chat-sub{font-size:var(--jm-fs-small);color:var(--jm-text-2);margin:0 0 16px}
.jm-chat label{display:block;font-size:var(--jm-fs-small);font-weight:600;color:var(--jm-text-2);margin:0 0 5px}

#jm-chat input,#jm-chat textarea{
  display:block;width:100%;box-sizing:border-box;margin:0 0 12px;padding:10px 12px;border-radius:10px;
  background:var(--jm-bg);color:var(--jm-text);border:1px solid var(--jm-border-strong);
  font:inherit;font-size:.95rem;line-height:1.4;height:auto;min-height:0;box-shadow:none;
}
#jm-chat textarea{min-height:110px;resize:vertical}
#jm-chat input:focus,#jm-chat textarea:focus{outline:none;border-color:var(--jm-primary);box-shadow:0 0 0 3px rgb(var(--jm-primary-rgb) / .2)}
.jm-chat .jm-chat-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.jm-chat button[type="submit"]{
  appearance:none;width:100%;margin-top:6px;padding:12px 16px;border:0;border-radius:10px;cursor:pointer;
  background:var(--jm-primary);color:var(--jm-ink-on-primary);font:inherit;font-weight:600;
}
.jm-chat button[type="submit"][disabled]{opacity:.6;cursor:wait}
.jm-chat-status{margin:12px 0 0;font-size:var(--jm-fs-small);color:var(--jm-text-2)}
.jm-chat-status:empty{display:none}
.jm-chat-status.is-ok{color:var(--jm-secondary)}
.jm-chat-status.is-err{color:#ff8a8a}
.jm-chat-status a{color:var(--jm-primary)}
@media (max-width:600px){
  #jm-chat-btn{right:16px;bottom:16px;width:52px;height:52px}
  .jm-chat{right:16px;bottom:80px}
}
@media (prefers-reduced-motion:reduce){.jm-chat,.jm-chat.is-open,#jm-chat-btn,#jm-chat-btn svg{transition:none}}

.jm-foot-top .elementor-widget-button{text-align:center}
.elementor .jm-totop-pill .elementor-button{
  display:inline-flex;align-items:center;gap:8px;padding:9px 22px;border-radius:999px;
  background:transparent;border:1px solid var(--jm-border-strong);color:var(--jm-text-2);
  font-size:var(--jm-fs-small);font-weight:600;text-decoration:none !important;
  transition:color .2s var(--jm-ease),border-color .2s var(--jm-ease);
}
.elementor .jm-totop-pill .elementor-button:hover{color:var(--jm-primary);border-color:rgb(var(--jm-primary-rgb) / .6)}
.jm-totop-pill .elementor-button-icon svg,.jm-totop-pill .elementor-button-icon i{width:12px;height:12px;font-size:12px;fill:currentColor}

/* ---------- Footer ---------- */
.elementor-location-footer{border-top:1px solid var(--jm-border);background:var(--jm-surface)}
.elementor-location-footer .elementor-icon-list-icon{display:none}
.elementor-location-footer .elementor-icon-list-item a{text-decoration:none !important}
.elementor-location-footer .elementor-icon-list-text{color:var(--jm-text-2);transition:color .18s var(--jm-ease)}
.elementor-location-footer .elementor-icon-list-item a:hover .elementor-icon-list-text{color:var(--jm-primary)}

.jm-foot-brand{text-align:center}
.jm-foot-brand .elementor-widget-image{text-align:center !important}

.jm-foot-brand .elementor-widget-image img{transform:translateX(-4px)}

.elementor-location-footer .elementor-top-section:last-of-type{padding-top:14px !important;padding-bottom:16px !important}
.elementor-location-footer .elementor-top-section:last-of-type p{margin-bottom:0}
.elementor-location-footer .elementor-top-section:last-of-type .elementor-widget-wrap{padding-bottom:0}

@media (max-width:767px){
  .elementor-location-footer .elementor-top-section:not(:last-of-type) .elementor-column{padding-top:20px;padding-bottom:20px}
  .elementor-location-footer .elementor-top-section:not(:last-of-type) .elementor-column:first-child{padding-top:0}

  .jm-foot-brand .elementor-element-fc73c2d > .elementor-widget-container{margin-right:0 !important}
}

/* ---------- Motion ---------- */
.jm-js .jm-reveal{opacity:0;transform:translateY(18px)}
.jm-js .jm-reveal.jm-in{
  opacity:1;transform:none;
  transition:opacity .6s var(--jm-ease),transform .6s var(--jm-ease);
}
.jm-js .jm-d2.jm-in{transition-delay:.08s}
.jm-js .jm-d3.jm-in{transition-delay:.16s}
.jm-js .jm-d4.jm-in{transition-delay:.24s}
.jm-js .jm-fadesec{opacity:0}
.jm-js .jm-fadesec.jm-in{opacity:1;transition:opacity .8s var(--jm-ease)}

/* ---------- Loop grid pagination (Previous / Next) ---------- */
.jm-loop .elementor-pagination{
  margin-top:36px !important;
  display:flex;align-items:center;justify-content:center;gap:22px;
}
.jm-loop .elementor-pagination .page-numbers{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--jm-font);font-size:var(--jm-fs-small);font-weight:600;
  color:var(--jm-text);text-decoration:none;
}
.jm-loop .elementor-pagination .page-numbers.prev::before,
.jm-loop .elementor-pagination .page-numbers.next::after{
  content:"";width:9px;height:9px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
}
.jm-loop .elementor-pagination .page-numbers.prev::before{transform:rotate(135deg)}
.jm-loop .elementor-pagination .page-numbers.next::after{transform:rotate(-45deg)}
.jm-loop .elementor-pagination a.page-numbers{transition:color .2s var(--jm-ease)}
.jm-loop .elementor-pagination a.page-numbers:hover{color:var(--jm-primary-strong)}
.jm-loop .elementor-pagination span.page-numbers{
  color:var(--jm-text-2);opacity:.35;cursor:default;
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .jm-js .jm-reveal,.jm-js .jm-fadesec{opacity:1;transform:none;transition:none}
  .jm-js .jm-h2-icon{opacity:.65;transform:none;transition:none}
  .jm-hero::before,.jm-hero::after{animation:none}
  .jm-chip::before{animation:none}
  .jm-orb,.jm-testimonials::after{animation:none;transition:none}
  .jm-btn .elementor-button,.jm-btn-ghost .elementor-button,.jm-card,.jm-loop .e-loop-item{transition:none}
  .jm-card:hover,.jm-loop .e-loop-item:hover{transform:none}
  .jm-btn .elementor-button-content-wrapper::after,.jm-btn-ghost .elementor-button-content-wrapper::after{transition:none}
  #jm-progress{display:none}
  #jm-cur{display:none}
  #jm-wire{display:none}
}

/* ---------- 404 page ---------- */
.jm-404{
  min-height:55vh;display:flex;align-items:center;justify-content:center;
  padding:80px 24px;text-align:center;
}
.jm-404-inner{max-width:520px}
.jm-404-code{
  font-family:var(--jm-font-display);font-size:clamp(3.5rem,8vw,6rem);
  font-weight:700;line-height:1;margin:0 0 8px;
  background:var(--jm-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.jm-404-inner h1{
  font-family:var(--jm-font-display);color:var(--jm-text);
  font-size:var(--jm-fs-h3);font-weight:600;margin:0 0 12px;
}
.jm-404-inner p{color:var(--jm-text-2);font-size:var(--jm-fs-body);margin:0 0 32px}
.jm-404-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ---------- Logo strip section ---------- */
.jm-logosec{position:relative;z-index:3;margin-top:-104px}
.jm-logosec .jm-logolabel{margin-bottom:16px}
@media (max-width:767px){.jm-logosec{margin-top:0}}

.jm-logosec + .elementor-section > .jm-sepline{display:none}

/* ---------- Spotlight cards ---------- */
.jm-spot{--mx:50%;--my:50%}
.jm-spot::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  transition:opacity .35s var(--jm-ease);
  background:

    radial-gradient(rgb(var(--jm-primary-rgb) / .5) 1.1px,transparent 1.6px) 0 0 / 26px 26px,
    radial-gradient(380px circle at var(--mx) var(--my),rgb(var(--jm-primary-rgb) / .22),rgb(var(--jm-secondary-rgb) / .06) 45%,transparent 72%);
  -webkit-mask-image:radial-gradient(270px circle at var(--mx) var(--my),#000 0%,rgba(0,0,0,.6) 45%,transparent 78%);
  mask-image:radial-gradient(270px circle at var(--mx) var(--my),#000 0%,rgba(0,0,0,.6) 45%,transparent 78%);
}
.jm-spot:hover::after{opacity:1}
@media (hover:none),(pointer:coarse){.jm-spot::after{display:none}}

/* ---------- Testimonials ---------- */
.jm-testimonials .swiper-wrapper{display:grid !important;transform:none !important;transition:none !important}

.jm-testimonials .swiper{touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.jm-testimonials .swiper:active{cursor:grabbing}
.jm-testimonials .swiper-slide{
  grid-area:1 / 1;width:100% !important;margin:0 !important;
  opacity:0;visibility:hidden;
  transition:opacity .3s var(--jm-ease),visibility 0s linear .3s;
}
.jm-testimonials .swiper-slide.swiper-slide-active{
  opacity:1;visibility:visible;
  transition:opacity .45s var(--jm-ease) .28s,visibility 0s linear 0s;
}
@media (prefers-reduced-motion:reduce){
  .jm-testimonials .swiper-slide,.jm-testimonials .swiper-slide.swiper-slide-active{transition:none}
}

.elementor .elementor-widget.jm-stat-num{margin-bottom:2px !important}
.jm-stat-num p,.jm-stat-label p{margin:0}
.elementor .elementor-widget.jm-stat-label{margin-bottom:22px !important}
.elementor .elementor-widget.jm-stat-label:last-child{margin-bottom:0 !important}

/* ---------- Services mega menu ---------- */
.jm-nav-svc{position:relative}

.elementor-location-header .jm-svc-toggle,
.elementor-location-header .jm-svc-toggle:hover,
.elementor-location-header .jm-svc-toggle:focus{border:0;box-shadow:none}
.elementor-location-header .jm-svc-toggle{
  appearance:none;-webkit-appearance:none;background:none;border:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:32px;margin-left:-.55em;padding:0;border-radius:6px;color:var(--jm-text-2);
  transition:color .18s var(--jm-ease),background .18s var(--jm-ease);
}

.elementor-location-header .jm-nav-svc{
  display:flex;align-items:center;border-radius:var(--jm-radius-sm);
  padding-right:.35em;transition:background .18s var(--jm-ease);
}
.elementor-location-header .jm-nav-svc:hover,.elementor-location-header .jm-nav-svc.jm-nav-open{background:rgba(255,255,255,.07)}
.elementor-location-header .jm-nav-svc a,.elementor-location-header .jm-nav-svc a:hover{background:none !important}
.elementor-location-header .jm-svc-toggle,.elementor-location-header .jm-svc-toggle:hover,
.elementor-location-header .jm-svc-toggle:focus,.elementor-location-header .jm-svc-toggle:active{background:none !important;color:var(--jm-text-2)}
.elementor-location-header .jm-nav-svc:hover .jm-svc-toggle,.elementor-location-header .jm-nav-open .jm-svc-toggle{color:var(--jm-primary)}
.elementor-location-header .jm-nav-svc:hover .elementor-icon-list-text{color:var(--jm-primary) !important}
.elementor-location-header .jm-svc-toggle:focus-visible{outline:2px solid var(--jm-primary);outline-offset:2px}
.jm-svc-toggle svg{width:15px;height:15px;transition:transform .22s var(--jm-ease)}
.jm-svc-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.elementor-location-header .jm-nav-open .elementor-icon-list-text{color:var(--jm-primary) !important}

.jm-mega{position:absolute;left:0;right:0;top:100%;z-index:120;padding:0 16px}
.jm-mega[hidden]{display:none}
.jm-mega-in{
  max-width:1140px;margin:6px auto 0;padding:18px;
  display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;
  background:rgb(18 21 28 / .97);border:1px solid var(--jm-border-strong);border-radius:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.55);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.jm-mega.jm-open .jm-mega-in{animation:jm-mm-in .22s var(--jm-ease)}
@keyframes jm-mm-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.jm-mm-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.jm-mm-grid li{margin:0;padding:0}
.jm-mm-card{
  display:flex;flex-direction:column;height:100%;overflow:hidden;
  background:var(--jm-surface-2);border:1px solid var(--jm-border);border-radius:10px;
  color:var(--jm-text) !important;text-decoration:none !important;
  transition:border-color .2s var(--jm-ease),transform .2s var(--jm-ease),box-shadow .3s var(--jm-ease);
}
a.jm-mm-card:hover,a.jm-mm-card:focus-visible{
  border-color:rgb(var(--jm-primary-rgb) / .6);transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.4);
}
.jm-mm-art{
  position:relative;display:block;aspect-ratio:320 / 150;
  background:
    radial-gradient(120% 120% at 15% 0%,rgb(var(--jm-primary-rgb) / .22),transparent 60%),
    radial-gradient(90% 90% at 100% 100%,rgb(var(--jm-secondary-rgb) / .09),transparent 60%),
    #10141d;
}
.jm-mm-scene{display:block;width:100%;height:100%}
.jm-mm-scene .a{fill:var(--jm-primary)}
.jm-mm-scene .b{fill:var(--jm-secondary)}
.jm-mm-scene .l{fill:rgb(255 255 255 / .22)}
.jm-mm-scene .s{fill:rgb(255 255 255 / .05);stroke:rgb(255 255 255 / .14);stroke-width:1.5}
.jm-mm-scene .a-stroke{fill:none;stroke:var(--jm-primary);stroke-width:3;stroke-linecap:round}
.jm-mm-scene .b-stroke{fill:none;stroke:var(--jm-secondary);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.jm-mm-scene .l-stroke{fill:none;stroke:rgb(255 255 255 / .18);stroke-width:2}
.jm-mm-ico{
  position:absolute;left:12px;bottom:-15px;width:32px;height:32px;border-radius:8px;
  display:grid;place-items:center;background:var(--jm-bg);
  border:1px solid rgb(var(--jm-primary-rgb) / .5);color:var(--jm-primary);
}
.jm-mm-grid li:nth-child(even) .jm-mm-ico{border-color:rgb(var(--jm-secondary-rgb) / .5);color:var(--jm-secondary)}
.jm-mm-ico svg{width:17px;height:17px}
.jm-mm-t{display:block;padding:24px 14px 2px;font-weight:600;font-size:.95rem;line-height:1.3}
.jm-mm-d{display:block;padding:0 14px 14px;font-size:.82rem;line-height:1.4;color:var(--jm-text-2)}
.jm-mm-side{
  display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:10px;
  background:rgb(var(--jm-primary-rgb) / .07);border:1px solid rgb(var(--jm-primary-rgb) / .22);
}
.jm-mm-side-t{margin:0;font-family:var(--jm-font-display) !important;font-weight:600;font-size:1.05rem;line-height:1.3;color:var(--jm-text)}
.jm-mm-side-d{margin:0 0 auto;font-size:.85rem;line-height:1.5;color:var(--jm-text-2)}
.jm-mm-all{font-weight:600;font-size:.9rem;color:var(--jm-primary-strong) !important;text-decoration:none !important}
.jm-mm-all::after{content:" \2192"}
.jm-mm-cta{
  display:inline-flex;justify-content:center;padding:.6em 1em;border-radius:var(--jm-radius-sm);
  font-weight:600;font-size:.9rem;background:var(--jm-grad);color:var(--jm-ink-on-primary) !important;text-decoration:none !important;
}
@media (max-width:1100px){
  .jm-mega-in{grid-template-columns:1fr}
  .jm-mm-side{flex-direction:row;flex-wrap:wrap;align-items:center}
  .jm-mm-side-d{margin:0;flex:1 1 220px}
}
@media (max-width:900px){.jm-mm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){
  .elementor-location-header{position:relative}
  .elementor-location-header .jm-svc-toggle{display:none}
  .jm-mega{padding:0 12px}
  .jm-mega-in{padding:10px;margin-top:2px;gap:10px}
  .jm-mm-grid{grid-template-columns:1fr;gap:6px}
  .jm-mm-card{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:12px;align-items:center;padding:10px 12px}
  .jm-mm-art{grid-row:1 / span 2;aspect-ratio:auto;background:none;position:static}
  .jm-mm-scene{display:none}
  .jm-mm-ico{position:static}
  .jm-mm-t{padding:0}
  .jm-mm-d{padding:0}
  .jm-mm-side{padding:12px;gap:8px}
}
@media (prefers-reduced-motion:reduce){
  .jm-mega.jm-open .jm-mega-in{animation:none}
  .jm-mm-card,.jm-svc-toggle svg{transition:none}
  a.jm-mm-card:hover{transform:none}
}

/* ---------- More like this ---------- */
.jm-mlt{margin:64px 0 60px;padding-top:40px;border-top:1px solid var(--jm-border)}
.jm-mlt ul{list-style:none;margin:0;padding:0}
.jm-mlt .jm-mlt-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.jm-mlt-chips li{
  font-size:var(--jm-fs-small);font-weight:500;color:var(--jm-text-2);
  padding:5px 12px;border:1px solid var(--jm-border);border-radius:999px;
}
.elementor .jm-mlt-h{
  font-family:var(--jm-font-display);font-size:var(--jm-fs-h3);font-weight:600;
  color:var(--jm-text);margin:0 0 20px;
}
.jm-mlt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.jm-mlt-card{
  display:flex;flex-direction:column;gap:10px;height:100%;padding:20px 22px;
  background:var(--jm-surface);border:1px solid var(--jm-border);border-radius:var(--jm-radius);
  text-decoration:none;
  transition:transform .3s var(--jm-ease),border-color .3s var(--jm-ease),box-shadow .55s var(--jm-ease);
}

.elementor .jm-mlt a.jm-mlt-card,.elementor .jm-mlt a.jm-mlt-card:hover{text-decoration:none}
.jm-mlt-tag{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--jm-primary)}
.jm-mlt-t{font-size:1.02rem;font-weight:600;line-height:1.45;color:var(--jm-text);transition:color .18s var(--jm-ease)}
.jm-mlt-go{margin-top:auto;padding-top:6px;font-size:var(--jm-fs-small);color:var(--jm-text-2)}
.jm-mlt-go::after{content:" \2192"}
.jm-mlt-card:hover{transform:translateY(-4px);border-color:var(--jm-border-strong);box-shadow:0 16px 40px rgba(0,0,0,.38)}
.jm-mlt-card:hover .jm-mlt-t{color:var(--jm-primary)}
.jm-mlt-card:focus-visible{outline:2px solid var(--jm-primary);outline-offset:3px}
@media (max-width:900px){.jm-mlt-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.jm-mlt-card{transition:none}.jm-mlt-card:hover{transform:none}}

.jm-filter .e-filter-item:not([data-filter="__all"]):not([data-filter="data-recovery-storage"]):not([data-filter="headphones-audio-gear"]):not([data-filter="software"]):not([data-filter="tech-guides-how-tos"]){display:none}

/* ---------- Service card art ---------- */
.jm-card.jm-has-art{overflow:visible}
.jm-card.jm-has-art::before,.jm-card.jm-has-art::after{border-radius:inherit}
.jm-card.jm-has-art > .elementor-widget-wrap{padding-top:64px !important}
.elementor .jm-card .jm-card-art-w{
  position:absolute !important;top:-30px;right:32px;width:168px;margin:0 !important;z-index:2;pointer-events:none;
}
.jm-card-art{
  position:relative;display:block;aspect-ratio:320 / 150;border-radius:12px;
  border:1px solid var(--jm-border-strong);
  background:
    radial-gradient(120% 120% at 15% 0%,rgb(var(--jm-primary-rgb) / .22),transparent 60%),
    radial-gradient(90% 90% at 100% 100%,rgb(var(--jm-secondary-rgb) / .09),transparent 60%),
    #10141d;
  box-shadow:0 14px 30px rgba(0,0,0,.45);
  transition:transform .3s var(--jm-ease);
}
.jm-card-art .jm-mm-scene{display:block;width:100%;height:100%}
.jm-card-art-ico{
  position:absolute;left:12px;bottom:-14px;width:30px;height:30px;border-radius:8px;
  display:grid;place-items:center;background:var(--jm-bg);
  border:1px solid rgb(var(--jm-primary-rgb) / .5);color:var(--jm-primary);
}
.jm-card-art.jm-alt .jm-card-art-ico{border-color:rgb(var(--jm-secondary-rgb) / .5);color:var(--jm-secondary)}
.jm-card-art-ico svg{width:16px;height:16px}
.jm-card.jm-has-art:hover .jm-card-art{transform:translateY(-3px) rotate(-1.5deg)}
@media (max-width:767px){
  .elementor .jm-card .jm-card-art-w{width:132px;right:20px;top:-24px}
  .jm-card.jm-has-art > .elementor-widget-wrap{padding-top:52px !important}

  .jm-has-art + .jm-has-art{margin-top:44px}
}
@media (prefers-reduced-motion:reduce){.jm-card-art{transition:none}.jm-card.jm-has-art:hover .jm-card-art{transform:none}}

/* ---------- Pull quotes ---------- */
.jm-quote{max-width:880px;margin:0 auto;text-align:center;position:relative;padding-top:54px}
.jm-quote::before{
  content:"\201C";position:absolute;left:50%;top:-18px;translate:-50% 0;
  font:700 7rem/1 var(--jm-font-display);
  background:var(--jm-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  transform:scale(.4);opacity:0;transition:transform .7s cubic-bezier(.34,1.5,.5,1) .15s,opacity .5s var(--jm-ease) .15s;
}
.jm-quote blockquote{margin:0;padding:0;border:0}
.jm-quote blockquote p{
  font-family:var(--jm-font-display);font-size:clamp(1.2rem,2.1vw,1.6rem);font-weight:500;line-height:1.45;
  color:var(--jm-text);margin:0 0 22px;
}
.jm-quote figcaption{font-style:normal;display:inline-block;color:var(--jm-text-2);font-size:var(--jm-fs-small);letter-spacing:.04em;position:relative;padding-top:14px}
.jm-quote figcaption strong{color:var(--jm-text);font-weight:600}
.jm-quote figcaption::before{
  content:"";position:absolute;left:50%;top:0;height:2px;width:56px;translate:-50% 0;border-radius:2px;
  background:linear-gradient(90deg,var(--jm-primary),var(--jm-secondary));transform:scaleX(0);transition:transform .8s var(--jm-ease) .45s;
}
.jm-quote-w.jm-in .jm-quote::before{transform:none;opacity:1}
.jm-quote-w.jm-in .jm-quote figcaption::before{transform:none}
@media (prefers-reduced-motion:reduce){.jm-quote::before{transform:none;opacity:1;transition:none}.jm-quote figcaption::before{transform:none;transition:none}}

/* ---------- Service hero art ---------- */
.jm-hero-split > .elementor-container{align-items:center}
.jm-hero-split .jm-hero-art-col > .elementor-widget-wrap{display:flex;align-items:center;justify-content:center;padding-left:24px !important}
.jm-hero-art{width:100%}
.jm-hero-art .jm-card-art{width:100%;max-width:460px;margin:0 auto;border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.5)}
.jm-hero-art .jm-card-art-ico{width:44px;height:44px;left:20px;bottom:-20px;border-radius:12px}
.jm-hero-art .jm-card-art-ico svg{width:22px;height:22px}
.jm-js .jm-hero-art .jm-card-art{opacity:0;transform:translateY(24px) scale(.96);transition:opacity .7s var(--jm-ease) .35s,transform .9s cubic-bezier(.2,.8,.2,1) .35s}
.jm-js .jm-hero-art.jm-in .jm-card-art{opacity:1;transform:none}
.jm-js .jm-hero-art .jm-mm-scene > *{opacity:0;transform-box:fill-box;transform-origin:left center;transform:scaleX(.2)}
.jm-js .jm-hero-art.jm-in .jm-mm-scene > *{animation:jm-ha-in .55s cubic-bezier(.2,.8,.2,1) forwards}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(1){animation-delay:.7s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(2){animation-delay:.82s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(3){animation-delay:.94s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(4){animation-delay:1.06s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(5){animation-delay:1.18s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(6){animation-delay:1.3s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(7){animation-delay:1.42s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(8){animation-delay:1.54s}
.jm-hero-art.jm-in .jm-mm-scene > :nth-child(n+9){animation-delay:1.66s}
@keyframes jm-ha-in{to{opacity:1;transform:none}}
.jm-js .jm-hero-art .jm-card-art-ico{opacity:0;transform:scale(.5);transition:opacity .4s var(--jm-ease) 1.7s,transform .5s cubic-bezier(.34,1.6,.5,1) 1.7s}
.jm-js .jm-hero-art.jm-in .jm-card-art-ico{opacity:1;transform:none}
@media (max-width:767px){.jm-hero-split .jm-hero-art-col{display:none}}

.jm-hero-art-m{display:none}
@media (max-width:767px){
  .elementor .jm-hero-art-m{display:block;margin:26px 0 34px}
  .jm-hero-art-m .jm-card-art{max-width:420px;margin:0;border-radius:14px;box-shadow:0 20px 44px rgba(0,0,0,.45)}
}
@media (prefers-reduced-motion:reduce){
  .jm-js .jm-hero-art .jm-card-art,.jm-js .jm-hero-art .jm-mm-scene > *,.jm-js .jm-hero-art .jm-card-art-ico{opacity:1;transform:none;animation:none;transition:none}
}

.jm-stats-sec .elementor-inner-section{max-width:980px;margin:0 auto}

/* ---------- Home hero flourish ---------- */
.jm-hero{position:relative}
.jm-heroflow{position:absolute;display:none;z-index:1;pointer-events:none}
.jm-heroflow svg{display:block;width:100%;height:100%;overflow:visible}
.jm-hf-line{fill:none;stroke:var(--jm-primary);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.jm-hf-node rect{fill:var(--jm-surface);stroke:rgb(var(--jm-primary-rgb) / .55);stroke-width:1.5}
.jm-hf-ico{fill:none;stroke:var(--jm-primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.jm-hf-node text{fill:var(--jm-text-2);font:700 10.5px/1 var(--jm-font);letter-spacing:.16em;text-transform:uppercase}
.jm-hf-node{opacity:0;transform:translateY(16px) scale(.55)}
.jm-hf-ring{fill:none;stroke:var(--jm-secondary);stroke-width:1.5;opacity:0}
.jm-hf-go .jm-hf-n1{animation:jm-hf-pop .55s cubic-bezier(.34,1.56,.5,1) .1s forwards}
.jm-hf-go .jm-hf-n2{animation:jm-hf-pop .55s cubic-bezier(.34,1.56,.5,1) .45s forwards}
.jm-hf-go .jm-hf-n3{animation:jm-hf-pop .55s cubic-bezier(.34,1.56,.5,1) .8s forwards}
.jm-hf-go .jm-hf-n4{animation:jm-hf-pop .55s cubic-bezier(.34,1.56,.5,1) 1.15s forwards}

.jm-hf-go .jm-hf-l1{animation:jm-hf-draw .45s cubic-bezier(.45,0,1,1) 1.75s forwards}
.jm-hf-go .jm-hf-l2{animation:jm-hf-draw .4s linear 2.2s forwards}
.jm-hf-go .jm-hf-l3{animation:jm-hf-draw .5s cubic-bezier(0,0,.3,1) 2.6s forwards}
.jm-hf-go .jm-hf-ring{animation:jm-hf-ring 1.2s var(--jm-ease) 3.15s forwards}
@keyframes jm-hf-pop{to{opacity:1;transform:none}}
@keyframes jm-hf-draw{to{stroke-dashoffset:0}}
@keyframes jm-hf-ring{0%{opacity:.85;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}
.jm-hf-done .jm-hf-node{opacity:1;transform:none}
.jm-hf-done .jm-hf-line{stroke-dashoffset:0}

.jm-cont > .jm-sepline{display:none}

@media (min-width:768px){.elementor-section[id]{scroll-margin-top:120px}}

/* ---------- Home case study card ---------- */
.jm-casesec > .jm-sepline,.jm-casesec + .elementor-section > .jm-sepline{display:none}
.jm-case-card > .elementor-container{position:relative;z-index:1}

.elementor .jm-case-side .elementor-widget-button .elementor-button{width:100%;white-space:nowrap;text-align:center;justify-content:center}
.jm-case-side .elementor-widget-button{align-self:stretch !important}
.elementor .jm-case-side .jm-client-logo img{width:100%;max-width:none;padding:26px 44px;box-sizing:border-box}

.jm-case-side > .elementor-widget-wrap{flex-direction:column;flex-wrap:nowrap;align-content:stretch;height:100%}
.jm-case-side .elementor-widget{flex:0 0 auto}
.jm-case-side .elementor-widget-image + .elementor-widget-heading{margin-top:auto}
.jm-case-side .elementor-widget-text-editor + .elementor-widget-button{margin-top:auto !important;padding-top:24px}
.jm-case-side > .elementor-widget-wrap{padding:0 0 0 44px !important;border-left:1px solid var(--jm-border)}
@media (max-width:767px){
  .jm-case-side > .elementor-widget-wrap{padding:28px 0 0 !important;margin-top:28px;border-left:0;border-top:1px solid var(--jm-border)}
}

.elementor .jm-client-logo img{
  width:150px;height:auto;padding:14px 18px;background:#fff;border-radius:12px;
  box-shadow:0 10px 26px rgba(0,0,0,.35);
}
.jm-client-logo{margin-bottom:22px}
.jm-hero .jm-client-logo{margin-top:18px}
.jm-client-logo .elementor-widget-container{text-align:left}

/* ---------- Portfolio post ---------- */
.jm-src-shot{margin:8px 0 40px;max-width:960px}
.elementor .jm-src-shot a{
  display:block;border:1px solid var(--jm-border-strong);border-radius:12px;overflow:hidden;
  background:var(--jm-surface);text-decoration:none;box-shadow:0 18px 44px rgba(0,0,0,.4);
  transition:transform .3s var(--jm-ease),border-color .3s var(--jm-ease);
}
.elementor .jm-src-shot a:hover{transform:translateY(-3px);border-color:rgb(var(--jm-primary-rgb) / .6)}
.jm-src-bar{display:flex;align-items:center;gap:6px;padding:9px 14px;background:var(--jm-surface-2);border-bottom:1px solid var(--jm-border)}
.jm-src-bar i{width:9px;height:9px;border-radius:50%;background:rgb(255 255 255 / .16)}
.jm-src-url{
  margin-left:10px;flex:1;max-width:340px;padding:3px 12px;border-radius:999px;
  background:var(--jm-bg);color:var(--jm-text-2);font-size:.78rem;line-height:1.4;
}
.elementor .jm-src-shot img.jm-src-img{display:block;width:100%;height:auto;border-radius:0}
.jm-src-shot figcaption{margin-top:10px;font-size:var(--jm-fs-small);color:var(--jm-text-2)}
@media (prefers-reduced-motion:reduce){.elementor .jm-src-shot a{transition:none}.elementor .jm-src-shot a:hover{transform:none}}

/* ---------- Logo strip ---------- */
.jm-logostrip .swiper-wrapper{transition-timing-function:linear !important}

.elementor .jm-logostrip .swiper-slide img{width:100%;height:auto;max-height:none;padding:0 6px}
.jm-logostrip .swiper-slide{padding:6px 0}

.jm-logostrip .swiper{
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}

/* ---------- Device showcases ---------- */
.jm-show{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:center;margin:0}
.jm-show-phone{grid-template-columns:320px minmax(0,380px);justify-content:center;gap:72px}
.jm-show-flip .jm-dev{order:2}
.jm-show-phone.jm-show-flip{grid-template-columns:minmax(0,380px) 320px}
.jm-show-bare{display:block}
.jm-dev{position:relative;min-width:0}
.jm-dev-body{
  position:relative;background:linear-gradient(160deg,#20252f,#0d1016 60%);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 34px 70px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08);
}
.jm-dev-screen{position:relative;overflow:hidden;background:#fff}
.elementor .jm-show .jm-dev-screen img{display:block;width:100%;height:auto;max-width:none;margin:0;border:0;border-radius:0;box-shadow:none}

.jm-dev-laptop .jm-dev-body{margin:0 6.5%;border-radius:18px 18px 6px 6px;padding:2.4% 2.4% 2.8%}
.jm-dev-laptop .jm-dev-body::before{content:"";position:absolute;top:1.05%;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:#2c333f;box-shadow:inset 0 0 0 2px #151920}
.jm-dev-laptop .jm-dev-screen{border-radius:4px}
.jm-dev-base{
  position:relative;height:16px;margin:0;border-radius:3px 3px 16px 16px;
  background:linear-gradient(#6b7382,#353b47 45%,#1b1f27);
  box-shadow:0 22px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.25);
}
.jm-dev-base::before{content:"";position:absolute;left:50%;top:0;width:15%;height:6px;transform:translateX(-50%);border-radius:0 0 9px 9px;background:linear-gradient(#262b35,#3a414d)}

.jm-dev-monitor .jm-dev-body{border-radius:14px;padding:1.5% 1.5% 2.6%}
.jm-dev-monitor .jm-dev-screen{border-radius:3px}
.jm-dev-stand{width:16%;height:clamp(34px,5.6vw,72px);margin:0 auto;background:linear-gradient(90deg,#1a1e26,#3b424f 50%,#1a1e26);clip-path:polygon(22% 0,78% 0,92% 100%,8% 100%)}
.jm-dev-foot{width:38%;height:11px;margin:0 auto;border-radius:8px 8px 12px 12px;background:linear-gradient(#4a515e,#1c2029);box-shadow:0 18px 30px rgba(0,0,0,.5)}

.jm-dev-phone{width:100%;max-width:300px;margin:0 auto}
.jm-dev-phone .jm-dev-body{border-radius:46px;padding:11px;background:linear-gradient(160deg,#2a303b,#0d1016 55%);box-shadow:0 34px 70px rgba(0,0,0,.55),inset 0 0 0 2px #1c212a,inset 0 1px 0 rgba(255,255,255,.12)}
.jm-dev-phone .jm-dev-body::before,.jm-dev-phone .jm-dev-body::after{content:"";position:absolute;width:3px;border-radius:2px;background:#2a303b}
.jm-dev-phone .jm-dev-body::before{right:-4px;top:24%;height:11%}
.jm-dev-phone .jm-dev-body::after{left:-4px;top:18%;height:16%}
.jm-dev-phone .jm-dev-screen{border-radius:35px}
.jm-dev-phone .jm-dev-screen::before{content:"";position:absolute;z-index:5;top:9px;left:50%;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;background:#07080b;box-shadow:0 0 0 2px rgba(0,0,0,.25)}

.jm-dev-screen::after{content:"";position:absolute;inset:0;z-index:2;background:rgba(6,9,14,.38);opacity:0;pointer-events:none;transition:opacity .3s var(--jm-ease)}
.jm-dev-screen.has-open::after{opacity:1}

.elementor .jm-show .jm-hs,.elementor .jm-show .jm-hs:hover,.elementor .jm-show .jm-hs:focus{
  position:absolute;z-index:3;width:30px;height:30px;margin:-15px 0 0 -15px;padding:0;
  display:grid;place-items:center;border-radius:50%;cursor:pointer;
  border:2px solid #fff;background:var(--jm-primary-deep);color:#fff;
  font:700 13px/1 var(--jm-font);box-shadow:0 6px 16px rgba(0,0,0,.35);
  transition:transform .25s cubic-bezier(.34,1.5,.5,1),background-color .2s var(--jm-ease),color .2s var(--jm-ease);
}
.elementor .jm-show .jm-hs:hover{transform:scale(1.12)}
.elementor .jm-show .jm-hs:focus{outline:none}
.elementor .jm-show .jm-hs:focus-visible{outline:2px solid var(--jm-secondary);outline-offset:3px}
.jm-hs::before{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid var(--jm-primary);animation:jm-hs-pulse 2.4s cubic-bezier(.2,.7,.3,1) infinite;pointer-events:none}
.jm-hs:nth-of-type(2)::before{animation-delay:.3s}
.jm-hs:nth-of-type(3)::before{animation-delay:.6s}
.jm-hs:nth-of-type(4)::before{animation-delay:.9s}
.jm-hs:nth-of-type(5)::before{animation-delay:1.2s}
.jm-hs:nth-of-type(6)::before{animation-delay:1.5s}
@keyframes jm-hs-pulse{0%{transform:scale(1);opacity:.85}70%,100%{transform:scale(1.9);opacity:0}}
.elementor .jm-show .jm-hs.is-active{background:var(--jm-secondary);color:var(--jm-ink-on-primary);transform:scale(1.14)}
.jm-hs.is-active::before{border-color:var(--jm-secondary)}
.jm-dev-screen.has-open .jm-hs:not(.is-active){opacity:.75}
html:not(.jm-js) .jm-hs,html:not(.jm-js) .jm-show-hint{display:none}

.jm-hs-note{
  position:absolute;z-index:6;left:10px;top:10px;width:min(290px,calc(100% - 20px));box-sizing:border-box;
  padding:14px 16px 15px;border-radius:12px;
  background:rgba(15,18,25,.97);border:1px solid rgb(var(--jm-primary-rgb) / .5);
  box-shadow:0 20px 44px rgba(0,0,0,.5);
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(10px) scale(.94);transform-origin:var(--ox,50%) 0;
  transition:opacity .22s var(--jm-ease),transform .38s cubic-bezier(.2,.8,.2,1),visibility 0s linear .38s;
}
.jm-hs-note.is-above{transform:translateY(-10px) scale(.94);transform-origin:var(--ox,50%) 100%}
.jm-hs-note.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none;
  transition:opacity .22s var(--jm-ease),transform .38s cubic-bezier(.2,.8,.2,1),visibility 0s}
.jm-hs-note strong{display:block;font:600 .95rem/1.3 var(--jm-font-display);color:var(--jm-text)}
.jm-hs-note p{margin:6px 0 0;font-size:.86rem;line-height:1.55;color:var(--jm-text-2)}
.jm-dev-phone .jm-hs-note{padding:12px 14px 13px}
.jm-dev-phone .jm-hs-note p{font-size:.82rem}

.jm-show-side{min-width:0;margin:0;font-style:normal}
.jm-show-label{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--jm-secondary);margin:0 0 8px}
.jm-show-hint{margin:0 0 18px;font-size:var(--jm-fs-small);line-height:1.5;color:var(--jm-text-2)}
.jm-show-menu{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.jm-show-menu li{margin:0}
.elementor .jm-show .jm-show-item,.elementor .jm-show .jm-show-item:hover,.elementor .jm-show .jm-show-item:focus{
  display:flex;align-items:center;gap:12px;width:100%;margin:0;padding:10px 14px;
  border:1px solid var(--jm-border-strong);border-radius:12px;background:var(--jm-surface);color:var(--jm-text);
  font:600 .95rem/1.35 var(--jm-font);text-align:left;white-space:normal;cursor:pointer;
  transition:border-color .2s var(--jm-ease),background-color .2s var(--jm-ease),transform .2s var(--jm-ease);
}
.elementor .jm-show .jm-show-item:hover{border-color:rgb(var(--jm-primary-rgb) / .55);transform:translateX(3px)}
.elementor .jm-show .jm-show-item:focus{outline:none}
.elementor .jm-show .jm-show-item:focus-visible{outline:2px solid var(--jm-primary);outline-offset:2px}
.elementor .jm-show .jm-show-item.is-active{border-color:var(--jm-primary);background:rgb(var(--jm-primary-rgb) / .12)}
.jm-show-n{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:50%;background:rgb(var(--jm-primary-rgb) / .16);color:var(--jm-primary);font-size:.8rem;font-weight:700;transition:background-color .2s var(--jm-ease),color .2s var(--jm-ease)}
.jm-show-item.is-active .jm-show-n{background:var(--jm-secondary);color:var(--jm-ink-on-primary)}

@media (max-width:1024px){
  .jm-show{grid-template-columns:minmax(0,1fr) 260px;gap:36px}
  .jm-show-phone{grid-template-columns:300px minmax(0,1fr);gap:40px}
  .jm-show-phone.jm-show-flip{grid-template-columns:minmax(0,1fr) 300px}
}
@media (max-width:767px){
  .jm-show,.jm-show-phone,.jm-show-phone.jm-show-flip{grid-template-columns:minmax(0,1fr);gap:30px}
  .jm-show-flip .jm-dev{order:0}
  .jm-dev-laptop .jm-dev-body{border-radius:12px 12px 4px 4px}
  .jm-dev-base{height:11px}
  .jm-dev-phone{max-width:280px}
  .jm-show-menu{grid-template-columns:repeat(2,minmax(0,1fr))}
  .elementor .jm-show .jm-show-item,.elementor .jm-show .jm-show-item:hover,.elementor .jm-show .jm-show-item:focus{padding:9px 11px;gap:9px;font-size:.88rem}
  .elementor .jm-show .jm-hs,.elementor .jm-show .jm-hs:hover,.elementor .jm-show .jm-hs:focus{width:23px;height:23px;margin:-11.5px 0 0 -11.5px;font-size:11px;border-width:1.5px}
  .jm-hs-note{padding:11px 13px 12px}
  .jm-hs-note strong{font-size:.88rem}
  .jm-hs-note p{font-size:.8rem;line-height:1.5}
}
@media (max-width:420px){.jm-show-menu{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){
  .jm-hs::before{animation:none;opacity:0}
  .jm-hs-note,.jm-hs-note.is-open,.jm-dev-screen::after,.elementor .jm-show .jm-hs,.elementor .jm-show .jm-show-item{transition:none}
}

/* Case cards: every logo tile the same short, long shape; the logo is contained inside it (2026-09-25) */
.elementor .jm-case-side .jm-client-logo img{height:108px;object-fit:contain}

/* ---------- Case study before/after pairs (Inked and Faded, 2026-09-25) ----------
   Two bare laptop frames side by side; without a gutter their bases meet in the middle. */
.jm-pair > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap{padding-right:28px !important}
.jm-pair > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{padding-left:28px !important}
@media (max-width:767px){
  .jm-pair > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
  .jm-pair > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{padding:0 !important}  /* same specificity as the gutter rules, so it wins */
  .jm-pair > .elementor-container > .elementor-column + .elementor-column{margin-top:36px}
}
