.elementor-kit-7{--e-global-color-primary:#22A94E;--e-global-color-secondary:#0D1210;--e-global-color-text:#5D6B64;--e-global-color-accent:#35D06A;--e-global-color-8320592:#0A2114;--e-global-color-373c3e1:#030C07;--e-global-color-3032e4f:#E7ECE9;--e-global-color-09f9f12:#FBFCFB;--e-global-color-56c0cab:#F3F6F4;--e-global-typography-primary-font-family:"Poppins";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:600;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1360px;}.e-con{--container-max-width:1360px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============================================================
   RUDVED EV — Elementor stylesheet
   Paste into:  Elementor → Site Settings → Custom CSS
   (or upload as a file and enqueue from the child theme)

   Every rule below is the SAME css the static site uses, so the
   look is identical. Elementor widgets just need the matching
   CSS class from the build guide (e.g. rv-hero, rv-prods).
   ============================================================ */

/* ---- Hello Elementor / Elementor compatibility ---- */
.elementor-widget p:last-child{ margin-bottom:0; }
.elementor-widget-heading .elementor-heading-title{ line-height:inherit; }
.rv-page .elementor-widget-container{ line-height:inherit; }
/* Elementor adds its own container padding — our sections handle it */
.rv-page .e-con-inner{ padding:0; }

/* ============================================================
   RUDVED EV — Creative build
   Tokens → Base → Motion engine → Components → Sections → RWD
   ============================================================ */

/* ---------------- TOKENS ---------------- */
:root{
  /* brand (same palette as the original) */
  --g:        #22A94E;
  --g-2:      #35D06A;
  --g-dim:    #1B8C40;
  --g-soft:   #E6F4EA;
  --g-soft-2: #D5EEDE;

  --dark:     #0A2114;
  --dark-2:   #06170D;
  --dark-3:   #030C07;

  --ink:      #0D1210;
  --ink-2:    #1B211F;
  --muted:    #5D6B64;
  --muted-2:  #8A9791;
  --line:     #E7ECE9;
  --paper:    #FBFCFB;
  --surface:  #F3F6F4;
  --white:    #fff;

  /* layout */
  --shell:    1360px;
  --gut:      40px;
  --pad-l:    calc(max(0px, (100vw - var(--shell)) / 2) + var(--gut));

  /* motion */
  --e:        cubic-bezier(.16,1,.3,1);
  --e-soft:   cubic-bezier(.4,0,.2,1);
  --t:        .9s;

  --f-head: 'Poppins', system-ui, -apple-system, sans-serif;
  --f-body: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ---------------- BASE ---------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--f-body);
  font-size:16px; line-height:1.7;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.is-loading{ overflow:hidden; height:100vh; }
h1,h2,h3,h4{ font-family:var(--f-head); margin:0; font-weight:600; line-height:1.12; letter-spacing:-.03em; }
p{ margin:0; } ul,ol{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
button{ font:inherit; border:0; background:none; color:inherit; cursor:pointer; }
input{ font:inherit; }
svg{ display:block; }
::selection{ background:var(--g); color:#fff; }
:focus-visible{ outline:2px solid var(--g); outline-offset:4px; border-radius:6px; }

.shell{ width:100%; max-width:var(--shell); margin-inline:auto; padding-inline:var(--gut); }

/* ---------------- TYPE HELPERS ---------------- */
/* one size for every section heading — .h2--tight is kept as a hook
   but no longer changes the scale */
.h2{ font-size:clamp(28px, 2.8vw, 40px); line-height:1.12; }
.h2--light{ color:#fff; }
.display{
  font-size:clamp(40px, 6.2vw, 80px);
  line-height:1.1; font-weight:600; letter-spacing:-.045em;
}
.display em{
  font-style:normal;
  background:linear-gradient(100deg,var(--g) 0%,var(--g-2) 55%,var(--g) 100%);
  background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
  animation:shimmer 6s linear infinite;
}
@keyframes shimmer{ to{ background-position:220% 0; } }

.lead{ font-size:16.5px; color:var(--muted); line-height:1.8; max-width:56ch; }
.lead--light{ color:rgba(255,255,255,.6); }

.tag{
  display:inline-flex; align-items:center; gap:9px;
  font-size:12px; font-weight:600; letter-spacing:.18em;
  color:var(--g); text-transform:uppercase;
  margin-bottom:22px;
}
.tag i{ width:22px; height:1.5px; background:var(--g); display:block; }

.num{ font-family:var(--f-head); font-variant-numeric:tabular-nums; font-weight:600; }

/* ============================================================
   MOTION ENGINE
   ============================================================ */
[data-reveal]{ will-change:transform,opacity; }

[data-reveal="fade"]{ opacity:0; transform:translateY(14px); transition:opacity .8s var(--e), transform .8s var(--e); }
[data-reveal="up"]  { opacity:0; transform:translateY(42px); transition:opacity .9s var(--e), transform .9s var(--e); }
[data-reveal="pop"] { opacity:0; transform:scale(.82); transition:opacity .7s var(--e), transform .7s var(--e); }
[data-reveal="clip"]{
  opacity:1;
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.15s var(--e);
}
/* the inner image over-scales, then settles — but never fight an
   element that JS is already driving via [data-parallax] */
[data-reveal="clip"] > img:not([data-parallax]),
[data-reveal="clip"] .scard__bg,
[data-reveal="clip"] .hero__frame > img{ transform:scale(1.16); transition:transform 1.6s var(--e); }

[data-reveal].is-in{ opacity:1; transform:none; clip-path:inset(0 0 0 0); }
[data-reveal="clip"].is-in > img:not([data-parallax]),
[data-reveal="clip"].is-in .scard__bg,
[data-reveal="clip"].is-in .hero__frame > img{ transform:scale(1); }
/* JS writes inline transforms on these two — don't reset them */
[data-reveal].is-in[data-parallax],
[data-reveal].is-in [data-tilt]{ transform:none; }

/* split text — the .1em pad/-margin pair stops overflow:hidden
   from shaving descenders off g, y, p */
.ln{ display:block; overflow:hidden; padding-bottom:.14em; margin-bottom:-.14em; }
.ln > i{
  display:block; font-style:normal;
  transform:translateY(112%);
  transition:transform 1.1s var(--e);
}
.is-in .ln > i,
.ln.is-in > i{ transform:translateY(0); }

.w{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.14em; margin-bottom:-.14em; }
.w > i{
  display:inline-block; font-style:normal;
  transform:translateY(105%);
  opacity:0;
  transition:transform .95s var(--e), opacity .7s var(--e);
}
.is-in .w > i{ transform:translateY(0); opacity:1; }

/* ============================================================
   CHROME — loader, cursor, progress, grain
   ============================================================ */
.loader{
  position:fixed; inset:0; z-index:9999;
  background:var(--dark-3);
  display:grid; place-items:center;
  transition:opacity .5s ease, visibility .5s;
}
.loader__inner{ text-align:center; color:#fff; width:min(320px, 76vw); }
.loader__logo{ display:flex; justify-content:center; margin-bottom:26px; }
.loader__logo img{ width:180px; height:auto; }
.loader__bar{ height:3px; border-radius:99px; background:rgba(255,255,255,.12); overflow:hidden; }
.loader__bar span{ display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--g),var(--g-2)); border-radius:99px; }
.loader__pct{ margin-top:14px; font-size:12px; letter-spacing:.2em; color:rgba(255,255,255,.45); font-variant-numeric:tabular-nums; }
.loader__curtain{
  position:absolute; inset:0;
  background:var(--dark-3);
  transform:translateY(0);
  transition:transform 1s var(--e);
}
.loader.is-done .loader__inner{ opacity:0; transition:opacity .3s ease; }
.loader.is-done .loader__curtain{ transform:translateY(-101%); }
.loader.is-gone{ opacity:0; visibility:hidden; pointer-events:none; }

.scrollbar{
  position:fixed; top:0; left:0; right:0; height:3px; z-index:900;
  background:linear-gradient(90deg,var(--g),var(--g-2));
  transform:scaleX(0); transform-origin:0 50%;
  will-change:transform;
}

.cursor{ position:fixed; top:0; left:0; z-index:9998; pointer-events:none; }
.cursor__dot,
.cursor__ring{ position:absolute; top:0; left:0; border-radius:50%; transform:translate(-50%,-50%); }
.cursor__dot{ width:6px; height:6px; background:var(--g); }
.cursor__ring{
  width:36px; height:36px; border:1.5px solid rgba(34,169,78,.5);
  transition:width .3s var(--e), height .3s var(--e), background .3s var(--e), border-color .3s var(--e);
}
.cursor.is-hot .cursor__ring{ width:62px; height:62px; background:rgba(34,169,78,.12); border-color:transparent; }
.cursor.is-hot .cursor__dot{ opacity:0; }
@media (hover:none),(pointer:coarse){ .cursor{ display:none; } }

.grain{
  position:fixed; inset:-120%; z-index:8000; pointer-events:none; opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E");
  animation:grain 8s steps(6) infinite;
}
@keyframes grain{
  0%,100%{ transform:translate(0,0); } 10%{ transform:translate(-4%,-3%); } 30%{ transform:translate(3%,-5%); }
  50%{ transform:translate(-3%,4%); } 70%{ transform:translate(4%,3%); } 90%{ transform:translate(-5%,-2%); }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; gap:12px;
  height:48px; padding:0 8px 0 24px;
  border-radius:99px;
  font-size:14.5px; font-weight:500; white-space:nowrap;
  transition:color .35s var(--e-soft), border-color .35s var(--e-soft), box-shadow .35s var(--e-soft);
  will-change:transform;
}
.btn--lg{ height:58px; padding:0 10px 0 30px; font-size:15.5px; }
.btn > span{ position:relative; z-index:2; }

.btn::before{
  content:''; position:absolute; inset:0; z-index:1;
  border-radius:inherit;
  transform:translateY(101%);
  transition:transform .5s var(--e);
}
.btn:hover::before{ transform:translateY(0); }

.btn--fill{ background:var(--g); color:#fff; }
.btn--fill::before{ background:var(--ink); }
.btn--fill:hover{ box-shadow:0 14px 34px rgba(34,169,78,.28); }

.btn--line{ border:1px solid var(--line); background:#fff; color:var(--ink); padding-right:22px; }
.btn--line::before{ background:var(--g); }
.btn--line:hover{ color:#fff; border-color:var(--g); }

.btn--glass{
  border:1px solid rgba(255,255,255,.42);
  background:rgba(255,255,255,.07);
  color:#fff; padding-right:20px;
  backdrop-filter:blur(6px);
}
.btn--glass::before{ background:#fff; }
.btn--glass:hover{ color:var(--ink); border-color:#fff; }

.btn__arrow,
.btn__play{
  position:relative; z-index:2;
  width:34px; height:34px; flex:none; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(255,255,255,.2);
  transition:transform .45s var(--e), background .35s var(--e-soft);
}
.btn--lg .btn__arrow{ width:40px; height:40px; }
.btn__arrow svg,
.btn__play svg{ width:15px; height:15px; }
.btn:hover .btn__arrow{ transform:translateX(3px) rotate(-45deg); }
.btn--line .btn__play,
.btn--glass .btn__arrow{ background:rgba(0,0,0,.06); }
.btn--line:hover .btn__play,
.btn--glass:hover .btn__arrow{ background:rgba(255,255,255,.25); }
.btn--line:hover .btn__play{ background:rgba(255,255,255,.22); }

.arrow-link{
  display:inline-flex; align-items:center; gap:9px;
  font-size:14.5px; font-weight:500;
  transition:gap .3s var(--e), color .3s var(--e);
}
.arrow-link svg{ width:16px; height:16px; }
.arrow-link:hover{ gap:15px; color:var(--g); }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:800;
  transition:transform .55s var(--e), background .4s ease, box-shadow .4s ease, backdrop-filter .4s ease;
}
.nav.is-solid{
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(180%) blur(16px);
  box-shadow:0 1px 0 rgba(16,32,24,.07), 0 10px 30px rgba(16,32,24,.05);
}
.nav.is-hidden{ transform:translateY(-102%); }
.nav__in{ height:82px; display:flex; align-items:center; gap:26px; }

.brand{ display:flex; align-items:center; gap:10px; color:var(--g); flex:none; }
.brand__mark{ width:36px; height:36px; }
.brand__txt{ font-family:var(--f-head); font-size:19px; font-weight:600; color:var(--ink); letter-spacing:-.03em; }
.brand__txt b{ color:var(--g); font-weight:600; margin-left:3px; }
.brand--light .brand__txt{ color:#fff; }
.brand__img{ width:158px; height:auto; }
/* the logo file is white — flatten it to black for the light header */
.nav .brand__img{ width:140px; filter:brightness(0); }

.menu{ display:flex; align-items:center; gap:6px; margin-inline:auto; }
.menu__a{
  --mfs:14.5px;
  position:relative; padding:9px 15px;
  font-size:var(--mfs); font-weight:500; color:var(--ink-2); border-radius:99px;
}
/* the label rolls up and a green copy rolls in from below.
   font-size:0 hides the real text node but keeps it readable
   for screen readers; both visible copies are pseudo-elements. */
.menu__a span{
  display:inline-grid; overflow:hidden; vertical-align:top;
  font-size:0; line-height:1.5;
}
.menu__a span::before,
.menu__a span::after{
  content:attr(data-txt);
  grid-area:1 / 1;
  font-size:var(--mfs); line-height:1.5;
  transition:transform .45s var(--e);
}
.menu__a span::after{ color:var(--g); transform:translateY(100%); }
.menu__a:hover span::before{ transform:translateY(-100%); }
.menu__a:hover span::after { transform:translateY(0); }
.menu__a::before{
  content:''; position:absolute; left:15px; right:15px; bottom:4px; height:2px;
  background:var(--g); border-radius:2px;
  transform:scaleX(0); transform-origin:0 50%;
  transition:transform .45s var(--e);
}
.menu__a.is-active::before{ transform:scaleX(1); }

/* Resources dropdown */
.menu__drop{ position:relative; }
.menu__a--drop{ display:inline-flex; align-items:center; gap:6px; }
.menu__caret{ width:14px; height:14px; flex:none; transition:transform .35s var(--e); }
.menu__drop:hover .menu__caret{ transform:rotate(180deg); }
.menu__sub{
  position:absolute; top:100%; left:6px; min-width:186px;
  background:#fff; border:1px solid var(--line); border-radius:14px;
  box-shadow:0 18px 40px rgba(10,33,20,.13);
  padding:8px;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s var(--e), transform .3s var(--e), visibility .3s;
}
.menu__drop:hover .menu__sub,
.menu__drop:focus-within .menu__sub{ opacity:1; visibility:visible; transform:translateY(0); }
.menu__sub a{
  display:block; padding:10px 14px; border-radius:9px;
  font-size:14px; color:var(--muted);
  transition:background .25s var(--e), color .25s var(--e);
}
.menu__sub a:hover{ background:var(--g-soft); color:var(--g); }

.nav__cta{ display:flex; align-items:center; gap:14px; flex:none; }
/* .btn keeps a small right pad for its arrow icon — this one has none, so even it out */
.nav__cta .btn{ padding-inline:24px; }
.nav__phone{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:500; transition:color .3s ease; }
.nav__phone svg{
  width:16px; height:16px; padding:7px; box-sizing:content-box;
  border-radius:50%; background:var(--g-soft); color:var(--g);
}
.nav__phone:hover{ color:var(--g); }

.burger{ display:none; width:44px; height:44px; border-radius:12px; border:1px solid var(--line); background:#fff; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.burger span{ width:18px; height:2px; background:var(--ink); border-radius:2px; transition:transform .4s var(--e); }
.burger.is-open span:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
.burger.is-open span:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }

/* ============================================================
   1 · HERO
   ============================================================ */
.hero{
  position:relative; isolation:isolate;
  min-height:100svh;
  display:flex; align-items:center;
  padding:130px 0 90px;
  overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:-1; }
.blob{ position:absolute; border-radius:50%; filter:blur(10px); }
.blob--1{
  width:720px; height:720px; top:-260px; right:-160px;
  background:radial-gradient(circle at 40% 40%, rgba(34,169,78,.26), rgba(34,169,78,.05) 55%, transparent 72%);
  animation:float1 18s ease-in-out infinite;
}
.blob--2{
  width:520px; height:520px; bottom:-200px; left:-140px;
  background:radial-gradient(circle at 50% 50%, rgba(53,208,106,.20), rgba(34,169,78,.04) 58%, transparent 74%);
  animation:float2 22s ease-in-out infinite;
}
.blob--3{
  width:380px; height:380px; top:36%; left:38%;
  background:radial-gradient(circle at 50% 50%, rgba(34,169,78,.13), transparent 68%);
  animation:float1 26s ease-in-out infinite reverse;
}
@keyframes float1{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-40px,44px) scale(1.09); } }
@keyframes float2{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(52px,-38px) scale(1.12); } }

.grid-lines{
  position:absolute; inset:0;
  background-image:
    linear-gradient(to right, rgba(16,40,26,.045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(16,40,26,.045) 1px, transparent 1px);
  background-size:76px 76px;
  mask-image:radial-gradient(ellipse 90% 70% at 50% 40%, #000 20%, transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 40%, #000 20%, transparent 78%);
}
.grid-lines--dark{
  position:absolute; inset:0; z-index:0; opacity:.5;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px);
}

.hero__in{
  display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:24px; align-items:center;
}
.hero__copy{ position:relative; z-index:2; }
.display{ margin-bottom:28px; }
.hero__lead{ font-size:17px; color:var(--muted); line-height:1.75; max-width:46ch; margin-bottom:38px; }
.hero__act{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:52px; }

.hero__stats{ display:flex; align-items:center; gap:30px; }
.hstat{ display:flex; flex-direction:column; }
.hstat b{ font-size:30px; line-height:1; letter-spacing:-.03em; margin-bottom:6px; }
.hstat i{ font-style:normal; font-size:12.5px; color:var(--muted-2); letter-spacing:.02em; }
.hstat__sep{ width:1px; height:36px; background:var(--line); }

/* let the image run into the shell's right margin so it reads bigger.
   The bleed is exactly the space between the shell edge and the viewport
   edge, so it can never overflow. .hero has overflow:hidden as a backstop. */
.hero__vis{
  position:relative;
  margin-right:calc(-1 * max(var(--gut), (100vw - var(--shell)) / 2 + var(--gut)));
}
.hero__frame{
  position:relative;
  border-radius:28px;
  overflow:visible;
  will-change:transform;
}
/* transparent PNG — no card, no crop, it just floats on the hero */
.hero__frame > img{
  width:100%; height:auto;
}
.hero__frame-glow{
  position:absolute; inset:-8% -6%; z-index:-1; border-radius:40px;
  background:radial-gradient(60% 60% at 50% 50%, rgba(34,169,78,.30), transparent 70%);
  filter:blur(28px);
}

.charge-chip{
  position:absolute; left:-34px; bottom:44px;
  display:flex; align-items:center; gap:13px;
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.7);
  border-radius:16px; padding:14px 20px 14px 14px;
  box-shadow:0 22px 50px rgba(10,33,20,.16);
  will-change:transform;
}
.charge-chip .ring{ width:44px; height:44px; transform:rotate(-90deg); flex:none; }
.ring__bg{ fill:none; stroke:rgba(34,169,78,.16); stroke-width:4; }
.ring__fg{
  fill:none; stroke:var(--g); stroke-width:4; stroke-linecap:round;
  stroke-dasharray:119.4; stroke-dashoffset:119.4;
  transition:stroke-dashoffset 1.6s var(--e);
}
.charge-chip__txt{ display:flex; flex-direction:column; line-height:1.35; }
.charge-chip__txt b{ font-family:var(--f-head); font-size:17px; font-weight:600; }
.charge-chip__txt i{ font-style:normal; font-size:11.5px; color:var(--muted-2); }

.live-chip{
  position:absolute; right:-18px; top:38px;
  display:flex; align-items:center; gap:10px;
  background:var(--dark); color:#fff;
  border-radius:99px; padding:11px 20px;
  font-size:13px;
  box-shadow:0 18px 40px rgba(10,33,20,.28);
  will-change:transform;
}
.live-chip b{ font-weight:600; }
.live-dot{ width:8px; height:8px; border-radius:50%; background:var(--g-2); position:relative; }
.live-dot::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  background:var(--g-2); animation:ping 1.8s var(--e-soft) infinite;
}
@keyframes ping{ 0%{ transform:scale(1); opacity:.7; } 80%,100%{ transform:scale(3.2); opacity:0; } }

.scroll-cue{
  position:absolute; left:50%; bottom:30px; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted-2);
}
.scroll-cue__line{ width:1px; height:46px; background:var(--line); position:relative; overflow:hidden; }
.scroll-cue__line i{ position:absolute; top:0; left:0; width:100%; height:40%; background:var(--g); animation:cue 2s var(--e-soft) infinite; }
@keyframes cue{ 0%{ transform:translateY(-100%); } 100%{ transform:translateY(260%); } }

/* ============================================================
   2 · MARQUEE
   ============================================================ */
.marquee{
  background:var(--dark-2); color:#fff;
  padding:22px 0; overflow:hidden;
  border-block:1px solid rgba(255,255,255,.06);
}
.marquee__row{ display:flex; width:max-content; will-change:transform; }
.marquee__set{ display:flex; align-items:center; gap:34px; padding-right:34px; }
.marquee__set span{
  font-family:var(--f-head); font-size:clamp(18px,2vw,26px); font-weight:500;
  letter-spacing:-.02em; white-space:nowrap; color:rgba(255,255,255,.82);
}
.marquee__set i{ width:7px; height:7px; border-radius:50%; background:var(--g); flex:none; }

/* ============================================================
   2b · VIDEO — SCROLL EXPAND
   Sticky stage; JS drives clip-path from a centred rounded box
   out to full bleed. Once the section ends it scrolls away and
   has no hold on whatever comes next.
   ============================================================ */
.film{ position:relative; height:260vh; background:var(--paper); }
.film__sticky{
  position:sticky; top:0;
  height:100svh;
  overflow:hidden;
}
.film__stage{
  position:absolute; inset:0;
  clip-path:inset(19% 17% round 30px);      /* start state — JS takes over */
  will-change:clip-path;
}
.film__stage video{
  width:100%; height:100%;
  object-fit:cover; display:block;
  background:var(--dark-3);
}
.film__veil{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(4,18,10,.44) 0%, rgba(4,18,10,.08) 46%, rgba(4,18,10,.56) 100%);
}

/* overlay tracks the visible video box, so corner copy always sits on the footage */
.film__ui{ position:absolute; inset:19% 17%; pointer-events:none; z-index:3; }
.film__ui > *{ pointer-events:auto; }

.film__cine{ position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:#fff; padding:0 24px; }
.film__tag{ font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--g-2); margin-bottom:16px; }
.film__cine h2{ font-size:clamp(28px,4.2vw,60px); line-height:1.06; text-shadow:0 4px 30px rgba(0,0,0,.45); }
.film__sub{ margin-top:16px; font-size:16px; color:rgba(255,255,255,.82); }

.film__cap{ position:absolute; left:34px; bottom:32px; display:flex; align-items:center; gap:12px; color:#fff; opacity:0; }
.film__dot{ width:8px; height:8px; border-radius:50%; background:var(--g-2); box-shadow:0 0 0 4px rgba(53,208,106,.22); flex:none; }
.film__capTxt{ display:flex; flex-direction:column; line-height:1.4; }
.film__capTxt b{ font-family:var(--f-head); font-size:15px; font-weight:600; }
.film__capTxt i{ font-style:normal; font-size:12.5px; color:rgba(255,255,255,.68); }

.film__mute{
  position:absolute; right:34px; bottom:32px;
  width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center; color:#fff;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.26);
  backdrop-filter:blur(14px);
  transition:background .3s var(--e), border-color .3s var(--e), transform .3s var(--e);
}
.film__mute:hover{ background:var(--g); border-color:var(--g); transform:scale(1.06); }
.film__mute svg{ width:19px; height:19px; }
.film__mute .on{ display:none; }
.film__mute.is-on .on{ display:block; }
.film__mute.is-on .off{ display:none; }

.film__hint{
  position:absolute; left:50%; bottom:32px; transform:translateX(-50%);
  display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.82);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
}
.film__hint i{ display:block; width:26px; height:1px; background:rgba(255,255,255,.5); position:relative; overflow:hidden; }
.film__hint i::after{ content:''; position:absolute; inset:0; width:40%; background:var(--g-2); animation:sweep 1.9s linear infinite; }
@keyframes sweep{ from{ transform:translateX(-100%); } to{ transform:translateX(300%); } }

/* ============================================================
   3 · WHY
   ============================================================ */
.why{ padding:120px 0 110px; }
/* narrow media column — the photo is portrait, so a slim frame crops far
   less of it than a near-square one, without growing the section */
.why__in{ display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:64px; align-items:center; }

.why__media{ position:relative; border-radius:24px; overflow:hidden; }
.why__media > img{
  width:100%; height:560px;
  object-fit:cover; object-position:center 42%;   /* keep the charger + car, drop sky */
  will-change:transform;
}
.why__badge{
  position:absolute; left:24px; bottom:24px;
  background:#fff; border-radius:18px; padding:20px 24px;
  display:flex; align-items:center; gap:14px;
  box-shadow:0 22px 50px rgba(10,33,20,.18);
}
.why__badge b{ font-size:34px; line-height:1; color:var(--g); letter-spacing:-.03em; }
.why__badge i{ font-style:normal; font-size:12.5px; line-height:1.45; color:var(--muted); }

.why__copy .h2{ margin-bottom:24px; }
.why__list{ margin-top:44px; display:grid; gap:2px; }
.why__list li{
  display:flex; gap:22px; align-items:flex-start;
  padding:24px 4px; border-top:1px solid var(--line);
  transition:padding-left .45s var(--e);
}
.why__list li:last-child{ border-bottom:1px solid var(--line); }
.why__list li:hover{ padding-left:14px; }
.why__n{
  font-family:var(--f-head); font-size:12px; font-weight:600;
  color:var(--g); letter-spacing:.12em; padding-top:5px; flex:none;
}
.why__list h3{ font-size:19px; margin-bottom:7px; letter-spacing:-.02em; }
.why__list p{ font-size:14.5px; color:var(--muted); line-height:1.7; }

/* ============================================================
   4 · SPLIT CARDS
   ============================================================ */
.split{ padding-bottom:120px; }
.split__grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.scard{
  position:relative; isolation:isolate;
  min-height:480px; border-radius:26px; overflow:hidden;
  display:flex; align-items:flex-end;
  transform-style:preserve-3d;
  transition:transform .5s var(--e-soft), box-shadow .5s var(--e-soft);
}
.scard:hover{ box-shadow:0 34px 70px rgba(10,33,20,.24); }
.scard__bg{
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover;
}
.scard__veil{
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(4,18,10,.10) 0%, rgba(4,18,10,.62) 52%, rgba(4,18,10,.94) 100%);
}
.scard__body{ padding:42px 44px 44px; color:#fff; max-width:520px; transform:translateZ(40px); }
.scard__ico{
  width:52px; height:52px; border-radius:50%; display:grid; place-items:center;
  background:var(--g); color:#fff; margin-bottom:22px;
}
.scard__ico svg{ width:24px; height:24px; }
.scard h3{ font-size:clamp(24px,2.4vw,32px); margin-bottom:14px; }
.scard p{ font-size:14.5px; line-height:1.75; color:rgba(255,255,255,.76); margin-bottom:28px; max-width:42ch; }

/* ============================================================
   5 · HORIZONTAL PINNED SOLUTIONS
   ============================================================ */
.hscroll{ position:relative; height:340vh; background:var(--surface); }
.hscroll__sticky{
  position:sticky; top:0; height:100vh;
  display:flex; flex-direction:column; justify-content:center; gap:44px;
  overflow:hidden;
}
.hscroll__head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:40px;
}
.hscroll__meter{ width:200px; height:3px; border-radius:99px; background:rgba(16,40,26,.12); overflow:hidden; flex:none; }
.hscroll__meter-fill{ display:block; height:100%; width:0%; background:var(--g); border-radius:99px; }

.hscroll__track{
  display:flex; gap:26px;
  padding-left:var(--pad-l); padding-right:var(--pad-l);
  will-change:transform;
}
.hcard{
  flex:none; width:382px; min-height:432px;
  background:#fff; border:1px solid var(--line); border-radius:22px;
  padding:38px 34px 34px;
  display:flex; flex-direction:column;
  position:relative; overflow:hidden;
  transition:transform .5s var(--e), box-shadow .5s var(--e), border-color .5s var(--e);
}
.hcard::after{
  content:''; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg,var(--g),var(--g-2));
  transform:scaleX(0); transform-origin:0 50%;
  transition:transform .55s var(--e);
}
.hcard:hover{ transform:translateY(-8px); box-shadow:0 28px 60px rgba(10,33,20,.12); border-color:transparent; }
.hcard:hover::after{ transform:scaleX(1); }
.hcard__n{
  position:absolute; right:28px; top:28px;
  font-family:var(--f-head); font-size:52px; font-weight:600;
  color:rgba(16,40,26,.05); line-height:1; letter-spacing:-.04em;
}
.hcard__ico{
  width:56px; height:56px; border-radius:50%; display:grid; place-items:center;
  background:var(--g-soft); color:var(--g); margin-bottom:26px;
  transition:background .4s var(--e), color .4s var(--e), transform .5s var(--e);
}
.hcard__ico svg{ width:25px; height:25px; }
.hcard:hover .hcard__ico{ background:var(--g); color:#fff; transform:rotate(-8deg) scale(1.06); }
.hcard h3{ font-size:22px; margin-bottom:12px; }
.hcard > p{ font-size:14.5px; color:var(--muted); line-height:1.72; margin-bottom:22px; }
.hcard__list{ display:grid; gap:9px; margin-bottom:26px; }
.hcard__list li{ font-size:13.5px; color:var(--muted); display:flex; align-items:center; gap:10px; }
.hcard__list li::before{
  content:''; width:15px; height:15px; border-radius:50%; flex:none;
  background:var(--g-soft);
  box-shadow:inset 0 0 0 1.5px var(--g);
}
.hcard__link{
  margin-top:auto; display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:500; color:var(--g);
  transition:gap .3s var(--e);
}
.hcard__link svg{ width:15px; height:15px; }
.hcard:hover .hcard__link{ gap:14px; }

.hcard--cta{
  background:linear-gradient(150deg,var(--dark) 0%, #0E3A1D 100%);
  border-color:transparent; color:#fff;
  justify-content:center; width:340px;
}
.hcard--cta h3{ font-size:27px; margin-bottom:14px; }
.hcard--cta p{ color:rgba(255,255,255,.66); font-size:14.5px; margin-bottom:28px; }
.hcard--cta .btn{ align-self:flex-start; }



/* ============================================================
   5a · PRODUCTS — AC / DC catalogue with tabs
   ============================================================ */
.prods{ padding:110px 0 104px; background:var(--paper); }
.prods__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:40px; margin-bottom:52px;
}
.prods__intro{ max-width:640px; }
.prods__intro .h2{ margin-bottom:16px; }

.prods__tabs{
  display:flex; gap:6px; flex:none;
  background:var(--surface); border-radius:99px; padding:6px;
}
.ptab{
  position:relative;
  padding:11px 24px; border-radius:99px;
  font-size:14px; font-weight:500; color:var(--muted); white-space:nowrap;
  transition:color .35s var(--e), background .35s var(--e), box-shadow .35s var(--e);
}
.ptab:hover{ color:var(--ink); }
.ptab.is-on{ background:var(--g); color:#fff; box-shadow:0 8px 20px rgba(34,169,78,.28); }

.prods__grid{ display:none; }
.prods__grid.is-on{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}

.pcard{
  display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line); border-radius:20px;
  overflow:hidden;
  transition:transform .5s var(--e), box-shadow .5s var(--e), border-color .5s var(--e);
}
.pcard:hover{ transform:translateY(-8px); box-shadow:0 28px 60px rgba(10,33,20,.12); border-color:transparent; }

.pcard__img{
  background:linear-gradient(180deg,#FDFEFD 0%, var(--surface) 100%);
  padding:26px; display:grid; place-items:center;
  border-bottom:1px solid var(--line);
}
.pcard__img img{
  width:auto; max-width:100%; height:150px; object-fit:contain;
  transition:transform .6s var(--e);
}
.pcard:hover .pcard__img img{ transform:scale(1.07); }

.pcard__body{ padding:22px 24px 22px; display:flex; flex-direction:column; flex:1; }
.pcard__cat{
  font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--g); margin-bottom:8px;
}
.pcard h3{ font-size:16.5px; line-height:1.35; letter-spacing:-.02em; margin-bottom:16px; }

.pcard__specs{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:20px; }
.pcard__specs li{
  font-size:11.5px; font-weight:500; color:var(--muted);
  background:var(--surface); border:1px solid var(--line);
  border-radius:7px; padding:5px 10px;
  transition:background .35s var(--e), color .35s var(--e), border-color .35s var(--e);
}
.pcard:hover .pcard__specs li{ background:var(--g-soft); color:var(--g-dim); border-color:transparent; }

.pcard__foot{
  margin-top:auto; padding-top:18px; border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.pcard__stock{
  display:inline-flex; align-items:center; gap:7px;
  font-size:12px; font-weight:500; color:var(--g-dim);
  background:var(--g-soft); border-radius:99px; padding:6px 13px;
}
.pcard__stock::before{
  content:''; width:6px; height:6px; border-radius:50%; background:var(--g);
  box-shadow:0 0 0 3px rgba(34,169,78,.18);
}
.pcard__cta{
  position:relative; overflow:hidden;
  background:var(--g); color:#fff;
  font-size:12.5px; font-weight:500;
  border-radius:99px; padding:9px 18px; white-space:nowrap;
  transition:background .35s var(--e), box-shadow .35s var(--e), transform .35s var(--e);
}
.pcard__cta:hover{ background:var(--ink); transform:translateY(-2px); box-shadow:0 10px 22px rgba(10,33,20,.22); }

/* cards fly in each time a tab is opened */
.prods__grid.is-on .pcard{ animation:pIn .7s var(--e) both; }
.prods__grid.is-on .pcard:nth-child(1){ animation-delay:.02s; }
.prods__grid.is-on .pcard:nth-child(2){ animation-delay:.09s; }
.prods__grid.is-on .pcard:nth-child(3){ animation-delay:.16s; }
.prods__grid.is-on .pcard:nth-child(4){ animation-delay:.23s; }
.prods__grid.is-on .pcard:nth-child(5){ animation-delay:.30s; }
.prods__grid.is-on .pcard:nth-child(6){ animation-delay:.37s; }
@keyframes pIn{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:none; } }

/* ============================================================
   5b · COMPLIANCE — certifications + compatible vehicles
   ============================================================ */
.certs{ padding:110px 0 116px; background:var(--paper); }
.certs__head{ max-width:720px; margin-bottom:58px; }
.certs__head .h2{ margin-bottom:20px; }

.certs__grid{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:20px; margin-bottom:56px;
}
.cert{
  display:flex; align-items:center; gap:18px;
  background:var(--surface); border:1px solid transparent; border-radius:16px;
  padding:22px 24px;
  transition:transform .45s var(--e), box-shadow .45s var(--e), background .45s var(--e), border-color .45s var(--e);
}
.cert:hover{
  transform:translateY(-5px);
  background:#fff; border-color:var(--line);
  box-shadow:0 20px 44px rgba(10,33,20,.10);
}
.cert__ico{
  width:50px; height:50px; flex:none; border-radius:14px;
  display:grid; place-items:center;
  background:var(--g-soft); color:var(--g);
  transition:background .45s var(--e), color .45s var(--e), transform .45s var(--e);
}
.cert__ico svg{ width:24px; height:24px; }
.cert:hover .cert__ico{ background:var(--g); color:#fff; transform:rotate(-6deg); }
.cert h3{ font-size:16px; line-height:1.3; margin-bottom:5px; letter-spacing:-.02em; }
.cert p{ font-size:13px; color:var(--muted); line-height:1.5; }

/* dark panel — the vehicles it works with */
.compat{
  position:relative; overflow:hidden;
  background:linear-gradient(150deg,var(--dark-2) 0%, #0C2E17 100%);
  border-radius:24px; padding:44px 40px 46px; text-align:center;
}
.compat__label{
  font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--g-2); margin-bottom:28px;
}
.compat__chips{
  display:flex; flex-wrap:wrap; justify-content:center; gap:12px;
}
.chip{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:99px; padding:11px 20px;
  font-size:14px; font-weight:500; color:#fff; white-space:nowrap;
  transition:background .35s var(--e), border-color .35s var(--e), transform .35s var(--e);
}
.chip svg{ width:13px; height:13px; color:var(--g-2); flex:none; }
.chip:hover{ background:rgba(34,169,78,.20); border-color:var(--g); transform:translateY(-3px); }

/* chips arrive one after another once the panel reveals */
.compat__chips li{ opacity:0; transform:translateY(14px); transition:opacity .6s var(--e), transform .6s var(--e); }
.compat.is-in .compat__chips li{ opacity:1; transform:none; }
.compat.is-in .compat__chips li:nth-child(1){ transition-delay:.25s; }
.compat.is-in .compat__chips li:nth-child(2){ transition-delay:.32s; }
.compat.is-in .compat__chips li:nth-child(3){ transition-delay:.39s; }
.compat.is-in .compat__chips li:nth-child(4){ transition-delay:.46s; }
.compat.is-in .compat__chips li:nth-child(5){ transition-delay:.53s; }
.compat.is-in .compat__chips li:nth-child(6){ transition-delay:.60s; }
.compat.is-in .compat__chips li:nth-child(7){ transition-delay:.67s; }
.compat.is-in .compat__chips li:nth-child(8){ transition-delay:.74s; }

/* ============================================================
   6 · DARK BAND
   ============================================================ */
.band{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--dark-3); color:#fff;
  padding:120px 0 118px;
}
.band__spot{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(34,169,78,.20), transparent 65%);
  transition:opacity .4s ease;
}
.band__in{ position:relative; z-index:2; }
.band__head{ max-width:900px; margin-bottom:78px; }
.band__head .h2{ margin-bottom:20px; }
.band__stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:34px; }
.bstat b{ display:block; font-size:clamp(38px,4.4vw,60px); line-height:1; letter-spacing:-.045em; margin-bottom:12px; }
.bstat i{ display:block; font-style:normal; font-size:13.5px; color:rgba(255,255,255,.55); margin-bottom:20px; }

