/* ==================== TOKENS ==================== */
:root{
  --c-bg:#f7f9fc;
  --c-surface:#ffffff;
  --c-ink:#111827;
  --c-ink-soft:#27364a;
  --c-muted:#5b6678;
  --c-muted-2:#8993a3;
  --c-line:#dde3ec;
  --c-line-2:#eef2f7;

  --c-primary:#1557d6;
  --c-primary-hover:#1047b5;
  --c-accent:#2f7df4;
  --c-primary-soft:rgba(21,87,214,.07);

  --c-dark:#0b1830;
  --c-dark-2:#101b2f;
  --c-dark-3:#1a2942;

  --c-success:#0f9f6e;
  --c-error:#d92d20;

  --c-muted-on-dark:rgba(255,255,255,.82);
  --c-muted-on-dark-2:rgba(255,255,255,.66);

  /* Controlled type scale: smooth, but without dramatic viewport jumps. */
  --fs-base:16px;
  --fs-lead:clamp(16px,1.25vw,18px);
  --fs-h4:clamp(17px,1.35vw,19px);
  --fs-h3:clamp(21px,1.7vw,25px);
  --fs-h2:clamp(31px,3.2vw,46px);
  --fs-h1:clamp(44px,5vw,68px);

  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:20px;
  --container:1240px;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-bounce:cubic-bezier(.34,1.56,.64,1);
}

/* ==================== RESET ==================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:var(--fs-base);line-height:1.6;color:var(--c-ink);
  background:var(--c-bg);
  margin:0;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  cursor:auto;
}
@media(max-width:900px){body{cursor:auto}}
img{max-width:100%;height:auto;display:block}
button{cursor:auto;font-family:inherit;border:0;background:none;color:inherit}
@media(max-width:900px){button{cursor:pointer}}
button:disabled{opacity:.5;cursor:not-allowed}
body.is-busy{cursor:wait!important}
body.is-busy .vf-cursor{display:none!important}
body.is-busy button{cursor:wait!important}
body.is-busy a{cursor:wait!important}
body.is-busy input,body.is-busy textarea,body.is-busy select{cursor:text!important}
a{color:inherit;text-decoration:none;cursor:auto}
@media(max-width:900px){a{cursor:pointer}}
ul,ol{list-style:none;padding:0;margin:0}
h1,h2,h3,h4,p,dl,dd,dt{margin:0}
input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;cursor:auto}
@media(max-width:900px){input,select,textarea{cursor:text}}

.container{width:min(var(--container),calc(100% - 48px));margin-inline:auto}
@media(max-width:760px){.container{width:calc(100% - 32px)}}

::selection{background:var(--c-primary);color:#fff}

/* ==================== CURSOR GLOW ==================== */
.vf-cursor{
  position:fixed;top:0;left:0;
  width:24px;height:24px;
  border:1.5px solid var(--c-primary);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  transition:width .25s var(--ease),height .25s var(--ease),border-color .25s,background .25s;
  mix-blend-mode:difference;
}
.vf-cursor.is-hover{width:48px;height:48px;background:rgba(37,99,235,.15);border-color:transparent}
.vf-cursor.is-press{width:18px;height:18px}
@media(max-width:900px){.vf-cursor{display:none}}

/* ==================== PROGRESS BAR ==================== */
.vf-progress{
  position:fixed;top:0;left:0;right:0;height:3px;
  background:rgba(0,0,0,.05);
  z-index:100;
}
.vf-progress-bar{
  height:100%;width:0;
  background:linear-gradient(90deg,var(--c-primary) 0%,var(--c-accent) 100%);
  transition:width .1s linear;
}

/* ==================== BUTTONS ==================== */
.vf-btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 28px;border-radius:999px;
  font-weight:600;font-size:15px;line-height:1.2;
  letter-spacing:-.01em;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .2s;
  white-space:nowrap;
  overflow:hidden;
}
.vf-btn-primary{
  background:var(--c-ink);
  color:#fff;
  box-shadow:0 4px 16px rgba(0,0,0,.12);
}
.vf-btn-primary::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,var(--c-primary) 0%,var(--c-accent) 100%);
  opacity:0;transition:opacity .3s var(--ease);
  z-index:0;
}
.vf-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(37,99,235,.4)}
.vf-btn-primary:hover::before{opacity:1}
.vf-btn-primary>*{position:relative;z-index:1}
.vf-btn-primary .vf-btn-arrow{transition:transform .3s var(--ease)}
.vf-btn-primary:hover .vf-btn-arrow{transform:translateX(4px)}
.vf-btn-dark{background:var(--c-ink);color:#fff;padding:12px 24px;font-size:14px}
.vf-btn-dark:hover{background:var(--c-primary)}
.vf-btn-block{width:100%}

.vf-btn-text{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:500;font-size:15px;
  color:var(--c-ink-soft);
  position:relative;padding:8px 0;
  transition:color .2s;
}
.vf-btn-text::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:1px;background:var(--c-ink);
  transform-origin:right;transform:scaleX(0);
  transition:transform .35s var(--ease);
}
.vf-btn-text:hover{color:var(--c-ink)}
.vf-btn-text:hover::after{transform-origin:left;transform:scaleX(1)}

.vf-text-link{
  color:inherit;text-decoration:underline;text-underline-offset:3px;
  background:none;border:0;font-size:inherit;padding:0;
}

