/* VITGS kit 2. Layout, colour and type are set natively on each Elementor widget.
   This file adds fonts, the transparent header behaviour, sticky stacking, hover states and small refinements. */
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/inter-tight-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/inter-tight-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/inter-tight-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-weight:800;font-style:normal;font-display:swap;src:url(../fonts/inter-tight-latin-800-normal.woff2) format("woff2")}

:root{--vg-night:#0B0916;--vg-ink:#17142A;--vg-deep:#3A1F7A;--vg-violet:#5B2FB8;--vg-orange:#F26B21;--vg-cream:#FBF4EE;--vg-paper:#F6F5F2;--vg-line:#D8D5E0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
html{overflow-x:clip}
body{max-width:100%;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
.elementor img{max-width:100%}

/* Text rhythm (Hello Elementor resets paragraph margins) */
.vg-section .elementor-widget-text-editor p,.vg-footer .elementor-widget-text-editor p,.vg-pop .elementor-widget-text-editor p{margin:0 0 1em}
.vg-section .elementor-widget-text-editor p:last-child,.vg-footer .elementor-widget-text-editor p:last-child,.vg-pop .elementor-widget-text-editor p:last-child{margin-bottom:0}
.vg-section .elementor-heading-title,.vg-footer .elementor-heading-title,.vg-pop .elementor-heading-title{margin:0}
.vg-section h1.elementor-heading-title,.vg-section h2.elementor-heading-title,.vg-section h3.elementor-heading-title{text-wrap:balance}
.vg-section .elementor-widget-text-editor a,.vg-footer .elementor-widget-text-editor a,.vg-pop .elementor-widget-text-editor a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.vg-head{max-width:720px}

/* Flame ornament before every kicker */
.vg-kick .elementor-heading-title{display:inline-flex;align-items:center;gap:9px}
.vg-kick .elementor-heading-title::before{content:"";flex:none;width:11px;height:15px;background:url(../logo/mark.png) center/contain no-repeat}

/* Lists inside service cards */
.vg-defs{list-style:none;margin:0;padding:0;border-top:1px solid var(--vg-line)}
.vg-defs li{padding:14px 0;border-bottom:1px solid var(--vg-line)}
.vg-defs strong{display:block;color:var(--vg-ink);font-weight:600;margin-bottom:2px}
.vg-defs span{display:block}

/* Cards, photos, shadows */
.vg-card,.vg-ibcard,.vg-infocard{transition:box-shadow .3s ease,transform .3s ease,background-color .3s ease,border-color .3s ease}
.vg-card:hover{box-shadow:0 20px 44px rgba(23,20,42,.14);transform:translateY(-4px);border-color:var(--vg-orange)!important}
.vg-card-img{background:#fff;border-bottom:1px solid var(--vg-line)}
.vg-card-img img{display:block;transition:transform .6s ease}
.vg-card:hover .vg-card-img img{transform:scale(1.04)}
.vg-photo img{display:block}
.vg-logimg{background:#fff;border:1px solid var(--vg-line);border-radius:2px;overflow:hidden}
.vg-caption p{margin:0}
.vg-panel .vg-src a{text-decoration:underline}

/* About: framed photos (RouteV style) with the years badge */
.vg-frame{position:relative;z-index:0}
.vg-frame>*{position:relative;z-index:1}
.vg-frame::before{content:"";position:absolute;z-index:0;border:2px solid var(--vg-orange);border-radius:12px;pointer-events:none}
.vg-frame-tl::before{top:-22px;left:-22px;right:22px;bottom:22px}
.vg-frame-br::before{top:22px;left:22px;right:-22px;bottom:-22px}
.vg-badge{position:absolute!important;top:0;left:0;width:auto!important;z-index:3;box-shadow:0 0 0 12px #fff}
.vg-badge .elementor-counter-number-wrapper{display:flex;align-items:baseline;justify-content:center}
.vg-badge .elementor-counter-title{font-weight:600;text-align:center}
.vg-badge .elementor-counter{text-align:center}
.vg-mission p{margin:0}
.vg-points .elementor-icon-list-icon{width:22px}
@media (max-width:1024px){.vg-frame-tl::before{top:-14px;left:-14px;right:14px;bottom:14px}.vg-frame-br::before{top:14px;left:14px;right:-14px;bottom:-14px}.vg-aboutrow{row-gap:44px}}
@media (max-width:767px){.vg-aboutsec .vg-abouth .elementor-heading-title,.vg-aboutsec .vg-kick{text-align:center;justify-content:center}.vg-badge{box-shadow:0 0 0 8px #fff}}
.vg-herotext{text-shadow:0 2px 18px rgba(11,9,22,.85)}

/* Icon-box cards: icon tile turns the card dark on hover */
.vg-ib .elementor-icon-box-icon .elementor-icon{border-radius:2px;transition:background-color .3s,color .3s,transform .3s}
.vg-ibcard:hover{background:var(--vg-ink)!important;border-color:var(--vg-ink)!important;transform:translateY(-4px);box-shadow:0 22px 44px rgba(23,20,42,.2)}
.vg-ibcard:hover .elementor-icon-box-title,.vg-ibcard:hover .elementor-icon-box-title a{color:#fff!important}
.vg-ibcard:hover .elementor-icon-box-description{color:#D9D6E8!important}
.vg-ibcard:hover .elementor-icon{transform:rotate(-6deg) scale(1.06)}
.vg-infocard:hover{border-color:var(--vg-orange)!important;box-shadow:0 14px 30px rgba(23,20,42,.1)}
.vg-infocard .elementor-icon-box-title a{color:inherit;text-decoration:none}
.vg-infocard .elementor-icon-box-title a:hover{text-decoration:underline;text-underline-offset:3px}
.vg-infocard .elementor-icon-box-wrapper{align-items:center}

/* Our impact: sticky text, stacked sticky cards */
.vg-stickyleft{position:sticky!important;top:120px;align-self:flex-start}
.vg-impactstack{align-self:stretch}
.vg-impactcard{position:sticky!important;box-shadow:0 -14px 36px rgba(0,0,0,.28);min-height:260px;justify-content:center}
.vg-st1{top:120px}.vg-st2{top:150px}.vg-st3{top:180px}.vg-st4{top:210px}
.vg-impactcard .elementor-counter-number-wrapper{display:flex;align-items:baseline}
@media (max-width:1024px){.vg-stickyleft{position:static!important}.vg-impactcard{min-height:0}.vg-st1,.vg-st2,.vg-st3,.vg-st4{top:84px}}
@media (max-width:767px){.vg-impactcard{position:static!important;box-shadow:none}}

/* Hero */
.vg-glass{background:rgba(11,9,22,.55);border:1px solid rgba(246,245,242,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:2px}
.vg-arrow .elementor-icon{border-radius:2px;transition:transform .3s ease,background-color .3s}
.vg-arrow .elementor-icon:hover{transform:translateY(5px);background:#fff}
.vg-arrow{animation:vgbob 2.6s ease-in-out infinite}
@keyframes vgbob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.vg-hero{overflow:hidden}

/* Buttons: square, arrow slides on hover, visible focus */
.vg-btn .elementor-button{border-radius:2px;line-height:1.2;text-decoration:none;transition:background-color .25s ease,color .25s ease,border-color .25s ease}
.vg-btn .elementor-button-icon{transition:transform .25s ease}
.vg-btn .elementor-button:hover .elementor-button-icon{transform:translateX(5px)}
:focus-visible{outline:3px solid var(--vg-violet);outline-offset:3px}
.vg-dark :focus-visible,.vg-header :focus-visible{outline-color:var(--vg-orange)}
.vg-formcard :focus-visible,.vg-pop :focus-visible,.vg-ctacard :focus-visible{outline-color:var(--vg-violet)}

/* Header: fixed over the page. Transparent at the top; once the page scrolls it becomes a blurred glass bar so the
   menu and any logo stay readable on every section. Menu text is always light. */
.vg-header{position:fixed!important;top:0;left:0;right:0;width:100%;max-width:100%;background:transparent!important;z-index:100;transition:background-color .3s ease,box-shadow .3s ease,-webkit-backdrop-filter .3s ease,backdrop-filter .3s ease}
.vg-header.is-scrolled{background:rgba(11,9,22,.74)!important;-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);box-shadow:0 1px 0 rgba(246,245,242,.12),0 10px 30px rgba(0,0,0,.18)}
.admin-bar .vg-header{top:32px}
@media (max-width:782px){.admin-bar .vg-header{top:46px}}
.vg-logo img{display:block;height:auto}
.vg-header .elementor-nav-menu--main .elementor-item{white-space:nowrap;color:#F6F5F2!important;transition:color .2s}
.vg-header .elementor-nav-menu--main .elementor-item:hover,.vg-header .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#FFC857!important}
.vg-header .elementor-item:before,.vg-header .elementor-item:after{display:none!important}
/* Menu toggle: square button, three bars that cross into a close mark. */
.vg-nav .elementor-menu-toggle{width:46px;height:46px;border:1px solid rgba(246,245,242,.5);border-radius:2px;position:relative;display:flex;align-items:center;justify-content:center;background:rgba(246,245,242,.08)!important;transition:border-color .2s,background-color .2s}
.vg-nav .elementor-menu-toggle:hover{border-color:#FFC857}
.vg-nav .elementor-menu-toggle>*{display:none!important}
.vg-nav .elementor-menu-toggle::before,.vg-nav .elementor-menu-toggle::after{content:"";position:absolute;left:12px;right:12px;height:2px;background:#F6F5F2;transition:transform .25s ease,top .25s ease,opacity .2s}
.vg-nav .elementor-menu-toggle::before{top:15px;box-shadow:0 7px 0 #F6F5F2}
.vg-nav .elementor-menu-toggle::after{top:29px}
.vg-nav .elementor-menu-toggle.elementor-active::before{top:22px;transform:rotate(45deg);box-shadow:none}
.vg-nav .elementor-menu-toggle.elementor-active::after{top:22px;transform:rotate(-45deg)}
/* Mobile and tablet menu: plain white panel, large dark text */
.vg-header .elementor-nav-menu--dropdown{background:#fff!important;border-top:3px solid var(--vg-orange);box-shadow:0 24px 44px rgba(11,9,22,.28);max-width:100vw}
.vg-header .elementor-nav-menu--dropdown .elementor-item{padding:18px 24px!important;font-size:20px!important;font-weight:600;color:var(--vg-ink)!important;border-bottom:1px solid #ECE9F3;background:#fff!important}
.vg-header .elementor-nav-menu--dropdown .elementor-item:hover,.vg-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{color:var(--vg-violet)!important;background:var(--vg-paper)!important;box-shadow:inset 4px 0 0 var(--vg-orange)}
.vg-header .elementor-nav-menu--dropdown li:last-child .elementor-item{border-bottom:0}

/* Footer */
.vg-footer{position:relative;overflow:hidden}
.vg-footlinks .elementor-icon-list-item a{text-decoration:none}
.vg-footlinks .elementor-icon-list-item a:hover,.vg-legal a:hover,.vg-credit a:hover{text-decoration:underline;text-underline-offset:3px;color:#fff}
.vg-footer .elementor-icon-list-icon{width:20px}
.vg-footer .elementor-widget-text-editor a{text-decoration:none}
.vg-foottalk .elementor-button{border-radius:2px}
.vg-credit p{text-align:right}
.vg-credit a,.vg-legal a{text-decoration:none}
.vg-wmwrap{height:clamp(60px,10vw,140px);overflow:hidden;opacity:.3;-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 100%);mask-image:linear-gradient(180deg,#000 30%,transparent 100%)}
.vg-wm img{display:block;width:100%;height:auto}
@media (max-width:767px){.vg-credit p{text-align:left}}

/* Contact, form, map */
.vg-mapcol{display:flex}
.vg-mapcol>.elementor-widget,.vg-mapcol .elementor-widget-container,.vg-mapcol .elementor-custom-embed{flex:1;height:100%;display:flex;width:100%}
.vg-map iframe{display:block;border-radius:8px;filter:grayscale(.85) contrast(1.05);width:100%;height:100%;min-height:360px}
.vg-form .elementor-field-textual:focus{border-color:var(--vg-violet);box-shadow:0 0 0 3px rgba(91,47,184,.2);outline:none}
.vg-form .elementor-field-textual::placeholder{color:#6B6680;opacity:1}
.vg-form .elementor-field-type-acceptance label{font-size:14px;line-height:1.5}
.vg-form .elementor-button{border-radius:2px;transition:background-color .2s,color .2s}
@media (max-width:767px){.vg-form .elementor-field-group{width:100%!important}}

/* FAQ: tinted rounded cards, open question in violet */
.vg-faq .elementor-accordion-item{border:0!important;background:var(--vg-paper);border-radius:8px;margin-bottom:12px;overflow:hidden}
.vg-faq .elementor-tab-title{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;padding:20px 24px!important}
.vg-faq .elementor-tab-title a{color:inherit;text-decoration:none}
.vg-faq .elementor-tab-title.elementor-active a,.vg-faq .elementor-tab-title.elementor-active{color:var(--vg-violet)}
.vg-faq .elementor-accordion-icon{order:2;margin:0;flex:none}
.vg-faq .elementor-tab-content{max-width:68ch;border-top:0!important;padding:0 24px 22px!important}
.vg-faqimg img{display:block}

/* How we engage cards (Solvanta style) */
.vg-pill p{margin:0;border:1px solid #B9B3C9;border-radius:999px;padding:6px 12px;line-height:1}
.vg-cardline{margin-top:auto!important;border-top:2px solid #6B6680;width:78%;transition:border-color .3s,width .3s}
.vg-stepcard{transition:transform .3s ease,box-shadow .3s ease}
.vg-stepcard:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(23,20,42,.12)}
.vg-stepcard:hover .vg-cardline{border-color:var(--vg-orange);width:100%}
.vg-ctacard .elementor-button{width:100%;justify-content:center}

/* Privacy notice body */
.vg-legalbody h3{font-family:"Inter Tight",sans-serif;font-size:20px;line-height:1.3;font-weight:600;color:var(--vg-ink);margin:2em 0 .5em}
.vg-legalbody h3:first-child{margin-top:0}
.vg-legalbody p{margin:0 0 1em}
.vg-legalbody a{color:var(--vg-violet);text-decoration:underline;text-underline-offset:3px}

/* Motion: respect the visitor's setting */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .elementor-invisible{visibility:visible!important}
  .elementor-element[data-settings*="animation"]{animation:none!important}
  .vg-arrow{animation:none}
  .vg-card,.vg-ibcard,.vg-btn .elementor-button,.vg-card-img img{transition:none}
  .vg-card:hover,.vg-ibcard:hover{transform:none}
}

/* Guard against sideways scrolling on phones */
.vg-section,.vg-footer{overflow-x:clip}
@media (max-width:767px){.elementor-widget-image img{max-width:100%}.vg-impactcard{box-shadow:none}}