.bar{ display:block; height:3px; border-radius:99px; background:rgba(255,255,255,.12); overflow:hidden; }
.bar em{
  display:block; height:100%; width:0; border-radius:99px;
  background:linear-gradient(90deg,var(--g),var(--g-2));
  transition:width 1.5s var(--e) .2s;
}
.is-in .bar em{ width:var(--w); }
.bar--sm{ height:2px; margin-top:14px; }

/* ============================================================
   7 · PROCESS
   ============================================================ */
.process{ padding:120px 0 124px; background:var(--paper); }
.process__head{ margin-bottom:86px; max-width:720px; }
.process__wrap{ position:relative; }
.process__rail{
  position:absolute; top:27px; left:12.5%; right:12.5%; height:2px;
  background:var(--line); border-radius:2px;
}
.process__rail em{ display:block; height:100%; width:0%; background:var(--g); border-radius:2px; }

.process__steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.pstep{ text-align:center; }
.pstep__dot{
  position:relative; z-index:2;
  width:56px; height:56px; border-radius:50%;
  display:grid; place-items:center; margin:0 auto 26px;
  background:#fff; border:2px solid var(--line);
  font-family:var(--f-head); font-size:14px; font-weight:600; color:var(--muted-2);
  transition:background .5s var(--e), border-color .5s var(--e), color .5s var(--e), transform .5s var(--e), box-shadow .5s var(--e);
}
.pstep.is-on .pstep__dot{
  background:var(--g); border-color:var(--g); color:#fff;
  transform:scale(1.08);
  box-shadow:0 0 0 8px rgba(34,169,78,.12);
}
.pstep h3{ font-size:19px; margin-bottom:10px; transition:color .4s var(--e); }
.pstep p{ font-size:14px; color:var(--muted); line-height:1.7; max-width:26ch; margin-inline:auto; }
.pstep.is-on h3{ color:var(--g); }



