880 lines
50 KiB
JavaScript
880 lines
50 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5074,e=>{"use strict";var t=e.i(43476),a=e.i(71645);let n=[[[.04,.2],[.1,.12],[.18,.1],[.24,.13],[.29,.12],[.3,.18],[.27,.22],[.26,.28],[.22,.3],[.2,.38],[.17,.44],[.15,.4],[.16,.32],[.12,.3],[.09,.26],[.06,.24]],[[.21,.5],[.27,.48],[.31,.52],[.31,.6],[.29,.66],[.27,.74],[.24,.82],[.22,.8],[.22,.7],[.205,.62],[.2,.55]],[[.45,.16],[.5,.13],[.55,.15],[.57,.19],[.55,.24],[.5,.27],[.47,.25],[.455,.2]],[[.46,.34],[.53,.32],[.58,.36],[.585,.44],[.56,.52],[.53,.6],[.5,.66],[.47,.62],[.46,.52],[.45,.44],[.45,.38]],[[.56,.14],[.64,.1],[.74,.1],[.84,.14],[.9,.2],[.92,.26],[.86,.3],[.8,.3],[.74,.34],[.7,.34],[.66,.3],[.6,.3],[.575,.24],[.565,.18]],[[.81,.66],[.87,.64],[.92,.68],[.92,.74],[.86,.77],[.81,.74],[.8,.7]]],i=[[.115,.3],[.265,.255],[.285,.66],[.475,.185],[.605,.345],[.655,.4],[.745,.5],[.815,.275],[.865,.715]],r=[[0,1],[1,3],[3,4],[4,5],[5,6],[6,7],[7,8],[1,2],[3,7],[0,7]];e.s(["default",0,function({accent:e="#ef4444"}){let o=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let[t,a,d]=function(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return[239,68,68];let a=parseInt(t[1],16);return[a>>16&255,a>>8&255,255&a]}(e),s=e=>`rgba(${t},${a},${d},${e})`,l=`rgb(${t},${a},${d})`,p=o.current,c=p?.parentElement;if(!p||!c)return;let m=p.getContext("2d");if(!m)return;let h=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches,g=0,x=0,v=[],f=0,b=0,_=()=>{let e=c.getBoundingClientRect();g=Math.max(1,e.width),x=Math.max(1,e.height);let t=Math.min(window.devicePixelRatio||1,2);p.width=Math.round(g*t),p.height=Math.round(x*t),p.style.width=g+"px",p.style.height=x+"px",m.setTransform(t,0,0,t,0,0),(()=>{v=[];let e=Math.max(11,Math.min(17,g/70));for(let t=e/2;t<g;t+=e)for(let a=e/2;a<x;a+=e){let e=t/g,i=a/x;for(let r of n)if(function(e,t,a){let n=!1;for(let i=0,r=a.length-1;i<a.length;r=i++){let o=a[i][0],d=a[i][1],s=a[r][0],l=a[r][1];d>t!=l>t&&e<(s-o)*(t-d)/(l-d)+o&&(n=!n)}return n}(e,i,r)){v.push({x:t,y:a});break}}})()},u=(e,t)=>({x:(e.x+t.x)/2,y:(e.y+t.y)/2-.28*Math.hypot(t.x-e.x,t.y-e.y)}),w=(e,t,a,n)=>{let i=1-n;return{x:i*i*e.x+2*i*n*t.x+n*n*a.x,y:i*i*e.y+2*i*n*t.y+n*n*a.y}},y=e=>{for(let e of(m.clearRect(0,0,g,x),m.fillStyle="rgba(120,122,130,0.55)",v))m.beginPath(),m.arc(e.x,e.y,1.15,0,2*Math.PI),m.fill();let t=i.map(([e,t])=>({x:e*g,y:t*x}));for(let[e,a]of(m.save(),m.setLineDash([4,7]),m.lineWidth=1,m.strokeStyle=s(.13),r)){let n=u(t[e],t[a]);m.beginPath(),m.moveTo(t[e].x,t[e].y),m.quadraticCurveTo(n.x,n.y,t[a].x,t[a].y),m.stroke()}m.restore(),m.save();for(let a=0;a<r.length;a++){let[n,i]=r[a],o=u(t[n],t[i]),d=((.11*e+.137*a)%1+1)%1,p=w(t[n],o,t[i],d),c=Math.max(0,d-.04),h=w(t[n],o,t[i],c),g=m.createLinearGradient(h.x,h.y,p.x,p.y);g.addColorStop(0,s(0)),g.addColorStop(1,s(.5)),m.strokeStyle=g,m.lineWidth=2,m.beginPath(),m.moveTo(h.x,h.y),m.lineTo(p.x,p.y),m.stroke(),m.shadowColor=l,m.shadowBlur=12,m.fillStyle=l,m.beginPath(),m.arc(p.x,p.y,2.6,0,2*Math.PI),m.fill(),m.shadowBlur=0}for(let a of(m.restore(),t)){for(let t=0;t<2;t++){let n=((e+2.6*t/2)%2.6+2.6)%2.6/2.6,i=3+24*n,r=(1-n)*.45;m.beginPath(),m.strokeStyle=s(r),m.lineWidth=1.5,m.arc(a.x,a.y,i,0,2*Math.PI),m.stroke()}m.fillStyle=l,m.shadowColor=l,m.shadowBlur=8,m.beginPath(),m.arc(a.x,a.y,2.6,0,2*Math.PI),m.fill(),m.shadowBlur=0}},k=e=>{b||(b=e),y((e-b)/1e3),f=requestAnimationFrame(k)};_(),h?y(0):f=requestAnimationFrame(k);let j=new ResizeObserver(()=>{_(),h&&y(0)});return j.observe(c),()=>{cancelAnimationFrame(f),j.disconnect()}},[e]),(0,t.jsx)("canvas",{ref:o,className:"ind__map","aria-hidden":"true"})}])},14224,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(89970),i=e.i(83495),r=e.i(5074);n.default.registerPlugin(i.ScrollTrigger);let o=[{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#f59e0b",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})}),title:"Battery-Aware Routing",desc:"Battery level, health, and degradation are first-class inputs to route optimization — not afterthoughts."},{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#94a3b8",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M18 10h-1.28A6 6 0 0 0 12 5V3M12 5V3M6 10h1.28A6 6 0 0 0 12 5M12 18v2M12 18v2M8 10v6a4 4 0 0 0 8 0v-6"})}),title:"Charging Integration",desc:"Seamlessly integrate charging stops without compromising arrival windows or SLA commitments."},{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#ef4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"m8 3 4 8 5-5 5 15H2L8 3z"})}),title:"Energy-Optimized Paths",desc:"Factor in elevation, speed limits, payload weight, and live weather for maximum range efficiency."},{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#ef4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})}),title:"Predictable Operations",desc:"EVs become predictable assets, not operational risks. Full visibility from depot to doorstep."}],d=[{value:"100%",label:"ELECTRIC FLEET"},{value:"-40%",label:"COST / MILE"}],s=[{value:99.9,decimals:1,suffix:"%",label:"SLA Compliance"},{value:42,suffix:"%",label:"Distance Saved"},{value:37,suffix:"%",label:"Fewer Vehicles"},{value:45,suffix:"ms",label:"Dispatch Latency"}];function l({value:e,decimals:n=0,suffix:i="",duration:r=1700,className:o}){let[d,s]=(0,a.useState)(0),p=(0,a.useRef)(null),c=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{let t=p.current;if(!t)return;if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return void requestAnimationFrame(()=>s(e));let a=new IntersectionObserver(t=>{for(let n of t)if(n.isIntersecting&&!c.current){c.current=!0;let t=performance.now(),n=e=>1-Math.pow(1-e,3),i=a=>{let o=Math.min(1,(a-t)/r);s(e*n(o)),o<1?requestAnimationFrame(i):s(e)};requestAnimationFrame(i),a.disconnect()}},{threshold:.2});return a.observe(t),()=>a.disconnect()},[e,r]),(0,t.jsxs)("b",{ref:p,className:o,children:[d.toFixed(n),i]})}function p({accent:e}){return(0,t.jsx)("div",{className:"evnd__map","aria-hidden":"true",children:(0,t.jsx)(r.default,{accent:e})})}function c({metrics:e,features:a,heading:n,theme:i,sysLabel:r="AI ENGINE"}){let o=i?{"--ca":i.accent,"--ca2":i.accent2,"--cg":i.glow}:void 0;return(0,t.jsxs)("div",{className:"evnd__dash",style:o,children:[n&&(0,t.jsxs)("div",{className:"evnd__dash-head",children:[(0,t.jsxs)("span",{className:"evnd__dash-live",children:[(0,t.jsx)("span",{className:"evnd__dash-livedot"}),n]}),(0,t.jsx)("span",{className:"evnd__dash-sys",children:r})]}),(0,t.jsx)("div",{className:"evnd__dash-kpis",children:e.map(e=>(0,t.jsxs)("div",{className:"evnd__kpi",children:[e.text?(0,t.jsx)("b",{className:"evnd__kpi-val evnd__kpi-val--text",children:e.text}):(0,t.jsx)(l,{value:e.value,decimals:e.decimals,suffix:e.suffix,className:"evnd__kpi-val"}),(0,t.jsx)("span",{className:"evnd__kpi-label",children:e.label})]},e.label))}),(0,t.jsx)("div",{className:"evnd__dash-feats",children:a.map(e=>(0,t.jsxs)("div",{className:"evnd__dfeat",children:[(0,t.jsx)("span",{className:"evnd__dfeat-ico","aria-hidden":"true",children:e.icon}),(0,t.jsxs)("div",{className:"evnd__dfeat-body",children:[(0,t.jsx)("span",{className:"evnd__dfeat-title",children:e.title}),(0,t.jsx)("p",{className:"evnd__dfeat-desc",children:e.desc})]})]},e.title))})]})}function m({src:e,ariaLabel:n}){let i=(0,a.useRef)(null),[r,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=i.current;if(!e||r)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(o(!0),t.disconnect())},{rootMargin:"1200px 0px"});return t.observe(e),()=>t.disconnect()},[r]),(0,a.useEffect)(()=>{r&&i.current?.load()},[r]),(0,t.jsx)("video",{ref:i,className:"evnd__video",autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"none","aria-label":n,src:r?e:void 0})}e.s(["default",0,function({bannerImage:e="/images/ev.webp",cardNumber:r="",cardTitle:h="EV Logistics",cardSubtitle:g="Cleaner miles, lower costs",eyebrow:x="/ EV-Native Design /",titleLead:v="BUILT FOR ELECTRIC. ",titleAccent:f="NOT ADAPTED.",features:b=o,image:_="/images/ev.webp",imageAlt:u="DoorMile electric fleet van",badges:w=d,stats:y=s,gapTop:k=!1,gapBottom:j=!1,ariaLabel:N,mediaSlot:z,metrics:T,barStats:I,cardsHeading:M,cardsTheme:P,sysLabel:S,mediaClassName:E}){let L=(0,a.useRef)(null),F=!!T&&T.length>0,C=F?I:y,R=_.endsWith(".mp4"),W=F&&P?{"--ca":P.accent,"--ca2":P.accent2,"--cg":P.glow}:void 0;(0,a.useEffect)(()=>{let e=L.current;if(!e)return;let t=i.ScrollTrigger.create({trigger:e,start:"top bottom",end:"bottom top",scrub:!0,onUpdate:()=>{if(window.innerWidth>=1021){let t=window.scrollY,a=e.getBoundingClientRect().top+t;n.default.set(e,{backgroundPosition:`center ${.3*(t-a)}px`})}else n.default.set(e,{backgroundPosition:""})}});return()=>t?.kill()},[]);let A="elementor-element elementor-element-bbc6760 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent"+(F?" evnd-workflow-shell":"")+(k?" evnd-gap-top":"")+(j?" evnd-gap-bottom":"");return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:`
|
||
/* ============================================================
|
||
EV-Native Design — redesigned section
|
||
bg #080808 \xb7 red #ef4444 \xb7 Manrope
|
||
============================================================ */
|
||
|
||
.evnd, .evnd * { font-family: "Manrope", Sans-serif !important; }
|
||
|
||
/* External gap helpers — keep stacked workflow sections on one rhythm
|
||
(Desktop 40 \xb7 Tablet 32 \xb7 Mobile 24). Single-sided per boundary. */
|
||
.evnd-gap-top { margin-top: 40px !important; }
|
||
.evnd-gap-bottom { margin-bottom: 40px !important; }
|
||
|
||
.evnd {
|
||
position: relative;
|
||
isolation: isolate;
|
||
overflow: hidden;
|
||
background: #080808;
|
||
/* flat top so it connects seamlessly to the banner above; rounded
|
||
bottom only, and no top margin so there is no white gap */
|
||
border-radius: 0 0 clamp(16px, 2vw, 28px) clamp(16px, 2vw, 28px);
|
||
margin: 0 0 clamp(28px, 5vw, 64px);
|
||
padding: 64px 48px clamp(48px, 6vw, 80px);
|
||
}
|
||
/* ---- Tighten the space below the KPI bar (WF1/WF2 only) ----
|
||
The base section reserves a tall padding-bottom (up to 80px) plus a
|
||
margin-bottom (up to 64px) that renders as a #0d0d0d band inside the
|
||
rounded container — together ~144px of empty space after the KPI bar.
|
||
The workflows end at the bar, so trim both: the bar now sits close to
|
||
the section's bottom edge, and the outer .evnd-gap-bottom (40px) still
|
||
provides clean separation to the next section. Scoped to .evnd--cards
|
||
(specificity beats the base + responsive .evnd rules at every
|
||
breakpoint) so the homepage EV section keeps its original spacing. */
|
||
.evnd.evnd--cards {
|
||
padding-bottom: clamp(28px, 3vw, 40px);
|
||
margin-bottom: clamp(8px, 1vw, 14px);
|
||
}
|
||
/* ---- Tighten the banner → black-section transition (≥768px) ----
|
||
From 768px up the floating title card overlaps with a FIXED budget
|
||
(margin-top:-298px into the banner, -70px into this section). The
|
||
workflow cards carry longer subtitles than the homepage card, so they
|
||
run taller than that budget and the overflow shows as a dark #0d0d0d
|
||
spacer between the hero image and this black section. Pull the section
|
||
up under the banner to swallow that strip — the card (z-index 2) stays
|
||
on top, so the overlapping card design is preserved. The flat top tucks
|
||
cleanly behind the banner. Not applied ≤767px, where the card sits
|
||
inline (no overlap) and no spacer exists — so mobile is unchanged. */
|
||
@media (min-width: 768px) {
|
||
.evnd { margin-top: -60px; }
|
||
}
|
||
/* ---- Floating card sizing: content-driven, not container-driven ----
|
||
The exported Elementor card reserves a lot of vertical space that the
|
||
short title + subtitle don't fill: the red text block (3b61435) carried
|
||
64px/73px top/bottom padding and the empty white footer strip (5aea22e)
|
||
a 70px min-height. Trim both so the card height tracks the text, while
|
||
keeping the two-tone red/white design, the 25px corner radius, and the
|
||
typography untouched. These rules live in the (body) inline <style> so
|
||
they override site.css at equal specificity; values tighten on mobile.
|
||
Applies to every workflow card (shared element IDs) for consistency. */
|
||
.elementor-element.elementor-element-3b61435 {
|
||
--padding-top: 46px;
|
||
--padding-bottom: 38px;
|
||
}
|
||
/* Fix missing font-size for card title that caused it to inherit 80px h2 */
|
||
.elementor-element.elementor-element-239afbb .logico-title {
|
||
font-size: clamp(28px, 3.5vw, 40px) !important;
|
||
}
|
||
.elementor-element.elementor-element-5aea22e {
|
||
--min-height: 38px;
|
||
--padding-top: 14px;
|
||
--padding-bottom: 14px;
|
||
}
|
||
@media (max-width: 1020px) {
|
||
.elementor-element.elementor-element-3b61435 {
|
||
--padding-top: 34px;
|
||
--padding-bottom: 28px;
|
||
}
|
||
.elementor-element.elementor-element-5aea22e {
|
||
--min-height: 32px;
|
||
--padding-top: 12px;
|
||
--padding-bottom: 12px;
|
||
}
|
||
}
|
||
@media (max-width: 660px) {
|
||
/* Mobile: trim more aggressively so there is no large empty area
|
||
below the paragraph. */
|
||
.elementor-element.elementor-element-3b61435 {
|
||
--padding-top: 26px;
|
||
--padding-bottom: 22px;
|
||
}
|
||
.elementor-element.elementor-element-5aea22e {
|
||
--min-height: 24px;
|
||
--padding-top: 10px;
|
||
--padding-bottom: 10px;
|
||
}
|
||
}
|
||
/* subtle diagonal light band for depth (matches reference) */
|
||
.evnd::before {
|
||
content: '';
|
||
position: absolute;
|
||
inset: 0;
|
||
z-index: 0;
|
||
pointer-events: none;
|
||
background: linear-gradient(120deg, transparent 28%, rgba(255,255,255,0.015) 50%, transparent 72%);
|
||
}
|
||
.evnd__inner { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; }
|
||
|
||
/* ---- MAIN GRID ---- */
|
||
.evnd__grid {
|
||
display: grid;
|
||
grid-template-columns: 1.15fr 1fr;
|
||
gap: clamp(32px, 4vw, 56px);
|
||
align-items: center;
|
||
}
|
||
/* Split-screen workflow layout: ~60/40 so the compact dashboard column
|
||
carries enough weight to balance the Three.js scene. align-items:
|
||
stretch lets the dashboard panel match the scene height. */
|
||
.evnd__grid--cards {
|
||
grid-template-columns: 1.5fr 1fr;
|
||
align-items: stretch;
|
||
}
|
||
.evnd__grid--cards .evnd__left { justify-content: center; }
|
||
.evnd__grid--cards .evnd__left,
|
||
.evnd__grid--cards .evnd__media { width: 100%; }
|
||
|
||
/* ---- Desktop height alignment: scene and dashboard share one row height.
|
||
A min-height floor on the scene column sets the baseline row height;
|
||
both columns stretch to the row via grid align-items: stretch. The
|
||
dashboard uses min-height:100% and its feature list grows (flex:1) to
|
||
fill any extra height so the panel always matches the scene. */
|
||
@media (min-width: 992px) {
|
||
.evnd__grid--cards .evnd__left {
|
||
min-height: clamp(560px, 40vw, 620px);
|
||
}
|
||
.evnd__grid--cards .evnd__media,
|
||
.evnd__grid--cards .evnd__imgwrap--media,
|
||
.evnd__grid--cards .wf-scene { height: 100%; }
|
||
.evnd__grid--cards .wf-scene { aspect-ratio: auto; }
|
||
.evnd__grid--cards .evnd__dash { min-height: 100%; }
|
||
/* Static-image media (Workflow 2): cap the image height with a fixed
|
||
max-height so it sits at roughly the dashboard's row height instead
|
||
of towering hundreds of px below it. width:auto keeps the aspect
|
||
ratio (no stretch, no crop) and the frame hugs the image
|
||
(fit-content), so it stays centred with no side bands. The cap is
|
||
kept below the dashboard height so the image never inflates the row.
|
||
Scoped to the non-scene wrapper; desktop only, mobile untouched. */
|
||
.evnd__grid--cards .evnd__imgwrap:not(.evnd__imgwrap--media):not(.evnd__imgwrap--video) {
|
||
width: fit-content;
|
||
max-width: 100%;
|
||
margin-inline: auto;
|
||
}
|
||
.evnd__grid--cards .evnd__imgwrap:not(.evnd__imgwrap--media):not(.evnd__imgwrap--video) .evnd__img {
|
||
width: auto;
|
||
height: auto;
|
||
max-height: clamp(520px, 46vw, 670px);
|
||
max-width: 100%;
|
||
}
|
||
}
|
||
|
||
@media (min-width: 1200px) {
|
||
.evnd__grid--cards .evnd__imgwrap--video {
|
||
width: 100%;
|
||
height: 100%;
|
||
min-height: 100%;
|
||
}
|
||
.evnd__grid--cards .evnd__imgwrap--video .evnd__video {
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: cover;
|
||
}
|
||
}
|
||
|
||
.evnd__left {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
}
|
||
|
||
.evnd__right {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.evnd__eyebrow {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
color: #ef4444 !important;
|
||
font-weight: 800;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.16em;
|
||
font-size: 13px;
|
||
margin-bottom: 20px;
|
||
}
|
||
.evnd__eyebrow::before {
|
||
content: '';
|
||
width: 16px;
|
||
height: 2px;
|
||
background: #ef4444;
|
||
}
|
||
|
||
/* ---- Heading → content gap ----
|
||
Deliberately set here (on the wrapper div) rather than as
|
||
margin-bottom on .evnd__title (the <h2>): a global site.css rule
|
||
(.logico-front-end h2:not([class*="logico-title-h"]):last-child)
|
||
outweighs .evnd__title's own specificity and zeroes any bottom
|
||
margin placed on the heading itself, since the h2 is always the
|
||
last child of .evnd__heading. Setting it here sidesteps that
|
||
collision and gives every workflow section + Fleet Strategy one
|
||
shared, consistent gap. */
|
||
.evnd__heading {
|
||
margin-bottom: 40px;
|
||
}
|
||
@media (max-width: 991px) and (min-width: 768px) {
|
||
.evnd__heading {
|
||
margin-bottom: 34px;
|
||
}
|
||
}
|
||
|
||
.evnd__title {
|
||
color: #fff !important;
|
||
font-weight: 800 !important;
|
||
font-size: clamp(32px, 3.8vw, 48px) !important;
|
||
line-height: 1.15 !important;
|
||
letter-spacing: -0.01em;
|
||
margin: 0;
|
||
}
|
||
@media (min-width: 768px) {
|
||
.evnd__title {
|
||
white-space: nowrap;
|
||
}
|
||
}
|
||
.evnd__title .accent {
|
||
color: #ef4444 !important;
|
||
}
|
||
|
||
.evnd__media {
|
||
position: relative;
|
||
width: 100%;
|
||
}
|
||
.evnd__glow {
|
||
position: absolute;
|
||
left: 50%; bottom: -4%;
|
||
width: 80%; height: 80px;
|
||
transform: translateX(-50%);
|
||
background: radial-gradient(50% 50% at 50% 50%, rgba(239,68,68,0.3), transparent 72%);
|
||
filter: blur(35px);
|
||
z-index: 0;
|
||
animation: evndGlow 4s ease-in-out infinite;
|
||
}
|
||
.evnd__imgwrap {
|
||
position: relative;
|
||
z-index: 1;
|
||
overflow: hidden;
|
||
border-radius: 16px;
|
||
border: 1px solid rgba(255,255,255,0.06);
|
||
box-shadow: 0 30px 60px -25px rgba(0,0,0,0.85);
|
||
}
|
||
.evnd__img {
|
||
display: block;
|
||
width: 100%;
|
||
height: auto;
|
||
object-fit: cover;
|
||
transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
|
||
}
|
||
.evnd__video {
|
||
display: block;
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: contain;
|
||
}
|
||
.evnd__imgwrap:hover .evnd__img {
|
||
transform: scale(1.03);
|
||
}
|
||
|
||
/* Badge overlay styling */
|
||
.evnd__badge {
|
||
position: absolute;
|
||
z-index: 2;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 2px;
|
||
padding: 12px 16px;
|
||
background: rgba(13,13,13,0.72);
|
||
border: 1px solid rgba(255,255,255,0.08);
|
||
border-radius: 8px;
|
||
backdrop-filter: blur(12px);
|
||
-webkit-backdrop-filter: blur(12px);
|
||
}
|
||
.evnd__badge b {
|
||
color: #ef4444 !important;
|
||
font-weight: 800;
|
||
font-size: 24px;
|
||
line-height: 1;
|
||
}
|
||
.evnd__badge span {
|
||
color: rgba(255,255,255,0.7) !important;
|
||
font-size: 10px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.08em;
|
||
text-transform: uppercase;
|
||
}
|
||
.evnd__badge--tl { top: 20px; left: 20px; }
|
||
.evnd__badge--br { bottom: 20px; right: 20px; }
|
||
|
||
/* ---- Homepage feature cards (default, no-dashboard mode) ---- */
|
||
.evnd__features {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 16px;
|
||
height: 100%;
|
||
justify-content: space-between;
|
||
}
|
||
.evnd-feature {
|
||
position: relative;
|
||
display: grid;
|
||
grid-template-columns: 48px minmax(0, 1fr) auto;
|
||
gap: 20px;
|
||
align-items: start;
|
||
background: rgba(255,255,255,0.02);
|
||
border: 1px solid rgba(255,255,255,0.05);
|
||
border-radius: 16px;
|
||
padding: 24px;
|
||
overflow: hidden;
|
||
transition: background-color 0.4s ease, border-color 0.4s ease, transform 0.4s cubic-bezier(.25,1,.5,1);
|
||
}
|
||
.evnd-feature__body { min-width: 0; }
|
||
.evnd-feature::before {
|
||
content: '';
|
||
position: absolute;
|
||
left: 0; top: 0; bottom: 0;
|
||
width: 3px;
|
||
background: #ef4444;
|
||
transform: scaleY(0);
|
||
transform-origin: bottom;
|
||
transition: transform 0.4s ease;
|
||
}
|
||
.evnd-feature:hover {
|
||
background: rgba(239,68,68,0.03);
|
||
border-color: rgba(239,68,68,0.2);
|
||
transform: translateY(-2px);
|
||
}
|
||
.evnd-feature:hover::before { transform: scaleY(1); }
|
||
|
||
.evnd-feature__icon-container {
|
||
width: 48px; height: 48px;
|
||
display: flex; align-items: center; justify-content: center;
|
||
background: rgba(239, 68, 68, 0.14);
|
||
border: 1px solid rgba(239, 68, 68, 0.35);
|
||
border-radius: 12px;
|
||
color: #ef4444 !important;
|
||
transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
|
||
}
|
||
.evnd-feature:hover .evnd-feature__icon-container {
|
||
background: rgba(239, 68, 68, 0.25);
|
||
border-color: rgba(239, 68, 68, 0.6);
|
||
color: #ff5555 !important;
|
||
}
|
||
|
||
.evnd-icon {
|
||
width: 22px;
|
||
height: 22px;
|
||
display: block;
|
||
color: #ef4444 !important;
|
||
stroke: #ef4444 !important;
|
||
}
|
||
.evnd-icon path,
|
||
.evnd-icon circle,
|
||
.evnd-icon polygon,
|
||
.evnd-icon rect {
|
||
stroke: #ef4444 !important;
|
||
}
|
||
|
||
.evnd-feature__title {
|
||
color: #fff !important;
|
||
font-weight: 700;
|
||
font-size: 15px !important;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.05em;
|
||
margin: 4px 0 8px;
|
||
transition: color 0.3s ease;
|
||
}
|
||
.evnd-feature:hover .evnd-feature__title { color: #ef4444 !important; }
|
||
.evnd-feature__desc {
|
||
color: rgba(255,255,255,0.65) !important;
|
||
font-weight: 400 !important;
|
||
font-size: 16px !important;
|
||
line-height: 1.6 !important;
|
||
margin: 0;
|
||
}
|
||
.evnd-feature__arrow {
|
||
color: rgba(255,255,255,0.25);
|
||
font-size: 16px;
|
||
align-self: flex-start;
|
||
margin-top: 4px;
|
||
transition: color 0.3s ease, transform 0.3s ease;
|
||
}
|
||
.evnd-feature:hover .evnd-feature__arrow { color: #ef4444; transform: translate(3px, -3px); }
|
||
|
||
/* When the left media is a live 3D scene, let it define its own height
|
||
(via aspect-ratio) — drop the image-only hover zoom container quirks. */
|
||
.evnd__imgwrap--media { box-shadow: 0 30px 60px -25px rgba(0,0,0,0.85); }
|
||
|
||
/* ============================================================
|
||
COMPACT DASHBOARD (MileTruth workflow right column).
|
||
A small KPI row over compact feature cards, on the animated network
|
||
backdrop. Themed per-workflow via CSS vars (--ca accent \xb7 --ca2
|
||
secondary \xb7 --cg glow). Falls back to the section red.
|
||
============================================================ */
|
||
.evnd__dash {
|
||
--ca: #ef4444;
|
||
--ca2: #f59e0b;
|
||
--cg: rgba(239,68,68,0.22);
|
||
position: relative;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 18px;
|
||
width: 100%;
|
||
/* panel surface so the column reads as a real dashboard, not empty space */
|
||
background:
|
||
radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--ca) 9%, transparent) 0%, transparent 55%),
|
||
linear-gradient(180deg, rgba(255,255,255,0.025) 0%, rgba(255,255,255,0.01) 100%);
|
||
border: 1px solid rgba(255,255,255,0.07);
|
||
border-radius: 20px;
|
||
padding: 24px;
|
||
overflow: hidden;
|
||
isolation: isolate;
|
||
}
|
||
.evnd__dash-head,
|
||
.evnd__dash-kpis,
|
||
.evnd__dash-feats { position: relative; z-index: 1; }
|
||
|
||
/* dashboard header row */
|
||
.evnd__dash-head {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 12px;
|
||
}
|
||
.evnd__dash-live {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 9px;
|
||
color: var(--ca) !important;
|
||
font-weight: 800;
|
||
font-size: 12px;
|
||
letter-spacing: 0.16em;
|
||
text-transform: uppercase;
|
||
}
|
||
.evnd__dash-livedot {
|
||
width: 8px; height: 8px;
|
||
border-radius: 50%;
|
||
background: var(--ca);
|
||
box-shadow: 0 0 0 0 var(--cg);
|
||
animation: evndPulse 1.8s ease-out infinite;
|
||
}
|
||
@keyframes evndPulse {
|
||
0% { box-shadow: 0 0 0 0 var(--cg); opacity: 1; }
|
||
70% { box-shadow: 0 0 0 8px transparent; opacity: 0.7; }
|
||
100% { box-shadow: 0 0 0 0 transparent; opacity: 1; }
|
||
}
|
||
.evnd__dash-sys {
|
||
color: rgba(255,255,255,0.4) !important;
|
||
font-weight: 700;
|
||
font-size: 11px;
|
||
letter-spacing: 0.18em;
|
||
text-transform: uppercase;
|
||
}
|
||
|
||
/* ---- Compact KPI row ---- */
|
||
.evnd__dash-kpis {
|
||
display: grid;
|
||
grid-template-columns: repeat(2, 1fr);
|
||
gap: 12px;
|
||
}
|
||
.evnd__kpi {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 5px;
|
||
padding: 14px 16px;
|
||
background: rgba(255,255,255,0.025);
|
||
border: 1px solid rgba(255,255,255,0.06);
|
||
border-radius: 14px;
|
||
}
|
||
.evnd__kpi-val {
|
||
color: #fff !important;
|
||
font-weight: 800;
|
||
font-size: clamp(26px, 3vw, 34px);
|
||
line-height: 1;
|
||
letter-spacing: -0.02em;
|
||
background: linear-gradient(120deg, #fff 0%, var(--ca) 135%);
|
||
-webkit-background-clip: text;
|
||
background-clip: text;
|
||
-webkit-text-fill-color: transparent;
|
||
}
|
||
.evnd__kpi-label {
|
||
color: rgba(255,255,255,0.6) !important;
|
||
font-weight: 600;
|
||
font-size: 12.5px;
|
||
letter-spacing: 0.01em;
|
||
}
|
||
/* Non-numeric KPI concepts (EVStat.text) — same gradient treatment as
|
||
the counted values, sized down so short codes/words don't inherit
|
||
the numeric clamp() meant for 2-3 digit figures. */
|
||
.evnd__kpi-val--text {
|
||
font-size: clamp(18px, 1.6vw, 22px) !important;
|
||
letter-spacing: 0.02em;
|
||
}
|
||
|
||
/* ============================================================
|
||
Large-screen layout balance (WF1/WF2 dashboard only, ≥1440px).
|
||
Root cause of the empty space is an oversized dashboard column, not
|
||
the KPI cards: give the Three.js scene more of the row (≈66/34, up to
|
||
68/32 on ultra-wide) and pin the dashboard panel to a compact fixed
|
||
max-width, centred in its column — so the KPI cards and feature rows
|
||
stop stretching and read as content-sized. Card heights, typography,
|
||
card styling, animations and the scene itself are untouched; only the
|
||
column proportions, panel width and KPI content alignment change.
|
||
(.evnd__inner caps at 1280px, so one ratio step covers all 1440+
|
||
widths; the 1600/1920 steps tighten the split further on very wide
|
||
displays.) Everything is scoped to .evnd__grid--cards and ≥1440px, so
|
||
the homepage EV section and tablet/laptop/mobile layouts are unchanged.
|
||
============================================================ */
|
||
@media (min-width: 1440px) {
|
||
/* Let the content area grow past the 1280px base cap so the scene
|
||
can get wider on large screens (scoped to WF1/WF2 — the homepage
|
||
EV section keeps its 1280px inner). Viewport/padding still limit
|
||
this at smaller widths; it mainly pays off at ~1600px+. */
|
||
.evnd__inner--cards { max-width: 1560px; }
|
||
/* Dashboard pinned to a fixed 600px track; the scene (1fr) absorbs
|
||
ALL the extra width, so growing the inner widens the scene only. */
|
||
.evnd__grid--cards { grid-template-columns: 1fr 600px; }
|
||
.evnd__grid--cards .evnd__dash {
|
||
max-width: 600px;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
/* Centre the KPI value/label so the cards read balanced rather than
|
||
left-hugging (height/type/styling unchanged). */
|
||
.evnd__grid--cards .evnd__kpi {
|
||
align-items: center;
|
||
text-align: center;
|
||
}
|
||
}
|
||
@media (min-width: 1920px) {
|
||
/* Ultra-wide: give the scene even more room (dashboard stays 600px). */
|
||
.evnd__inner--cards { max-width: 1720px; }
|
||
}
|
||
/* ---- Static-image workflow (Workflow 2) layout, 1440px+ ----
|
||
The asset is PORTRAIT, so it can't fill the wide scene column without
|
||
cropping. To show the WHOLE image (no missing content) it's hugged to
|
||
its own width via the ≥992 rules (fit-content frame + height cap) and
|
||
centred next to the 600px dashboard (same width as Workflow 1) with the
|
||
pair centred in a tightened inner — full image, no crop, no dead space.
|
||
It therefore sits a little narrower than the dashboard; filling the
|
||
column edge-to-edge would need a landscape source image. */
|
||
@media (min-width: 1440px) {
|
||
.evnd__inner--cards.evnd__inner--img { max-width: 1200px; }
|
||
.evnd__grid--cards.evnd__grid--img {
|
||
grid-template-columns: auto 600px;
|
||
justify-content: center;
|
||
gap: clamp(40px, 3vw, 56px);
|
||
}
|
||
}
|
||
|
||
/* ---- Compact feature cards ---- */
|
||
.evnd__dash-feats {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 12px;
|
||
flex: 1 0 auto;
|
||
}
|
||
.evnd__dfeat {
|
||
display: grid;
|
||
grid-template-columns: 38px minmax(0, 1fr);
|
||
gap: 14px;
|
||
align-items: center;
|
||
padding: 13px 16px;
|
||
background: rgba(255,255,255,0.02);
|
||
border: 1px solid rgba(255,255,255,0.06);
|
||
border-radius: 14px;
|
||
transition: background-color 0.35s ease, border-color 0.35s ease, transform 0.35s cubic-bezier(.25,1,.5,1);
|
||
}
|
||
.evnd__dfeat:hover {
|
||
background: color-mix(in srgb, var(--ca) 5%, transparent);
|
||
border-color: color-mix(in srgb, var(--ca) 28%, transparent);
|
||
transform: translateY(-2px);
|
||
}
|
||
.evnd__dfeat-ico {
|
||
width: 38px; height: 38px;
|
||
display: flex; align-items: center; justify-content: center;
|
||
color: var(--ca);
|
||
background: color-mix(in srgb, var(--ca) 12%, transparent);
|
||
border: 1px solid color-mix(in srgb, var(--ca) 30%, transparent);
|
||
border-radius: 10px;
|
||
}
|
||
.evnd__dfeat-ico svg { width: 19px; height: 19px; display: block; }
|
||
.evnd__dfeat-body { min-width: 0; }
|
||
.evnd__dfeat-title {
|
||
display: block;
|
||
color: #fff !important;
|
||
font-weight: 700;
|
||
font-size: 14px;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.04em;
|
||
margin-bottom: 3px;
|
||
}
|
||
.evnd__dfeat-desc {
|
||
color: rgba(255,255,255,0.6) !important;
|
||
font-weight: 400 !important;
|
||
font-size: 16px !important;
|
||
line-height: 1.55 !important;
|
||
margin: 0 !important;
|
||
}
|
||
|
||
/* ============================================================
|
||
Shared global-network backdrop (WF1/WF2) — the dotted world-map
|
||
silhouette + animated hub network reused VERBATIM from the Women
|
||
Empowerment section (IndustryWorldMap canvas), tinted to the workflow
|
||
accent. Full-bleed, behind the .evnd__inner content (z 0 vs z 1),
|
||
pointer-events free, held to a subtle 5–10% opacity so the KPI cards,
|
||
feature cards and insight content stay the primary focus.
|
||
============================================================ */
|
||
.evnd__map {
|
||
position: absolute;
|
||
inset: 0;
|
||
z-index: 0;
|
||
/* Matches the Women Empowerment section's .ws-map treatment (flat
|
||
opacity, no mask — same implementation). On this darker #080808
|
||
background the grey dots are already very low contrast, so this
|
||
sits subtle while keeping the world-map silhouette readable. */
|
||
opacity: 0.5;
|
||
pointer-events: none;
|
||
overflow: hidden;
|
||
}
|
||
.evnd__map canvas { display: block; width: 100%; height: 100%; }
|
||
|
||
/* ---- BOTTOM BAR (homepage / default mode) ---- */
|
||
.evnd__bar {
|
||
display: grid;
|
||
grid-template-columns: repeat(4, 1fr);
|
||
background: rgba(255,255,255,0.02);
|
||
border: 1px solid rgba(255,255,255,0.06);
|
||
border-radius: 16px;
|
||
overflow: hidden;
|
||
margin-top: 60px;
|
||
padding: 38px 0;
|
||
}
|
||
.evnd__bar-item {
|
||
position: relative;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
text-align: center;
|
||
padding: 16px 20px;
|
||
box-sizing: border-box;
|
||
}
|
||
.evnd__bar-item:not(:last-child)::after {
|
||
content: '';
|
||
position: absolute;
|
||
right: 0;
|
||
top: 15%;
|
||
height: 70%;
|
||
width: 1px;
|
||
background: rgba(255, 255, 255, 0.08);
|
||
}
|
||
|
||
.evnd__bar-label {
|
||
color: #fff !important;
|
||
font-size: 13.5px;
|
||
font-weight: 600;
|
||
letter-spacing: 0.02em;
|
||
text-transform: none;
|
||
opacity: 0.9;
|
||
display: flex;
|
||
align-items: flex-end;
|
||
justify-content: center;
|
||
min-height: 36px;
|
||
text-align: center;
|
||
line-height: 1.25;
|
||
width: 100%;
|
||
}
|
||
.evnd__bar-val {
|
||
color: #ef4444 !important;
|
||
font-weight: 800;
|
||
font-size: clamp(30px, 3.8vw, 52px);
|
||
line-height: 1.15;
|
||
display: flex;
|
||
align-items: flex-start;
|
||
justify-content: center;
|
||
text-align: center;
|
||
margin-top: 8px;
|
||
width: 100%;
|
||
}
|
||
/* Non-numeric bar values (EVStat.text) — the bar's numeric clamp()
|
||
(up to 56px) is too large for words/phrases; size down and let
|
||
longer phrases (e.g. "Cost + Distance + SLA") wrap cleanly. */
|
||
.evnd__bar-val--text {
|
||
font-size: clamp(15px, 2vw, 22px);
|
||
line-height: 1.25;
|
||
white-space: normal;
|
||
word-break: break-word;
|
||
overflow-wrap: break-word;
|
||
}
|
||
|
||
@keyframes evndGlow { 0%,100% { opacity: 0.75; } 50% { opacity: 1; } }
|
||
|
||
/* ---- Responsive ---- */
|
||
@media (max-width: 1024px) {
|
||
.evnd-gap-top { margin-top: 32px !important; }
|
||
.evnd-gap-bottom { margin-bottom: 32px !important; }
|
||
}
|
||
@media (max-width: 991px) {
|
||
.evnd { padding: 48px 32px 56px; }
|
||
.evnd__grid { grid-template-columns: 1fr; gap: 40px; }
|
||
.evnd__features { gap: 14px; }
|
||
/* Stacked: KPI row can spread to 4-up since it now has full width. */
|
||
.evnd__dash-kpis { grid-template-columns: repeat(4, 1fr); }
|
||
}
|
||
@media (max-width: 767px) {
|
||
.elementor.elementor-61 .elementor-element.elementor-element-bbc6760,
|
||
.elementor-element.elementor-element-bbc6760.evnd-workflow-shell {
|
||
width: calc(100% - 20px) !important;
|
||
margin-left: 10px !important;
|
||
margin-right: 10px !important;
|
||
padding-left: 0px !important;
|
||
padding-right: 0px !important;
|
||
box-sizing: border-box !important;
|
||
}
|
||
.evnd-gap-top { margin-top: 24px !important; }
|
||
.evnd-gap-bottom { margin-bottom: 24px !important; }
|
||
.evnd { padding-inline: 0; }
|
||
.evnd__heading {
|
||
padding-left: 26px;
|
||
padding-right: 26px;
|
||
box-sizing: border-box;
|
||
margin-bottom: 28px;
|
||
display: flow-root;
|
||
}
|
||
.evnd__inner {
|
||
padding-left: 4px;
|
||
padding-right: 4px;
|
||
box-sizing: border-box;
|
||
}
|
||
.evnd__dash {
|
||
padding-left: 12px !important;
|
||
padding-right: 12px !important;
|
||
}
|
||
.evnd__bar {
|
||
grid-template-columns: repeat(2, 1fr);
|
||
gap: 0;
|
||
width: calc(100% - 8px);
|
||
max-width: calc(100% - 8px);
|
||
margin: 28px auto 0;
|
||
padding: 12px 0;
|
||
box-sizing: border-box;
|
||
}
|
||
.evnd.evnd--cards {
|
||
padding-bottom: 20px;
|
||
margin-bottom: 0;
|
||
}
|
||
.evnd__bar-item {
|
||
padding: 16px 12px;
|
||
border-right: 1px solid rgba(255, 255, 255, 0.08);
|
||
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
||
}
|
||
.evnd__bar-item::after { display: none !important; }
|
||
.evnd__bar-item:nth-child(even) { border-right: none; }
|
||
.evnd__bar-item:nth-child(n+3) { border-bottom: none; }
|
||
.evnd__bar-label { min-height: 32px; font-size: 12.5px; }
|
||
.evnd__bar-val--text { font-size: clamp(14px, 3.8vw, 18px); }
|
||
|
||
/* ---- Scene overlay cleanup (mobile) ----
|
||
Keep only the primary top-left KPI badge; the second (bottom-right)
|
||
badge covers the route visualization, so it is removed. The
|
||
remaining badge is scaled down (~0.72) so it never dominates. */
|
||
.evnd__badge--br { display: none !important; }
|
||
.evnd__badge--tl { transform: scale(0.72); transform-origin: top left; }
|
||
|
||
/* ---- Horizontal alignment (WF1 / WF2 only) ----
|
||
minmax(0,1fr) + min-width:0 let the scene/panel columns shrink to
|
||
the container so the scene, panel and content share one symmetric
|
||
width and centre perfectly. Scoped to .evnd__grid--cards so the
|
||
homepage EV section is untouched. */
|
||
.evnd__grid--cards { grid-template-columns: minmax(0, 1fr); }
|
||
.evnd__grid--cards .evnd__left,
|
||
.evnd__grid--cards .evnd__right,
|
||
.evnd__grid--cards .evnd__media,
|
||
.evnd__grid--cards .evnd__dash {
|
||
min-width: 0;
|
||
width: 100% !important;
|
||
max-width: 100% !important;
|
||
box-sizing: border-box !important;
|
||
}
|
||
/* Keep the KPI row a tidy 2x2 on phones. */
|
||
.evnd__dash-kpis { grid-template-columns: repeat(2, 1fr); }
|
||
/* Workflow feature cards: distribute content like the Women stats
|
||
rows so the icon balances the right side instead of everything
|
||
clustering at the left edge. */
|
||
.evnd-workflow-shell .evnd__dash-feats { gap: 10px; }
|
||
.evnd-workflow-shell .evnd__dfeat {
|
||
grid-template-columns: minmax(0, 1fr) 36px;
|
||
gap: 12px;
|
||
padding: 12px 14px;
|
||
}
|
||
.evnd-workflow-shell .evnd__dfeat-ico {
|
||
grid-column: 2;
|
||
grid-row: 1;
|
||
justify-self: end;
|
||
width: 36px;
|
||
height: 36px;
|
||
}
|
||
.evnd-workflow-shell .evnd__dfeat-body {
|
||
grid-column: 1;
|
||
grid-row: 1;
|
||
}
|
||
|
||
/* ---- Mobile-only overrides for Hero Image & EV Logistics Card ---- */
|
||
.elementor-element.elementor-element-7da6646 {
|
||
width: calc(100% - 16px) !important;
|
||
margin-left: 8px !important;
|
||
margin-right: 8px !important;
|
||
border-radius: 18px !important;
|
||
margin-top: 15px !important;
|
||
margin-bottom: -50px !important;
|
||
box-sizing: border-box !important;
|
||
}
|
||
.elementor-element.elementor-element-8b5d6e6 {
|
||
padding-left: 8px !important;
|
||
padding-right: 8px !important;
|
||
margin-left: 0px !important;
|
||
margin-right: 0px !important;
|
||
width: 100% !important;
|
||
max-width: 100% !important;
|
||
box-sizing: border-box !important;
|
||
}
|
||
.elementor-element.elementor-element-1f766ea {
|
||
padding-left: 0px !important;
|
||
padding-right: 0px !important;
|
||
margin-left: auto !important;
|
||
margin-right: auto !important;
|
||
width: 100% !important;
|
||
max-width: 100% !important;
|
||
}
|
||
}
|
||
@media (max-width: 480px) {
|
||
.evnd { padding: 40px 16px 48px; }
|
||
.evnd { padding-inline: 0; }
|
||
.evnd__bar { grid-template-columns: repeat(2, 1fr); gap: 0; padding: 8px 0; }
|
||
.evnd__bar-item { padding: 14px 10px; }
|
||
.evnd__bar-val { font-size: clamp(22px, 7vw, 30px); }
|
||
.evnd__bar-label { font-size: 12px; min-height: 32px; }
|
||
|
||
/* feature cards (homepage): tighter, no overflow, more room for text */
|
||
.evnd-feature {
|
||
grid-template-columns: 40px minmax(0, 1fr);
|
||
gap: 14px;
|
||
padding: 18px 16px;
|
||
}
|
||
.evnd-feature__icon-container { width: 40px; height: 40px; border-radius: 10px; }
|
||
.evnd-icon { width: 20px; height: 20px; }
|
||
.evnd-feature__title { font-size: 14px !important; letter-spacing: 0.03em; margin: 2px 0 6px; padding-right: 22px; }
|
||
.evnd-feature__desc { font-size: 13px !important; line-height: 1.55 !important; }
|
||
.evnd-feature__arrow { position: absolute; top: 16px; right: 16px; margin: 0; }
|
||
|
||
/* ---- Compact dashboard (phones) ---- */
|
||
.evnd__dash { padding-top: 18px !important; padding-bottom: 18px !important; gap: 14px; }
|
||
.evnd__dash-sys { display: none; }
|
||
.evnd__dash-kpis { gap: 10px; }
|
||
.evnd__kpi { padding: 12px 14px; gap: 4px; }
|
||
.evnd__kpi-val { font-size: clamp(24px, 8vw, 30px); }
|
||
.evnd__kpi-label { font-size: 12px; }
|
||
.evnd-workflow-shell .evnd__dfeat { padding: 11px 12px; gap: 10px; grid-template-columns: minmax(0, 1fr) 34px; }
|
||
.evnd__dfeat-ico { width: 34px; height: 34px; border-radius: 9px; }
|
||
.evnd__dfeat-ico svg { width: 17px; height: 17px; }
|
||
.evnd__dfeat-title { font-size: 13.5px; }
|
||
.evnd__dfeat-desc { font-size: 12.5px !important; }
|
||
}
|
||
`}}),(0,t.jsxs)("div",{className:A,"data-id":"bbc6760","data-element_type":"container","data-e-type":"container","aria-label":N,style:{backgroundColor:"#0d0d0d",width:"calc(100% - 40px)",marginLeft:"20px",marginRight:"20px",borderRadius:"25px",overflow:"hidden"},children:[(0,t.jsx)("div",{ref:L,className:"elementor-element elementor-element-7da6646 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"7da6646","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',style:{backgroundPosition:"center 0px",backgroundImage:`url("${encodeURI(e)}")`,backgroundSize:"cover",backgroundRepeat:"no-repeat",position:"relative",zIndex:2,borderRadius:"25px 25px 0 0",overflow:"hidden"}}),(0,t.jsx)("div",{className:"elementor-element elementor-element-8b5d6e6 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"8b5d6e6","data-element_type":"container","data-e-type":"container",children:(0,t.jsxs)("div",{className:"elementor-element elementor-element-1f766ea e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"1f766ea","data-element_type":"container","data-e-type":"container",children:[(0,t.jsxs)("div",{className:"elementor-element elementor-element-3b61435 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"3b61435","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}',children:[r&&(0,t.jsx)("div",{className:"elementor-element elementor-element-c364d1c elementor-widget elementor-widget-text-editor","data-id":"c364d1c","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:r})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-239afbb elementor-widget elementor-widget-logico_heading","data-id":"239afbb","data-element_type":"widget","data-e-type":"widget","data-widget_type":"logico_heading.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("h2",{className:"logico-title",children:h})})}),(0,t.jsx)("div",{className:"elementor-element elementor-element-0d307dd elementor-widget elementor-widget-text-editor","data-id":"0d307dd","data-element_type":"widget","data-e-type":"widget","data-widget_type":"text-editor.default",children:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:g})})})]}),(0,t.jsx)("div",{className:"elementor-element elementor-element-5aea22e e-con-full e-flex cut-corner-no sticky-container-off e-con e-child","data-id":"5aea22e","data-element_type":"container","data-e-type":"container","data-settings":'{"background_background":"classic"}'})]})}),(0,t.jsxs)("section",{className:`evnd${F?" evnd--cards":""}`,"aria-label":N??"EV-Native Design",style:W,children:[F&&P&&(0,t.jsx)(p,{accent:P.accent}),(0,t.jsxs)("div",{className:`evnd__inner${F?" evnd__inner--cards":""}${F&&!z&&!R?" evnd__inner--img":""}`,children:[(0,t.jsxs)("div",{className:"evnd__heading",children:[(0,t.jsx)("span",{className:"evnd__eyebrow",children:x}),(0,t.jsxs)("h2",{className:"evnd__title",children:[v,(0,t.jsx)("span",{className:"accent",children:f})]})]}),(0,t.jsxs)("div",{className:`evnd__grid${F?" evnd__grid--cards":""}${F&&!z&&!R?" evnd__grid--img":""}`,children:[(0,t.jsx)("div",{className:"evnd__left",children:(0,t.jsxs)("div",{className:"evnd__media",children:[(0,t.jsx)("div",{className:"evnd__glow"}),(0,t.jsxs)("div",{className:`evnd__imgwrap${z?" evnd__imgwrap--media":""}${R?" evnd__imgwrap--video":""}${E?` ${E}`:""}`,children:[z||(R?(0,t.jsx)(m,{src:_,ariaLabel:u}):(0,t.jsx)("img",{className:"evnd__img",src:_,alt:u,decoding:"async",loading:"lazy"})),w[0]&&(0,t.jsxs)("div",{className:"evnd__badge evnd__badge--tl",children:[(0,t.jsx)("b",{children:w[0].value}),(0,t.jsx)("span",{children:w[0].label})]}),w[1]&&(0,t.jsxs)("div",{className:"evnd__badge evnd__badge--br",children:[(0,t.jsx)("b",{children:w[1].value}),(0,t.jsx)("span",{children:w[1].label})]})]})]})}),(0,t.jsx)("div",{className:"evnd__right",children:F?(0,t.jsx)(c,{metrics:T,features:b,heading:M,theme:P,sysLabel:S}):(0,t.jsx)("div",{className:"evnd__features",children:b.map(e=>(0,t.jsxs)("div",{className:"evnd-feature",children:[(0,t.jsx)("div",{className:"evnd-feature__icon-container","aria-hidden":"true",children:e.icon}),(0,t.jsxs)("div",{className:"evnd-feature__body",children:[(0,t.jsx)("div",{className:"evnd-feature__title",children:e.title}),(0,t.jsx)("p",{className:"evnd-feature__desc",children:e.desc})]}),(0,t.jsx)("span",{className:"evnd-feature__arrow","aria-hidden":"true",children:"↗"})]},e.title))})})]}),C&&(0,t.jsx)("div",{className:"evnd__bar",children:C.map(e=>(0,t.jsxs)("div",{className:"evnd__bar-item",children:[(0,t.jsx)("span",{className:"evnd__bar-label",children:e.label}),e.text?(0,t.jsx)("b",{className:"evnd__bar-val evnd__bar-val--text",children:e.text}):(0,t.jsx)(l,{value:e.value,decimals:e.decimals,suffix:e.suffix,className:"evnd__bar-val"})]},e.label))})]})]})]})]})}])}]); |