
:root {
  --purple: #450AFD;
  --critical: #e5161d;
  --high: #e8a32e;
  --dark: #3a3a3a;
  --track: #e6e6e6;
  --text: #111111;
  --text-soft: #1F1F1F;
   --cmp-purple: #4510ff;
  --cmp-red: #e5161d;
  --cmp-green: #22c55e;
  --cmp-line: #ebebef;
  --cmp-row-h: 66px;
  --cmp-overhang: 20px;  
   --steps-purple: #4510ff;
  --steps-line: #d9d9de;
  --steps-text: var(--text-soft);
    --myth-color: #E51919;
  --fact-color: #30D060;
  --dot-size: 16px;
  --row-gap: 34px; 
    --gdpr-frame: #fff;
  --gdpr-card: #F3F3F4;
  --gdpr-line: #F3F3F4;
  --gdpr-text: var(--text-soft);
  --gdpr-muted: #a1a1aa;
  --gdpr-green: #22c55e;
  --gdpr-amber: #f5a524;
   --hero-ink: #1a1a1a;
  --hero-purple: #4510ff;
  --hero-purple-2: #8b5cff;
    --lsa-ink:var(--text-soft);       
  --lsa-text:var(--text-soft);      
  --lsa-muted:var(--text-soft);   
  --lsa-line:#E2E6EE;    
  --lsa-surface:#fff;   
  --lsa-accent:var(--cmp-purple);   
  --lsa-accent-soft:rgba(69, 16, 255, 0.06);;
  --lsa-ok:#13A15A;  
   --lsa-header-offset:110px; 
  color:var(--lsa-text);
  /* funnel css */
     --page: #F4F4F4;
    --card: #FFFFFF;
    --text: #111111;
    --muted: #2B2B2B;
    --line: #9A9A9A;
    --ok: #22C55E;
    --ok-border: #9FE6BE;
    --cols: minmax(160px, 1fr) minmax(0, 720px) minmax(160px, 1fr);
    --Manrope:"Manrope", Sans-serif;
    --plus-jakarta:"Plus Jakarta Sans", Sans-serif;

}
img{
    max-width: 100%;
}
h1, h2, h3, h4, h5, h6, p{
    margin: 0px;
}
ul, ol{
    padding: 0px;
    margin: 0px;
}
*{
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

table td, table th{
    border: 0px;
}
table tbody>tr:nth-child(odd)>td, table tbody>tr:nth-child(odd)>th{
    background-color: transparent;
}
table thead:first-child tr:first-child th{
    border: none;
}
.custom-top-bar {
    top: 0 !important;
    position: fixed !important;
}
body {
    padding-top: 40px;
}
header.scrolled .header-main,
header .header-main, #logo-main:before{
  transition: all 200ms linear;
  --webkit-transition: all 200ms linear;
  --moz-transition: all 200ms linear;
}
header.scrolled .header-main{
  top: 40px !important;
  background-color: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(8px);
}
.top-bar-btn::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle closest-side,
    rgba(255,255,255,.64) 0 27%,
    rgba(255,255,255,.40) 27% 64%,
    rgba(255,255,255,.20) 64% 100%);
  animation: btn-ripple 2s linear infinite;
  display: inline-block;
}

@keyframes btn-ripple {
  0%    { box-shadow: 0 0 0 0   rgba(255,255,255,.4), 0 0 0 6px  rgba(255,255,255,.2); }
  49.9% { box-shadow: 0 0 0 6px rgba(255,255,255,.2), 0 0 0 12px rgba(255,255,255,0); }
  50%   { box-shadow: 0 0 0 6px rgba(255,255,255,.2), 0 0 0 0    rgba(255,255,255,.4); }
  100%  { box-shadow: 0 0 0 12px rgba(255,255,255,0), 0 0 0 6px  rgba(255,255,255,.2); }
}

@media (prefers-reduced-motion: reduce) {
 .top-bar-btn::before { animation: none; }
}
body{
  padding-top: 40px !important;
}
.top-bar-btn {
    align-items: center !important;
    justify-content: center !important;
    display: inline-flex !important;
    gap:8px;    white-space: nowrap !important;
}
header.scrolled #logo-main:before{
display: none;
}

#logo-main {
    position: relative;
    padding: 15px 20px 15px 20px;
    z-index: 1;
}

@media  (max-width:767px) {
  #logo-main {
    padding: 10px 0px 10px 0px;
    
}
}

#logo-main:before {
   content: "";
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 360px;
    height: 110px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 102' preserveAspectRatio='none'%3E%3Cpath fill='%23ECEDF0' d='M0 0H360C300 0 300 62 240 62H40A40 40 0 0 0 0 102Z'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;
}

@media  (max-width:1024px) {
  #logo-main:before {display: none;}
}


.tag-gray{
    position: relative;
}
.tag-gray:after{
    content: "";
    position: absolute;
    top: 8px;
    left: -16px;
    margin: auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #450AFD;
}
.text-primary{
    color: #450AFD;
}
.hero-lisitng li{ 
    position: relative;
}
.hero-lisitng li:before{
    content: "";
    position: absolute;
       top: 6px;
    right: -16px;
    width: 4px;
    height: 4px;
    background-color: #B3B3B3;
    border-radius: 50%;
}
.hero-lisitng li:last-child:before{
    display: none;
}

/* ---------- Section ---------- */
.audit-section {
  display: flex;
  justify-content: center;
  align-items: center;
}

.audit-wrap {
  position: relative;
  width: 100%;
  max-width: 520px;
}

/* ---------- Background glows ---------- */
.glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
  z-index: 0;
}

.glow--purple {
  width: 220px;
  height: 260px;
  left: -60px;
  top: 40px;
  background: rgba(124, 92, 255, 0.28);
}

.glow--pink {
  width: 240px;
  height: 200px;
  left: -20px;
  bottom: 40px;
  background: rgba(229, 25, 25, 0.45);
}

.glow--yellow {
  width: 200px;
  height: 220px;
  right: -90px;
  bottom: 60px;
  background: rgba(255, 236, 140, 0.35);
}

/* ---------- Card ---------- */
.audit-card {
  position: relative;
  z-index: 1;
background: rgba(255, 255, 255, 0.80);
  border: 1px solid #ececf3;
  border-radius: 22px;
  padding: 14px 19px 18px;
backdrop-filter: blur(20px);
box-shadow: 0px 15px 40px 0px #450AFD14;
  overflow: hidden;
 font-family: "Manrope", Sans-serif; 
}

/* SAMPLE tag */
.audit-tag {
  position: absolute;
  top: -1px;
  right: 14px;
  width: 140px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 2px;
  color: #ffffff;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.2px;
  /* curved tab shape: concave flares at top, rounded bottom corners */
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 72' preserveAspectRatio='none'%3E%3Cpath d='M0 0H300C272 0 262 8 252 28L243 50C236 65 227 72 210 72H90C73 72 64 65 57 50L48 28C38 8 28 0 0 0Z' fill='%234510FF'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  filter: drop-shadow(0 6px 10px rgba(69, 16, 255, 0.18));
}

.audit-file {
  font-size: 16px;
  font-weight: 600;
  color: var(--purple);
padding: 0 130px 20px 0px;
      font-family: "Manrope", Sans-serif;
}

/* Header */
.audit-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.audit-title {
  font-size: 22px;
  font-weight: 700;

}

.audit-stack {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #000;
  font-weight: 500;

}

.stack-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* ---------- Stats ---------- */
.audit-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  margin-bottom: 15px;
}

.stat {
  background: #f9f9f9;
  border-radius: 15px;
  padding: 18px 8px 22px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.gauge {
  position: relative;
  width: 70px;
  height: 46px;
}

.gauge svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.gauge-track,
.gauge-fill {
  fill: none;
  stroke-width: 6;
  stroke-linecap: round;
}

.gauge-track {
  stroke: var(--track);
}

.gauge-fill {
  stroke: var(--gauge-color);
  stroke-dasharray: var(--val) 100;
}

.gauge-num {
  position: absolute;
  left: 50%;
  top: 66%;
  transform: translate(-50%, -50%);
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  color: var(--gauge-color);
}

.stat-label {
  margin-top: 6px;
  font-size: 14px;
  color: var(--text-soft);
  font-weight: 500;
}

.stat--critical { --gauge-color: var(--critical); }
.stat--high     { --gauge-color: var(--high); }
.stat--medium   { --gauge-color: var(--dark); }
.stat--low      { --gauge-color: var(--dark); }

/* ---------- Findings ---------- */
.audit-findings {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.finding {
  border: 1px solid;
  border-radius: 12px;
  padding: 10px 10px 10px;
  background: #ffffff;
}

.finding p {
  margin-top: 5px;
  font-size: 14px;
  color: var(  --text-soft);
  font-weight: 500;
  line-height: 1.2;
}

.badge {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.4px;
  color: #ffffff;
}

.finding--critical { border-color: #f6b7b9; }
.finding--critical .badge { background: var(--critical); }

.finding--high { border-color: #f6dca8; }
.finding--high .badge { background: var(--high); }

.finding--medium { border-color: #c8c8c8; }
.finding--medium .badge { background: var(--dark); }

/* findings start hidden; on scroll, JS adds is-shown to them one by one */
.audit-findings .finding {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.audit-findings .finding.is-shown {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .audit-findings .finding {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.audit-more {
  margin-top: 15px;
  font-size: 13px;
  color: var(--text-soft);
  font-weight: 600;
}

.project-shi .text-primary{
    font-weight: 600;
}

/* app build css */
#app-build {
  --logo-count: 6;   
  --logo-w: 240px;                                   /* card width */
  --logo-gap: 9px;                                   /* space between cards */
  --logo-step: calc(var(--logo-w) + var(--logo-gap));
  --loop-w: calc(var(--logo-step) * var(--logo-count));
  --logo-speed: 18s;                                 /* full loop time */
  --logo-h: 120px;                                    /* card height */
  --strip-bg: #edeef2;                               /* grey strip colour */
  --strip-pad: 40px;    
 
                    /* strip top/bottom space */

  position: relative;
  box-sizing: content-box;
  width: 100%;
  /* visible area must stay smaller than one loop, otherwise a gap shows */
  max-width: calc(var(--loop-w) - var(--logo-step));
  height: var(--logo-h);
  margin: 0 auto;
  padding: var(--strip-pad) 0;
  padding-bottom: 0px;
  overflow: hidden;
  /* grey strip stretched to full screen width (no HTML wrapper needed) */

}
/* client logos: 9 logos, grey/black look, no edge fade */
#client-logo #app-build {
  --logo-count: 9;
  --logo-w: 175px;
  --logo-gap: 0px;
  --logo-h: 70px;
  --logo-speed: 30s;
  --strip-pad: 0px;
}

#client-logo #app-build::before,
#client-logo #app-build::after {
  display: none;
}

/* same height for all logos; logos with a white background also blend into the strip */
#client-logo #app-build img {
  height: 56px;
  width: auto;
  max-width: 155px;
  max-height: none;
  object-fit: contain;
  mix-blend-mode: multiply;
  filter: grayscale(100%) contrast(1.2);
  transition: filter 0.3s ease;
}

#client-logo #app-build > div:hover img {
  filter: none;
}

/* stagger for 9 logos: card 1 at the left, card 9 just outside the right edge */
#client-logo #app-build > div:nth-child(1) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -8); }
#client-logo #app-build > div:nth-child(2) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -7); }
#client-logo #app-build > div:nth-child(3) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -6); }
#client-logo #app-build > div:nth-child(4) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -5); }
#client-logo #app-build > div:nth-child(5) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -4); }
#client-logo #app-build > div:nth-child(6) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -3); }
#client-logo #app-build > div:nth-child(7) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -2); }
#client-logo #app-build > div:nth-child(8) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -1); }
#client-logo #app-build > div:nth-child(9) { animation-delay: 0s; }

/* soft fade on both edges, blending cards into the grey strip */
#app-build::before,
#app-build::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 18%;
  z-index: 2;
  pointer-events: none;
}

#app-build::before {
  left: 0;
  background: linear-gradient(to right, var(--strip-bg), rgba(237, 238, 242, 0));
}

#app-build::after {
  right: 0;
  background: linear-gradient(to left, var(--strip-bg), rgba(237, 238, 242, 0));
}