/* ==================== HEADER ==================== */
.vf-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:20px 0;
  background:transparent;
  transition:background .3s,backdrop-filter .3s,padding .3s,border-color .3s;
  border-bottom:1px solid transparent;
}
.vf-header.is-scrolled{
  background:rgba(250,250,250,.75);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  padding:14px 0;
  border-bottom:1px solid var(--c-line);
}
.vf-header-inner{
  display:flex;align-items:center;gap:32px;
}
.vf-brand{
  display:flex;align-items:center;gap:12px;
  font-weight:700;font-size:13px;letter-spacing:.12em;
  color:var(--c-ink);
  transition:opacity .2s;
}
.vf-brand:hover{opacity:.7}
.vf-brand-mark{
  width:28px;height:28px;
  background:var(--c-ink);
  border-radius:6px;
  position:relative;
  transition:transform .5s var(--ease-bounce);
}
.vf-brand:hover .vf-brand-mark{transform:rotate(45deg)}
.vf-brand-mark::before,.vf-brand-mark::after{
  content:"";position:absolute;background:#fff;
}
.vf-brand-mark::before{left:5px;right:5px;top:9px;height:2px;box-shadow:0 4px 0 #fff,0 8px 0 #fff}

.vf-nav{
  display:flex;gap:32px;margin-left:auto;
  font-size:14px;font-weight:500;
}
.vf-nav a{
  color:var(--c-ink-soft);position:relative;
  padding:6px 0;
  transition:color .2s;
}
.vf-nav a::before{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:1px;background:var(--c-primary);
  transform:scaleX(0);transform-origin:right;
  transition:transform .35s var(--ease);
}
.vf-nav a:hover{color:var(--c-ink)}
.vf-nav a:hover::before{transform:scaleX(1);transform-origin:left}

.vf-phone{
  display:inline-flex;align-items:center;
  font-size:14px;font-weight:600;
  padding:10px 20px;border-radius:999px;
  background:var(--c-ink);color:#fff;
  transition:background .2s,transform .2s;
  will-change:transform;
}
.vf-phone:hover{background:var(--c-primary)}

.vf-burger{
  display:none;width:40px;height:40px;
  align-items:center;justify-content:center;
  flex-direction:column;gap:5px;
}
.vf-burger span{
  width:24px;height:1.5px;background:var(--c-ink);
  border-radius:1px;
  transition:transform .3s var(--ease);
}
.vf-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3px) rotate(45deg)}
.vf-burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}

/* ==================== HERO ==================== */
.vf-hero{
  position:relative;overflow:hidden;
  min-height:100vh;min-height:100dvh;
  padding:140px 0 80px;
  display:flex;flex-direction:column;justify-content:center;
  background:var(--c-bg);
}
.vf-hero-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.vf-blob{position:absolute;border-radius:50%;filter:blur(100px);opacity:.25;transition:transform .8s var(--ease)}
.vf-blob-1{width:500px;height:500px;background:var(--c-primary);top:-200px;right:-100px;animation:blobMove1 20s ease-in-out infinite}
.vf-blob-2{width:400px;height:400px;background:var(--c-accent);bottom:-150px;left:-100px;animation:blobMove2 25s ease-in-out infinite}
@keyframes blobMove1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-50px,30px) scale(1.1)}}
@keyframes blobMove2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-40px) scale(1.15)}}
.vf-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,0,0,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,0,0,.04) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%);
}

.vf-hero-grid{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:1fr 280px;
  grid-template-rows:auto 1fr auto;
  gap:40px 60px;
  align-items:start;
}
.vf-hero-meta{grid-column:1/-1}
.vf-hero-tag{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px;
  background:rgba(0,0,0,.04);
  border:1px solid var(--c-line);
  border-radius:999px;
  font-size:13px;font-weight:500;color:var(--c-ink-soft);
  backdrop-filter:blur(10px);
}
.vf-dot{
  width:6px;height:6px;border-radius:50%;background:var(--c-success);
  box-shadow:0 0 0 4px rgba(16,185,129,.2);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(16,185,129,.2)}50%{box-shadow:0 0 0 8px rgba(16,185,129,0)}}

