:root { --vs-red:#e30613; --vs-paper:#f4f3ef; --vs-ink:#111317; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:#070b0f; color:#f4f4f4; font-family:Arial,Helvetica,sans-serif; letter-spacing:0; }
*,*::before,*::after { box-sizing:border-box; }
a { color:inherit; }
.vs-header { position:sticky; top:0; z-index:100; width:100%; min-height:88px; padding:18px 48px; display:flex; align-items:center; justify-content:space-between; gap:32px; background:rgba(7,11,15,.96); border-bottom:1px solid #e306132e; backdrop-filter:blur(16px); }
.admin-bar .vs-header { top:32px; }
.vs-brand { display:inline-flex; flex-shrink:0; }
.vs-logo { width:273px; height:auto; display:block; }
.vs-menu { list-style:none; display:flex; align-items:center; gap:42px; padding:0; margin:0; }
.vs-menu a { display:block; text-decoration:none; font-size:18px; font-weight:700; color:#d7d9de; transition:color .2s,background .2s; }
.vs-menu a:hover,.vs-menu a:focus-visible { color:var(--vs-red); }
.vs-menu .vs-nav-cta a { background:var(--vs-red); color:#fff; padding:14px 26px; border-radius:50px; }
.vs-menu .vs-nav-cta a:hover { background:#a8000a; color:#fff; }
.vs-menu-toggle { display:none; }
.vs-footer { padding:52px 24px; border-top:1px solid #e3061338; text-align:center; background:#07090c; }
.vs-footer p { color:#b9bdc4; font-size:16px; line-height:1.6; margin:12px 0 0; }
.vs-footer p+p { margin-top:2px; }
.vs-footer .vs-logo { width:250px; }
.vs-footer-legal { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:8px 22px; margin-top:22px; }
.vs-footer-legal a,.vs-footer-legal button { color:#b9bdc4; font:600 13px/1.4 inherit; text-decoration:none; background:none; border:0; padding:4px 0; cursor:pointer; transition:color .2s; }
.vs-footer-legal a:hover,.vs-footer-legal button:hover { color:#fff; }
.vs-contact-widget { position:fixed; right:24px; bottom:24px; z-index:9990; display:flex; flex-direction:column; align-items:flex-end; gap:12px; font-family:Arial,Helvetica,sans-serif; }
.vs-contact-trigger { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:58px; padding:14px 22px; border:1px solid #ff3945; border-radius:999px; background:#e30613; color:#fff; box-shadow:0 12px 38px #0007,0 5px 24px #e3061355; font:700 15px/1.1 Arial,Helvetica,sans-serif; cursor:pointer; transition:transform .2s,background .2s,box-shadow .2s; }
.vs-contact-trigger:hover { background:#b9000b; transform:translateY(-3px); box-shadow:0 18px 42px #0008,0 6px 28px #e3061366; }
.vs-contact-trigger svg { width:22px; height:22px; flex:none; }
.vs-contact-trigger:focus-visible,.vs-contact-panel a:focus-visible { outline:3px solid #ff818a; outline-offset:4px; }
.vs-contact-panel[hidden] { display:none; }
.vs-contact-panel { width:min(360px,calc(100vw - 32px)); overflow:hidden; border:1px solid #ffffff30; border-radius:20px; background:linear-gradient(145deg,#18191e,#090a0e 72%); box-shadow:0 22px 70px #0009; color:#fff; animation:vs-contact-in .22s ease-out both; }
.vs-contact-panel-head { display:flex; flex-direction:column; gap:7px; padding:22px 22px 17px; border-bottom:1px solid #ffffff1c; }
.vs-contact-eyebrow { color:#ff3945; font-size:11px; font-weight:800; letter-spacing:.14em; }
.vs-contact-panel-head strong { color:#fff; font-size:22px; line-height:1.15; letter-spacing:-.02em; }
.vs-contact-links { padding:8px; }
.vs-contact-links a { display:flex; align-items:center; gap:12px; min-height:64px; padding:9px 12px; border-radius:12px; color:#fff; text-decoration:none; transition:background .2s; }
.vs-contact-links a:hover { background:#ffffff11; }
.vs-contact-links a>span:nth-child(2) { display:flex; flex:1; flex-direction:column; gap:3px; min-width:0; }
.vs-contact-links strong { font-size:14px; line-height:1.2; color:#fff; }
.vs-contact-links small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#bfc1c7; font-size:12px; line-height:1.3; }
.vs-contact-icon { display:grid; place-items:center; flex:none; width:38px; height:38px; border:1px solid #e3061344; border-radius:50%; background:#e306131a; color:#ff3945; font-size:19px; }
.vs-contact-arrow { color:#aeb0b6; font-size:17px; }
.vs-contact-panel-foot { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:15px 22px 18px; border-top:1px solid #ffffff1c; }
.vs-contact-panel-foot a { color:#d7d9de; font-size:12px; font-weight:700; text-decoration:none; }
.vs-contact-panel-foot a:hover { color:#ff4550; }
@keyframes vs-contact-in { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width:600px) { .vs-contact-widget { right:16px; bottom:16px; gap:8px; } .vs-contact-trigger { min-height:54px; padding:12px 18px; } .vs-contact-panel { max-height:calc(100dvh - 100px); overflow-y:auto; } }
.vs-legal-page { color:#17191e; min-height:70vh; }
.vs-legal-page .elementor-heading-title { color:#111317; line-height:1.14; }
.vs-legal-page .elementor-widget-heading:first-child .elementor-heading-title { font-size:clamp(38px,5vw,66px); margin-bottom:20px; }
.vs-legal-page .elementor-widget-heading:not(:first-child) .elementor-heading-title { font-size:clamp(23px,2.3vw,32px); margin-top:24px; }
.vs-legal-page .elementor-widget-text-editor { color:#35383d; font-size:17px; line-height:1.65; }
.vs-legal-page .elementor-widget-text-editor a { color:#b9000b; text-decoration:underline; }
body.elementor-page #content { max-width:none; width:100%; }
.home .page-header { display:none; }
.elementor .elementor-heading-title { margin:0; letter-spacing:0; }
.elementor .elementor-widget-text-editor p { margin:0; }
.elementor .e-con { min-width:0; }
.vs-hero { position:relative; overflow:hidden; background-image:linear-gradient(#e306130a 1px,transparent 1px),linear-gradient(90deg,#e306130a 1px,transparent 1px),radial-gradient(ellipse at 95% 15%,#580710 0,transparent 60%); background-size:64px 64px,64px 64px,100% 100%; }
.vs-hero::before { content:''; position:absolute; width:70%; height:700px; top:-80px; right:-15%; border:5px solid #b90b1d66; transform:rotate(28deg); pointer-events:none; }
.vs-hero-copy { width:100%; max-width:1680px; margin-inline:auto; text-align:center; }
.vs-eyebrow .elementor-heading-title { text-transform:uppercase; }
.vs-hero-title { width:100%; }
.vs-pill { padding:10px 18px; border:1px solid #ffffff30; border-radius:50px; text-transform:uppercase; }
.vs-video { overflow:hidden; border-radius:8px; }
.vs-video .elementor-custom-embed-image-overlay img { width:100%; height:100%; object-fit:cover; }
.vs-hero>.vs-video { width:100%; max-width:1800px; margin-inline:auto; }
.vs-ghost .elementor-button { color:#fff; background:#ffffff08; border:1px solid #ffffff55; }
.vs-ghost .elementor-button:hover { background:#e30613; border-color:#e30613; }
.elementor-button { transition:background-color .2s,color .2s,transform .2s,box-shadow .2s; }
.elementor-button:hover { transform:translateY(-2px); box-shadow:0 10px 28px #00000025; }
.elementor-button:focus-visible,.vs-menu a:focus-visible,.vs-menu-toggle:focus-visible { outline:3px solid #ff6a74; outline-offset:5px; }
.vs-intro { overflow:hidden; }
.vs-intro-heading>.vs-eyebrow { flex:0 0 16%; }
.vs-intro-heading>.e-con { flex:1; }
.vs-intro-description { margin-top:20px; }
.vs-intro>.vs-actions { justify-content:flex-end; }
.vs-reel-prev .elementor-button,.vs-reel-next .elementor-button { min-width:48px; min-height:48px; padding:12px; border:1px solid #ddd; }
.vs-reels-track { overflow-x:auto; overflow-y:hidden; padding-bottom:18px!important; max-width:100%; }
.vs-reels-track>.vs-reel-card { flex:0 0 280px; width:280px; }
.vs-reel-caption .elementor-heading-title { line-height:1.35; }
.vs-section-heading { gap:80px; }
.vs-section-heading>.elementor-widget-heading { flex:0 0 60%; }
.vs-section-heading>.elementor-widget-text-editor { flex:1; }
.vs-method { background-image:linear-gradient(#e3061306 1px,transparent 1px),linear-gradient(90deg,#e3061306 1px,transparent 1px),radial-gradient(ellipse at 0 15%,#50030c 0,transparent 55%); background-size:72px 72px,72px 72px,100% 100%; }
.vs-service-card { overflow:hidden; transition:transform .25s; }
.vs-service-card:hover { transform:translateY(-4px); }
.vs-service-card .vs-eyebrow { align-self:flex-start; width:auto; border:1px solid #e3061322; border-radius:50px; padding:8px; }
.vs-projects-title { max-width:1000px; margin-bottom:32px; }
.vs-project { overflow:hidden; border:1px solid #ffffff22; }
.vs-project-copy { width:65%; }
.vs-project-tag { width:180px; text-align:right; text-transform:uppercase; }
.vs-project .vs-eyebrow .elementor-heading-title { color:#e9e9e9; }
.vs-reviews>.elementor-widget-heading,.vs-reviews>.elementor-widget-text-editor { max-width:1100px; }
.vs-cta { text-align:center; border-top:1px solid #11111112; }
.vs-cta-title { max-width:1450px; }
@media (max-width:1200px) { .vs-menu {gap:26px;} .vs-header {padding-inline:32px;} .vs-logo {width:245px;} .vs-section-heading {gap:40px;} }
@media (max-width:880px) {
  .vs-header { min-height:76px; padding:14px 20px; }
  .vs-logo { width:220px; }
  .vs-menu-toggle { width:46px; height:46px; padding:10px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; border:1px solid #ffffff45; border-radius:50%; background:transparent; color:#fff; }
  .vs-menu-toggle span { display:block; width:20px; height:2px; background:currentColor; transition:transform .2s; }
  .vs-menu-toggle[aria-expanded=true] span:nth-child(1) {transform:translateY(7px) rotate(45deg);}
  .vs-menu-toggle[aria-expanded=true] span:nth-child(2) {opacity:0;}
  .vs-menu-toggle[aria-expanded=true] span:nth-child(3) {transform:translateY(-7px) rotate(-45deg);}
  #vs-navigation { display:none; position:absolute; left:0; right:0; top:100%; background:#0b0e12; padding:20px; border-bottom:1px solid #ffffff20; }
  #vs-navigation.is-open {display:block;}
  .vs-menu {flex-direction:column; align-items:stretch; gap:4px;}
  .vs-menu a {padding:14px 16px;}
  .vs-menu .vs-nav-cta a {text-align:center; margin-top:8px;}
  .vs-section-heading {flex-direction:column!important; align-items:stretch!important;gap:24px;}
  .vs-section-heading>.elementor-widget-heading {flex:auto;}
  .vs-project-copy {width:80%;}
  .vs-project-tag {width:150px;}
}
@media(max-width:767px) {
  .admin-bar .vs-header {top:46px;}
  .vs-intro-heading {flex-direction:column!important;gap:24px;}
  .vs-intro-heading>.vs-eyebrow {flex:auto;}
  .vs-hero-copy {gap:24px!important;}
  .vs-project {flex-direction:column!important;align-items:stretch!important;justify-content:space-between!important;}
  .vs-project-copy,.vs-project-tag {width:100%;}
  .vs-project-tag {text-align:left;}
  .vs-footer {padding:40px 20px;}
  .vs-reels-track>.vs-reel-card {flex-basis:245px;width:245px;}
}
@media(max-width:360px) { .vs-logo {width:190px;} .vs-header {padding-inline:16px;} }
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto;} *,*::before,*::after{animation:none!important;transition:none!important;}}

/* Navigation refinement — 26 October 2026 */
.vs-header{gap:24px;padding:14px clamp(20px,3.2vw,48px);min-height:84px;box-shadow:0 8px 30px #00000018;}
.vs-header .vs-logo{width:clamp(200px,21vw,260px);}
.vs-menu{gap:clamp(14px,2.4vw,36px);}
.vs-menu a{position:relative;white-space:nowrap;font-size:16px;line-height:1.4;padding:12px 0;}
.vs-menu li:not(.vs-nav-cta)>a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--vs-red);transform:scaleX(0);transform-origin:left;transition:transform .2s;}
.vs-menu li:not(.vs-nav-cta)>a:hover::after,.vs-menu li:not(.vs-nav-cta)>a[aria-current]::after{transform:scaleX(1);}
.vs-menu a[aria-current]{color:#fff;}
.vs-menu .vs-nav-cta a{padding:13px 24px;}
.vs-brand:focus-visible{outline:3px solid #ff6a74;outline-offset:6px;border-radius:4px;}
@media(max-width:880px){
.vs-header{min-height:76px;padding:12px 20px;gap:12px;}
.vs-header .vs-logo{width:min(220px,calc(100vw - 110px));}
.vs-menu-toggle{flex-shrink:0;cursor:pointer;}
.vs-menu-toggle:hover,.vs-menu-toggle:focus-visible{background:#ffffff12;color:#fff;border-color:#ffffff80;}
#vs-navigation{padding:12px 20px 20px;max-height:calc(100dvh - 122px);overflow-y:auto;box-shadow:0 18px 30px #00000055;}
.vs-menu{gap:2px;}
.vs-menu a{font-size:18px;padding:13px 16px;border-radius:6px;}
.vs-menu li:not(.vs-nav-cta)>a::after{display:none;}
.vs-menu li:not(.vs-nav-cta)>a:hover,.vs-menu li:not(.vs-nav-cta)>a[aria-current]{background:#ffffff0d;box-shadow:inset 3px 0 var(--vs-red);}
.vs-menu .vs-nav-cta a{margin-top:12px;padding:14px 24px;}
}