#app-build > div {
  position: absolute;
  top: var(--strip-pad);
  left: 0;
  width: var(--logo-w);
  height: var(--logo-h);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: appBuildSlide var(--logo-speed) linear infinite;
  will-change: transform;
}

/* stagger: card 1 starts at the left, card 6 just outside the right edge */
#app-build > div:nth-child(1) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -5); }
#app-build > div:nth-child(2) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -4); }
#app-build > div:nth-child(3) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -3); }
#app-build > div:nth-child(4) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -2); }
#app-build > div:nth-child(5) { animation-delay: calc(var(--logo-speed) / var(--logo-count) * -1); }
#app-build > div:nth-child(6) { animation-delay: 0s; }

#app-build:hover > div {
  animation-play-state: paused;
}

#app-build img {
  display: block;
  width: auto;
  height: auto;
  max-width: 150px;
  max-height: 50px;
  object-fit: contain;
}

@keyframes appBuildSlide {
  from { transform: translateX(calc(var(--loop-w) - var(--logo-step))); }
  to   { transform: translateX(calc(var(--logo-step) * -1)); }
}
#custom-numscroll .elementor-counter-number-suffix{
    color: var(--text-soft);
}

/* rality */
#railty-section:before{
    content: "";
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: radial-gradient(112.24% 100% at 50% 0%, rgba(255, 255, 255, 0.2) 0%, rgba(240, 239, 236, 0.3) 100%);
    z-index: -1;
}
#six-gaps-cards{
    overflow: hidden;
}
.ready-launch-section{
    position: relative;
    z-index: 1;
    overflow: hidden;
}

/* table  */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* scroll wrapper */
.compare-scroll {
  max-width: 1350px;
  margin: 0 auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #c9c9d6 transparent;
}

.compare-scroll::-webkit-scrollbar { height: 6px; }
.compare-scroll::-webkit-scrollbar-thumb { background: #c9c9d6; border-radius: 6px; }

.compare-inner {
  position: relative;
  min-width: 900px;                      /* below this the table scrolls */
  padding-right: 22px;
}

/* grey card behind the table */
.compare-inner::before {
  content: "";
  position: absolute;
  inset: var(--cmp-overhang) 0;
  background: #fafafb;
  border: 1px solid var(--cmp-line);
  border-radius: 24px;
}

.compare-table {
  position: relative;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

.compare-table th,
.compare-table td {
  padding: 0;
  text-align: left;
  vertical-align: middle;
  font-weight: 400;
}

/* column widths */
.compare-table .cmp-feature { width: 330px; }
.compare-table .cmp-prod    { width: 470px; }

/* ---------- header ---------- */
.compare-table thead th {
  height: calc(82px + var(--cmp-overhang));
  padding-top: calc(var(--cmp-overhang) + 6px);
  font-size: 24px;
  font-weight: 700;

      font-family: "Plus Jakarta Sans", Sans-serif;
}

.compare-table thead .cmp-proto { color: var(--cmp-red); text-align: left; }

.compare-table thead .cmp-prod {
  padding-left: 26px;
  color: #ffffff;
  border-radius: 20px 20px 0 0;
  text-align: left;
}

/* ---------- body rows ---------- */
.compare-table tbody th,
.compare-table tbody td {
  height: var(--cmp-row-h);
  border-bottom: 1px solid var(--cmp-line);
}

.compare-table tbody tr:last-child th,
.compare-table tbody tr:last-child td {
  border-bottom: 0;
  padding-bottom: var(--cmp-overhang);
}

.cmp-cell {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  font-size: 16px;
  line-height: 1.4;
  font-family: Manrope;
}

.compare-table tbody .cmp-feature .cmp-cell {
  padding-left: 26px;
  color: #2b2b2b;
}

.compare-table tbody .cmp-proto .cmp-cell {
  padding-right: 20px;
  color: #3a3a3a;
}

/* purple column */
.compare-table .cmp-prod { background: var(--cmp-purple); }

.compare-table tbody .cmp-prod {
  border-bottom-color: rgba(255, 255, 255, 0.14);
}

.compare-table tbody .cmp-prod .cmp-cell {
  padding: 10px 20px 10px 26px;
  color: #ffffff;
}

.compare-table tbody tr:last-child .cmp-prod {
  border-radius: 0 0 20px 20px;
}
.Lovable-security-table .compare-table .cmp-prod {
    width: 300px;
}
.Lovable-security-table .compare-table .cmp-feature {
    width: auto;
}
.Lovable-security-table .compare-table .cmp-proto{
  width: 360px;
}

/* feature icon box */
.cmp-icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #f1eeff;
}

.cmp-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--cmp-purple);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* red cross */
.cmp-x {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fde7e7;
  color: var(--cmp-red);
}

.cmp-x svg {
  width: 9px;
  height: 9px;
}

/* green check */
.cmp-check {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--cmp-green);
  color: #ffffff;
}

.cmp-check svg {
  width: 16px;
  height: 16px;
}

/* pricing css */
.custom-price .elementor-price-table{
      height: 100%;
    display: flex;
    flex-direction: column;
    text-align: left;
}
.custom-price .elementor-price-table__feature-inner{
  margin: 0px !important;
  display: flex;
}
.custom-price .elementor-price-table__feature-inner svg{
  fill: transparent !important;
  min-width: 14px;
  width: 14px !important;
}
.custom-price .elementor-price-table__footer{
  margin-top: auto;
}
.custom-price .elementor-price-table__price{
 justify-content: flex-start !important;
}
.custom-price .elementor-ribbon .elementor-ribbon-inner{
      margin: 0px !important;
    transform: none !important;
    width: 130px !important;
   background-image: url("https://launchsecureai.com/wp-content/uploads/2026/10/most-pop-shape.svg");
  background-repeat: no-repeat; 
  height: 26px !important;
  padding: 5px 10px;
}
.custom-price .elementor-ribbon{
   margin: 0px !important;
    transform: none !important;
    width: auto !important;
    height: auto !important; 
       right: 30px !important; 
}
.custom-price .elementor-ribbon-inner
{
  background-image: url("https://launchsecureai.com/wp-content/uploads/2026/10/most-pop-shape.svg");
  background-repeat: no-repeat;
}
.custom-price .elementor-price-table__button:after{
  content: "";
  display: inline-block;
 position: relative;
 background-image: url('data:image/svg+xml,<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.75 6.75H12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%23450AFD"/><path d="M6.75 0.75L12.75 6.75L6.75 12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%23450AFD"/></svg>');
 background-repeat: no-repeat;
 background-size: 12px; 
  width: 12px;
  height: 12px;
  margin-left: 4px;
}
.custom-price .elementor-price-table__button:hover:after{
   background-image: url('data:image/svg+xml,<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.75 6.75H12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%234717db"/><path d="M6.75 0.75L12.75 6.75L6.75 12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%234717db"/></svg>');
 background-repeat: no-repeat;
 background-size: 12px; 
}

/* steps css */


.steps-sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.steps-container {
  width: 100%;
  max-width: 1420px;
  margin: 0 auto;
  padding: 0 16px;
}

/* ---------- heading ---------- */
.steps-head {
  text-align: center;
  margin-bottom: 56px;
}

.steps-eyebrow {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.4px;
  color: var(--steps-purple);
  margin-bottom: 14px;
}

.steps-title {
  max-width: 800px;
  margin: 0 auto;
  font-size: 36px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.5px;
  color: var(--steps-text);
}

.steps-title span {
  color: var(--steps-purple);
}

/* ---------- wave stage ---------- */
.steps-stage {
  position: relative;
  aspect-ratio: 1420 / 300;              /* same as the SVG viewBox */
}

