/* Jash's original palette, with the reference site's proportions and motion.
   All page copy, images and buttons remain native Elementor widgets. */
@font-face{font-family:Jost;src:url('../fonts/Jost-Variable.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
.je-site{--head:Jost,Arial,sans-serif}
.je-site h1,.je-site h2,.je-site h3,.je-site .elementor-widget-heading .elementor-heading-title{font-family:var(--head)}
.je-site h2{font-weight:700;text-transform:uppercase;line-height:1.25}
.je-site .elementor-widget-heading:has(h2) .elementor-heading-title{font-size:clamp(28px,3vw,42px);font-weight:700;line-height:1.25}
.je-site .elementor-widget-heading:has(h3) .elementor-heading-title{font-size:25px;line-height:1.3;font-weight:600}
.je-site .eyebrow .elementor-heading-title{font-family:var(--head);font-size:16px;font-weight:600;letter-spacing:.06em}
.je-site .eyebrow .elementor-heading-title:before{display:none}
.je-site .section-pad{padding-block:100px}
.je-site .elementor .e-con.container{max-width:1180px;width:min(1180px,calc(100% - 80px))}
.je-header-shell{top:0;background:var(--surface);transition:box-shadow .3s}
.je-header-shell.je-scrolled{box-shadow:0 8px 24px #091a2912}
.je-site .topbar{display:none}
.je-site .site-header{background:var(--surface);border:0}
.je-site .header-inner{min-height:120px;gap:22px;max-width:1240px!important}
.je-site .je-brand{min-width:235px;gap:16px}
.je-site .je-brand-mark{width:58px;flex-basis:58px}
.je-site .je-brand-name .elementor-heading-title{font-size:24px;line-height:1.15;letter-spacing:.035em}
.je-site .je-brand-subtitle p{font-size:10px;letter-spacing:.1em}
.je-site .je-navigation-widget>.elementor-widget-container{display:flex;align-items:center;gap:24px}
.je-site .je-main-nav{gap:24px;flex:1}
.je-site .nav-link{text-transform:uppercase;font-family:var(--head);font-size:14px;font-weight:600;padding-block:10px;position:relative}
.je-site .nav-link:after{content:'';position:absolute;left:0;right:0;bottom:3px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.je-site .nav-link:hover:after,.je-site .nav-link.active:after,.je-site .nav-link:focus-visible:after{transform:scaleX(1)}
.je-site .dropdown{top:calc(100% + 14px);border-top:2px solid var(--blue)}
.je-site .dropdown a{transition:background .3s,padding .3s}
.je-site .dropdown a:hover{padding-left:22px;background:var(--surface)}
.je-site .header-quote{display:none}
.je-panel-toggle{display:none;width:56px;height:56px;flex-shrink:0;background:transparent;border:0;padding:14px;color:var(--ink)}
.je-panel-toggle span{display:block;height:1px;background:currentColor;width:28px;margin-block:7px;transition:width .3s}
.je-panel-toggle:hover span:nth-child(2){width:19px}
.je-info-panel{display:none!important}
.je-site.je-panels-ready .je-info-panel{display:flex!important;position:fixed!important;inset:0 0 0 auto;width:min(440px,100%)!important;height:100dvh;max-height:100dvh;overflow:auto;z-index:1002;background:var(--deep);color:white;padding:90px 48px 44px;gap:25px;transform:translateX(105%);visibility:hidden;transition:transform .55s ease,visibility .55s}
.je-site.je-panels-ready .je-info-panel h2,.je-site.je-panels-ready .je-info-panel h3{color:white}
.je-site.je-panels-ready .je-info-panel h2{font-size:30px}
.je-site.je-panels-ready .je-info-panel h3{font-size:23px}
.je-site.je-panels-ready .je-info-panel a{color:#80c6f3}
.je-site .je-info-panel.je-panel-open{transform:translateX(0);visibility:visible}
.je-panel-close{position:absolute;right:24px;top:24px;width:40px;height:40px;border:1px solid #ffffff40;background:transparent;color:white;font-size:28px;line-height:1}
.je-panel-portal{position:fixed;inset:0;z-index:1002;pointer-events:none}
.je-panel-portal .je-info-panel{pointer-events:auto}
.je-panel-backdrop{position:fixed;inset:0;z-index:1001;background:#091a2980;border:0;visibility:hidden;opacity:0;transition:opacity .4s,visibility .4s}
.je-panel-backdrop.je-panel-open{visibility:visible;opacity:1}
body.je-panel-is-open{overflow:hidden}
/* Hero: crossfade, six-second background zoom, delayed horizontal text reveal. */
.je-site .je-hero-carousel{position:relative;overflow:hidden;background:var(--deep);margin-left:100px;width:calc(100% - 100px);padding:0!important}
.je-site .je-hero-carousel>.home-hero{width:100%;min-height:650px;overflow:hidden}
.je-site .je-hero-carousel:not(.je-carousel-ready)>.home-hero~.home-hero{display:none}
.je-site .je-hero-carousel.je-carousel-ready{display:grid}
.je-site .je-hero-carousel.je-carousel-ready>.home-hero{grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease,visibility .5s ease}
.je-site .je-hero-carousel.je-carousel-ready>.home-hero.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1}
.je-site .home-hero{background-position:center}
.je-site .home-hero:after{background:linear-gradient(90deg,#091a29ed 0%,#091a29b0 45%,#091a2955 100%);z-index:0}
.je-site .home-hero.je-has-image{background-image:none!important}
.je-hero-image{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;pointer-events:none;transform:scale(1)}
.je-motion-enabled .je-hero-carousel.je-playing .home-hero.is-active>.je-hero-image{animation:je-hero-zoom 6s linear forwards}
.je-site .hero-content:not(.je-v14-native){position:relative;z-index:2;max-width:1180px;width:calc(100% - 80px)!important;padding-block:90px 105px!important}
.je-site .hero-content .elementor-widget-heading:has(h1),.je-site .hero-content .elementor-widget-heading:has(h2){max-width:730px}
.je-site .hero-content:not(.je-v14-native) h1,.je-site .hero-content:not(.je-v14-native) h2{font-size:42px;line-height:1.5;text-transform:uppercase;font-weight:700;letter-spacing:0;color:white}
.je-site .hero-content:not(.je-v14-native) h1 span{color:inherit}
.je-site .hero-content .elementor-widget-text-editor{max-width:640px;font-size:16px;line-height:1.75}
.je-site .hero-content .eyebrow{color:#80c6f3}
.je-site .hero-content .actions{margin-top:24px;gap:16px}
.je-carousel-controls{position:absolute;z-index:3;bottom:24px;right:40px;display:flex;gap:8px;align-items:center}
.je-carousel-controls button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff55;color:white;background:#091a2955;font-size:17px;line-height:1}
.je-carousel-controls button:hover,.je-carousel-controls button:focus-visible{background:var(--blue)}
.je-carousel-controls .je-slide-dot{width:9px;height:9px;border-radius:50%;padding:0;background:transparent;border-color:white}
.je-carousel-controls .je-slide-dot[aria-pressed=true]{background:white}
.je-carousel-controls .je-slide-dots{display:flex;gap:10px;padding-inline:12px}
.je-site .specialism-strip{background:var(--navy)}
.je-site .specialism-strip .elementor-widget{font-family:var(--head);font-size:15px;color:#c9d7e2!important}
/* Circular fill and vertically rolling label. The duplicate is aria-hidden. */
.je-site .je-button .elementor-button,.je-site .forminator-button-submit{position:relative;overflow:hidden;font-family:var(--head);font-weight:600;letter-spacing:2px;text-transform:uppercase;font-size:13px;line-height:30px;border:1px solid var(--blue);padding:14px 32px;border-radius:0;isolation:isolate;box-shadow:none!important;transform:none!important;transition:background .3s,color .3s}
.je-site .home-hero:not(.je-v14-hero) .je-button .elementor-button{background:transparent;color:white;border-color:var(--blue)}
.je-site .je-button .elementor-button:before,.je-site .forminator-button-submit:before{content:'';position:absolute;z-index:-1;width:200%;height:200%;border-radius:50%;left:50%;top:-210%;transform:translateX(-50%);background:var(--blue-dark);transition:top .8s ease}
.je-site .home-hero:not(.je-v14-hero) .je-button .elementor-button:before{background:var(--blue)}
.je-site .je-button .elementor-button:hover:before,.je-site .je-button .elementor-button:focus-visible:before,.je-site .forminator-button-submit:hover:before{top:-40%}
.je-site .je-button .elementor-button:hover,.je-site .je-button .elementor-button:focus-visible{color:white!important;background:var(--blue)!important;text-decoration:none}
.je-site .elementor-button-text.je-label-roll{position:relative;display:block;overflow:hidden;line-height:30px}
.je-button-label{display:block;transition:transform .3s ease}
.je-button-label-clone{position:absolute;inset:100% 0 auto;display:block;transition:transform .3s ease}
.je-button a:hover .je-button-label,.je-button a:focus-visible .je-button-label{transform:translateY(-150%)}
.je-button a:hover .je-button-label-clone,.je-button a:focus-visible .je-button-label-clone{transform:translateY(-100%)}
.je-site .product-card{border:0;background:transparent;box-shadow:none!important;transform:none!important}
.je-site .product-card .product-copy{padding:24px 0}
.je-site .product-card .product-image img{height:350px;filter:grayscale(.85);opacity:.85;transition:filter .5s,opacity .5s,transform .5s}
.je-site .product-card:hover .product-image img,.je-site .product-card:focus-within .product-image img{filter:grayscale(0);opacity:1;transform:scale(1.015)}
.je-site .product-number{background:var(--blue);font-family:var(--head)}
.je-site .product-copy h3 a{color:var(--blue)}
.je-site .je-services-section{background:white}
.je-site .je-service-carousel{display:flex!important;flex-direction:var(--flex-direction,row)!important;flex-wrap:nowrap!important;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;overscroll-behavior-x:contain;padding-block:10px 22px}
.je-site .je-service-card{flex:0 0 calc((100% - 48px)/3)!important;width:calc((100% - 48px)/3)!important;min-width:0;border:2px solid var(--surface);padding:42px 28px;position:relative;scroll-snap-align:start;overflow:hidden;gap:20px;transition:border-color .5s}
.je-site .je-service-card:hover,.je-site .je-service-card:focus-within{border-color:var(--blue)}
.je-site .je-card-number{position:absolute;right:20px;top:8px;opacity:.1;pointer-events:none;width:auto}
.je-site .je-card-number .elementor-heading-title{font-size:100px!important;line-height:1}
.je-site .je-service-icon{width:64px;align-self:flex-start}
.je-site .je-service-icon img{width:64px;height:64px;transition:transform .5s ease}
.je-site .je-service-card:hover .je-service-icon img{transform:scale(-1) rotate(180deg)}
.je-site .je-service-card h3{min-height:65px}
.je-site .je-service-card .elementor-widget-text-editor{font-size:15px;color:var(--muted);line-height:1.75;flex:1}
.je-service-controls{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
.je-service-controls button{width:38px;height:38px;line-height:1;border:1px solid var(--line);background:white;color:var(--blue)}
.je-service-controls button:hover{background:var(--blue);color:white}
.je-service-controls[hidden]{display:none}
.je-site .je-facts-band{background:var(--navy);color:white;padding:50px 0}
.je-site .je-facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;text-align:center}
.je-site .je-count .elementor-heading-title{font-size:58px;font-weight:600;line-height:1.25;color:white;font-variant-numeric:tabular-nums}
.je-site .je-fact p{text-transform:uppercase;font-family:var(--head);letter-spacing:2px;font-size:13px;color:#bdcddb}
.je-site .je-home-contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px}
.je-site .je-home-contact-copy{gap:24px}
.je-site .je-home-contact-copy .elementor-widget-text-editor{color:var(--muted)}
.je-site .site-footer h3{font-size:20px;text-transform:uppercase}
/* Logo is drawn in 3.6 s, outlined letters rotate in sequence every 4 s. */
.site-preloader{background:var(--navy);transition:opacity .5s ease,visibility .5s ease}
.preloader-lockup{width:min(430px,calc(100% - 40px));padding:20px;display:flex;flex-direction:column;align-items:center}
.je-outline-logo{width:180px;height:180px;margin-bottom:24px;overflow:visible}
.je-outline-logo path{stroke:#fff;stroke-width:2;stroke-dasharray:100;stroke-dashoffset:100;animation:je-logo-draw 3.6s ease-in infinite}
.je-custom-loader-logo{min-height:160px;display:grid;place-items:center;margin-bottom:25px;animation:je-logo-glow 3.6s ease infinite}
.je-loader-letters{display:flex;gap:15px;font-family:Jost,Arial,sans-serif;font-weight:500;font-size:64px;line-height:1.15;letter-spacing:5px}
.je-loader-letters span{position:relative;color:transparent;-webkit-text-stroke:1px #ffffff4d}
.je-loader-letters span:before{content:attr(data-letter);position:absolute;inset:0;color:#fff;-webkit-text-stroke:0;animation:je-loader-letter 4s infinite;animation-delay:calc(var(--je-letter-index)*.2s)}
.je-loader-subtitle{font-family:var(--body);color:#bdcddb;font-size:13px;letter-spacing:8px;margin:18px 0 0 8px}
/* Pointer ring follows the pointer; native pointer remains available. */
.je-cursor{display:none;position:fixed;left:0;top:0;z-index:1100;width:32px;height:32px;pointer-events:none;will-change:transform}
.je-cursor.je-cursor-visible{display:block}
.je-cursor-ring{position:absolute;inset:0;border-radius:50%;animation:je-cursor-pulse .2s infinite alternate}
.je-cursor-ring:after{content:'';position:absolute;width:40px;height:40px;border:12px solid var(--blue);border-radius:50%;left:-4px;top:-4px;animation:je-cursor-inner .5s infinite alternate}
.je-cursor.je-cursor-click .je-cursor-ring{border:1px solid var(--blue);animation:je-cursor-click .5s forwards}
.je-cursor.je-cursor-link .je-cursor-ring:after{border-color:var(--blue)}
.je-to-top{position:fixed;right:30px;bottom:30px;z-index:35;width:42px;height:42px;border:2px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--blue);background:white;font-size:26px;line-height:1;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .3s,visibility .3s}
.je-to-top.je-is-visible{opacity:1;visibility:visible;transform:translateY(0)}
@keyframes je-hero-zoom{to{transform:scale(1.15)}}
@keyframes je-logo-draw{0%{stroke-dashoffset:100;stroke-opacity:1}83.3%,89%{stroke-dashoffset:0;stroke-opacity:1}100%{stroke-dashoffset:0;stroke-opacity:0}}
@keyframes je-loader-letter{0%,75%,100%{opacity:0;transform:rotateY(-90deg)}25%,50%{opacity:1;transform:rotateY(0)}}
@keyframes je-logo-glow{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes je-cursor-pulse{from{transform:scale(1)}to{transform:scale(.7)}}
@keyframes je-cursor-inner{from{transform:scale(1)}to{transform:scale(.4)}}
@keyframes je-cursor-click{0%{transform:scale(1);opacity:1}50%{transform:scale(3)}100%{transform:scale(1);opacity:0}}
@media(min-width:1221px){.je-site .je-panel-toggle{display:block}.je-site .menu-toggle{display:none}}
@media(max-width:1220px){
 .je-site .header-inner{min-height:90px}
 .je-site .je-navigation-widget{flex:0 0 auto;margin-left:auto}
 .je-site .menu-toggle{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:12px;font-size:20px}
 .je-site .je-main-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:20px 40px;flex-direction:column;align-items:stretch;background:white;max-height:calc(100dvh - 90px);overflow:auto;box-shadow:0 12px 22px #0e233612;gap:0}
 .je-site .je-main-nav.is-open{display:flex;animation:je-menu-enter .35s ease}
 .je-site .je-main-nav .nav-group{flex-wrap:wrap;border-bottom:1px solid var(--line);padding:10px 0}
 .je-site .je-main-nav .nav-link{flex:1}
 .je-site .dropdown-toggle{padding:8px 16px}
 .je-site .je-main-nav .dropdown{position:static;flex:0 0 100%;width:100%;margin-top:12px;box-shadow:none;border-top:0;background:var(--surface)}
 .je-site .je-main-nav .has-children:hover>.dropdown{display:none}
 .je-site .je-main-nav .has-children.open>.dropdown{display:block!important}
 .je-site .je-main-nav .dropdown:before{display:none}
 .je-site .je-hero-carousel{margin-left:0;width:100%}
 .je-site .je-home-contact-grid{gap:40px;grid-template-columns:1fr 1.15fr}
}
@keyframes je-menu-enter{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:767px){
 .je-site .elementor .e-con.container{width:calc(100% - 40px)}
 .je-site .section-pad{padding-block:60px}
 .je-site .header-inner{min-height:82px}
 .je-site .je-brand{min-width:0;gap:10px}
 .je-site .je-brand-mark{width:44px;flex-basis:44px}
 .je-site .je-brand-name .elementor-heading-title{font-size:20px;letter-spacing:0}
 .je-site .je-brand-subtitle p{font-size:8px;letter-spacing:.05em}
 .je-site .je-main-nav{padding:14px 20px}
 .je-site .je-hero-carousel>.home-hero{min-height:620px}
 .je-site .hero-content:not(.je-v14-native){width:calc(100% - 40px)!important;padding:60px 0 95px!important}
 .je-site .hero-content:not(.je-v14-native) h1,.je-site .hero-content:not(.je-v14-native) h2{font-size:30px;line-height:1.4}
 .je-site .hero-content .elementor-widget-text-editor{font-size:15px;line-height:1.6}
 .je-site .hero-content .actions{margin-top:16px}
 .je-site .je-button .elementor-button{padding:10px 20px;font-size:12px;letter-spacing:1.2px}
 .je-carousel-controls{right:20px;bottom:22px}
 .je-site .product-card .product-image img{height:260px}
 .je-site .je-service-card{flex-basis:85%!important;width:85%!important;padding:32px 24px}
 .je-site .je-home-contact-grid{grid-template-columns:1fr;gap:35px}
 .je-site .je-facts-grid{gap:12px}
 .je-site .je-count .elementor-heading-title{font-size:42px}
 .je-site .je-fact p{font-size:11px;letter-spacing:.5px}
 .je-loader-letters{font-size:44px;gap:10px;letter-spacing:2px}
 .je-outline-logo{width:150px;height:150px}
 .je-to-top{right:16px;bottom:16px}
}
@media(hover:none),(pointer:coarse){.je-cursor{display:none!important}}
@media(prefers-reduced-motion:reduce){
 .je-site *, .je-site *:before,.je-site *:after,.site-preloader *,.site-preloader *:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .je-cursor{display:none!important}
 .je-outline-logo path{stroke-dashoffset:0}
 .je-loader-letters span{color:white;-webkit-text-stroke:0}
 .je-site .je-button-label,.je-site .je-button-label-clone,.je-site .je-service-icon img,.je-site .product-card img{transform:none!important}
 .je-site .je-button-label-clone{display:none}
}
.je-site:not(.je-motion-enabled) *,.je-site:not(.je-motion-enabled) *:before,.je-site:not(.je-motion-enabled) *:after{animation:none!important;transition:none!important}

/* Show every hero slide in its editor; expand the drawer only in its own header document. */
.elementor-editor-active .je-hero-carousel{display:flex!important;flex-direction:var(--flex-direction,column)}
.elementor-editor-active .je-hero-carousel>.home-hero{display:flex!important;position:relative!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.elementor-editor-active.je-editing-header .je-info-panel{display:flex!important;position:relative!important;inset:auto!important;width:100%!important;height:auto!important;transform:none!important;visibility:visible!important;opacity:1!important;background:var(--deep);color:white;padding:48px;gap:24px}
.elementor-editor-active.je-editing-header .je-info-panel h2,.elementor-editor-active.je-editing-header .je-info-panel h3{color:white}
.elementor-editor-active:not(.je-editing-header) .je-info-panel{display:none!important;visibility:hidden!important;pointer-events:none!important}

.je-site .je-button .elementor-button{background-color:var(--blue);color:white}
.je-site .je-button-outline .elementor-button{background-color:transparent;color:var(--ink)}

.je-site .je-info-panel .elementor-button{color:white!important}
.je-site:not(.je-motion-enabled) .je-button-label,.je-site:not(.je-motion-enabled) .je-service-icon img,.je-site:not(.je-motion-enabled) .product-card img{transform:none!important}
.je-site:not(.je-motion-enabled) .je-button-label-clone{display:none}
.je-site:not(.je-motion-enabled) .je-outline-logo path{stroke-dashoffset:0}
.je-site:not(.je-motion-enabled) .je-loader-letters span{color:white;-webkit-text-stroke:0}