.vf-hero-title{
  grid-column:1;align-self:start;
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:var(--fs-h1);
  font-weight:700;line-height:1;letter-spacing:-.04em;
  color:var(--c-ink);
}
.vf-hero-title .vf-line{
  display:block;
  opacity:0;transform:translateY(40px);
  animation:lineIn .8s var(--ease) forwards;
}
.vf-hero-title .vf-line:nth-child(1){animation-delay:.1s}
.vf-hero-title .vf-line:nth-child(2){animation-delay:.25s}
.vf-hero-title .vf-line:nth-child(3){animation-delay:.4s}
@keyframes lineIn{to{opacity:1;transform:translateY(0)}}
.vf-hero-title .vf-line-accent{
  background:linear-gradient(135deg,var(--c-primary) 0%,var(--c-accent) 50%,#8b5cf6 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  background-size:200% 200%;
  animation:lineIn .8s var(--ease) .4s forwards,gradientMove 8s ease-in-out infinite;
}
@keyframes gradientMove{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

.vf-hero-foot{
  grid-column:1;
  max-width:560px;
  display:flex;flex-direction:column;gap:28px;
  opacity:0;animation:fadeUp .8s var(--ease) .7s forwards;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.vf-hero-lead{font-size:var(--fs-lead);color:var(--c-ink-soft);line-height:1.55}
.vf-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}

.vf-hero-side{
  grid-column:2;grid-row:2/4;align-self:start;
  display:flex;flex-direction:column;gap:32px;
  padding:32px 28px;
  background:#fff;
  border:1px solid var(--c-line);
  border-radius:var(--radius-md);
  opacity:0;animation:fadeUp .8s var(--ease) .9s forwards;
  transition:transform .4s var(--ease);
  will-change:transform;
}
.vf-hero-side-num{
  display:flex;flex-direction:column;gap:4px;
  padding-bottom:24px;
  border-bottom:1px solid var(--c-line);
}
.vf-hero-side-num:last-child{border-bottom:0;padding-bottom:0}
.vf-hero-side-num span{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h3);font-weight:600;line-height:1.2;letter-spacing:-.02em;
  color:var(--c-ink);
}
.vf-hero-side-num small{font-size:12px;color:var(--c-muted);line-height:1.4;font-weight:500}

.vf-scroll-hint{
  position:absolute;bottom:30px;left:50%;
  transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:12px;
  font-size:11px;letter-spacing:.2em;font-weight:600;text-transform:uppercase;color:var(--c-muted);
  z-index:1;
}
.vf-scroll-line{
  width:1px;height:50px;background:var(--c-line);position:relative;overflow:hidden;
}
.vf-scroll-line::after{
  content:"";position:absolute;left:0;top:0;width:100%;height:50%;
  background:var(--c-ink);
  animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine{0%{transform:translateY(-100%)}100%{transform:translateY(200%)}}

/* ==================== MARQUEE ==================== */
.vf-marquee{
  overflow:hidden;
  padding:32px 0;
  border-top:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
  background:var(--c-bg);
}
.vf-marquee-track{
  display:flex;align-items:center;gap:48px;
  white-space:nowrap;
  animation:marquee 35s linear infinite;
  font-family:'Space Grotesk',sans-serif;
  font-size:32px;font-weight:600;letter-spacing:-.02em;
  color:var(--c-ink);
}
.vf-marquee-track span:nth-child(even){color:var(--c-muted-2);font-size:24px}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ==================== SECTIONS ==================== */
.vf-section{padding:120px 0;position:relative}
.vf-soft{background:#fff}

.vf-section-head{
  display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:start;
  margin-bottom:72px;
}
.vf-section-head-light{color:#fff}
.vf-section-head-light p{color:rgba(255,255,255,.7)!important}
.vf-eyebrow{
  grid-column:1/-1;
  display:inline-block;
  font-family:'Space Grotesk',monospace;
  font-size:12px;font-weight:600;letter-spacing:.1em;
  color:var(--c-muted);
  margin-bottom:32px;
  text-transform:lowercase;
}
.vf-eyebrow-light{color:rgba(255,255,255,.6)}
.vf-section-head h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);
  font-weight:600;line-height:1.08;letter-spacing:-.03em;
  color:var(--c-ink);
}
.vf-section-head p{font-size:var(--fs-lead);color:var(--c-ink-soft);line-height:1.6;max-width:440px;align-self:end}

/* ==================== SERVICES ==================== */
.vf-services{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--c-line);
}
.vf-service{
  position:relative;
  padding:48px 32px 48px 0;
  border-right:1px solid var(--c-line);
  display:flex;flex-direction:column;gap:16px;
  transition:transform .3s var(--ease);
  will-change:transform;
}
.vf-service:last-child{border-right:0}
.vf-service::after{
  content:"";position:absolute;left:0;right:32px;bottom:0;height:1px;
  background:var(--c-line);
}
.vf-service:last-child::after{display:none}
.vf-service-num{
  font-family:'Space Grotesk',monospace;
  font-size:12px;font-weight:600;color:var(--c-muted);
  letter-spacing:.1em;
}
.vf-service h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);font-weight:600;line-height:1.15;letter-spacing:-.03em;
  color:var(--c-ink);
  transition:color .2s;
}
.vf-service:hover h3{color:var(--c-primary)}
.vf-service p{font-size:15px;color:var(--c-muted);line-height:1.6;max-width:340px}
.vf-service ul{
  display:flex;flex-direction:column;gap:10px;margin:8px 0 16px;
  padding-left:0;
}
.vf-service li{
  position:relative;padding-left:24px;
  font-size:14.5px;color:var(--c-ink-soft);line-height:1.5;
  transition:transform .25s var(--ease);
}
.vf-service li::before{
  content:"";position:absolute;left:0;top:9px;
  width:12px;height:1.5px;background:var(--c-primary);
  transition:width .25s var(--ease);
}
.vf-service li:hover{padding-left:28px}
.vf-service li:hover::before{width:18px}
.vf-service-link{
  display:inline-flex;align-items:center;gap:8px;margin-top:auto;
  font-size:14px;font-weight:600;color:var(--c-ink);
  transition:gap .25s var(--ease),color .2s;
}
.vf-service:hover .vf-service-link{gap:14px;color:var(--c-primary)}

/* ==================== APPLICATIONS LIST ==================== */
.vf-list{
  border-top:1px solid var(--c-line);
}
.vf-list li{
  position:relative;
  display:grid;grid-template-columns:80px 1fr 1fr 60px;gap:32px;align-items:start;
  padding:40px 0;
  border-bottom:1px solid var(--c-line);
  transition:padding-left .4s var(--ease);
}
.vf-list li::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:0;
  background:linear-gradient(90deg,var(--c-primary-soft,rgba(37,99,235,.04)) 0%,transparent 100%);
  transition:width .5s var(--ease);
  z-index:-1;
}
.vf-list li:hover{padding-left:24px}
.vf-list li:hover::before{width:100%}
.vf-list-num{
  font-family:'Space Grotesk',monospace;
  font-size:14px;font-weight:600;color:var(--c-muted);
  padding-top:8px;
}
.vf-list h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);font-weight:600;line-height:1.15;letter-spacing:-.03em;
  color:var(--c-ink);
}
.vf-list p{font-size:15.5px;color:var(--c-muted);line-height:1.6;max-width:440px}
.vf-list-arrow{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;
  border:1px solid var(--c-line);border-radius:50%;
  color:var(--c-ink);
  transition:background .25s,color .25s,border-color .25s,transform .35s var(--ease);
  margin-top:8px;
}
.vf-list li:hover .vf-list-arrow{
  background:var(--c-ink);color:#fff;border-color:var(--c-ink);
  transform:rotate(-45deg);
}

/* ==================== PROCESS ==================== */
.vf-process{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--c-line);
  position:relative;
}
.vf-process li{
  position:relative;
  padding:40px 32px 40px 0;
  border-right:1px solid var(--c-line);
  display:flex;flex-direction:column;gap:18px;
  transition:background .3s;
}
.vf-process li:last-child{border-right:0}
.vf-process-step{
  width:56px;height:56px;
  display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--c-ink);
  border-radius:50%;
  font-family:'Space Grotesk',monospace;
  font-size:14px;font-weight:600;
  transition:background .3s var(--ease),color .3s;
}
.vf-process li:hover .vf-process-step{background:var(--c-ink);color:#fff}
.vf-process h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h3);font-weight:600;line-height:1.25;letter-spacing:-.025em;
}
.vf-process p{font-size:14.5px;color:var(--c-muted);line-height:1.55;max-width:280px}