.steps-wave {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.steps-wave-base,
.steps-wave-fill {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
}
 
.steps-wave-base { stroke: var(--steps-line); }

.steps-wave-fill {
  stroke: var(--steps-purple);
  transition: stroke-dashoffset 0.15s linear;
}

/* dots */
.steps-dot circle { transition: opacity 0.4s ease, fill 0.4s ease; }
.steps-dot .dot-glow { fill: var(--steps-purple); opacity: 0; }
.steps-dot .dot-ring { fill: #ffffff; }
.steps-dot .dot-core { fill: #b9a9ff; }

.steps-dot.is-active .dot-glow { opacity: 0.22; }
.steps-dot.is-active .dot-core { fill: var(--steps-purple); }

/* ---------- step text (positioned under each dot, in % of the stage) ---------- */
.step {
  position: absolute;
  width: 24%;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.step.is-active {
  opacity: 1;
  transform: translateY(0);
}

.step--1 { left: calc(34 / 1420 * 100%);   top: calc(152 / 300 * 100%); }
.step--2 { left: calc(389 / 1420 * 100%);  top: calc(92 / 300 * 100%); }
.step--3 { left: calc(744 / 1420 * 100%);  top: calc(170 / 300 * 100%); }
.step--4 { left: calc(1099 / 1420 * 100%); top: calc(110 / 300 * 100%); }

.step-label {
  display: inline-block;
    color: var(--steps-purple);
    font-family: "Manrope", Sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    background-color: #fff;
    border-radius: 8px;
    padding: 4px 10px;

}

.step-title {
    margin-top: 28px;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.3px;
    line-height: 1.2;
    color: var(--steps-text);
    font-family: "Plus Jakarta Sans", Sans-serif;
}

.step-text {
  margin-top: 14px;
  font-size: 14px;
    line-height: 1.3;
    color: var(--steps-text);
    font-family: "Manrope", Sans-serif;
    font-weight: 500;
}
/* testimonail slider */

.custom-review-slider .elementor-testimonial{
  display: flex;
  flex-direction: column-reverse;
  height: 100%;
  justify-content: space-between;
}
.custom-review-slider .elementor-star-rating{
  position: absolute !important;
  top: 30px;
  left: 30px;
}
.custom-review-slider .elementor-testimonial__content{
  padding-top: 80px !important;
}
.custom-review-slider .elementor-testimonial__header{
  padding-top: 0px !important;
  padding-bottom: 30px !important;
}
.custom-review-slider .elementor-swiper-button{
    position: absolute;
    top: -60px !important;
    width: 40px;
    height: 40px;
    background-color: #ecedf0;
    border: 1px solid #E0E0E0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.custom-review-slider .elementor-swiper-button:hover{
  background-color: #fff;
}
.custom-review-slider .elementor-swiper-button.elementor-swiper-button-next{
  right: 0;
}
.custom-review-slider .elementor-swiper-button.elementor-swiper-button-prev{
  right: 60px !important;
  left: auto !important;
}

.custom-review-slider .elementor-main-swiper{
  width: 100% !important;
}
#client-logo #app-build > div{
  background-color: transparent;
  padding: 0px;
  border-radius: 0px;
}
#bottom-form{
    backdrop-filter: blur(15px);
    box-shadow: 0px 0px 50px 0px rgba(0, 0, 0, 0.04);
}
.arrow-btn .elementor-button-icon svg{
  fill: transparent !important;
}
/* ---------- 1. Gauge circle fill ---------- */
/* 0 200 (not 0 100) so no dot repeats at the end corner;
   opacity hides the round-cap dot at the start until it fills */
.gauge-fill {
  stroke-dasharray: 0 200;
  opacity: 0;
  transition: stroke-dasharray 1.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s ease;
}

.audit-section.is-visible .gauge-fill {
  stroke-dasharray: var(--val) 200;
  opacity: 1;
}

.audit-section.is-visible .stat:nth-child(2) .gauge-fill { transition-delay: 0.15s; }
.audit-section.is-visible .stat:nth-child(3) .gauge-fill { transition-delay: 0.3s; }
.audit-section.is-visible .stat:nth-child(4) .gauge-fill { transition-delay: 0.45s; }

/* ---------- 2. Background glows (fade in, then float) ---------- */
.glow {
  opacity: 0;
  transform: scale(0.6);
  transition: opacity 1.2s ease, transform 1.2s ease;
}

.audit-section.is-visible .glow {
  opacity: 1;
  transform: scale(1);
  animation: glowFloat 6s ease-in-out 1.2s infinite;
}

.audit-section.is-visible .glow--pink   { transition-delay: 0.2s; animation-delay: 1.4s; }
.audit-section.is-visible .glow--yellow { transition-delay: 0.4s; animation-delay: 1.6s; }

@keyframes glowFloat {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 1; }
  50%      { transform: translate(14px, -12px) scale(1.12); opacity: 0.7; }
}

/* ---------- 3. Card shadow pulse ---------- */
.audit-section.is-visible .audit-card {
  animation: cardShadow 4s ease-in-out 1s infinite;
}

@keyframes cardShadow {
  0%, 100% { box-shadow: 0px 14px 30px 0px rgba(69, 10, 253, 0.08); }
  50%      { box-shadow: 0px 18px 40px 0px rgba(69, 10, 253, 0.22); }
}

/* steps forms */

.steps-formMain .frc-shell{
  padding: 0px;
}
.steps-formMain .frc-panel{
  border-radius: 30px;
  padding: 30px 20px;
  box-shadow: 0px 30px 50px -30px rgba(69, 10, 253, 0.18);
}
.steps-formMain .frc-panel h2, #steps-form-new .frc-card h2,  #steps-form-new .frc-card .frc-card-title{
  text-align: center;
  font-family: "Plus Jakarta Sans", Sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: #000;
}
.steps-formMain .frc-panel p, #steps-form-new .frc-card p.frc-sub{
      font-family: Manrope;
      font-size: 18px;
      font-weight: 500;
      color: #1F1F1F;
      text-align: center;
      margin-bottom: 30px;
      line-height: 1.3;
}
.steps-formMain .frc-fields label, #steps-form-new .frc-card label{
   font-family: Manrope;
   font-size: 13px;
   font-weight: 600;
   color: #000;
 
}
#steps-form-new .frc-top-text h2{
 font-family: "Plus Jakarta Sans", Sans-serif;
 font-size: 28px;
 font-weight: 600;
 line-height: 1.2;
 color: #000;
}
#steps-form-new .frc-top-text p{
font-family: Manrope;
 font-size: 16px;

 line-height: 1.2;
 color: #1f1f1f;
}

#steps-form-new  .steps-formMain .frc-fields{
    gap: 15px 20px;
}
#steps-form-new  .frc-score .rc-pct{
 font-family: "Plus Jakarta Sans", Sans-serif;
 color: #000;
}
#steps-form-new  .frc .st-Needs-Work,
 #steps-form-new  .frc .st-Not-Ready{
  color: #E51919;
background: rgba(229, 25, 25, 0.06);
font-family: Manrope;
font-size: 13px;
font-weight: 600;
}
#steps-form-new .frc .frc-pct{
   font-family: "Plus Jakarta Sans", Sans-serif;
   font-size: 42px;
   font-weight: 800;
   color: #1F1F1F;
}
#steps-form-new .frc .frc-statusmsg{
   font-family: "Plus Jakarta Sans", Sans-serif;
   font-size: 18px;
   font-weight: 600;
   color: #1F1F1F;
}
#steps-form-new .frc .bar-medium{
  background-color:#2540AF;
}
#steps-form-new .frc .lv-medium {
    background: #2540AF;
  color: #fff;
  font-family: "Plus Jakarta Sans", Sans-serif;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-size: 13px;
}
#steps-form-new .frc .frc-sug.s-medium {
    border-color: #1d4ed8;
}
#steps-form-new #steps-form-new .frc .bar-critical{
 background-color:#2540AF;
}
#steps-form-new  .frc .lv-critical {
    background: #E51919;
 color: #fff;
  font-family: "Plus Jakarta Sans", Sans-serif;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-size: 13px;
}
#steps-form-new .frc .frc-sug.s-critical {
    border-color: #E51919;
}
#steps-form-new .frc .bar-high{
 background-color:#E59D2A;
}
#steps-form-new  .frc .lv-high {
  background: #E59D2A;
  color: #fff;
  font-family: "Plus Jakarta Sans", Sans-serif;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-size: 13px; 
}
#steps-form-new  .frc .frc-sug.s-high {
    border-color: #E59D2A;
}
#steps-form-new .frc-on-report .frc-h{
  text-align: left;
}
#steps-form-new .frc-on-report .frc-cat{
  background-color: transparent;
  border-radius: 0px;
  padding: 12px 0;
  border-bottom: 1px solid #D5D7DB;
      margin-bottom: 0px;
}
#steps-form-new .frc .frc-bar{
  background: #fff;
}
#steps-form-new .frc .lv-low {
    background: #30D060;
    color: #fff;
  font-family: "Plus Jakarta Sans", Sans-serif;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-size: 13px; 
}
#steps-form-new .frc-cat-top span:first-child{
 font-family: "Plus Jakarta Sans", Sans-serif;
 font-weight: 600;
 color: #1f1f1f;
 font-weight: 13px;
}
#steps-form-new .frc .bar-low {
    background: #30D060;
}
#steps-form-new .frc .frc-sug {
    background: transparent;
    border-radius: 0;
    padding: 12px 14px;
    color: #1f1f1f;
        font-family: Manrope;
}
#steps-form-new .frc .frc-note {
    background: #fff;
    border: 1px solid #fff;
    border-radius: 12px;
    padding: 20px;
    font-size: 13.5px;
    color: #1f1f1f;
    margin: 22px 0;
     font-family: "Plus Jakarta Sans", Sans-serif;
}
#steps-form-new .frc .page-counttotal{
   font-family: "Plus Jakarta Sans", Sans-serif;
   font-weight: 600;
}
.steps-formMain .frc-fields input, #steps-form-new .frc-card input{
  border: 1px solid #EAEAEA;
  border-radius: 10px;
  color: #1f1f1f;
  font-family: Manrope;
  font-size: 16px;
  height: 44px;
  margin-bottom: 0px;
}
.steps-formMain .frc-fields input:focus, .steps-formMain .frc-option:focus-within,
#steps-form-new .frc-card input:focus, #steps-form-new .frc-card input:focus-within {
    outline: 0px solid rgba(69, 10, 253, 0.25);
    outline-offset: 0px;
    border-color: #450AFD;
}
.e-accordion-item-content-base p a{
  color: #450AFD;
}
.e-accordion-item-content-base p a:hover{
  color: #450AFD;
  text-decoration: underline;
}
.frc .frc-opt.sel .frc-radio:after{
      top: 3.5px !important;
      left: 7px !important;
}