/* ============================================================
   7a · MOBILE APP
   ============================================================ */
.app{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--dark-3); color:#fff;
  padding:112px 0 116px;
}
.app__glow{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(46% 60% at 74% 42%, rgba(34,169,78,.22), transparent 66%);
}
.app__in{
  position:relative; z-index:2;
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:70px; align-items:center;
}
.app__copy .h2{ margin-bottom:18px; }
.app__copy .lead{ max-width:52ch; }

.app__list{ margin:44px 0 44px; display:grid; gap:22px; }
.app__list li{ display:flex; gap:16px; align-items:flex-start; }
.app__ico{
  width:40px; height:40px; flex:none; border-radius:12px;
  display:grid; place-items:center;
  background:rgba(34,169,78,.14); color:var(--g-2);
  border:1px solid rgba(53,208,106,.20);
  transition:background .4s var(--e), color .4s var(--e), transform .4s var(--e);
}
.app__ico svg{ width:19px; height:19px; }
.app__list li:hover .app__ico{ background:var(--g); color:#fff; transform:translateY(-3px); }
.app__list h3{ font-size:16px; margin-bottom:5px; letter-spacing:-.02em; }
.app__list p{ font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.58); }

.app__stores{ display:flex; gap:14px; flex-wrap:wrap; }
.store{
  display:inline-flex; align-items:center; gap:12px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px; padding:11px 20px 11px 17px;
  transition:background .35s var(--e), border-color .35s var(--e), transform .35s var(--e);
}
.store svg{ width:22px; height:22px; flex:none; }
.store span{ display:flex; flex-direction:column; line-height:1.25; }
.store i{ font-style:normal; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.store b{ font-family:var(--f-head); font-size:15px; font-weight:600; letter-spacing:-.02em; }
.store:hover{ background:rgba(34,169,78,.18); border-color:var(--g); transform:translateY(-3px); }

.app__media{ display:flex; justify-content:center; }
.app__frame{
  position:relative;
  width:min(340px, 100%); aspect-ratio:9/16;
  border-radius:34px; overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 40px 90px rgba(0,0,0,.45), 0 0 0 8px rgba(255,255,255,.03);
}
.app__frame video{
  width:100%; height:100%; object-fit:cover; display:block;
  background:var(--dark);
}

/* ============================================================
   7b · COVERAGE + CONTACT
   ============================================================ */
.cov{ padding:112px 0 118px; background:var(--paper); }
.cov__in{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr); gap:64px; align-items:stretch; }
.cov__left .h2{ margin-bottom:18px; }