/* ==================== TECHNIQUE DARK ==================== */
.vf-dark{position:relative;overflow:hidden;background:var(--c-ink);color:#fff}
.vf-blob-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%,rgba(37,99,235,.25) 0%,transparent 50%),
    radial-gradient(circle at 80% 70%,rgba(59,130,246,.18) 0%,transparent 50%);
}
.vf-tech{
  position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid rgba(255,255,255,.1);
}
.vf-tech-item{
  padding:48px 32px 48px 0;
  border-right:1px solid rgba(255,255,255,.1);
  display:flex;flex-direction:column;gap:14px;
  transition:transform .3s var(--ease);
  will-change:transform;
}
.vf-tech-item:last-child{border-right:0}
.vf-tech-num{
  font-family:'Space Grotesk',monospace;
  font-size:12px;font-weight:600;
  color:rgba(255,255,255,.5);
  letter-spacing:.1em;
}
.vf-tech h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h3);font-weight:600;line-height:1.2;letter-spacing:-.025em;
}
.vf-tech p{font-size:var(--fs-lead);color:var(--c-muted-on-dark);line-height:1.6;max-width:340px}
.vf-tech-bar{
  margin-top:auto;height:2px;background:rgba(255,255,255,.1);
  position:relative;overflow:hidden;
}
.vf-tech-bar span{
  position:absolute;left:0;top:0;bottom:0;
  width:var(--w,0);
  background:linear-gradient(90deg,var(--c-accent) 0%,#8b5cf6 100%);
  transform:translateX(-100%);
  transition:transform 1s var(--ease);
}
.vf-tech-item.is-in .vf-tech-bar span{transform:translateX(0)}
.vf-tech small{
  font-size:11px;color:var(--c-muted-on-dark-2);
  font-weight:500;letter-spacing:.05em;text-transform:uppercase;
}
.vf-tech-cta{
  position:relative;z-index:1;
  margin-top:64px;
  display:flex;justify-content:space-between;align-items:center;gap:40px;
  padding:40px 0;
  border-top:1px solid rgba(255,255,255,.1);
}
.vf-tech-cta p{font-size:var(--fs-lead);color:rgba(255,255,255,.92);max-width:680px;line-height:1.55}

/* ==================== PILES ==================== */
.vf-piles{
  background:var(--c-ink);color:#fff;
  border-radius:var(--radius-lg);
  padding:48px;
  display:grid;grid-template-columns:300px 1fr;gap:48px;
  position:relative;overflow:hidden;
}
.vf-piles::before{
  content:"";position:absolute;width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(59,130,246,.2) 0%,transparent 70%);
  top:-200px;right:-150px;pointer-events:none;
}
.vf-piles-tabs{
  display:flex;flex-direction:column;gap:0;
  position:relative;z-index:1;
  border-left:1px solid rgba(255,255,255,.1);
}
.vf-pile-tab{
  text-align:left;padding:20px 24px;
  background:transparent;
  border:0;border-bottom:1px solid rgba(255,255,255,.1);
  border-radius:0;
  color:rgba(255,255,255,.5);
  display:flex;flex-direction:column;gap:6px;
  transition:color .2s,padding-left .3s var(--ease),background .2s;
  position:relative;
}
.vf-pile-tab::before{
  content:"";position:absolute;left:-1px;top:0;bottom:0;width:1px;
  background:var(--c-accent);
  transform:scaleY(0);transform-origin:bottom;
  transition:transform .35s var(--ease);
}
.vf-pile-tab:hover{color:rgba(255,255,255,.85);padding-left:30px}
.vf-pile-tab.is-active{color:#fff;padding-left:30px;background:rgba(59,130,246,.08)}
.vf-pile-tab.is-active::before{transform:scaleY(1)}
.vf-pile-tab-label{font-size:14px;font-weight:500}
.vf-pile-tab-value{
  font-family:'Space Grotesk',monospace;
  font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em;
}
.vf-piles-display{position:relative;z-index:1;display:flex;align-items:center}
.vf-pile-panel{
  display:none;
  width:100%;
  grid-template-columns:1fr 240px;gap:48px;align-items:center;
  animation:fadeIn .4s var(--ease);
}
.vf-pile-panel.is-active{display:grid}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.vf-pile-spec h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);font-weight:600;line-height:1.15;letter-spacing:-.03em;
  margin-bottom:14px;
}
.vf-pile-spec p{font-size:var(--fs-lead);color:var(--c-muted-on-dark);line-height:1.6;margin-bottom:24px}
.vf-pile-spec dl{
  display:flex;flex-direction:column;gap:12px;margin-bottom:28px;
  border-top:1px solid rgba(255,255,255,.1);
}
.vf-pile-spec dl div{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);
  gap:20px;
}
.vf-pile-spec dt{font-size:12px;color:var(--c-muted-on-dark-2);font-weight:500;letter-spacing:.05em;text-transform:uppercase}
.vf-pile-spec dd{
  font-family:'Space Grotesk',monospace;
  font-size:var(--fs-h4);font-weight:600;color:#fff;
}
.vf-pile-shape{
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.vf-pile-svg{
  width:var(--w,160px);height:200px;
  background:
    radial-gradient(circle at 50% 0%,#94a3b8 0%,#475569 100%);
  clip-path:polygon(calc(50% - var(--d)/2) 0,calc(50% + var(--d)/2) 0,calc(50% + var(--d)/2 + 30px) 70%,50% 100%,calc(50% - var(--d)/2 - 30px) 70%);
  position:relative;
}
.vf-pile-svg::before{
  content:"";position:absolute;left:0;right:0;top:6%;height:8%;
  background:rgba(255,255,255,.15);
}
.vf-pile-shape small{
  font-size:11px;color:var(--c-muted-on-dark-2);
  font-weight:500;letter-spacing:.05em;text-transform:uppercase;
}

/* ==================== STATS ==================== */
.vf-stats{background:#fff}
.vf-stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--c-line);
  border-bottom:1px solid var(--c-line);
}
.vf-stats-grid>div{
  padding:48px 32px 48px 0;
  border-right:1px solid var(--c-line);
  display:flex;flex-direction:column;gap:8px;
}
.vf-stats-grid>div:last-child{border-right:0}
.vf-stats-grid strong{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(30px,2.6vw,42px);
  font-weight:600;line-height:1.05;letter-spacing:-.025em;
  color:var(--c-ink);
  white-space:nowrap;
}
/* Counter spans inside <strong> must inherit the metric size. */
.vf-stats-grid strong span{font:inherit;color:inherit;line-height:inherit;letter-spacing:inherit}
.vf-stats-grid>div>span{font-size:15px;color:var(--c-ink-soft);line-height:1.45;max-width:240px}

/* ==================== FAQ ==================== */
.vf-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}
.vf-faq h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);
  font-weight:600;line-height:1.08;letter-spacing:-.03em;
  margin:32px 0 24px;
}
.vf-faq-hint{font-size:var(--fs-lead);color:var(--c-ink-soft);line-height:1.6;max-width:380px}
.vf-faq-list{border-top:1px solid var(--c-line)}
.vf-faq details{
  border-bottom:1px solid var(--c-line);
  padding:0;
}
.vf-faq summary{
  cursor:auto;
  list-style:none;
  padding:28px 0;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h3);font-weight:500;letter-spacing:-.015em;
  color:var(--c-ink);
  transition:color .2s,padding-left .3s var(--ease);
}
.vf-faq summary::-webkit-details-marker{display:none}
.vf-faq summary:hover{color:var(--c-primary);padding-left:8px}
.vf-faq-toggle{
  flex-shrink:0;
  width:32px;height:32px;border-radius:50%;
  border:1.5px solid var(--c-line);
  position:relative;
  transition:transform .35s var(--ease),background .2s,border-color .2s;
}
.vf-faq-toggle::before,.vf-faq-toggle::after{
  content:"";position:absolute;left:50%;top:50%;
  background:var(--c-ink);
  transform:translate(-50%,-50%);
  transition:transform .3s var(--ease),background .2s;
}
.vf-faq-toggle::before{width:12px;height:1.5px}
.vf-faq-toggle::after{width:1.5px;height:12px}
.vf-faq details[open] .vf-faq-toggle{background:var(--c-ink);border-color:var(--c-ink);transform:rotate(45deg)}
.vf-faq details[open] .vf-faq-toggle::before,.vf-faq details[open] .vf-faq-toggle::after{background:#fff}
.vf-faq-body{
  max-height:0;overflow:hidden;
  transition:max-height .5s var(--ease);
}
.vf-faq details[open] .vf-faq-body{max-height:300px}
.vf-faq-body p{
  padding:0 0 28px;font-size:15.5px;color:var(--c-muted);
  line-height:1.65;max-width:680px;
}
.vf-faq-body a{color:var(--c-primary);text-decoration:underline;text-underline-offset:3px}

/* ==================== CONTACT ==================== */
.vf-contact{
  background:var(--c-ink);color:#fff;
  position:relative;overflow:hidden;
}
.vf-contact::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 0% 0%,rgba(37,99,235,.2) 0%,transparent 40%),
    radial-gradient(circle at 100% 100%,rgba(59,130,246,.15) 0%,transparent 40%);
}
.vf-contact-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start;
}
.vf-contact-info h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);
  font-weight:600;line-height:1.08;letter-spacing:-.03em;
  margin:32px 0 28px;
}
.vf-contact-info>p{font-size:var(--fs-lead);color:var(--c-muted-on-dark);line-height:1.6;max-width:440px;margin-bottom:48px}
.vf-direct{display:flex;flex-direction:column;gap:0}
.vf-direct-item{
  display:flex;flex-direction:column;gap:6px;
  padding:24px 0;
  border-top:1px solid rgba(255,255,255,.1);
  color:#fff;
  transition:padding-left .35s var(--ease);
  will-change:transform;
}
.vf-direct-item:last-child{border-bottom:1px solid rgba(255,255,255,.1)}
.vf-direct-item:hover{padding-left:12px}
.vf-direct-label{
  font-size:11px;letter-spacing:.1em;font-weight:500;
  color:var(--c-muted-on-dark-2);text-transform:uppercase;
}
.vf-direct-item strong{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h3);font-weight:600;line-height:1.2;letter-spacing:-.02em;
  transition:color .2s;
}
a.vf-direct-item:hover strong{color:var(--c-accent)}