.frc-full-field.frc-fields{
  margin-top: 15px;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.steps-formMain .frc-primary,  #steps-form-new .frc-btn{
      font-family: Manrope;
      font-size: 16px;
      border-radius: 12px;
      background-color: #450AFD;
      border-color: #450AFD;
      text-transform: capitalize;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
}
.steps-formMain .frc-primary span, #steps-form-new .frc-btn span{
  display: flex;
  line-height: 1;
}
.steps-formMain .frc-primary:hover,  #steps-form-new .frc-btn:hover {
  background-color: #4717db;
  border-color: #4717db;
  color: #fff;
}
.frc-fullbtn .frc-primary{
  width: 100%;
  min-height: 50px;
}
.steps-formMain .frc-fullbtn{
  margin-top: 30px;
}
.steps-formMain .icon-inner {
    width: 50px;
    height: 50px;
    background-color: #450AFD;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
}
.steps-formMain .icon-user{
  margin-bottom: 20px;
}
#steps-form-new .frc-card{
  background-color: #fff;
  border: 1px solid #E9E9E9;
  border-radius: 30px;
  padding: 30px 20px;
}
#steps-form-new .frc-err{
  font-size: 14px !important;
  margin-bottom: 0px;
  color: #E51919;
  margin-bottom: 0px !important;
}
#steps-form-new .frc .frc-prog{
  background-color: #fff;
}
#steps-form-new .frc .frc-prog i{
  background-color: #450AFD;
}
#steps-form-new .frc-card .frc-gt{
  font-size: 13px;
  font-weight: 600;
  color: #450AFD;
  text-transform: capitalize;
  font-family: "Plus Jakarta Sans", Sans-serif;
}
#steps-form-new .frc-qbox .frc-q{
   font-family: "Plus Jakarta Sans", Sans-serif;
   font-size: 18px;
   font-weight: 700;
   color: #000;
   line-height: 1.3; 
}
#steps-form-new .frc .frc-opt{
  border: 1px solid #E9E9E9;
  border-radius: 15px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  font-family: Manrope;
  padding: 12px 20px;
}
#steps-form-new .frc-ghost{
        font-family: Manrope;
    font-size: 16px;
    border-radius: 12px;
    background-color: #fff;
    border-color: #D5D7DD;
    text-transform: capitalize;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: #1F1F1F;
}
#steps-form-new .frc-ghost:hover{
   background-color: #ffffffb0;
    border-color: #D5D7DD;
}
#steps-form-new .frc .frc-opt:hover{
  border-color: #450AFD;
}
#steps-form-new .frc .frc-opt.sel{
  background-color: #F2EEFF;
  border-color: #450AFD;
}
#steps-form-new #frc-app > h2{
      text-align: center;
    font-family: "Plus Jakarta Sans", Sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #000;
}
#steps-form-new #frc-app > p{
      font-family: Manrope;
    font-size: 14px;
    font-weight: 400;
    color: #1F1F1F;
    text-align: center;
    line-height: 1.3;
    margin-bottom: 30px
} 

#contact-form textarea{
  resize: none;
}
#contact-form .elementor-button{
box-shadow: 0px 10px 10px 0px rgba(125.99999999999983, 84.99999999999999, 255, 0.2);
}
#contact-form .elementor-button .elementor-button-text:after {
    content: "";
    display: inline-block;
    position: relative;
    background-image: url('data:image/svg+xml,<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.75 6.75H12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%23fff"/><path d="M6.75 0.75L12.75 6.75L6.75 12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%23fff"/></svg>');
    background-repeat: no-repeat;
    background-size: 14px;
    width: 14px;
    height: 14px;
    margin-left: 6px;
}
#contact-form .elementor-button .elementor-button-text:hover:after {
    background-image: url('data:image/svg+xml,<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.75 6.75H12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%23fff"/><path d="M6.75 0.75L12.75 6.75L6.75 12.75" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" stroke="%23fff"/></svg>');
    background-repeat: no-repeat;
    background-size: 14px;
}

#contact-form-wrap .elementor-field-type-recaptcha_v3{
      margin-top: 5px !important;
    margin-bottom: 20px !important;
}
.elementor-button.elementor-button-link:hover,
.frc-btn:hover {
  transform: translateY(-2px);
}
/* red line for myth, green for fact; --dot-offset aligns the dot with the first text line */
#secure-section-app .app-list-line { --line-color: var(--myth-color); --dot-offset: 5px; }
#secure-section-app .app-list-line.app-fact { --line-color: var(--fact-color); --dot-offset: 2px; }

/* MYTH / FACT tags */


/* list rows */
#secure-section-app .app-list-line .elementor-icon-list-item {
  position: relative;
  align-items: flex-start !important;
  margin: 0 !important;
  padding: 0 0 var(--row-gap) !important;
}

#secure-section-app .app-list-line .elementor-icon-list-item:last-child {
  padding-bottom: 0 !important;
}

#secure-section-app .app-list-line .elementor-icon-list-icon {
  position: relative;
  top: 0;
  z-index: 1;
  flex: none;
  margin-top: var(--dot-offset);
  margin-inline-end: 5px;
  padding: 0 !important;
  line-height: 0;
}


/* line pieces: ::before joins this dot to the next one,
   first item ::after joins the tag to the first dot (--line-top is set from JS) */
#secure-section-app .app-list-line .elementor-icon-list-item::before,
#secure-section-app .app-list-line .elementor-icon-list-item:first-child::after {
  content: "";
  position: absolute;
  left: calc(var(--dot-size) / 2 - -1px);
  width: 1px;
  background: var(--line-color);
  transform-origin: top;
  transition: transform 0.3s ease;
}

#secure-section-app .app-list-line .elementor-icon-list-item::before {
  top: calc(var(--dot-offset) + var(--dot-size) / 2);
  height: 100%;
}

#secure-section-app .app-list-line .elementor-icon-list-item:last-child::before {
  display: none;
}

#secure-section-app .app-list-line .elementor-icon-list-item:first-child::after {
  top: calc(var(--line-top, 24px) * -1);
  height: calc(var(--line-top, 24px) + var(--dot-offset) + var(--dot-size) / 2);
}

/* ---------- scroll animation (only when JS adds .js-secure-anim) ---------- */
#secure-section-app.js-secure-anim #list-secure-effect .elementor-widget-heading,
#secure-section-app.js-secure-anim .fact-tag {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

#secure-section-app.js-secure-anim.is-inview #list-secure-effect .elementor-widget-heading,
#secure-section-app.js-secure-anim.is-inview .fact-tag {
  opacity: 1;
  transform: none;
}

#secure-section-app.js-secure-anim .app-list-line .elementor-icon-list-item::before,
#secure-section-app.js-secure-anim .app-list-line .elementor-icon-list-item:first-child::after {
  transform: scaleY(0);
}

#secure-section-app.js-secure-anim .app-list-line .elementor-icon-list-item.line-on::before,
#secure-section-app.js-secure-anim .app-list-line .elementor-icon-list-item.is-active:first-child::after {
  transform: scaleY(1);
}

/* hide: dot and text go out right away */
#secure-section-app.js-secure-anim .app-list-line .elementor-icon-list-icon {
  opacity: 0;
  transform: scale(0.3);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

#secure-section-app.js-secure-anim .app-list-line .elementor-icon-list-text {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

/* show: dot pops in once the line reaches it, then the text slides up */
#secure-section-app.js-secure-anim .app-list-line .is-active .elementor-icon-list-icon {
  opacity: 1;
  transform: none;
  transition: opacity 0.25s ease 0.2s, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s;
}

#secure-section-app.js-secure-anim .app-list-line .is-active .elementor-icon-list-text {
  opacity: 1;
  transform: none;
  transition: opacity 0.3s ease 0.25s, transform 0.3s ease 0.25s;
}
/* ---------- secure section: myth / fact timeline ---------- */