.cov__bars{ margin-top:46px; display:grid; gap:28px; }
.cbar__top{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  margin-bottom:12px;
}
.cbar__top span{ font-size:15.5px; font-weight:500; color:var(--ink); }
.cbar__top b{ font-family:var(--f-head); font-size:16px; font-weight:600; color:var(--ink); }
.cbar__rail{ display:block; height:7px; border-radius:99px; background:var(--surface); overflow:hidden; }
.cbar__rail em{
  display:block; height:100%; width:0; border-radius:99px;
  background:linear-gradient(90deg,var(--g),var(--g-2));
  transition:width 1.5s var(--e) .25s;
}
.is-in .cbar__rail em{ width:var(--w); }

/* dark contact card */
.cov__card{
  position:relative; isolation:isolate; overflow:hidden;
  border-radius:26px; min-height:400px; height:100%;
  display:flex; align-items:center;
  box-shadow:0 30px 66px rgba(10,33,20,.16);
}
.cov__bg{
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover;
  background:linear-gradient(150deg,#0B2C16,#22A94E);
}
.cov__veil{
  position:absolute; inset:0; z-index:-1;
  background:
    /* vignette — stops the corners washing out to grey */
    radial-gradient(125% 100% at 45% 50%, transparent 32%, rgba(4,18,10,.52) 100%),
    /* pulls the photo's dull olive back toward the brand green */
    linear-gradient(0deg, rgba(23,120,57,.26), rgba(23,120,57,.26)),
    /* dark on the left where the copy sits */
    linear-gradient(105deg, rgba(4,20,11,.92) 0%, rgba(6,26,15,.84) 46%, rgba(6,26,15,.50) 78%, rgba(6,26,15,.28) 100%);
}
.cov__body{ padding:44px 44px 46px; color:#fff; max-width:460px; }
.cov__label{
  font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--g-2); margin-bottom:14px;
}
.cov__phone{
  display:inline-block;
  font-family:var(--f-head); font-size:clamp(26px,2.6vw,34px); font-weight:600;
  letter-spacing:-.03em; margin-bottom:16px;
  transition:color .3s var(--e);
}
.cov__phone:hover{ color:var(--g-2); }
.cov__text{ font-size:14.5px; line-height:1.7; color:rgba(255,255,255,.74); margin-bottom:28px; }
.cov__act{ display:flex; gap:12px; flex-wrap:wrap; }
.cov__act .btn{ padding-inline:26px; height:46px; font-size:14px; }

/* ============================================================
   8 · TESTIMONIALS
   ============================================================ */
.proof{ padding:0 0 124px; }
.proof__head{ max-width:760px; margin:0 0 52px; }
.proof__head .tag{ margin-bottom:18px; }

/* carousel — native scroll-snap does the sliding, JS only drives the controls */
.tslider{ position:relative; }
.tslider__viewport{
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
  padding:16px 0 24px;          /* room for the hover lift + shadow */
  margin:-16px 0 -24px;
}
.tslider__viewport::-webkit-scrollbar{ display:none; }
.tslider__track{
  display:grid; grid-auto-flow:column;
  grid-auto-columns:calc((100% - 52px) / 2.6);   /* 3rd card peeks — that's the scroll cue */
  gap:26px; align-items:stretch;
}
.tslider__nav{ display:flex; align-items:center; gap:16px; margin-top:34px; }
.tdots{ display:flex; gap:7px; margin-inline:auto; }
.qbtn{
  width:44px; height:44px; border-radius:50%; border:1px solid var(--line);
  display:grid; place-items:center; color:var(--ink); background:#fff;
  transition:background .35s var(--e), color .35s var(--e), border-color .35s var(--e);
}
.qbtn svg{ width:16px; height:16px; }
.qbtn:hover{ background:var(--g); color:#fff; border-color:var(--g); }
.qbtn[disabled]{ opacity:.35; pointer-events:none; }
.qdot{ width:7px; height:7px; border-radius:99px; background:#D7DEDA; transition:width .4s var(--e), background .4s var(--e); }
.qdot.is-on{ width:22px; background:var(--g); }

.tcard{
  scroll-snap-align:start;
  position:relative; overflow:hidden; isolation:isolate;
  background:#fff; border:1px solid var(--line); border-radius:22px;
  padding:38px 34px 32px;
  display:flex; flex-direction:column;
  transition:transform .5s var(--e), box-shadow .5s var(--e), border-color .5s var(--e);
}
/* thin green bar wipes across the top on hover */
.tcard::after{
  content:''; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg,var(--g),var(--g-2));
  transform:scaleX(0); transform-origin:0 50%;
  transition:transform .55s var(--e);
}
.tcard:hover{ transform:translateY(-10px); box-shadow:0 30px 64px rgba(10,33,20,.13); border-color:transparent; }
.tcard:hover::after{ transform:scaleX(1); }

/* oversized quote glyph in the corner */
.tcard__glyph{
  position:absolute; right:22px; top:-14px; z-index:-1;
  font-family:var(--f-head); font-size:130px; font-weight:700; line-height:1;
  color:var(--g); opacity:.09;
  transition:opacity .5s var(--e), transform .5s var(--e);
  user-select:none;
}
.tcard:hover .tcard__glyph{ opacity:.16; transform:translateY(4px); }

.stars{ display:flex; gap:4px; color:#F5A623; margin-bottom:22px; }
.stars svg{ width:17px; height:17px; }

.tcard__text{
  font-size:15.5px; line-height:1.75; color:var(--ink-2);
  margin-bottom:30px;
}

.tcard__who{
  margin-top:auto; padding-top:24px;
  border-top:1px solid var(--line);
  display:flex; align-items:center; gap:14px;
}
.tcard__ini{
  width:46px; height:46px; border-radius:50%; flex:none;
  display:grid; place-items:center;
  background:var(--g-soft); color:var(--g);
  font-family:var(--f-head); font-size:15px; font-weight:600; letter-spacing:-.01em;
  transition:background .45s var(--e), color .45s var(--e);
}
.tcard:hover .tcard__ini{ background:var(--g); color:#fff; }
.tcard__meta{ display:flex; flex-direction:column; line-height:1.45; }
.tcard__meta b{ font-size:15px; font-weight:600; }
.tcard__meta i{
  font-style:normal; font-size:11.5px; font-weight:500;
  letter-spacing:.09em; text-transform:uppercase; color:var(--g);
}

/* the middle one is the featured card */
.tcard--feat{
  background:linear-gradient(160deg,var(--dark) 0%, #0E3A1D 100%);
  border-color:transparent; color:#fff;
}
.tcard--feat .tcard__glyph{ color:var(--g-2); opacity:.22; }
.tcard--feat:hover .tcard__glyph{ opacity:.34; }
.tcard--feat .tcard__text{ color:rgba(255,255,255,.86); }
.tcard--feat .tcard__who{ border-top-color:rgba(255,255,255,.14); }
.tcard--feat .tcard__ini{ background:rgba(53,208,106,.18); color:var(--g-2); }
.tcard--feat:hover .tcard__ini{ background:var(--g-2); color:var(--dark); }
.tcard--feat .tcard__meta i{ color:var(--g-2); }
.tcard--feat:hover{ box-shadow:0 30px 64px rgba(10,33,20,.3); }

/* ============================================================
   9 · POSTS
   ============================================================ */
.posts{ padding:0 0 120px; }
.posts__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:52px; }
.posts__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.post{ display:flex; flex-direction:column; }
.post__img{ position:relative; border-radius:16px; overflow:hidden; margin-bottom:20px; background:var(--surface); }
.post__img img{ width:100%; height:212px; object-fit:cover; transition:transform .8s var(--e); }
.post:hover .post__img img{ transform:scale(1.07); }
.post__tag{
  position:absolute; left:14px; bottom:14px;
  background:var(--g); color:#fff; font-size:9.5px; font-weight:600;
  letter-spacing:.08em; padding:6px 11px; border-radius:6px;
}
.post h3{ font-size:16.5px; line-height:1.42; margin-bottom:16px; transition:color .35s var(--e); }
.post:hover h3{ color:var(--g); }
.post__meta{ margin-top:auto; padding-top:14px; border-top:1px solid var(--line); font-size:12.5px; color:var(--muted-2); }
.post__meta span{ margin:0 6px; }

/* ============================================================
   10 · CTA
   ============================================================ */
.cta{ padding-bottom:120px; }
.cta__band{
  position:relative; isolation:isolate; overflow:hidden;
  background:linear-gradient(115deg,#061A0F 0%, #0B2C16 48%, #113F21 100%);
  border-radius:28px; color:#fff;
  padding:64px 62px;
  display:flex; align-items:center; justify-content:space-between; gap:44px;
}
.cta__bg{
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; object-fit:cover; object-position:center 42%;
}
/* dark on the left where the copy sits, clearing toward the charger */
.cta__aurora{
  position:absolute; inset:0; z-index:-1; overflow:hidden;
  background:linear-gradient(95deg,
    rgba(4,20,11,.96) 0%, rgba(5,24,14,.90) 40%,
    rgba(5,24,14,.60) 70%, rgba(5,24,14,.30) 100%);
}
.cta__aurora::after{
  content:''; position:absolute; inset:-40% -10%;
  background:radial-gradient(38% 60% at 16% 42%, rgba(34,169,78,.38), transparent 64%);
  filter:blur(22px);
  animation:aurora 16s ease-in-out infinite;
}
@keyframes aurora{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(4%,-5%) scale(1.14); } }
.cta__copy{ max-width:660px; }
.cta__ico{
  width:56px; height:56px; border-radius:50%; display:grid; place-items:center;
  border:1.5px solid rgba(53,208,106,.5); background:rgba(34,169,78,.16); color:var(--g-2);
  margin-bottom:26px;
}
.cta__ico svg{ width:25px; height:25px; }
.cta__copy h2{ font-size:clamp(28px, 2.8vw, 40px); line-height:1.12; margin-bottom:14px; }
.cta__copy p{ font-size:15px; color:rgba(255,255,255,.66); line-height:1.7; }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ background:var(--dark-3); color:#fff; padding-top:86px; overflow:hidden; }
.foot__top{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1.2fr) repeat(4, minmax(0,.78fr));
  gap:34px; padding-bottom:64px;
}
.foot__brand p{ font-size:13px; line-height:1.8; color:rgba(255,255,255,.5); margin:22px 0 26px; max-width:260px; }
.foot__social{ display:flex; gap:10px; }
.foot__social a{
  width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.07); color:rgba(255,255,255,.85);
  transition:background .35s var(--e), transform .35s var(--e), color .35s var(--e);
}
.foot__social svg{ width:16px; height:16px; }
.foot__social a:hover{ background:var(--g); color:#fff; transform:translateY(-3px); }

.foot h3{ font-size:14.5px; font-weight:600; margin-bottom:20px; letter-spacing:-.01em; }
.foot__news p{ font-size:13px; line-height:1.75; color:rgba(255,255,255,.5); margin-bottom:22px; max-width:280px; }
.sub{ display:flex; max-width:320px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); border-radius:99px; padding:5px 5px 5px 6px; }
.sub input{ flex:1; min-width:0; background:none; border:0; padding:9px 14px; color:#fff; font-size:13px; }
.sub input::placeholder{ color:rgba(255,255,255,.38); }
.sub input:focus{ outline:none; }
.sub button{
  position:relative; overflow:hidden;
  background:var(--g); color:#fff; border-radius:99px; padding:0 20px; font-size:13px; font-weight:500;
  transition:background .35s var(--e);
}
.sub button:hover{ background:var(--g-2); }

.foot__col ul li + li{ margin-top:11px; }
.foot__col a{ font-size:13px; color:rgba(255,255,255,.5); transition:color .3s var(--e), padding-left .3s var(--e); display:inline-block; }
.foot__col a:hover{ color:var(--g-2); padding-left:5px; }
.foot__contact li{ display:flex; gap:11px; font-size:13px; color:rgba(255,255,255,.5); line-height:1.65; }
.foot__contact svg{ width:15px; height:15px; flex:none; margin-top:4px; color:var(--g); }

.foot__word{
  border-top:1px solid rgba(255,255,255,.08);
  padding-top:30px;
  overflow:hidden;
}
.foot__word span{
  display:block; text-align:center;
  font-family:var(--f-head); font-weight:700;
  font-size:clamp(56px, 15vw, 210px); line-height:.86; letter-spacing:-.05em;
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(34,169,78,.16));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  user-select:none;
}
.foot__bar{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:24px 0 30px;
  font-size:12.5px; color:rgba(255,255,255,.42);
}
.to-top{ display:inline-flex; align-items:center; gap:8px; transition:color .3s var(--e); }
.to-top svg{ width:15px; height:15px; }
.to-top:hover{ color:var(--g-2); }

/* broken remote placeholder → brand gradient instead of a broken icon */
img.is-broken{ background:linear-gradient(140deg,#0B2C16,#143F23 55%,var(--g)); min-height:150px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1280px){
  :root{ --gut:30px; }
  .menu{ gap:0; }
  .menu__a{ padding:9px 11px; font-size:14px; }
  .why__in{ gap:48px; }
  .why__media > img{ height:480px; }
  .scard{ min-height:430px; }
  .hcard{ width:340px; }
  .cta__band{ padding:54px 46px; }
}

@media (max-width:1080px){
  /* header → drawer */
  .burger{ display:flex; }
  .menu{
    position:fixed; inset:82px 0 auto 0;
    flex-direction:column; align-items:stretch; gap:2px;
    background:#fff; border-top:1px solid var(--line);
    box-shadow:0 24px 50px rgba(10,33,20,.12);
    padding:18px 30px 28px; margin:0;
    clip-path:inset(0 0 100% 0);
    transition:clip-path .6s var(--e);
  }
  .menu.is-open{ clip-path:inset(0 0 0 0); }
  .menu__a{ --mfs:17px; padding:13px 4px; }
  .menu__a::before{ display:none; }
  .menu__a.is-active span::before{ color:var(--g); }

  /* dropdown becomes an accordion inside the drawer */
  .menu__drop{ display:flex; flex-direction:column; }
  .menu__a--drop{ justify-content:space-between; }
  .menu__caret{ width:17px; height:17px; }
  .menu__sub{
    position:static; opacity:1; visibility:visible; transform:none;
    background:none; border:0; border-left:2px solid var(--g-soft);
    border-radius:0; box-shadow:none;
    padding:0 0 6px 16px; margin-bottom:6px;
    display:none;
  }
  .menu__drop.is-open .menu__sub{ display:block; }
  .menu__drop.is-open .menu__caret{ transform:rotate(180deg); }
  .menu__sub a{ font-size:15.5px; padding:10px 6px; }
  .nav{ background:rgba(255,255,255,.9); backdrop-filter:saturate(180%) blur(16px); }
  .nav__cta .nav__phone span{ display:none; }
  .nav__in{ gap:14px; }
  .nav__cta{ margin-left:auto; }

  .hero{ padding:120px 0 84px; }
  .hero__in{ grid-template-columns:1fr; gap:52px; }
  .hero__vis{ margin-right:0; }          /* stacked — no bleed */
  .hero__frame > img{ height:420px; }
  .scroll-cue{ display:none; }

  .why__in{ grid-template-columns:1fr; gap:44px; }
  .why__media > img{ height:400px; }

  .split__grid{ grid-template-columns:1fr; }
  .scard{ min-height:420px; }

  .prods__grid.is-on{ grid-template-columns:repeat(2,1fr); }
  .prods__head{ flex-direction:column; align-items:flex-start; gap:26px; }
  .certs__grid{ grid-template-columns:repeat(2,1fr); }
  .app__in{ grid-template-columns:1fr; gap:52px; }
  .app__media{ order:-1; }
  .app__frame{ width:min(300px,100%); }
  .cov__in{ grid-template-columns:1fr; gap:46px; }
  .cov__card{ min-height:340px; }
  .band__stats{ grid-template-columns:repeat(2,1fr); gap:44px 30px; }


  .tslider__track{ grid-auto-columns:calc((100% - 22px) / 2); gap:22px; }
  .posts__grid{ grid-template-columns:repeat(2,1fr); }

  .cta__band{ flex-direction:column; align-items:flex-start; }

  .foot__top{ grid-template-columns:repeat(3,1fr); gap:40px 30px; }
  .foot__brand,
  .foot__news{ grid-column:span 3; }
}

/* horizontal pin → native swipe rail */
@media (max-width:1080px){
  .hscroll{ height:auto !important; padding:96px 0 100px; }
  .hscroll__sticky{ position:static; height:auto; overflow:visible; gap:34px; }
  .hscroll__meter{ display:none; }
  .hscroll__track{
    transform:none !important;
    overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory;
    padding-bottom:16px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .hscroll__track::-webkit-scrollbar{ display:none; }
  .hcard{ scroll-snap-align:center; }
}

@media (max-width:1080px){
  .film{ height:210vh; }
}

@media (max-width:820px){
  .film{ height:180vh; }
  .film__cap{ left:20px; bottom:22px; }
  .film__mute{ right:20px; bottom:22px; width:40px; height:40px; }
  .film__hint,.film__sub{ display:none; }
  .nav .brand__img{ width:120px; }
  .prods{ padding:84px 0 80px; }
  .certs{ padding:84px 0 88px; }
  .process__rail{ display:none; }
  .process__steps{ grid-template-columns:repeat(2,1fr); gap:44px 24px; }
  .process__head{ margin-bottom:58px; }
}

@media (max-width:640px){
  :root{ --gut:20px; }
  .nav__in{ height:70px; }
  .menu{ inset:70px 0 auto 0; }
  .nav__cta .btn{ height:42px; padding-inline:18px; font-size:13.5px; }
  .brand__txt{ font-size:17px; }

  .hero{ padding:104px 0 70px; min-height:auto; }
  .display{ letter-spacing:-.035em; margin-bottom:22px; }
  .hero__lead{ font-size:15.5px; margin-bottom:30px; }
  .hero__act{ gap:10px; margin-bottom:40px; }
  .hero__act .btn{ flex:1 1 auto; justify-content:center; }
  .hero__frame > img{ height:300px; border-radius:20px; }
  .charge-chip{ left:0; bottom:16px; padding:11px 16px 11px 11px; }
  .charge-chip .ring{ width:36px; height:36px; }
  .live-chip{ right:0; top:16px; font-size:12px; padding:9px 15px; }
  .hero__stats{ gap:18px; }
  .hstat b{ font-size:24px; }
  .hstat i{ font-size:11.5px; }

  .marquee{ padding:16px 0; }
  .marquee__set{ gap:22px; padding-right:22px; }

  .why{ padding:80px 0 74px; }
  .why__media > img{ height:300px; }
  .why__badge{ left:16px; bottom:16px; padding:16px 18px; }
  .why__badge b{ font-size:27px; }
  .why__list{ margin-top:32px; }
  .why__list li{ gap:16px; padding:20px 2px; }

  .split{ padding-bottom:80px; }
  .scard{ min-height:380px; border-radius:20px; }
  .scard__body{ padding:30px 26px 32px; }

  .hscroll{ padding:76px 0 80px; }
  .hcard{ width:min(300px, 82vw); min-height:400px; padding:30px 26px; }
  .hcard--cta{ width:min(300px,82vw); }

  .app{ padding:80px 0 84px; }
  .app__list{ margin:34px 0 34px; gap:18px; }
  .app__stores{ gap:10px; }
  .store{ flex:1 1 auto; }
  .cov{ padding:80px 0 80px; }
  .cov__body{ padding:32px 26px 34px; }
  .cov__act .btn{ flex:1 1 auto; justify-content:center; }
  .prods__grid.is-on{ grid-template-columns:1fr; gap:18px; }
  .prods__tabs{ width:100%; }
  .ptab{ flex:1; padding:11px 14px; }
  .certs__grid{ grid-template-columns:1fr; gap:14px; margin-bottom:40px; }
  .cert{ padding:18px 20px; gap:14px; }
  .compat{ padding:34px 22px 36px; border-radius:20px; }
  .compat__chips{ gap:9px; }
  .chip{ padding:10px 16px; font-size:13px; }
  .band{ padding:82px 0 80px; }
  .band__head{ margin-bottom:52px; }
  .band__stats{ gap:34px 22px; }

  .process{ padding:80px 0 82px; }
  .process__steps{ grid-template-columns:1fr; gap:38px; text-align:left; }
  .pstep{ text-align:left; }
  .pstep__dot{ margin:0 0 18px; }
  .pstep p{ margin-inline:0; max-width:none; }

  .proof{ padding-bottom:80px; }
  .proof__head{ margin-bottom:48px; }
  .tslider__track{ grid-auto-columns:88%; gap:16px; }
  .tcard{ padding:32px 26px 28px; }

  .posts{ padding-bottom:80px; }
  .posts__head{ flex-direction:column; align-items:flex-start; gap:18px; margin-bottom:34px; }
  .posts__grid{ grid-template-columns:1fr; gap:34px; }
  .post__img img{ height:220px; }

  .cta{ padding-bottom:80px; }
  .cta__band{ padding:38px 26px; border-radius:22px; gap:30px; }
  .cta__band .btn{ width:100%; justify-content:center; }

  .foot{ padding-top:64px; }
  .foot__top{ grid-template-columns:repeat(2,1fr); gap:34px 22px; }
  .foot__brand,
  .foot__news{ grid-column:span 2; }
  .foot__bar{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* ---------------- REDUCED MOTION ---------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
  [data-reveal]{ opacity:1 !important; transform:none !important; clip-path:none !important; }
  .ln > i,.w > i{ transform:none !important; opacity:1 !important; }
  .cursor,.grain{ display:none; }
  /* no scroll-expand — just show the video */
  .film{ height:auto !important; }
  .film__sticky{ position:static; height:auto; }
  .film__stage{ position:relative; height:72vh; clip-path:none !important; }
}

/* ============================================================
   ELEMENTOR BRIDGE — header
   Elementor's Nav Menu renders its own markup, so these rules
   map our look onto its classes instead of .menu__a etc.
   ============================================================ */
.rv-header{
  position:fixed; top:0; left:0; right:0; z-index:800;
  transition:transform .55s var(--e), background .4s ease, box-shadow .4s ease;
}
.rv-header.is-solid{
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(180%) blur(16px);
  box-shadow:0 1px 0 rgba(16,32,24,.07), 0 10px 30px rgba(16,32,24,.05);
}
.rv-header.is-hidden{ transform:translateY(-102%); }

/* logo file is white — flatten it to black on the light header */
.rv-logo img{ filter:brightness(0); display:block; }

/* nav links */
.rv-menu .elementor-nav-menu > li > a.elementor-item{
  position:relative; border-radius:99px; letter-spacing:-.01em;
  transition:color .18s ease;
}
.rv-menu .elementor-nav-menu > li > a.elementor-item::before{
  content:''; position:absolute; left:15px; right:15px; bottom:4px; height:2px;
  background:var(--g); border-radius:2px;
  transform:scaleX(0); transform-origin:0 50%;
  transition:transform .45s var(--e);
}
.rv-menu .elementor-nav-menu > li > a.elementor-item.elementor-item-active::before{ transform:scaleX(1); }

/* dropdown */
.rv-menu .elementor-nav-menu--dropdown,
.rv-menu .sub-menu{
  border:1px solid var(--line) !important;
  border-radius:14px !important;
  box-shadow:0 18px 40px rgba(10,33,20,.13) !important;
  padding:8px !important;
  overflow:hidden;
}
.rv-menu .sub-menu a.elementor-sub-item{
  border-radius:9px; font-size:14px; padding:10px 14px !important;
  transition:background .25s var(--e), color .25s var(--e);
}
.rv-menu .sub-menu a.elementor-sub-item:hover{ background:var(--g-soft); color:var(--g) !important; }

/* header button — even padding, ink fill on hover */
.rv-cta .elementor-button{
  overflow:hidden; position:relative;
  transition:color .35s var(--e), box-shadow .35s var(--e), transform .18s ease;
}
.rv-cta .elementor-button:hover{ transform:translateY(-2px); box-shadow:0 14px 34px rgba(34,169,78,.28); }

/* the fixed header sits over the page, so the first section needs clearance */
.rv-page > .elementor-element:first-child{ scroll-margin-top:90px; }/* End custom CSS */