/* ==================== FORM (floating labels) ==================== */
.vf-form{
  background:#fff;color:var(--c-ink);
  padding:48px;
  border-radius:var(--radius-lg);
}
.vf-form h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);font-weight:600;line-height:1.15;letter-spacing:-.025em;
  margin-bottom:32px;
}
.vf-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}
.vf-wide{grid-column:1/-1}
.vf-field{
  position:relative;display:flex;flex-direction:column;
  border:1.5px solid var(--c-line);
  border-radius:var(--radius-sm);
  background:#fff;
  transition:border-color .2s,box-shadow .2s;
}
.vf-field:focus-within{
  border-color:var(--c-primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
.vf-field input,.vf-field select,.vf-field textarea{
  width:100%;border:0;background:transparent;
  padding:24px 16px 8px;
  font-size:var(--fs-base);color:var(--c-ink);
  outline:none;
}
.vf-field textarea{resize:vertical;min-height:100px;padding-top:28px}
.vf-field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:14px;
  padding-right:36px;
}
.vf-field span:not(.vf-consent-mark):not(.vf-consent-text):not(.vf-field-floating),
.vf-field-floating{
  position:absolute;left:16px;top:18px;
  font-size:var(--fs-base);color:var(--c-ink-soft);
  pointer-events:none;
  transition:transform .2s var(--ease),font-size .2s,color .2s;
  transform-origin:left top;
}
.vf-field input:focus+span,
.vf-field input:not(:placeholder-shown)+span,
.vf-field textarea:focus+span,
.vf-field textarea:not(:placeholder-shown)+span,
.vf-field-floating{
  transform:translateY(-12px) scale(.78);
  color:var(--c-ink);font-weight:600;
}
.vf-field:focus-within .vf-field-floating{color:var(--c-primary)}
.vf-field small[data-error-for]{
  position:absolute;bottom:-20px;left:4px;
  font-size:12px;color:var(--c-error);font-weight:500;
}

.vf-consent{
  display:flex;align-items:flex-start;gap:12px;
  font-size:13px;line-height:1.55;color:var(--c-ink-soft);
  margin:32px 0 24px;cursor:auto;
}
.vf-consent input{
  position:absolute;opacity:0;pointer-events:none;
}
.vf-consent-mark{
  flex-shrink:0;width:20px;height:20px;
  border:1.5px solid var(--c-line);
  border-radius:4px;
  margin-top:1px;
  position:relative;
  transition:background .2s,border-color .2s;
}
.vf-consent input:checked~.vf-consent-mark{
  background:var(--c-primary);border-color:var(--c-primary);
}
.vf-consent input:checked~.vf-consent-mark::after{
  content:"";position:absolute;left:5px;top:1px;
  width:6px;height:12px;
  border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.vf-consent-text{flex:1}
.vf-consent-error{display:block;font-size:12px;color:var(--c-error);font-weight:500;margin-top:-16px;margin-bottom:16px}

.vf-form-status{font-size:14px;font-weight:500;margin-top:14px;line-height:1.5;min-height:0;color:var(--c-ink-soft)}
.vf-form-status[data-state=success]{color:var(--c-success)}
.vf-form-status[data-state=error]{color:var(--c-error)}

.vf-btn-progress{
  position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,transparent 0%,#fff 50%,transparent 100%);
  background-size:50% 100%;
  background-repeat:no-repeat;
  transform:translateX(-100%);
  opacity:0;
}
.vf-btn[data-busy=true] .vf-btn-progress{opacity:1;animation:btnProgress 1.5s linear infinite}
@keyframes btnProgress{from{transform:translateX(-100%)}to{transform:translateX(200%)}}

/* ==================== FOOTER ==================== */
.vf-footer{
  background:var(--c-dark-2);color:var(--c-muted-on-dark);
  padding:64px 0 40px;
  border-top:1px solid rgba(255,255,255,.05);
}
.vf-footer-inner{
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;align-items:start;
  font-size:var(--fs-base);
}
.vf-footer strong{
  font-size:14px;color:#fff;font-weight:700;letter-spacing:.12em;display:block;margin-bottom:14px;
}
.vf-footer p{line-height:1.6;max-width:380px}
.vf-footer a{display:block;color:var(--c-muted-on-dark);margin-bottom:8px;transition:color .2s,padding-left .25s var(--ease)}
.vf-footer a:hover{color:#fff;padding-left:6px}
.vf-footer small{display:block;font-size:12.5px;margin-top:16px;color:var(--c-muted-on-dark-2)}
.vf-muted{color:var(--c-muted-on-dark-2);font-size:13px}

/* ==================== DIALOG ==================== */
.vf-dialog{
  margin:auto;
  padding:48px;width:min(640px,calc(100% - 32px));
  max-height:calc(100dvh - 32px);overflow:auto;
  border:0;border-radius:var(--radius-lg);
  color:var(--c-ink);
}
.vf-dialog::backdrop{background:rgba(10,10,10,.6);backdrop-filter:blur(8px)}
.vf-dialog-close{
  position:absolute;right:14px;top:10px;
  width:36px;height:36px;border-radius:50%;
  background:var(--c-bg);color:var(--c-ink);
  font-size:24px;line-height:1;font-weight:300;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,transform .25s;
}
.vf-dialog-close:hover{background:var(--c-ink);color:#fff;transform:rotate(90deg)}
.vf-dialog h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:var(--fs-h2);font-weight:600;line-height:1.15;letter-spacing:-.03em;
  margin-bottom:12px;padding-right:30px;
}
.vf-dialog>p{font-size:var(--fs-lead);color:var(--c-ink-soft);line-height:1.6;margin-bottom:28px}
.vf-dialog .vf-form{padding:0;border-radius:0;background:transparent}
.vf-dialog .vf-form h3{display:none}


/* Native cursor inside modal dialogs. <dialog> is rendered in the browser top layer,
   so the page-level custom cursor cannot be drawn above it reliably. */
.vf-dialog,
.vf-dialog *{cursor:auto}
.vf-dialog a,
.vf-dialog button,
.vf-dialog label,
.vf-dialog select,
.vf-dialog input[type="checkbox"]{cursor:pointer}
.vf-dialog input[type="text"],
.vf-dialog input[type="tel"],
.vf-dialog input[type="email"],
.vf-dialog textarea{cursor:text}

/* ==================== COOKIE ==================== */
.vf-cookie[hidden]{display:none!important}
.vf-cookie{
  position:fixed;right:20px;bottom:20px;
  width:min(380px,calc(100% - 40px));
  background:#fff;color:var(--c-ink);
  border:1px solid var(--c-line);
  box-shadow:0 20px 50px rgba(0,0,0,.12);
  border-radius:var(--radius-md);
  padding:20px 22px;z-index:90;
  animation:slideUp .35s var(--ease);
}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.vf-cookie p{font-size:14px;line-height:1.55;margin-bottom:14px;color:var(--c-ink-soft);margin:0 0 14px}

/* ==================== REVEAL ANIMATION ==================== */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-in{opacity:1;transform:translateY(0)}
.reveal:nth-child(2){transition-delay:.1s}
.reveal:nth-child(3){transition-delay:.2s}
.reveal:nth-child(4){transition-delay:.3s}

/* ==================== RESPONSIVE ==================== */
@media(max-width:1100px){
  .vf-hero-grid{grid-template-columns:1fr 240px;gap:32px}
  .vf-section-head,.vf-faq,.vf-contact-grid{gap:48px}
  .vf-piles{grid-template-columns:240px 1fr;gap:32px;padding:36px}
}
@media(max-width:900px){
  .vf-hero{padding:110px 0 60px}
  .vf-hero-grid{grid-template-columns:1fr;gap:32px}
  .vf-hero-side{grid-column:1;flex-direction:row;flex-wrap:wrap;gap:20px}
  .vf-hero-side-num{flex:1 1 200px;border-bottom:0;padding-bottom:0;border-right:1px solid var(--c-line);padding-right:20px}
  .vf-hero-side-num:last-child{border-right:0}
  .vf-section-head{grid-template-columns:1fr;gap:16px;margin-bottom:48px}
  .vf-section-head p{max-width:100%;align-self:start}
  .vf-services{grid-template-columns:1fr}
  .vf-service{border-right:0;border-bottom:1px solid var(--c-line);padding:32px 0}
  .vf-service:last-child{border-bottom:0}
  .vf-service::after{display:none}
  .vf-list li{grid-template-columns:60px 1fr 40px;gap:16px}
  .vf-list li p{grid-column:2/4}
  .vf-process{grid-template-columns:repeat(2,1fr)}
  .vf-process li{border-right:0;border-bottom:1px solid var(--c-line);padding:32px 24px 32px 0}
  .vf-tech{grid-template-columns:1fr}
  .vf-tech-item{border-right:0;border-bottom:1px solid rgba(255,255,255,.1);padding:32px 0}
  .vf-tech-item:last-child{border-bottom:0}
  .vf-tech-cta{flex-direction:column;align-items:flex-start;gap:24px}
  .vf-piles{grid-template-columns:1fr;padding:28px;gap:24px}
  .vf-pile-panel{grid-template-columns:1fr;gap:24px}
  .vf-pile-shape{align-items:flex-start}
  .vf-pile-svg{margin:0 auto}
  .vf-stats-grid{grid-template-columns:repeat(2,1fr)}
  .vf-stats-grid>div{border-right:0;border-bottom:1px solid var(--c-line)}
  .vf-stats-grid>div:nth-child(2n){border-right:0}
  .vf-stats-grid>div:last-child{border-bottom:0}
  .vf-faq,.vf-contact-grid{grid-template-columns:1fr;gap:48px}
  .vf-footer-inner{grid-template-columns:1fr;gap:32px}
  .vf-nav{display:none;order:5;width:100%;flex-direction:column;gap:0;margin:0;padding:8px 0 16px}
  .vf-nav.is-open{display:flex}
  .vf-nav a{padding:14px 0;border-bottom:1px solid rgba(0,0,0,.05)}
  .vf-nav a:last-child{border-bottom:0}
  .vf-nav a::before{display:none}
  .vf-section{padding:80px 0}
  .vf-scroll-hint{display:none}
  .vf-burger{display:flex;order:5}
  .vf-phone{order:4}
  .vf-header-inner{flex-wrap:wrap}
  .vf-marquee-track{font-size:24px;gap:32px}
  body{cursor:auto}
  .vf-cursor{display:none}
}
@media(max-width:760px){
  .container{width:calc(100% - 32px)}
  .vf-hero h1{font-size:clamp(38px,9.5vw,50px);line-height:1.04}
  .vf-hero-lead{font-size:16px}
  .vf-hero-actions{gap:14px}
  .vf-section{padding:60px 0}
  .vf-section-head h2{font-size:clamp(29px,7vw,38px);line-height:1.12}
  .vf-service h3,.vf-list h3{font-size:24px}
  .vf-pile-spec h3{font-size:24px}
  .vf-process{grid-template-columns:1fr}
  .vf-process li{padding:24px 0}
  .vf-form{padding:28px}
  .vf-form-grid{grid-template-columns:1fr}
  .vf-form h3{font-size:24px}
  .vf-dialog{padding:32px 24px}
  .vf-dialog h2{font-size:24px}
  .vf-piles{padding:22px}
  .vf-list li{grid-template-columns:1fr;gap:8px;padding:28px 0}
  .vf-list-arrow{margin-top:12px}
  .vf-list p{font-size:14.5px}
  .vf-list-num{padding-top:0}
  .vf-cookie{right:14px;bottom:14px;width:calc(100% - 28px);padding:16px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}


/* ==================== STABILITY / READABILITY PASS ==================== */
html{overflow-x:clip}
body{overflow-wrap:break-word}
.container{max-width:100%;padding-inline:0}

/* Prevent grid/flex children and long business text from forcing horizontal overflow. */
.vf-header-inner,.vf-hero-grid,.vf-hero-title,.vf-hero-foot,.vf-hero-side,
.vf-section-head,.vf-services,.vf-service,.vf-list li,.vf-process li,.vf-tech-item,
.vf-piles,.vf-piles-display,.vf-pile-panel,.vf-pile-spec,.vf-stats-grid>div,
.vf-faq,.vf-faq-list,.vf-contact-grid,.vf-contact-info,.vf-form,.vf-footer-inner>*{
  min-width:0;
}

h1,h2,h3,h4,p,li,dt,dd,a,button,span,strong,small{
  overflow-wrap:break-word;
}

.vf-hero-title,.vf-section-head h2,.vf-service h3,.vf-list h3,.vf-pile-spec h3,
.vf-contact-info h2,.vf-form h3,.vf-dialog h2,.vf-faq h2{
  text-wrap:balance;
}

p,.vf-service li,.vf-faq-body p,.vf-consent-text{
  text-wrap:pretty;
}

/* Dark/blue surfaces always use explicit light text. */
.vf-dark,.vf-piles,.vf-contact{color:#fff}
.vf-dark h1,.vf-dark h2,.vf-dark h3,.vf-dark h4,.vf-dark strong,
.vf-piles h1,.vf-piles h2,.vf-piles h3,.vf-piles h4,.vf-piles strong,
.vf-contact h1,.vf-contact h2,.vf-contact h3,.vf-contact h4,.vf-contact strong{
  color:#fff;
}
.vf-dark p,.vf-piles p,.vf-contact-info>p{color:var(--c-muted-on-dark)}
.vf-dark .vf-eyebrow,.vf-contact .vf-eyebrow{color:rgba(255,255,255,.68)}

/* Keep buttons readable when the background changes on hover. */
.vf-btn-primary,.vf-btn-primary:hover,.vf-btn-dark,.vf-btn-dark:hover,.vf-phone,.vf-phone:hover{
  color:#fff;
}

/* More predictable line lengths for readable B2B content. */
.vf-hero-lead{max-width:58ch}
.vf-section-head p{max-width:48ch}
.vf-service p,.vf-list p,.vf-process p,.vf-tech p,.vf-pile-spec p,.vf-contact-info>p{
  max-width:60ch;
}

/* Avoid clipped button labels on narrow screens. */
.vf-btn{max-width:100%;white-space:normal;text-align:center;min-height:50px}
.vf-phone{white-space:nowrap}

@media(max-width:900px){
  .vf-header-inner{gap:16px}
  .vf-brand{margin-right:auto}
  .vf-phone{margin-left:auto}
  .vf-hero-side{padding:24px}
  .vf-tech-cta{margin-top:40px}
}

@media(max-width:760px){
  .container{width:calc(100% - 32px)}
  .vf-header{padding:14px 0}
  .vf-header.is-scrolled{padding:10px 0}
  .vf-header-inner{gap:10px 12px}
  .vf-brand{gap:8px;font-size:12px;letter-spacing:.08em}
  .vf-brand-mark{width:24px;height:24px}
  .vf-phone{padding:9px 12px;font-size:12.5px}
  .vf-burger{width:36px;height:36px}
  .vf-hero{padding:112px 0 56px;min-height:auto}
  .vf-hero-grid{gap:26px}
  .vf-hero-title{letter-spacing:-.03em}
  .vf-hero-title .vf-line{max-width:100%}
  .vf-hero-tag{font-size:12px;max-width:100%;white-space:normal}
  .vf-hero-actions{align-items:stretch}
  .vf-hero-actions .vf-btn{width:100%}
  .vf-hero-actions .vf-btn-text{width:max-content;max-width:100%}
  .vf-hero-side{padding:20px;gap:16px}
  .vf-hero-side-num{flex:1 1 100%;border-right:0;padding-right:0;padding-bottom:16px;border-bottom:1px solid var(--c-line)}
  .vf-hero-side-num:last-child{border-bottom:0;padding-bottom:0}
  .vf-marquee{padding:22px 0}
  .vf-marquee-track{font-size:21px;gap:26px}
  .vf-marquee-track span:nth-child(even){font-size:18px}
  .vf-section-head{margin-bottom:38px}
  .vf-eyebrow{margin-bottom:18px}
  .vf-service{gap:14px}
  .vf-service p,.vf-list p,.vf-process p{font-size:15px}
  .vf-piles{padding:20px 16px;border-radius:14px}
  .vf-pile-tab{padding:16px 14px}
  .vf-pile-tab:hover,.vf-pile-tab.is-active{padding-left:18px}
  .vf-pile-panel{gap:18px}
  .vf-pile-spec dl div{gap:12px;align-items:flex-start}
  .vf-pile-spec dt{max-width:52%}
  .vf-pile-spec dd{text-align:right;overflow-wrap:anywhere}
  .vf-contact-grid{gap:36px}
  .vf-contact-info>p{margin-bottom:30px}
  .vf-form{padding:24px 18px}
  .vf-form-grid{gap:22px}
  .vf-footer{padding:50px 0 32px}
}

@media(max-width:480px){
  .container{width:calc(100% - 24px)}
  .vf-brand-text{font-size:11px;letter-spacing:.05em}
  .vf-phone{font-size:11.5px;padding:8px 10px}
  .vf-hero h1{font-size:clamp(34px,10.2vw,44px)}
  .vf-section-head h2{font-size:clamp(27px,8vw,34px)}
  .vf-service h3,.vf-list h3,.vf-pile-spec h3,.vf-form h3,.vf-dialog h2{font-size:22px}
  .vf-cookie{right:10px;bottom:10px;width:calc(100% - 20px)}
}


/* Stats typography normalization */
@media (max-width:700px){
  .vf-stats-grid strong{font-size:clamp(27px,8vw,34px)}
  .vf-stats-grid>div>span{font-size:14px}
}

/* Anti-spam honeypot: скрыт для посетителей, остаётся в DOM для ботов */
.vf-hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ==================== LEGAL / CONSENT ==================== */
.vf-consent-text a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.vf-consent-text a:hover{opacity:.78}
.vf-cookie{display:grid;gap:16px;width:min(560px,calc(100% - 40px));padding:20px 22px}
.vf-cookie strong{display:block;font-size:16px;margin-bottom:6px}
.vf-cookie p{margin:0}
.vf-cookie a{color:var(--c-primary);text-decoration:underline;text-underline-offset:2px}
.vf-cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.vf-cookie-actions .vf-btn{min-height:44px;padding:11px 16px}
.vf-legal-page{background:#f6f8fb;color:var(--c-ink);cursor:auto}
.vf-legal-page *{cursor:auto}
.vf-legal-page a,.vf-legal-page button{cursor:pointer}
.vf-legal{max-width:900px;padding-top:56px;padding-bottom:72px}
.vf-legal-back{display:inline-block;margin-bottom:34px;color:var(--c-primary);font-weight:600}
.vf-legal h1{font-family:var(--font-display);font-size:clamp(34px,5vw,64px);line-height:1.02;letter-spacing:-.04em;margin:0 0 16px}
.vf-legal h2{font-size:clamp(20px,2.5vw,28px);margin:32px 0 10px}
.vf-legal p{font-size:16px;line-height:1.75;color:var(--c-ink-soft);max-width:80ch}
.vf-legal a{color:var(--c-primary);text-decoration:underline;text-underline-offset:3px}
.vf-legal-note{margin-top:36px;padding:18px 20px;border:1px solid var(--c-line);border-radius:14px;background:#fff;line-height:1.6}
@media(max-width:700px){.vf-cookie-actions{display:grid;grid-template-columns:1fr}.vf-cookie-actions .vf-btn{width:100%}.vf-legal{padding-top:32px;padding-bottom:48px}}


/* Native cursor across the entire site */
html,body{cursor:auto!important}
a,button,[role="button"],label[for],input[type="checkbox"],input[type="radio"],select{cursor:pointer!important}
input:not([type="checkbox"]):not([type="radio"]),textarea{cursor:text!important}
button:disabled,[aria-disabled="true"]{cursor:not-allowed!important}
.vf-cursor{display:none!important}