.prototype-th{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
padding-right: 25px;
}
.prototype-th .tag{
  background-color: #fff;
  border-radius: 6px;
  padding: 5px 6px;
  font-size: 9px;
  font-weight: 700;
  color: #1f1f1f;
  text-transform: uppercase;
  line-height: 1.3;
  font-family: Manrope;
  letter-spacing: 0.05em;
}
.prototype-th .right-text{
  display: flex;
}
table tbody tr:hover>td, table tbody tr:hover>th{
  background-color: transparent;
}
#custom-priceCard .elementor-button .elementor-button-icon svg{ 
  width: 14px;
  height: 14px;
}
.report-count-list .elementor-icon-list-item{
  background-color: #fff;
  border-radius: 30px;
  padding: 10px 10px !important;
}
.report-count-list .count-numicon{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  width: 30px;
  border-radius: 50%;
  background-color: #F2F2F2;
  font-size: 14px;
  font-weight: 700;
  color: #535353;
  min-width: 30px;
}
.report-count-list .elementor-icon-list-text{
    display: flex;
    align-items: center;
    gap: 10px;
}
.report-count-list .elementor-icon-list-items{
  gap: 10px !important;
}
.service-find-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.service-find-inner .badge-fixorder{
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: #30D060;
  background-color: #E9FDEF;
  border-radius: 6px;
  padding: 4px 8px;
  line-height: 1.3;
}
.service-audit .audit-stats{
      grid-template-columns: repeat(3, 1fr);
}
.audit-tag-new{
  background-image: url('data:image/svg+xml,<svg width="120" height="81" viewBox="0 0 120 81" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M99.5654 0C110.611 8.74477e-05 119.565 8.95444 119.565 20V80.7021C119.565 69.6565 110.611 60.7021 99.5654 60.7021H50.9912C43.3824 60.7021 36.4317 56.3847 33.0605 49.5635L14.0713 11.1387C11.2809 5.49275 6.03809 1.56482 0 0.37793V0H99.5654Z" fill="%23450AFD"/></svg>');
  background-repeat: no-repeat;
  background-size: 120px;
  position: absolute;
  top: 0px;
  right: 0px;
      height: 85px;
    width: 120px;
      display: flex;
    flex-direction: column;
    align-items: flex-end;
    padding: 4px 14px;  
       padding-top: 10px;
       text-transform: capitalize; 
}
.audit-tag-new .name{
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.audit-tag-new .name-fixing{
  font-size: 10px;
  font-weight: 700;
  line-height: 1.3;
  color: #FFC107;
}
.service-audit .audit-file{
  padding-right: 100px;
  margin-bottom: 10px;
}
.service-audit .audit-title{
  padding-right: 100px;
  color: #000;
  margin-bottom: 30px;
}

/* progress circle bar */

  .step-progress {
    position: relative;
    width: 190px;
    height: 190px;
  }

  .step-progress svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg); /* start the arc at 12 o'clock */
  }

  .step-progress .disc  { fill: #EFEFF3; }
  .step-progress .track { fill: none; stroke: #DCDDE2; stroke-width: 16; }
  .step-progress .bar {
    fill: none;
    stroke: #5226F2;
    stroke-width: 16;
    stroke-linecap: round;
    /* 1 of 5 = 20%  →  "20 100" | 2 of 5 = "40 100" | 3 of 5 = "60 100" ... */
    stroke-dasharray: 20 100;
  }

  .step-progress .label {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #111;
  }
  .step-progress .num {
    font-size: 72px;
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -1px;
  }
  .step-progress .of {
    margin-top: 8px;
    font-size: 17px;
    font-weight: 700;
  }

/* step progress animation: number count + bar fill with the sticky #cardsteps (JS: custom.js) */
.step-progress .bar {
  will-change: stroke-dasharray;
}

.step-progress .num {
  display: inline-block;
}

/* slight pop up from below when the number changes */
.step-progress .num.is-changing {
  animation: stepNumPop 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes stepNumPop {
  0%   { opacity: 0.3; transform: translateY(10px) scale(0.9); }
  100% { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .step-progress .num.is-changing { animation: none; }
}


.custom-audit .glow--pink{
      bottom: auto;
    top: 180px;
    left: 10%;
        background: rgba(229, 25, 25, 0.15);
}
.glow--yellow {
    right: 10%;
    bottom: auto;
    background: rgba(255, 236, 140, 0.30);
    top: 90px;
}
.faq-link .elementor-icon-list-item a{
  width: 100%;
  border-radius: 14px;
  padding: 12px 15px;
}
.faq-link .elementor-icon-list-item a:hover .elementor-icon-list-text{
  color: #450AFD;
}
.faq-link .elementor-icon-list-item a.active{
  background-color: rgba(69, 10, 253, 0.08);
    color: #450AFD;
}
.faq-link .elementor-icon-list-item a.active .elementor-icon-list-text{
 color: #450AFD;
}

/* faq  */
.faq-link .elementor-icon-list-item a,
.faq-link .elementor-icon-list-item a .elementor-icon-list-text{
  transition: background-color 0.3s ease, color 0.3s ease;
}
.custom-audit-faq .glow--pink {
    width: 240px;
    height: 200px;
    left: 20px;
    bottom: auto;
    background: rgba(229, 25, 25, 0.45);
    top: 300px;
}
.custom-audit-faq.faq-inner-glow .glow--pink{
      top: 150px;
}

.custom-audit-faq .glow--yellow {
    right: -2%;
    bottom: auto;
    background: rgba(255, 236, 140, 0.30);
    top: 200px;
}
#blue-shape-card{
  background-image: url('data:image/svg+xml,<svg width="81" height="26" viewBox="0 0 81 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H81L70.3293 18.4958C67.6505 23.1392 62.6972 26 57.3365 26H23.6635C18.3028 26 13.3495 23.1392 10.6707 18.4958L0 0Z" fill="%23450AFD"/></svg>');
  background-repeat: no-repeat;
  background-size: 82px;
  width: 82px;
  height: 26px;
     display: flex;
    align-items: center;
    justify-content: center; 
}
#blue-shape-card-lg{
    background-image:url('data:image/svg+xml,<svg width="329" height="29" viewBox="0 0 329 29" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M328.307 0.170898C322.833 0.888588 317.853 3.84747 314.609 8.40918L306.569 19.7139C302.818 24.9896 296.744 28.124 290.271 28.124H40.6377C34.164 28.124 28.0906 24.9896 24.3389 19.7139L16.2988 8.40918C12.547 3.13344 6.47375 0 0 0H328.307V0.170898Z" fill="%23450AFD"/></svg>');
  background-repeat: no-repeat;
  background-size: 328px;
  width:100%;
  max-width: 328px;
  height: 28px;
     display: flex;
    align-items: center;
    justify-content: center; 
}
.header-main .elementor-menu-toggle{
      background: #450afd;
    border-radius: 8px;
    color: #fff;
    z-index: 99;
}
.header-main .elementor-menu-toggle svg{
  fill:#fff;
}

.gdpr-section {

  --gdpr-head-h: 50px;
  --gdpr-row-h: 60px;
    font-family: Manrope;
}

/* scroll wrapper */
.gdpr-scroll {
  max-width: 1350px;
  margin: 0 auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #3a3a42 transparent;
}

.gdpr-scroll::-webkit-scrollbar { height: 6px; }
.gdpr-scroll::-webkit-scrollbar-thumb { background: #3a3a42; border-radius: 6px; }

/* dark outer frame */
.gdpr-frame {
  position: relative;
  min-width: 1000px;                     /* below this the table scrolls */
  padding: 0 30px 10px;
  background: var(--gdpr-frame);
  border-radius: 24px;
}

/* lighter card behind the body rows */
.gdpr-frame::before {
  content: "";
  position: absolute;
  inset: var(--gdpr-head-h) 10px 10px;
  background: var(--gdpr-card);
  border-radius: 16px;
}

.gdpr-table {
  position: relative;
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.gdpr-table th,
.gdpr-table td {
  padding: 0 15px 0 0;
  text-align: left;
  vertical-align: middle;
  font-weight: 400;
}

/* column widths */
.gdpr-table .gdpr-col-expect  { width: 25%; }
.gdpr-table .gdpr-col-audit   { width: 19.5%; }
.gdpr-table .gdpr-col-example { width: 30.5%; }

/* ---------- header ---------- */
.gdpr-table thead th {
  height: var(--gdpr-head-h);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.2px;
  text-transform: uppercase;
  color: var(--gdpr-text);
}

/* ---------- body rows ---------- */
.gdpr-table tbody th,
.gdpr-table tbody td {
  height: var(--gdpr-row-h);
  font-size: 14px;
  line-height: 1.3;
  color: var(--gdpr-text);
  border-bottom: 1px solid var(--gdpr-line);
}

.gdpr-table tbody tr:last-child th,
.gdpr-table tbody tr:last-child td {
  border-bottom: 0;
}

/* ---------- status badges ---------- */
.gdpr-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 14px;
  line-height: 1.3;
  white-space: nowrap;
}

/* check icon (drawn with a mask so it takes the text colour) */
.gdpr-badge--checked::before,
.gdpr-badge--partly::before {
  content: "";
  width: 12px;
  height: 12px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* dash icon */
.gdpr-badge--team::before {
  content: "";
  width: 10px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
}

.gdpr-badge--checked {
 color: #fff;
  background: #30D060; 
}

.gdpr-badge--partly {
  color: #fff;
  background: #E59D2A;
}

.gdpr-badge--team {
  color: #79787D;
  background: rgba(167, 164, 172, 0.15);
}
.frc .frc-opt{
    white-space: normal;
}

.text-animation {
  position: relative;
  display: inline-block;
  vertical-align: bottom;
  white-space: nowrap;
  transition: width 0.55s cubic-bezier(0.65, 0, 0.35, 1);
}

/* keeps the box one line tall so the names sit on the baseline */
.text-animation-sizer {
  display: inline-block;
  width: 0;
  visibility: hidden;
}

/* highlight pill behind the name */
.text-animation::before {
  content: "";
  position: absolute;
  inset: 0.08em -0.14em 0.02em;
  border-radius: 0.18em;
  background: linear-gradient(90deg, rgba(69, 16, 255, 0.14), rgba(139, 92, 255, 0.2));
  transform: scaleX(0);
  transform-origin: left center;

}

/* thin glowing underline */
.text-animation::after {
  content: "";
  position: absolute;
  left: -0.14em;
  right: -0.14em;
  bottom: 0.02em;
  height: 0.07em;
  border-radius: 1em;
  background: linear-gradient(90deg, var(--hero-purple), var(--hero-purple-2));
  box-shadow: 0 0 14px rgba(69, 16, 255, 0.55);
  transform: scaleX(0);
  transform-origin: left center;
  display: none;
}

.text-animation.is-sweeping::before,
.text-animation.is-sweeping::after {
  animation: heroSweep 2.4s cubic-bezier(0.65, 0, 0.35, 1) both;
}

@keyframes heroSweep {
  0%   { transform: scaleX(0); transform-origin: left center; }
  25%  { transform: scaleX(1); transform-origin: left center; }
  80%  { transform: scaleX(1); transform-origin: right center; }
  100% { transform: scaleX(0); transform-origin: right center; }
}

/* each name */
.text-animation-word {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}

.text-animation-letter {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.45em);
  filter: blur(8px);
  background: linear-gradient(180deg, var(--hero-purple-2), var(--hero-purple));
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  transition:
    opacity 0.45s ease,
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.45s ease;
}

/* coming in: letters rise one after another */
.text-animation-word.is-active .text-animation-letter {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  transition-delay: calc(var(--i) * 40ms + 120ms);
}

/* going out: letters float up and fade */
.text-animation-word.is-leaving .text-animation-letter {
  opacity: 0;
  transform: translateY(-0.45em);
  filter: blur(8px);
  transition-delay: calc(var(--i) * 25ms);
}
.header-main nav ul .sub-menu {
    background-color: #fff;
    border: 1px solid #eee;
    border-radius: 10px;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.10);
    left: auto !important;
    right: 0px !important;
    min-width: 200px !important;
    margin-left: auto !important;
    margin-top: 15px !important;
}
.header-main nav ul .sub-menu li a{
  border-left: 0px !important;
}


/* privacy policy css */

.lsa-legal *,
.lsa-legal *::before,
.lsa-legal *::after {
  box-sizing: border-box;
}
.lsa-legal a {
  color: var(--lsa-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.lsa-legal a:hover {
  text-decoration-thickness: 2px;
}
.lsa-legal a:focus-visible {
  outline: 2px solid var(--lsa-accent);
  outline-offset: 3px;
  border-radius: 4px;
}


.lsa-legal a[href^="tel:"],
.lsa-legal a[href^="mailto:"] {
  white-space: nowrap;
}

/* ---------- Layout ---------- */
.lsa-legal .lsa-body {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 40px;

}
.lsa-toc br{
  display: none;
}

/* TOC */
.lsa-legal .lsa-toc {
  position: sticky;
  top: calc(var(--lsa-header-offset) + 16px);
  align-self: start;
  max-height: calc(100vh - var(--lsa-header-offset) - 32px);
  overflow: auto;
  background-color: #fff;
  padding: 20px;
  border-radius: 15px;
}
.lsa-legal .lsa-toc:focus, .lsa-legal .lsa-toc:active{
   background-color: #fff;
}

.lsa-legal .lsa-toc-check {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
.lsa-legal .lsa-toc-toggle {
  display: none;
}
.lsa-legal .lsa-toc-title {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 700;
  color: var(--lsa-ink);
}
.lsa-legal .lsa-toc ol {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 1px solid var(--lsa-line);
}
.lsa-legal .lsa-toc li {
  margin: 0;
}
.lsa-legal .lsa-toc a {
  display: flex;
  gap: 6px;
  padding: 7px 0 7px 16px;
  margin-left: -1px;
  border-left: 2px solid transparent;
  font-size: 14px;
  line-height: 1.45;
  color: var(--lsa-muted);
  text-decoration: none;
}
.lsa-legal .lsa-toc a span {
  min-width: 18px;
  font-variant-numeric: tabular-nums;
}
.lsa-legal .lsa-toc a:hover {
  color: var(--lsa-ink);
}

/* active link without JS: highlights the section you jumped to */
.lsa-legal:not(.lsa-js):has(#who-we-are:target) .lsa-toc a[href="#who-we-are"],
.lsa-legal:not(.lsa-js):has(#information-we-collect:target) .lsa-toc a[href="#information-we-collect"],
.lsa-legal:not(.lsa-js):has(#how-we-use:target) .lsa-toc a[href="#how-we-use"],
.lsa-legal:not(.lsa-js):has(#legal-basis:target) .lsa-toc a[href="#legal-basis"],
.lsa-legal:not(.lsa-js):has(#sharing:target) .lsa-toc a[href="#sharing"],
.lsa-legal:not(.lsa-js):has(#cookies:target) .lsa-toc a[href="#cookies"],
.lsa-legal:not(.lsa-js):has(#client-project-data:target) .lsa-toc a[href="#client-project-data"],
.lsa-legal:not(.lsa-js):has(#retention:target) .lsa-toc a[href="#retention"],
.lsa-legal:not(.lsa-js):has(#security:target) .lsa-toc a[href="#security"],
.lsa-legal:not(.lsa-js):has(#your-rights:target) .lsa-toc a[href="#your-rights"],
.lsa-legal:not(.lsa-js):has(#international-transfers:target) .lsa-toc a[href="#international-transfers"],
.lsa-legal:not(.lsa-js):has(#children:target) .lsa-toc a[href="#children"],
.lsa-legal:not(.lsa-js):has(#changes:target) .lsa-toc a[href="#changes"],
.lsa-legal:not(.lsa-js):has(#contact:target) .lsa-toc a[href="#contact"],
/* active link with JS: follows the section on screen while scrolling */
.lsa-legal .lsa-toc a.active {
  color: var(--lsa-accent);
  border-left-color: var(--lsa-accent);
  font-weight: 600;
}

/* Content */

.lsa-content p{
  color: #1f1f1f;
  font-weight: 500;
}
.lsa-content{
  font-family: Manrope;
  font-weight: 500;
  color: #1f1f1f;
}
.lsa-content ul li, .lsa-content ol li{
    font-family: Manrope;
  font-weight: 500;
    color: #1f1f1f;
}
.lsa-legal .lsa-content section {
  padding: 0 0 20px;
  margin: 0 0 20px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  scroll-margin-top: calc(var(--lsa-header-offset) + 24px);
}
.lsa-legal .lsa-content section:last-of-type {
  border-bottom: 0;
  margin-bottom: 0;
}
.lsa-legal .lsa-content h2 {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 0 0 18px;
  color: var(--lsa-ink);
  font-size: clamp(24px, 2.6vw, 28px);
  line-height: 1.25;
  letter-spacing: -0.015em;
  font-weight: 800;
}
.lsa-legal .lsa-num {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  min-width: 36px;
  height: 36px;
  padding: 0 8px;
  border-radius: 10px;
  background: var(--lsa-accent-soft);
  color: var(--lsa-accent);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  transform: translateY(-3px);
}
.lsa-legal .lsa-content h3 {
  margin: 20px 0 10px;
  color: var(--lsa-ink);
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
}
.lsa-legal .lsa-content p {
  margin: 0 0 16px;
}
.lsa-legal .lsa-content strong {
  color: var(--lsa-ink);
  font-weight: 700;
}
.lsa-legal .lsa-content a strong,
.lsa-legal .lsa-content a:hover strong{
  color: var(--lsa-accent);
}

.lsa-legal .lsa-content ul {
  margin: 8px 0 18px;
  padding: 0;
  list-style: none;
}
.lsa-legal .lsa-content ul li {
  position: relative;
  padding-left: 26px;
  margin: 0 0 10px;
}
.lsa-legal .lsa-content ul li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.52em;
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: var(--lsa-accent);
  transform: rotate(45deg);
}
.lsa-legal .lsa-callout {
  margin: 10px 0;
  padding: 18px 22px;
  border-radius: 12px;
  background: var(--lsa-surface);
  border-left: 3px solid var(--lsa-accent);
}
.lsa-legal .lsa-callout p:last-child {
  margin-bottom: 0;
}
.lsa-callout a{
  color: var(--lsa-accent);
}
/* Contact card */
.lsa-legal .lsa-contact {
  margin-top: 8px;
  padding: 28px;
  border-radius: 16px;
  background: #fff;
  color: #1f1f1f;
}
.lsa-legal .lsa-contact strong {
  display: block;
  color: #1f1f1f;
  font-size: 19px;
  margin-bottom: 4px;
}
.lsa-legal .lsa-contact p {
  margin: 0 0 18px;
}
.lsa-legal .lsa-contact-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.lsa-legal .lsa-contact-links a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #450afd;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
}
.lsa-legal .lsa-contact-links a:hover {
  color: #4717db;
  text-decoration: underline;
}

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .lsa-legal .lsa-body {
    grid-template-columns: 1fr;
    gap: 32px;

  }
  .lsa-legal .lsa-toc {
    position: static;
    max-height: none;
    border: 1px solid var(--lsa-line);
    border-radius: 12px;
    background: var(--lsa-surface);
  }
  .lsa-legal .lsa-toc-toggle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    cursor: pointer;
    font-weight: 700;
    color: var(--lsa-ink);
  }
  .lsa-legal .lsa-toc-toggle::after {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-3px);
    transition: transform 0.2s;
  }
  .lsa-legal .lsa-toc-check:checked + .lsa-toc-toggle::after {
    transform: rotate(-135deg) translateY(-2px);
  }
  .lsa-legal .lsa-toc-check:focus-visible + .lsa-toc-toggle {
    outline: 2px solid var(--lsa-accent);
    outline-offset: 3px;
    border-radius: 12px;
  }
  .lsa-legal .lsa-toc-title {
    display: none;
  }
  /* list hidden on mobile until the toggle is tapped */
  .lsa-legal .lsa-toc ol {
    display: none;
    margin: 0 18px 14px;
    border-left: 0;
  }
  .lsa-legal .lsa-toc-check:checked ~ ol {
    display: block;
  }
  .lsa-legal .lsa-toc a {
    padding-left: 0;
    border-left: 0;
  }
  .lsa-legal .lsa-toc{
    padding: 0px;
  }
}
@media (max-width: 600px) {
  .lsa-legal {
    font-size: 16px;
  }
 
  .lsa-legal .lsa-content section {
    padding-bottom: 20px;
    margin-bottom: 20px;
  }
  .lsa-legal .lsa-contact {
    padding: 22px;
  }
  .lsa-legal .lsa-num{
        transform: translateY(0px);
  }
}

/* privcy policy css end */

/* funnel css start */



  @keyframes flow {
    to {
      stroke-dashoffset: -9;
    }
  }

  /* ---------- Literal funnel ---------- */


  /* Platform logos + connectors share the funnel's middle column so they line up */
  .f-top {
    display: grid;
    grid-template-columns: var(--cols);
    column-gap: 40px;
  }

  .f-top > div {
    grid-column: 2;
  }

  /* gap is a % of the row (11px of 720) so card centres stay matched to the connector paths at every width */
  .f-src {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1.53%;
  }

  /* every logo gets the same height (40% of the card); wide logos are capped so they don't overflow */
  .logo {
    aspect-ratio: 1;
    border-radius: clamp(8px, 2.2vw, 16px);
    background: var(--card);
    display: grid;
    place-items: center;
    container-type: inline-size;
  }

  .logo svg,
  .logo img {
    height: 40cqw;
    width: auto;
    max-width: 64cqw;
    object-fit: contain;
    display: block;
  }

  .f-in {
    display: block;
    width: 100%;
    height: auto;
  }

  .f-in path {
    fill: none;
    stroke: var(--line);
    stroke-width: 1.2;
    stroke-dasharray: 1.5 3;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
    animation: flow 1.1s linear infinite;
  }

  /* connector dots: custom.js runs a dot along each of the seven dotted lines */
  .f-in .f-dot {
    fill: #4A1CF2;
  }

  /* center dot on the lines below the funnel and the stem; custom.js sets its position */
  .hiw .funnel {
    position: relative;
  }

  .hiw .funnel-dot {
    position: absolute;
    left: 0;
    top: 0;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #4A1CF2;
    opacity: 0;
    pointer-events: none;
    z-index: 1;
  }

  .f-row {
    display: grid;
    grid-template-columns: var(--cols);
    align-items: center;
    column-gap: 40px;
  }

  .f-row + .f-row {
    margin-top: 10px;
  }

  .metric {
    text-align: right;
  }

  .metric b {
    display: block;
    font-size: 30px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -.01em;
    color: var(--text-soft);
    font-family: var(--plus-jakarta);
  }

  .metric span {
    font-size: 14px;
    color: var(--text-soft);
    font-family: var(--Manrope);
    font-weight: 500;
  }

  .desc {
    color: var(--text-soft);
    font-size: 16px;
    line-height: 1.4;
    max-width: 30ch;
    font-family: var(--Manrope);
    font-weight: 600;
  }

  .band {
    height: 94px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #fff;
    clip-path: polygon(var(--a) 0, calc(100% - var(--a)) 0, calc(100% - var(--b)) 100%, var(--b) 100%);
    font-size: 24px;
    font-weight: 500;
    letter-spacing: -.01em;
    font-family: var(--plus-jakarta);
    padding: 6px 8%;
    line-height: 1.1;
  }

  .band .num {
    font-size: 14px;
    font-weight: 500;
    padding: 6px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .1);
    font-family: var(--plus-jakarta);
  }

  .b1 {
    --a: 0%;
    --b: 6.3%;
    background: #200F6C;
  }

  .b2 {
    --a: 7.2%;
    --b: 13.6%;
    background: #2D1597;
  }

  .b3 {
    --a: 14.4%;
    --b: 20.8%;
    background: #3A19C2;
  }

  .b4 {
    --a: 21.6%;
    --b: 28%;
    background: #4A1CF2;
  }

  .f-out {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .f-out .stem {
    width: 0;
    height: 40px;
    border-left: 1.2px dashed var(--line);
  }

  .f-out .res {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border-radius: 999px;
    background: #fff;
    border: 1.5px solid var(--ok-border);
    font-weight: 400;
    font-size: 13px;
    color: var(--text-soft);
    font-family: var(--Manrope);
  }

  .f-out .res b {
    font-weight: 700;
  }

  .f-out .res i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ok);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, .18);
  }

  /* ---------- Responsive ---------- */

  @media only screen and  (max-width: 991px) {
    .f-top, .f-row {
    column-gap: 20px;
  }
  .desc, .metric span {
    font-size: 14px;
  }
  .metric b{
    font-size: 24px;
  }
  .band{
    height: auto;
    min-height: 74px;
        font-size: 20px;
  }
  .b1 {
    --a: 0%;
    --b: 4.3%;
  }
  .b2 {
    --a: 5.2%;
    --b: 10.6%;
  }
  .b3 {
    --a: 12.4%;
    --b: 17.8%;
  }
  .b4 {
    --a: 19.6%;
    --b: 25%;
  }
  }
@media (max-width: 1299px) {
  .f-top, .f-row{
      grid-template-columns: minmax(180px, 1fr) minmax(0, 500px) minmax(180px, 1fr);
          column-gap: 25px;
  }  
  .band{
    font-size: 20px;
  }
}
  @media (max-width: 1200px) {
    .band{
    font-size: 18px;
  }
  }
  @media (max-width: 900px) {
  .funnel {
    max-width: 600px;
    margin: 0 auto;
  }
  .desc{
    max-width: 80%;
  }

    .f-top,
    .f-row {
      grid-template-columns: 1fr;
    }

    .f-top > div {
      grid-column: 1;
    }

    .f-row {
      gap: 0;
      text-align: center;
    }

    .f-row + .f-row {
      margin-top: 15px;
    }

    .metric {
      text-align: center;
      order: 2;
    }

    /* dotted stem ties each metric to the band above it */
    .metric::before {
      content: "";
      display: block;
      width: 0;
      height: 18px;
      margin: 0 auto 2px;
      border-left: 1.2px dashed var(--line);
    }

    .metric b {
     display: inline-block;
      font-size: 20px;
      margin-right: 6px;
    }

    .desc {
      order: 3;
      margin: 2px auto 0;
    }

    .band {
           height: auto;
        font-size: 18px;
        gap: 10px;
        min-height: 54px;
    }

    .band .num {
      font-size: 12px;
    }

    /* bands are stacked apart on mobile, so a gentler taper keeps the text from being clipped */
    .b1 {
      --a: 0%;
      --b: 3%;
    }

    .b2 {
      --a: 3%;
      --b: 6%;
    }

    .b3 {
      --a: 6%;
      --b: 9%;
    }

    .b4 {
      --a: 9%;
      --b: 12%;
    }
  }
  @media only screen and (max-width:575px){
    .f-src .logo img{
      max-width: 40%;
    }
    .b1 {
    --a: 0%;
    --b: 3%;
    }
      .b2 {
      --a: 2%;
      --b: 6%;
    }
      .b3 {
      --a: 3%;
      --b: 7%;
    }
      .b4 {
      --a: 5%;
      --b: 9%;
    }
  }
  @media only screen and (max-width:319px){
    .band {
    font-size: 16px;
  }
  .band .num {
      font-size: 10px;
  }
  .desc {
    max-width: 90%;
}
  }

  @media (prefers-reduced-motion: reduce) {
    .f-in path {
      animation: none;
    }
  }


  .hiw.js-hiw-anim .logo {
    opacity: 0;
    transform: translateY(18px) scale(.94);
    transition: opacity .5s ease, transform .6s cubic-bezier(.22, 1, .36, 1);
    transition-delay: calc(var(--i, 0) * 70ms);
  }


  .hiw.js-hiw-anim .f-in {
    opacity: 0;
    transition: opacity .6s ease .5s;
  }

  .hiw.js-hiw-anim .f-row .band,
  .hiw.js-hiw-anim .f-row .metric,
  .hiw.js-hiw-anim .f-row .desc {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .6s ease, transform .7s cubic-bezier(.22, 1, .36, 1);
  }

  .hiw.js-hiw-anim .f-row .metric,
  .hiw.js-hiw-anim .f-row .desc {
    transition-delay: .15s;
  }

 
  .hiw.js-hiw-anim .f-out .stem {
    transform: scaleY(0);
    transform-origin: top;
    transition: transform .4s ease;
  }

  .hiw.js-hiw-anim .f-out .res {
    opacity: 0;
    transform: translateY(12px) scale(.96);
    transition: opacity .5s ease .3s, transform .6s cubic-bezier(.22, 1, .36, 1) .3s;
  }

  /* shown state */
  .hiw.js-hiw-anim .f-top.is-shown .logo,
  .hiw.js-hiw-anim .f-row.is-shown .band,
  .hiw.js-hiw-anim .f-row.is-shown .metric,
  .hiw.js-hiw-anim .f-row.is-shown .desc,
  .hiw.js-hiw-anim .f-out.is-shown .res {
    opacity: 1;
    transform: none;
  }

  .hiw.js-hiw-anim .f-top.is-shown .f-in {
    opacity: 1;
  }

  .hiw.js-hiw-anim .f-out.is-shown .stem {
    transform: scaleY(1);
  }

/* funnel css end */
/* hero section canvus animation */

/* #lsa-hero is an empty div (the content sits beside it), so stretch it
   over the whole parent #height-auto, otherwise its height is 0 and the canvas doesn't show */
#height-auto {
  position: relative;
  isolation: isolate;
}

#height-auto > #lsa-hero {
  position: absolute !important;
  inset: 0;
  z-index: 0;
  isolation: isolate;
  pointer-events: none;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* keep the hero content above the canvas */
#height-auto > #lsa-hero ~ * {
  position: relative;
  z-index: 1;
}

.lsa-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
  border-radius: inherit;
  /* the top fade is in JS and applies only to the pipes; this is just the bottom fade (pipes + dots) */
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 50%, rgba(0, 0, 0, .5) 75%, transparent 96%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 50%, rgba(0, 0, 0, .5) 75%, transparent 96%);
}

.lsa-bg canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.grecaptcha-badge{
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15) !important; 
}
.header-main nav .sub-arrow{
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%231f1f1f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-position: center 4px, right;
    background-repeat: no-repeat;
    background-size: 11px;
    width: 1.2em;
    margin-left: 4px;
}
.header-main nav .sub-arrow svg{
  display: none;
}
.header-main nav .elementor-item-active.has-submenu .sub-arrow,
.header-main nav .has-submenu:hover .sub-arrow{
 background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%234717db' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

/* lighter pipes + moving dots on mobile, so they don't pull focus from the content */
@media (max-width: 767px) {
  .lsa-bg canvas {
    opacity: .65;
  }
}

/* hero ection canvus animation end */

.footer-main-menu nav .sub-menu, .footer-main-menu nav .sub-arrow{
  display: none !important;
}
.elementor-button .elementor-button-icon svg{
  width: 0.8em;
}

.elementor-select-wrapper .select-caret-down-wrapper{
  display: none;
}
.elementor-field-type-select select{
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%231f1f1f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-size: 11px;
  background-position: right 8px center;
  background-repeat: no-repeat;
}

/* ---------- responsive ---------- */
@media (max-width: 520px) {
  .hero-rotate-section { padding: 40px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .text-animation,
  .text-animation-letter { transition: none; }
  .text-animation::before,
  .text-animation::after { animation: none !important; transform: scaleX(1); }
  .text-animation-word.is-active .text-animation-letter { transition-delay: 0s; }
}

/* steps form end */

@media only screen and (min-width: 1025px) {
  #height-auto{
        max-height: 920px;
    height: 100vh;
  }
  nav ul .main-menu-last-item{
    display: none !important;
  }
}

@media only screen and (min-width: 1025px) and (max-height: 680px) {
  #height-auto{
    height: auto;
  }
}


@media only screen and (min-width: 1025px) and (max-height: 880px) {
.audit-findings{
  gap: 5px;
}
#frc-app {
    padding-top: 20px;
    padding-bottom: 20px;
}
#steps-form-new .frc-top-text h2 {
    font-size: 24px;
}
.steps-formMain .frc-panel p, #steps-form-new .frc-card p.frc-sub {
    font-size: 16px;
    margin-bottom: 20px;
} 
#steps-form-new .frc-card {
    padding: 25px 20px;
}

}
@media (max-width: 1200px) {
  .steps-title { font-size: 32px; }
  .step-title  { font-size: 22px; margin-top: 18px; }
  .step-text   { font-size: 13px; }
}
@media (max-width: 1024px) {
  nav ul .sub-menu{
    background-color: transparent;
    box-shadow: none;
    border: none;
  }
}

/* tablet / mobile: no sticky wave, simple vertical timeline */
@media (max-width: 900px) {
  #steps-main-section { height: auto; padding: 60px 0; }

  .steps-sticky {
    position: static;
    height: auto;
    display: block;
    overflow: visible;
  }

  .steps-head { margin-bottom: 36px; }
  .steps-title { font-size: 26px; }

  .steps-wave { display: none; }

  .steps-stage {
    aspect-ratio: auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-left: 28px;
    border-left: 2px solid var(--steps-purple);
    margin-left: 8px;
  }

  .step {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    opacity: 1;
    transform: none;
  }

  /* purple dot on the timeline */
  .step::before {
    content: "";
    position: absolute;
    left: -38px;
    top: -2px;
    width: 18px;
    height: 18px;
    border: 4px solid #ffffff;
    border-radius: 50%;
    background: var(--steps-purple);
    box-shadow: 0 0 12px rgba(69, 16, 255, 0.35);
  }

  .step-label { margin-left: 0; }
  .step-title { margin-top: 10px; font-size: 22px; }
}
/* ---------- responsive ---------- */
@media (max-width: 1200px) {
  .steps-title { font-size: 32px; }
  .step-title  { font-size: 22px; margin-top: 18px; }
  .step-text   { font-size: 13px; }
}

/* tablet / mobile: no sticky wave, simple vertical timeline */
@media (max-width: 900px) {
  #steps-main-section { height: auto; padding: 60px 0; }

  .steps-sticky {
    position: static;
    height: auto;
    display: block;
    overflow: visible;
  }

  .steps-head { margin-bottom: 36px; }
  .steps-title { font-size: 26px; }

  .steps-wave { display: none; }

  .steps-stage {
    aspect-ratio: auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding-left: 28px;
    border-left: 2px solid var(--steps-purple);
    margin-left: 8px;
  }

  .step {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    opacity: 1;
    transform: none;
  }

  /* purple dot on the timeline */
  .step::before {
    content: "";
    position: absolute;
    left: -38px;
    top: -2px;
    width: 18px;
    height: 18px;
    border: 4px solid #ffffff;
    border-radius: 50%;
    background: var(--steps-purple);
    box-shadow: 0 0 12px rgba(69, 16, 255, 0.35);
  }

  .step-label { margin-left: 0; }
  .step-title { margin-top: 10px; font-size: 22px; }
}


/* ---------- responsive ---------- */
@media (max-width: 1270px) {
  #logo-main:before{
    width: 310px;
  }
}


@media (max-width: 1200px) {
  .compare-table .cmp-feature { width: 260px; }
  .compare-table .cmp-prod    { width: 400px; }

  .cmp-cell { font-size: 15px; }
  .compare-table tbody .cmp-feature .cmp-cell {
    padding-left: 10px;
    padding-right: 10px;
}
.compare-table thead th{
  font-size: 20px;
}
.compare-table thead .cmp-prod {
    padding-left: 15px;
}
.prototype-th {
    padding-right: 15px;
       flex-wrap: wrap; 
}
.compare-table tbody .cmp-prod .cmp-cell {
    padding: 10px 15px 10px 15px;
}
.compare-table .cmp-feature {
    width: 180px;
}
.compare-table .cmp-prod {
    width: 240px;
}
.compare-table thead th {
    font-size: 20px;
    width: 190px;
    padding-right: 15px;
    text-align: center;
    line-height: 1.12;
}
.cmp-check, .cmp-x {
    width: 18px;
    height: 18px;
}
.compare-inner {
    min-width: 767px;
}
.cmp-cell {
    font-size: 14px;
}
.Lovable-security-table .compare-table .cmp-proto {
    width: 200px;
}
.Lovable-security-table .compare-table .cmp-prod {
    width: 250px;
}
.Lovable-security-table .compare-table .cmp-feature {
    width: 180px;
}
.frc{
      padding: 28px 20px 40px 20px;
}
.tag-gray:after {
    top: 10px;
    width: 7px;
    height: 7px;
}
}

@media (max-width: 1100px) {
  #logo-main:before {
    width: 320px;
    height: 100px;

}
}
@media (max-width: 1080px) {
   #logo-main:before {
    width: 270px;
}
}


