/* Vastinium Elementor V4 - layout rebuild guard
   Goal: keep migrated Tik Precision content blocks/layout, only switch global visual palette to Vastinium metal gray / black / white. */
:root{
  --vs-black:#050505;
  --vs-graphite:#111111;
  --vs-dark:#1A1A1A;
  --vs-metal:#3A3A3A;
  --vs-steel:#6F7378;
  --vs-silver:#B8BBC0;
  --vs-light-silver:#E7E8EA;
  --vs-white:#FFFFFF;
  --vs-off:#F6F6F6;
  --vs-text:#111111;
  --vs-muted:#62666B;
  --vs-border:#D9DADD;
  --vs-shadow:0 16px 42px rgba(0,0,0,.10);
}
html{scroll-behavior:smooth}body{font-family:Inter,Manrope,Arial,sans-serif;color:var(--vs-text);background:#fff;margin:0}a{color:inherit}.elementor-element{box-sizing:border-box;min-width:0}.elementor img{height:auto;max-width:100%}.elementor-page .elementor-widget:not(:last-child){margin-block-end:0!important}
/* page rhythm: do not redesign structure, only make imported blocks stable */
body .vs-section{position:relative;overflow:hidden;padding:92px 24px!important;background:#fff}body .vs-light{background:#F6F6F6!important}.vs-dark,.vs-cta{background:linear-gradient(135deg,#050505 0%,#151515 56%,#343434 100%)!important;color:#fff}.vs-dark h1,.vs-dark h2,.vs-dark h3,.vs-dark h4,.vs-dark p,.vs-dark span,.vs-cta h1,.vs-cta h2,.vs-cta h3,.vs-cta p,.vs-cta span{color:#fff!important}.vs-section>.e-con-inner,.vs-section{max-width:none!important}.vs-section-head{max-width:900px!important;margin:0 auto 42px!important;text-align:center!important}.vs-section h1{font-size:66px!important;line-height:1.08!important;letter-spacing:-.045em!important;margin:0 0 22px!important;color:#111!important}.vs-section h2{font-size:44px!important;line-height:1.18!important;letter-spacing:-.03em!important;margin:0 0 16px!important;color:#111!important}.vs-section h3,.vs-card h3{font-size:22px!important;line-height:1.28!important;margin:0 0 12px!important;color:#111!important}.vs-section p,.vs-card p{font-size:16px!important;line-height:1.7!important;color:var(--vs-muted)!important;margin:0!important}.vs-eyebrow span{display:inline-flex!important;align-items:center!important;gap:8px!important;padding:8px 13px!important;border:1px solid rgba(17,17,17,.18)!important;border-radius:999px!important;color:#111!important;background:#fff!important;font-size:12px!important;font-weight:850!important;letter-spacing:.1em!important;text-transform:uppercase!important}
/* Header: must never become a full-width logo or vertical list on desktop */
.vs-header{position:sticky!important;top:0!important;z-index:99999!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(14px)!important;border-bottom:1px solid rgba(0,0,0,.12)!important;padding:10px 24px!important;min-height:76px!important;box-shadow:0 8px 24px rgba(0,0,0,.06)!important}.vs-header .vs-header-inner,.vs-header-inner{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:28px!important;flex-wrap:nowrap!important;width:100%!important;max-width:1320px!important;margin:0 auto!important;min-height:56px!important}.vs-header-inner>.elementor-element,.vs-header-inner>.e-con{width:auto!important;max-width:none!important;flex:0 0 auto!important;min-width:0!important}.vs-logo,.elementor-widget-image.vs-logo{width:180px!important;max-width:180px!important;min-width:130px!important;flex:0 0 180px!important;overflow:hidden!important;display:flex!important;align-items:center!important}.vs-logo img,.vs-header .elementor-widget-image.vs-logo img{display:block!important;width:auto!important;height:auto!important;max-width:170px!important;max-height:54px!important;object-fit:contain!important;margin:0!important}.vs-nav{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:nowrap!important;flex:1 1 auto!important;width:auto!important;min-width:0!important;max-width:none!important;overflow:visible!important}.vs-nav>.elementor-element,.vs-nav>.e-con{width:auto!important;max-width:none!important;flex:0 0 auto!important;display:inline-flex!important}.vs-nav-link,.elementor-widget-button.vs-nav-link{width:auto!important;max-width:none!important;flex:0 0 auto!important;display:inline-flex!important}.vs-nav-link .elementor-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:transparent!important;color:#111!important;padding:10px 9px!important;font-size:13px!important;font-weight:760!important;border-radius:10px!important;line-height:1.2!important;white-space:nowrap!important;border:0!important;box-shadow:none!important}.vs-nav-link .elementor-button:hover{background:#F0F0F0!important;color:#000!important}.vs-header-cta,.elementor-widget-button.vs-header-cta{width:auto!important;max-width:none!important;flex:0 0 auto!important;display:inline-flex!important}.vs-header-cta .elementor-button{white-space:nowrap!important;background:#111!important;color:#fff!important;border-radius:999px!important;padding:13px 22px!important;font-weight:850!important;line-height:1.2!important}
/* Buttons */
.vs-btn-primary .elementor-button{background:linear-gradient(135deg,#050505,#353535)!important;color:#fff!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:999px!important;padding:14px 24px!important;font-weight:850!important;box-shadow:0 14px 34px rgba(0,0,0,.18)!important;line-height:1.2!important}.vs-btn-secondary .elementor-button{background:#fff!important;color:#111!important;border:1px solid rgba(0,0,0,.22)!important;border-radius:999px!important;padding:14px 24px!important;font-weight:850!important;line-height:1.2!important}.vs-btn-secondary-light .elementor-button{background:rgba(255,255,255,.12)!important;color:#fff!important;border:1px solid rgba(255,255,255,.32)!important;border-radius:999px!important;padding:14px 24px!important}.vs-link-button .elementor-button{background:transparent!important;color:#111!important;padding:0!important;font-weight:850!important;box-shadow:none!important}.vs-btn-row{display:flex!important;flex-direction:row!important;align-items:center!important;gap:14px!important;flex-wrap:wrap!important;margin-top:26px!important}.vs-btn-row>.elementor-element{width:auto!important;flex:0 0 auto!important}
/* Hero */
.vs-hero{background:radial-gradient(circle at 74% 18%,rgba(184,187,192,.34),transparent 38%),linear-gradient(180deg,#FFFFFF 0%,#F5F5F5 100%)!important;padding-top:72px!important;padding-bottom:84px!important}.vs-hero-inner{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(360px,.95fr)!important;gap:56px!important;align-items:center!important;max-width:1280px!important;margin:0 auto!important;width:100%!important}.vs-hero-inner>.elementor-element,.vs-hero-inner>.e-con{width:auto!important;max-width:100%!important;min-width:0!important;flex:initial!important}.vs-hero-copy{max-width:670px!important}.vs-hero-image img{width:100%!important;max-height:560px!important;border-radius:22px!important;box-shadow:0 24px 68px rgba(0,0,0,.20)!important;object-fit:cover!important}.vs-floating-panel{position:absolute!important;left:-18px!important;bottom:28px!important;max-width:330px!important;background:rgba(255,255,255,.94)!important;border:1px solid rgba(0,0,0,.14)!important;box-shadow:0 18px 48px rgba(0,0,0,.18)!important;border-radius:18px!important;padding:24px!important}
/* Grids: hard guard. If Elementor flex settings fail, CSS preserves source-like row layouts. */
.vs-grid-5,.vs-grid-4,.vs-grid-3,.vs-grid-2,.vs-gallery-grid,.vs-footer-grid{width:100%!important;margin-left:auto!important;margin-right:auto!important;max-width:1280px!important;align-items:stretch!important}.vs-grid-5{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:20px!important}.vs-grid-4{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:24px!important}.vs-grid-3{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important}.vs-grid-2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:32px!important;align-items:center!important}.vs-grid-5>.elementor-element,.vs-grid-5>.e-con,.vs-grid-4>.elementor-element,.vs-grid-4>.e-con,.vs-grid-3>.elementor-element,.vs-grid-3>.e-con,.vs-grid-2>.elementor-element,.vs-grid-2>.e-con,.vs-gallery-grid>.elementor-element,.vs-gallery-grid>.e-con{width:auto!important;max-width:100%!important;min-width:0!important;flex:initial!important;grid-column:auto!important;align-self:stretch!important}.vs-card{background:#fff!important;border:1px solid var(--vs-border)!important;border-radius:18px!important;padding:28px!important;box-shadow:0 12px 32px rgba(0,0,0,.06)!important;transition:.25s ease!important;min-width:0!important}.vs-card-img img{width:100%!important;aspect-ratio:4/3!important;object-fit:cover!important;border-radius:14px!important;margin-bottom:18px!important;background:#F1F1F1!important}.vs-stat{text-align:center!important;background:#fff!important;border:1px solid var(--vs-border)!important;border-radius:18px!important;padding:30px!important;box-shadow:0 12px 30px rgba(0,0,0,.06)!important}.vs-stat-number h3{font-size:40px!important;color:#111!important}.vs-kicker h6{font-size:32px!important;color:#A7AAAE!important;margin:0 0 14px!important}.vs-feature-card{background:linear-gradient(135deg,#111,#333)!important;color:#fff!important;border-radius:20px!important;padding:32px!important;box-shadow:0 18px 48px rgba(0,0,0,.16)!important}.vs-feature-card h3,.vs-feature-card p{color:#fff!important}.vs-feature-card img{border-radius:16px!important;margin-bottom:20px!important}.vs-gallery-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important}.vs-gallery-img img{width:100%!important;aspect-ratio:1/1!important;object-fit:cover!important;border-radius:16px!important}.vs-testimonial{background:#fff!important;border:1px solid var(--vs-border)!important;border-radius:18px!important;padding:28px!important;box-shadow:0 12px 32px rgba(0,0,0,.06)!important}.vs-cta-box{max-width:1120px!important;margin:0 auto!important;text-align:center!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:24px!important;padding:58px 32px!important}
/* Footer: must stay multi-column on desktop, logo constrained */
.vs-footer{background:#050505!important;color:#fff!important;padding:72px 24px 24px!important}.vs-footer-grid{display:grid!important;grid-template-columns:1.4fr 1fr 1fr 1fr!important;gap:40px!important;max-width:1280px!important;margin:0 auto!important}.vs-footer-grid>.elementor-element,.vs-footer-grid>.e-con{width:auto!important;max-width:100%!important;min-width:0!important;flex:initial!important}.vs-footer-logo,.elementor-widget-image.vs-footer-logo{width:200px!important;max-width:200px!important;overflow:hidden!important;display:flex!important}.vs-footer-logo img{width:auto!important;max-width:190px!important;max-height:82px!important;object-fit:contain!important;background:#fff!important;border-radius:12px!important;padding:8px!important;display:block!important}.vs-footer h3,.vs-footer p{color:#fff!important}.vs-footer a{color:#D6D6D6!important;text-decoration:none!important;line-height:2!important}.vs-footer-bottom{max-width:1280px!important;margin:36px auto 0!important;padding-top:22px!important;border-top:1px solid rgba(255,255,255,.12)!important}
/* Forms */
.vs-form-card{background:#fff!important;border:1px solid var(--vs-border)!important;border-radius:20px!important;padding:34px!important;box-shadow:0 18px 52px rgba(0,0,0,.14)!important}.vs-form-field{border:1px solid #E5E7EB!important;border-radius:12px!important;padding:14px 16px!important;margin:0 0 12px!important;background:#F9FAFB!important}.vs-contact-lines p{color:#111!important;font-weight:850!important}
@media(max-width:1200px){.vs-nav{gap:4px!important}.vs-nav-link .elementor-button{font-size:12px!important;padding:8px 5px!important}.vs-logo img{max-width:150px!important}.vs-grid-5{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:1024px){.vs-header-inner{flex-wrap:wrap!important}.vs-nav{order:3;width:100%!important;justify-content:flex-start!important;overflow-x:auto!important;padding-bottom:4px!important}.vs-hero-inner{grid-template-columns:1fr!important}.vs-grid-5,.vs-grid-4,.vs-grid-3,.vs-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.vs-grid-2{grid-template-columns:1fr!important}.vs-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.vs-floating-panel{position:relative!important;left:auto!important;bottom:auto!important;margin-top:20px!important}}
@media(max-width:767px){.vs-section{padding:64px 20px!important}.vs-header{padding:12px 16px!important}.vs-header-inner{gap:14px!important}.vs-logo,.elementor-widget-image.vs-logo{width:132px!important;flex-basis:132px!important;min-width:120px!important}.vs-logo img{max-width:132px!important;max-height:50px!important}.vs-nav{gap:6px!important}.vs-nav-link .elementor-button{font-size:12px!important;padding:8px 5px!important}.vs-section h1{font-size:40px!important;line-height:1.1!important}.vs-section h2{font-size:30px!important;line-height:1.18!important}.vs-grid-5,.vs-grid-4,.vs-grid-3,.vs-grid-2,.vs-gallery-grid,.vs-footer-grid{grid-template-columns:1fr!important}.vs-btn-row{flex-direction:column!important;align-items:stretch!important}.vs-btn-row .elementor-widget-button,.vs-btn-row .elementor-button{width:100%!important}.vs-card{padding:22px!important}.vs-footer{padding:56px 20px 24px!important}.vs-cta-box{padding:42px 22px!important}.vs-floating-panel{max-width:none!important}}

/* ===== V4 Elementor 3.x/4.x Layout Rebuild Guard =====
   Fixes boxed inner containers, flexbox/divbox updates, dropdown menus, and image ratios. */
.vs-header-inner,
.vs-header-inner > .e-con-inner,
.vs-hero-inner,
.vs-hero-inner > .e-con-inner,
.vs-grid-5,
.vs-grid-5 > .e-con-inner,
.vs-grid-4,
.vs-grid-4 > .e-con-inner,
.vs-grid-3,
.vs-grid-3 > .e-con-inner,
.vs-grid-2,
.vs-grid-2 > .e-con-inner,
.vs-gallery-grid,
.vs-gallery-grid > .e-con-inner,
.vs-footer-grid,
.vs-footer-grid > .e-con-inner{
  width:100%!important;
  max-width:1280px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
.vs-header-inner,.vs-header-inner > .e-con-inner{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:28px!important;
  flex-wrap:nowrap!important;
  max-width:1320px!important;
  min-height:56px!important;
}
.vs-header-inner > .e-con-inner > .elementor-element,
.vs-header-inner > .elementor-element{
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  flex:0 0 auto!important;
}
.vs-nav-widget{
  width:auto!important;
  max-width:none!important;
  flex:1 1 auto!important;
  min-width:0!important;
  display:flex!important;
  justify-content:center!important;
  overflow:visible!important;
  z-index:999999!important;
}
.vs-nav-widget .elementor-shortcode{width:auto!important;overflow:visible!important;}
ul.vs-menu,
ul.vs-menu ul{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
}
ul.vs-menu{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  flex-wrap:nowrap!important;
  overflow:visible!important;
  position:relative!important;
  z-index:999999!important;
}
ul.vs-menu > li{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  flex:0 0 auto!important;
}
ul.vs-menu > li > a{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:12px 11px!important;
  border-radius:10px!important;
  color:#111!important;
  font-size:13px!important;
  line-height:1.2!important;
  font-weight:760!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}
ul.vs-menu > li.menu-item-has-children > a:after{
  content:'▾';
  font-size:10px;
  color:#777;
  transform:translateY(-1px);
}
ul.vs-menu li a:hover{background:#f0f0f0!important;color:#000!important;}
ul.vs-menu li ul.sub-menu{
  display:block!important;
  position:absolute!important;
  left:0!important;
  top:100%!important;
  min-width:245px!important;
  padding:10px!important;
  background:#fff!important;
  border:1px solid rgba(0,0,0,.12)!important;
  border-radius:14px!important;
  box-shadow:0 22px 56px rgba(0,0,0,.16)!important;
  opacity:0!important;
  visibility:hidden!important;
  transform:translateY(10px)!important;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease!important;
  z-index:999999!important;
}
ul.vs-menu li:hover > ul.sub-menu,
ul.vs-menu li:focus-within > ul.sub-menu{
  opacity:1!important;
  visibility:visible!important;
  transform:translateY(0)!important;
}
ul.vs-menu li ul.sub-menu li{position:relative!important;display:block!important;}
ul.vs-menu li ul.sub-menu a{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  padding:10px 12px!important;
  border-radius:10px!important;
  font-size:13px!important;
  line-height:1.35!important;
  color:#222!important;
  text-decoration:none!important;
  white-space:normal!important;
}
ul.vs-menu li ul.sub-menu li.menu-item-has-children > a:after{content:'›';color:#777;}
ul.vs-menu li ul.sub-menu ul.sub-menu{
  left:100%!important;
  top:0!important;
  transform:translateX(10px)!important;
}
ul.vs-menu li ul.sub-menu li:hover > ul.sub-menu,
ul.vs-menu li ul.sub-menu li:focus-within > ul.sub-menu{
  transform:translateX(0)!important;
}
.vs-header-cta{flex:0 0 auto!important;}

.vs-hero-inner,.vs-hero-inner > .e-con-inner{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(360px,.95fr)!important;
  gap:56px!important;
  align-items:center!important;
}
.vs-grid-5,.vs-grid-5 > .e-con-inner{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:20px!important;align-items:stretch!important;}
.vs-grid-4,.vs-grid-4 > .e-con-inner{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:24px!important;align-items:stretch!important;}
.vs-grid-3,.vs-grid-3 > .e-con-inner{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;align-items:stretch!important;}
.vs-grid-2,.vs-grid-2 > .e-con-inner{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:32px!important;align-items:center!important;}
.vs-gallery-grid,.vs-gallery-grid > .e-con-inner{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;align-items:stretch!important;}
.vs-footer-grid,.vs-footer-grid > .e-con-inner{display:grid!important;grid-template-columns:1.4fr 1fr 1fr 1fr!important;gap:40px!important;align-items:start!important;}
.vs-grid-5 > .elementor-element,.vs-grid-5 > .e-con-inner > .elementor-element,
.vs-grid-4 > .elementor-element,.vs-grid-4 > .e-con-inner > .elementor-element,
.vs-grid-3 > .elementor-element,.vs-grid-3 > .e-con-inner > .elementor-element,
.vs-grid-2 > .elementor-element,.vs-grid-2 > .e-con-inner > .elementor-element,
.vs-gallery-grid > .elementor-element,.vs-gallery-grid > .e-con-inner > .elementor-element,
.vs-footer-grid > .elementor-element,.vs-footer-grid > .e-con-inner > .elementor-element{
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  flex:initial!important;
  grid-column:auto!important;
  align-self:stretch!important;
}
/* image ratio guards */
.vs-card-img,
.vs-gallery-img,
.vs-hero-image,
.vs-feature-card .elementor-widget-image{
  overflow:hidden!important;
}
.vs-card-img img,
.vs-card .elementor-widget-image img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/3!important;
  object-fit:cover!important;
  border-radius:14px!important;
  background:#f1f1f1!important;
}
.vs-gallery-img img{
  display:block!important;
  width:100%!important;
  aspect-ratio:1/1!important;
  object-fit:cover!important;
  border-radius:16px!important;
}
.vs-hero-image img{
  display:block!important;
  width:100%!important;
  aspect-ratio:16/11!important;
  max-height:560px!important;
  object-fit:cover!important;
  border-radius:22px!important;
}
.vs-logo img,.vs-footer-logo img{
  aspect-ratio:auto!important;
  object-fit:contain!important;
}

@media(max-width:1200px){
  ul.vs-menu > li > a{font-size:12px!important;padding:10px 7px!important;}
  ul.vs-menu li ul.sub-menu{min-width:220px!important;}
}
@media(max-width:1024px){
  .vs-header-inner,.vs-header-inner > .e-con-inner{flex-wrap:wrap!important;justify-content:space-between!important;}
  .vs-nav-widget{order:3!important;width:100%!important;justify-content:flex-start!important;overflow-x:auto!important;padding-bottom:4px!important;}
  ul.vs-menu{justify-content:flex-start!important;overflow:visible!important;}
  .vs-hero-inner,.vs-hero-inner > .e-con-inner{grid-template-columns:1fr!important;}
  .vs-grid-5,.vs-grid-5 > .e-con-inner,
  .vs-grid-4,.vs-grid-4 > .e-con-inner,
  .vs-grid-3,.vs-grid-3 > .e-con-inner,
  .vs-gallery-grid,.vs-gallery-grid > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .vs-grid-2,.vs-grid-2 > .e-con-inner{grid-template-columns:1fr!important;}
  .vs-footer-grid,.vs-footer-grid > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:767px){
  .vs-nav-widget{display:block!important;overflow:visible!important;}
  ul.vs-menu{display:block!important;width:100%!important;}
  ul.vs-menu > li{display:block!important;width:100%!important;}
  ul.vs-menu > li > a{display:flex!important;justify-content:space-between!important;width:100%!important;padding:10px 0!important;}
  ul.vs-menu li ul.sub-menu,
  ul.vs-menu li ul.sub-menu ul.sub-menu{
    position:static!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    box-shadow:none!important;
    border:0!important;
    border-left:1px solid #ddd!important;
    border-radius:0!important;
    padding:4px 0 4px 14px!important;
    min-width:0!important;
    background:transparent!important;
  }
  .vs-grid-5,.vs-grid-5 > .e-con-inner,
  .vs-grid-4,.vs-grid-4 > .e-con-inner,
  .vs-grid-3,.vs-grid-3 > .e-con-inner,
  .vs-grid-2,.vs-grid-2 > .e-con-inner,
  .vs-gallery-grid,.vs-gallery-grid > .e-con-inner,
  .vs-footer-grid,.vs-footer-grid > .e-con-inner{grid-template-columns:1fr!important;}
}