@media (max-width: 1024px) {
  .header-main nav{
        position: fixed;
        top: 40px;
        right: 20px;
        height: calc(100vh - 40px);
        width: 100%;
    transition: height 0.4s var(--ease-out); 
          background-color: #ffffff;
        backdrop-filter: blur(10px);
        max-width: 280px;
        border: 1px solid #ececec;
        box-shadow: 0px 0px 15px rgb(0 0 0 / 10%);
        border-radius: 20px 20px 20px 20px;
        padding: 60px 15px 20px 15px;;
  }
  .header-main .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container {
    animation: hide-scroll .3s backwards;
    max-height: var(--menu-height);
    transform: translatex(0px);
}
.header-main .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container {
    max-height: 100vh !important;
    overflow: hidden;
    transform: translateX(300px);
} 
 header.scrolled .header-main nav{
  top: 0px;
  margin-top: 0px !important;
right: 0px;
height: calc(100vh - 0px);
border-radius: 20px 0px 0px 20px;
}
.header-main nav li{
  border-bottom: 1px solid #eee;
}
.header-main nav li:last-child{
  border-bottom: none;
}
.header-main nav li a{
  padding-left: 0px !important;
  padding-right: 0px !important;
}
.header-main nav li a.elementor-item-active, .header-main nav li a:hover{
  color: #450afd !important;
  background-color: transparent !important;
}
.audit-file {
    font-size: 14px;
    padding: 18px 0px 10px 0px;
}
.audit-findings {
    gap: 5px;
}
.header-main nav .sub-arrow{
  margin-left: auto;
}
.header-main nav ul .sub-menu {
    background-color: transparent;
    box-shadow: none;
    border: none;
    padding-left: 15px;
    min-width: auto !important;
    margin-top: 0px !important;
    border-radius: 0px;
    border-left: 1px solid #eee;
    margin-bottom: 15px !important;
}
.header-main nav ul .sub-menu li{
  border-bottom: 0px;
}

}
@media (max-width: 991px) {
  #steps-form-new .frc-top-text h2 {
    font-size: 24px;
}
#steps-form-new .frc-top-text p {
    font-size: 14px;
}
.frc .frc-ico {
    width: 40px;
    height: 40px;
    border-radius: 10px;
}
.steps-formMain .frc-panel p, #steps-form-new .frc-card p.frc-sub {
    font-size: 16px;
}


}

@media (max-width: 960px) {


  .compare-table thead th { font-size: 20px; }

}


@media (max-width: 767px) {
  .steps-formMain .frc-primary{
    font-size: 14px;
  }
  .frc-fullbtn .frc-primary {
    min-height: 44px;
}
.steps-formMain .frc-panel h2 {
    font-size: 24px;
}
.steps-formMain .frc-panel p {
    font-size: 16px;
}
.service-audit .audit-stats {
    grid-template-columns: repeat(2, 1fr);
}
.audit-card {

    padding: 14px 15px 15px;;
}
.audit-tag-new .name {
    font-size: 20px;

}
.audit-tag-new .name-fixing {
    font-size: 8px;

}
.audit-tag-new {

    height: 75px;
    width: 110px;
  
}
.service-audit .audit-title {
    padding-right: 0;
    color: #000;
    margin-bottom: 30px;
    font-size: 18px;
}
.gauge-num {
    font-size: 20px;
}
.compare-inner {
    min-width: 500px;
}
.Lovable-security-table .compare-table .cmp-prod {
    width: 180px;
}
.custom-audit-faq .glow--pink {
    top: 90px;
}
.custom-audit-faq .glow--yellow {
    top: 30px;
}
.steps-formMain .frc-panel h2, #steps-form-new .frc-card h2, #steps-form-new .frc-card .frc-card-title {
    font-size: 26px;

}
.steps-formMain .frc-panel p, #steps-form-new .frc-card p.frc-sub {
    font-size: 14px;
}
.steps-formMain .frc-primary, #steps-form-new .frc-btn {
    font-size: 14px;
        padding: 10px 10px;
}
#steps-form-new .frc-ghost {
    font-size: 14px;
        padding: 10px 10px;
}
.frc .frc-nav {

    margin-top: 4px;
    flex-wrap: wrap;
    gap: 4px;
}
#steps-form-new .frc .lv-low,
#steps-form-new .frc .lv-critical,
#steps-form-new .frc .lv-high{
  font-size: 11px;
}
#steps-form-new .frc-top-text h2 {
    font-size: 20px;
}
#steps-form-new .frc .frc-statusmsg {
    font-size: 14px;

}
.step-progress{
  display: none;
}
.custom-review-slider .elementor-swiper-button {
    width: 30px;
    height: 30px;
}
.custom-review-slider .elementor-swiper-button svg{
  width: 0.8em !important;
  height: 0.8em !important;
}
.custom-review-slider .elementor-swiper-button.elementor-swiper-button-prev {
    right: 45px !important;
    left: auto !important;
}
.lsa-content ul li, .lsa-content ol li, .lsa-legal .lsa-content section{
  font-size: 14px;
}
#steps-form-new .frc .frc-opt {
    padding: 12px 12px;
}

}


/* ---------- Responsive ---------- */

@media (max-width: 520px) {
  .audit-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .audit-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .audit-title {
    font-size: 22px;
  }

  .audit-tag {
    right: 10px;
    width: 116px;
    height: 28px;
    font-size: 12px;
  }
   #app-build {
    --logo-w: 120px;
    --logo-gap: 8px;
    --logo-h: 60px;
    --strip-pad: 28px;
  }

  #app-build img {
    max-width: 80px;
    max-height: 22px;
  }

  #client-logo #app-build {
    --logo-w: 105px;
    --logo-gap: 0px;
    --logo-h: 50px;
  }

  #client-logo #app-build img {
    height: 40px;
    max-width: 95px;
  }

  .gdpr-frame { border-radius: 18px; }
}
@media (max-width: 374px) {
  .top-bar-btn::before {
    display: none;
}

.custom-top-bar > div:last-child {
    width: auto;
    min-width: auto;
    max-width: max-content;
}

.custom-top-bar p {
          font-size: 11px;
        letter-spacing: -.3px;
}
  #blue-shape-card-lg {
   
    background-size: 100%;
    width: 100%;
    max-width: 100%;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    left: 0px;
    max-width: 100%;
    line-height: 1;
}
.grecaptcha-badge{
  transform: scale(0.8) !important;
    transform-origin: left !important;
}
}

@media (max-width: 319px) {
  .service-audit .audit-stats {
    grid-template-columns: repeat(1, 1fr);
}
.grecaptcha-badge{
  transform: scale(0.7) !important;
}
}

/* ---------- 4. Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .glow,
  .gauge-fill { transition: none; }
  .audit-section.is-visible .glow,
  .audit-section.is-visible .audit-card { animation: none; }
}



@media (max-width: 767px) {
  #secure-section-app { --row-gap: 24px; }
}


/* ---------- mobile menu backdrop overlay (JS: custom.js) ---------- */
.menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: rgba(15, 19, 26, 0.45);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

body.menu-open .menu-backdrop {
  opacity: 1;
  visibility: visible;
}

/* layering rules use body.menu-layer (custom.js): it turns on together with menu-open,
   but turns off only after the overlay has faded out, so nothing jumps mid-fade.
   keep the header (and the side menu inside it) above the page */
body.menu-layer .header-main {
  z-index: 9999 !important;
  /* the header's "transition: all" would slowly fade the blur / z-index; while any blur
     is left the overlay is stuck inside the header bar, so switch these instantly */
  transition-property: top, background-color !important;
}

/* the overlay is appended inside the header (custom.js), in the same layer as the side panel:
   logo + header bar < overlay (50) < side panel (60) < close button (99) */
.menu-backdrop.in-header {
  z-index: 50;
}

body.menu-layer .header-main nav.elementor-nav-menu--dropdown {
  z-index: 60;
}

body.menu-open .header-main .elementor-menu-toggle {
  position: relative;
  z-index: 99;

}
body.menu-open header.scrolled .header-main{
  background-color: #fff;
}

body.menu-open .scrolled .header-main .elementor-menu-toggle{
  left: 20px;
}

/* custom.js marks the wrappers around the menu so they sit above the logo while the menu is open */
body.menu-layer .menu-raise {
  z-index: 20 !important;
}

body.menu-layer .menu-raise-pos {
  position: relative;
}

/* backdrop-filter on the scrolled header would trap the fixed overlay inside the header bar */
body.menu-layer .header-main {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* logo at the top of the side menu panel (added by custom.js), next to the close button */
.header-main .menu-panel-logo {
  position: absolute;
  top: 18px;
  left: 15px;
  right: 70px;
  height: 36px;
  display: flex;
  align-items: center;
}

.header-main .menu-panel-logo img {
  display: block;
  height: 28px;
  width: auto;
  max-width: 100%;
}

@media (min-width: 1025px) {
  .header-main .menu-panel-logo { display: none; }
}

/* stop the page behind from scrolling while the menu is open */
body.menu-open {
  overflow: hidden;
}

/* there is no menu toggle on desktop, so never show the overlay */
@media (min-width: 1025px) {
  .menu-backdrop { display: none; }
}



/*  */
