/* VSMC Elementor Kit — brand + motion layer. Navy #06245A · Orange #FF6B00 · Off-white #F4F5F7 · IBM Plex Sans */
:root{--vs-navy:#06245A;--vs-navy-d:#041A42;--vs-blue:#1C4FB0;--vs-orange:#FF6B00;--vs-off:#F4F5F7;--vs-ink:#0B1220;--vs-mut:#5B6577;--vs-dim:#A3ABBA;--vs-line:rgba(6,36,90,.14);--vs-ease:cubic-bezier(.2,.75,.2,1);--vs-pad:clamp(20px,4vw,64px)}
html{scroll-behavior:smooth}
body{font-family:'IBM Plex Sans',system-ui,sans-serif;color:var(--vs-ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.vs-dark{--vs-dim:rgba(255,255,255,.42);color:#fff}
.vs-dim{color:var(--vs-dim)}
::selection{background:var(--vs-orange);color:#fff}

/* ---------- Type scale (set by class so one edit restyles the site) ---------- */
body .elementor-widget.vs-h1 .elementor-heading-title{font-size:clamp(2.7rem,6.2vw,6rem);line-height:1.02;font-weight:500;letter-spacing:-.035em;color:#fff}
body .elementor-widget.vs-h2 .elementor-heading-title{font-size:clamp(2.05rem,4.3vw,4.1rem);line-height:1.06;font-weight:500;letter-spacing:-.03em;color:var(--vs-navy)}
body .elementor-widget.vs-h3 .elementor-heading-title{font-size:clamp(1.45rem,2.3vw,2.1rem);line-height:1.15;font-weight:500;letter-spacing:-.02em;color:var(--vs-navy)}
body .elementor-widget.vs-h4 .elementor-heading-title{font-size:1.2rem;line-height:1.3;font-weight:600;color:var(--vs-navy)}
.vs-dark .elementor-widget.vs-h2 .elementor-heading-title,.vs-dark .elementor-widget.vs-h3 .elementor-heading-title,.vs-dark .elementor-widget.vs-h4 .elementor-heading-title,body .elementor-widget.vs-h2.vs-w .elementor-heading-title,body .elementor-widget.vs-h3.vs-w .elementor-heading-title,body .elementor-widget.vs-h4.vs-w .elementor-heading-title{color:#fff}
body .elementor-widget.vs-lead,body .elementor-widget.vs-lead p{font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.65;color:var(--vs-mut);font-weight:400}
body .elementor-widget.vs-p,body .elementor-widget.vs-p p{font-size:1.0625rem;line-height:1.75;color:var(--vs-mut)}
body .elementor-widget.vs-p p{margin:0 0 1em}
.vs-dark .elementor-widget.vs-lead,.vs-dark .elementor-widget.vs-lead p,.vs-dark .elementor-widget.vs-p,.vs-dark .elementor-widget.vs-p p,body .elementor-widget.vs-lead.vs-w p,body .elementor-widget.vs-p.vs-w p{color:rgba(255,255,255,.78)}
.vs-eyebrow,.vs-eyebrow p{font-size:.78rem!important;letter-spacing:.16em;text-transform:uppercase;font-weight:600!important;color:var(--vs-navy)!important;display:flex;align-items:center;gap:12px;margin:0}
.vs-eyebrow p::before{content:"";width:28px;height:2px;background:var(--vs-orange);display:inline-block;transform-origin:left;transform:scaleX(0);transition:transform .9s var(--vs-ease) .2s}
.vs-eyebrow.is-in p::before,html:not(.vs-js) .vs-eyebrow p::before{transform:none}
.vs-dark .vs-eyebrow,.vs-dark .vs-eyebrow p,.vs-eyebrow.vs-w p{color:#fff!important}
.vs-big-num .elementor-counter-number-wrapper{font-size:clamp(3rem,6vw,5.5rem);font-weight:500;letter-spacing:-.04em;line-height:1;color:#fff}
.vs-big-num .elementor-counter-number-suffix,.vs-big-num .elementor-counter-number-prefix{color:var(--vs-orange)}
.vs-big-num .elementor-counter-title{font-size:.98rem;line-height:1.5;color:rgba(255,255,255,.72);margin-top:14px;font-weight:400;max-width:26ch;text-align:left}
.vs-big-num .elementor-counter{text-align:left}
.vs-light-num .elementor-counter-number-wrapper{color:var(--vs-navy)}
.vs-light-num .elementor-counter-title{color:var(--vs-mut)}

/* ---------- Buttons: square arrow chip + label (Higherlife-style, brand orange) ---------- */
.vs-arrow-btn .elementor-button{background:transparent!important;padding:0!important;border:0;border-radius:0;color:var(--vs-navy);font-weight:500;font-size:1rem;gap:0;box-shadow:none}
.vs-arrow-btn .elementor-button-content-wrapper{align-items:center;gap:14px;flex-direction:row}
.vs-arrow-btn .elementor-button-icon{width:36px;height:36px;display:grid;place-items:center;background:var(--vs-orange);color:#fff;font-size:.8rem;transition:transform .5s var(--vs-ease),background .3s;margin:0}
.vs-arrow-btn .elementor-button:hover .elementor-button-icon{transform:translateX(6px);background:var(--vs-navy)}
.vs-arrow-btn.vs-w .elementor-button,.vs-dark .vs-arrow-btn .elementor-button{color:#fff}
.vs-dark .vs-arrow-btn .elementor-button:hover .elementor-button-icon{background:#fff;color:var(--vs-navy)}
.vs-solid-btn .elementor-button{background:var(--vs-orange);color:#fff;border-radius:0;padding:16px 28px;font-weight:600;transition:background .3s,transform .4s var(--vs-ease)}
.vs-solid-btn .elementor-button:hover{background:var(--vs-navy);color:#fff;transform:translateY(-2px)}
.vs-dark .vs-solid-btn .elementor-button:hover{background:#fff;color:var(--vs-navy)}
.vs-text-link a{color:var(--vs-orange);font-weight:600;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--vs-ease)}
.vs-text-link a:hover{background-size:100% 1px}

/* ---------- Scroll reveals ---------- */
html.vs-js .vs-fade{opacity:0;transform:translateY(34px);transition:opacity 1s var(--vs-ease),transform 1s var(--vs-ease)}
html.vs-js .vs-fade.is-in{opacity:1;transform:none}
html.vs-js .vs-wipe>.elementor-widget{clip-path:inset(0 0 100% 0);transition:clip-path 1.3s cubic-bezier(.77,0,.18,1)}
html.vs-js .vs-wipe img{will-change:transform;transform:scale(1.25);transition:transform 1.8s var(--vs-ease)}
html.vs-js .vs-wipe.is-in>.elementor-widget{clip-path:inset(0)}
html.vs-js .vs-wipe.is-in img{transform:scale(1)}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.16em;margin-bottom:-.16em}
.wi{display:inline-block;transform:translateY(112%);transition:transform 1s var(--vs-ease)}
.is-in .wi{transform:none}
.vs-rule{height:1px;background:rgba(255,255,255,.35);transform-origin:left;transform:scaleX(0);transition:transform 1.4s var(--vs-ease)}
.vs-rule.is-in{transform:none}
.vs-zoom{overflow:hidden}
.vs-zoom img,.vs-zoom .vs-bg{transition:transform 1.4s var(--vs-ease)}
.vs-zoom:hover img,.vs-zoom:hover .vs-bg{transform:scale(1.07)}
.vs-img img{display:block;width:100%;height:100%;object-fit:cover}
.vs-par{overflow:hidden}.vs-par img{will-change:transform;transform:scale(1.14)}
#vs-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--vs-orange);transform:scaleX(0);transform-origin:left;z-index:100000}

/* ---------- Loader / page transition (4 colour stripes) ---------- */
#vs-loader{display:none;position:fixed;inset:0;z-index:99999;pointer-events:none}
html.vs-js #vs-loader{display:flex}
#vs-loader i{flex:1;transform:translateY(0)}
#vs-loader i:nth-child(1){background:var(--vs-navy)}#vs-loader i:nth-child(2){background:var(--vs-orange)}#vs-loader i:nth-child(3){background:var(--vs-blue)}#vs-loader i:nth-child(4){background:var(--vs-off)}
#vs-loader b{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:clamp(2rem,6vw,4.5rem);font-weight:500;letter-spacing:-.04em;opacity:1;transition:opacity .5s}
#vs-loader b em{font-style:normal;color:var(--vs-orange)}
#vs-loader.vs-open b{opacity:0}
#vs-loader.vs-open i{transform:translateY(-100%);transition:transform 1s cubic-bezier(.76,0,.24,1)}
#vs-loader.vs-open i:nth-child(2){transition-delay:.07s}#vs-loader.vs-open i:nth-child(3){transition-delay:.14s}#vs-loader.vs-open i:nth-child(4){transition-delay:.21s}
#vs-loader.vs-pre i{transform:translateY(100%);transition:none}
#vs-loader.vs-leave i{transform:translateY(0);transition:transform .65s cubic-bezier(.76,0,.24,1)}
#vs-loader.vs-leave i:nth-child(2){transition-delay:.05s}#vs-loader.vs-leave i:nth-child(3){transition-delay:.1s}#vs-loader.vs-leave i:nth-child(4){transition-delay:.15s}
#vs-loader.vs-leave b{opacity:0}
#vs-loader.vs-done{display:none!important}
html.vs-js.vs-locked,html.vs-js.vs-locked body{overflow:hidden}

/* ---------- Header ---------- */
.vs-header{position:fixed!important;top:0;left:0;right:0;width:100%;z-index:999;transition:transform .6s var(--vs-ease),background .4s,box-shadow .4s}
.admin-bar .vs-header{top:32px}
.vs-header.vs-hide{transform:translateY(-110%)}
.vs-header.vs-scrolled{background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--vs-line)}
.vs-header .vs-logo{color:#fff;text-decoration:none;display:flex;align-items:center;gap:12px;transition:color .3s}
.vs-header.vs-scrolled .vs-logo{color:var(--vs-navy)}
.vs-logo svg{width:44px;height:44px}.vs-logo span{display:block;font-size:.8rem;line-height:1.15;font-weight:600;letter-spacing:.02em}.vs-logo span b{display:block;font-size:1.05rem;letter-spacing:.14em}
.vs-header .elementor-nav-menu a.elementor-item{color:#fff;font-weight:500;font-size:.95rem;padding:10px 16px;position:relative;transition:color .3s}
.vs-header.vs-scrolled .elementor-nav-menu a.elementor-item{color:var(--vs-navy)}
.vs-header .elementor-nav-menu a.elementor-item::after{content:"";position:absolute;left:16px;right:16px;bottom:4px;height:2px;background:var(--vs-orange);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--vs-ease);border:0}
.vs-header .elementor-nav-menu a.elementor-item:hover::after,.vs-header .elementor-nav-menu a.elementor-item.elementor-item-active::after{transform:scaleX(1)}
.vs-header .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--vs-orange)}
.vs-burger{display:none;width:46px;height:46px;border:0;background:transparent;position:relative;cursor:pointer;z-index:1002;padding:0}
.vs-burger i{position:absolute;left:11px;right:11px;height:2px;background:#fff;transition:transform .5s var(--vs-ease),top .5s,background .3s}
.vs-burger i:nth-child(1){top:17px}.vs-burger i:nth-child(2){top:27px}
.vs-scrolled .vs-burger i{background:var(--vs-navy)}
.vs-menu-open .vs-burger i{background:#fff!important}.vs-menu-open .vs-burger i:nth-child(1){top:22px;transform:rotate(45deg)}.vs-menu-open .vs-burger i:nth-child(2){top:22px;transform:rotate(-45deg)}
.vs-mm{position:fixed;inset:0;background:var(--vs-navy);z-index:1001;padding:120px var(--vs-pad) 40px;display:flex;flex-direction:column;justify-content:space-between;clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.77,0,.18,1);visibility:hidden}
.vs-menu-open .vs-mm{clip-path:inset(0);visibility:visible}
.vs-mm a{color:#fff;text-decoration:none;display:flex;gap:16px;align-items:baseline;font-size:clamp(1.9rem,8vw,3rem);font-weight:500;letter-spacing:-.03em;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.14);opacity:0;transform:translateY(24px);transition:opacity .7s var(--vs-ease),transform .7s var(--vs-ease)}
.vs-mm a small{font-size:.8rem;color:var(--vs-orange);letter-spacing:.1em}
.vs-menu-open .vs-mm a{opacity:1;transform:none}
.vs-mm .vs-mm-cta{background:var(--vs-orange);justify-content:center;font-size:1.1rem;padding:18px;border:0;margin-top:24px}
@media(max-width:1024px){.vs-header .elementor-widget-nav-menu,.vs-header .vs-cta-d{display:none!important}.vs-burger{display:block}}

/* ---------- Heroes ---------- */
.vs-hero{position:relative;isolation:isolate;overflow:hidden}
.vs-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,26,66,.7) 0%,rgba(4,26,66,.38) 38%,rgba(4,26,66,.94) 100%)}
.vs-hero .vs-hero-in{position:relative;z-index:2}
.vs-hero .vs-dim{color:rgba(255,255,255,.62)}
.vs-hero .elementor-background-slideshow{z-index:0}
.vs-hero .vs-scroll-cue.elementor-widget{position:absolute!important;width:auto;right:var(--vs-pad);bottom:36px;z-index:3;color:#fff;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;display:flex;gap:14px;align-items:center;writing-mode:vertical-rl}
.vs-scroll-cue::after{content:"";width:1px;height:70px;background:linear-gradient(#fff,transparent);animation:vsCue 2s infinite}
@keyframes vsCue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- Cards ---------- */
.vs-card-img{position:relative;overflow:hidden;min-height:clamp(380px,42vw,560px);isolation:isolate}
.vs-card-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,26,66,0) 30%,rgba(4,26,66,.92));z-index:1;transition:opacity .6s}
.vs-card-img .vs-card-bg{position:absolute!important;inset:0;width:100%;height:100%;z-index:0}
.vs-card-img .vs-card-bg .elementor-widget-container,.vs-card-img .vs-card-bg img{width:100%;height:100%;object-fit:cover;display:block}
.vs-card-img:hover .vs-card-bg img{transform:scale(1.08)}
.vs-card-img .vs-card-bg img{transition:transform 1.4s var(--vs-ease)}
.vs-card-img .vs-card-in{position:relative;z-index:2}
.vs-card-img .vs-card-more{opacity:.0;transform:translateY(14px);transition:.6s var(--vs-ease)}
.vs-card-img:hover .vs-card-more{opacity:1;transform:none}
@media(hover:none){.vs-card-img .vs-card-more{opacity:1;transform:none}}
.vs-line-card{border-top:1px solid var(--vs-line);transition:background .4s,padding .5s var(--vs-ease)}
.vs-tile{background:#fff;border:1px solid var(--vs-line);transition:transform .6s var(--vs-ease),box-shadow .6s,border-color .3s}
.vs-tile:hover{transform:translateY(-8px);box-shadow:0 30px 60px -30px rgba(6,36,90,.35);border-color:var(--vs-orange)}
.vs-tag{display:inline-block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--vs-orange)}
.vs-date{font-size:.85rem;color:var(--vs-mut)}
.vs-stat-mini{font-size:clamp(2rem,3.4vw,3rem);font-weight:500;color:var(--vs-orange);letter-spacing:-.03em;line-height:1}

/* ---------- Sticky stacked storytelling panels ---------- */
.vs-stack .vs-sticky{position:sticky;top:calc(88px + var(--n,0)*18px);box-shadow:0 -24px 60px -30px rgba(6,36,90,.35)}
.vs-stack .vs-sticky:nth-child(1){--n:0}.vs-stack .vs-sticky:nth-child(2){--n:1}.vs-stack .vs-sticky:nth-child(3){--n:2}.vs-stack .vs-sticky:nth-child(4){--n:3}
@media(max-width:767px){.vs-stack .vs-sticky{position:relative;top:auto}}

/* ---------- Hover list (floating image follows cursor) ---------- */
.vs-hl .vs-hl-item{border-top:1px solid var(--vs-line);transition:padding .5s var(--vs-ease),color .3s}
.vs-hl .vs-hl-item:last-child{border-bottom:1px solid var(--vs-line)}
.vs-hl .vs-hl-item:hover{padding-left:clamp(14px,2vw,32px)}
.vs-hl .vs-hl-item .elementor-heading-title{transition:color .3s}
.vs-hl .vs-hl-item:hover .elementor-heading-title{color:var(--vs-orange)}
.vs-hl-img{position:fixed;left:0;top:0;width:clamp(220px,22vw,360px);aspect-ratio:4/5;pointer-events:none;z-index:90;opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .35s,scale .35s;overflow:hidden}
.vs-hl-img.on{opacity:1}
.vs-hl-img img{width:100%;height:100%;object-fit:cover}

/* ---------- Word rotator (“Guided by …”) ---------- */
.vs-rot{display:inline-grid;vertical-align:top;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.vs-rot>span{grid-area:1/1;transform:translateY(110%);opacity:0;transition:transform .8s var(--vs-ease),opacity .8s;color:var(--vs-orange)}
.vs-rot>span.on{transform:none;opacity:1}.vs-rot>span.off{transform:translateY(-110%);opacity:0}

/* ---------- Marquee ---------- */
.vs-marquee{overflow:hidden;white-space:nowrap;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.vs-marquee div{display:inline-flex;gap:clamp(40px,6vw,96px);padding-right:clamp(40px,6vw,96px);animation:vsMq 45s linear infinite}
.vs-marquee:hover div{animation-play-state:paused}
.vs-marquee span{font-size:clamp(1.2rem,2vw,1.7rem);font-weight:600;letter-spacing:-.02em;color:#9AA3B2;transition:color .3s}
.vs-marquee span:hover{color:var(--vs-navy)}
@keyframes vsMq{to{transform:translateX(-100%)}}

/* ---------- Tabs as delivery-model timeline ---------- */
.vs-steps .elementor-tabs-wrapper{display:flex;gap:0;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:40px}
.vs-steps .elementor-tab-title{flex:1;color:rgba(255,255,255,.5)!important;font-weight:500;padding:0 0 22px;border:0!important;background:none!important;text-align:left;position:relative;font-size:1.05rem;transition:color .3s}
.vs-steps .elementor-tab-title a{color:inherit!important;pointer-events:none}
.vs-steps .elementor-tab-title::after{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:var(--vs-orange);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--vs-ease)}
.vs-steps .elementor-tab-title.elementor-active{color:#fff!important}.vs-steps .elementor-tab-title.elementor-active::after{transform:none}
.vs-steps .elementor-tab-content{color:rgba(255,255,255,.82);font-size:1.15rem;line-height:1.7;border:0!important;padding:0!important;max-width:760px}
.vs-steps .elementor-tab-mobile-title{color:#fff;border:0!important;border-top:1px solid rgba(255,255,255,.2)!important;padding:18px 0;font-weight:500}
@media(max-width:767px){.vs-steps .elementor-tabs-wrapper{display:none}}
.vs-steps-light .elementor-tab-title{color:var(--vs-mut)!important}.vs-steps-light .elementor-tab-title.elementor-active{color:var(--vs-navy)!important}

/* ---------- Filters, search ---------- */
.vs-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 8px}
.vs-filter button{font:500 .92rem 'IBM Plex Sans',sans-serif;padding:11px 20px;border:1px solid var(--vs-line);background:#fff;color:var(--vs-navy);cursor:pointer;transition:.3s var(--vs-ease);border-radius:0}
.vs-filter button:hover{border-color:var(--vs-orange);color:var(--vs-orange)}
.vs-filter button.on{background:var(--vs-navy);color:#fff;border-color:var(--vs-navy)}
.vs-search{width:100%;max-width:420px;padding:13px 18px;border:1px solid var(--vs-line);font:400 1rem 'IBM Plex Sans',sans-serif;background:#fff}
.vs-search:focus{outline:2px solid var(--vs-orange);outline-offset:0}
.vs-fi{transition:opacity .5s var(--vs-ease),transform .5s var(--vs-ease)}
.vs-fi.vs-off{display:none!important}

/* ---------- Faculty bio drawer ---------- */
.vs-bio-src{display:none}
.vs-person .elementor-widget-image img{filter:grayscale(1);transition:filter .7s,transform 1.2s var(--vs-ease)}
.vs-person:hover .elementor-widget-image img{filter:none;transform:scale(1.05)}
.vs-person .elementor-widget-image{overflow:hidden}
.vs-drawer{position:fixed;inset:0;z-index:100001;visibility:hidden}
.vs-drawer::before{content:"";position:absolute;inset:0;background:rgba(4,26,66,.6);opacity:0;transition:opacity .5s}
.vs-drawer .vs-panel{position:absolute;right:0;top:0;bottom:0;width:min(640px,100%);background:#fff;overflow:auto;padding:48px clamp(24px,4vw,56px);transform:translateX(100%);transition:transform .8s cubic-bezier(.77,0,.18,1)}
.vs-drawer.on{visibility:visible}.vs-drawer.on::before{opacity:1}.vs-drawer.on .vs-panel{transform:none}
.vs-drawer img{width:160px;height:176px;object-fit:cover;display:block;margin-bottom:24px}
.vs-drawer h3{font-size:2rem;font-weight:500;letter-spacing:-.03em;color:var(--vs-navy);margin:0 0 4px}
.vs-drawer .vs-role{color:var(--vs-orange);font-weight:600;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:24px}
.vs-drawer p{color:var(--vs-mut);line-height:1.75;margin:0 0 1em}
.vs-x{position:absolute;right:20px;top:18px;width:44px;height:44px;border:0;background:var(--vs-off);font-size:1.4rem;cursor:pointer;color:var(--vs-navy)}

/* ---------- Gallery / video / lightbox ---------- */
.vs-gallery{columns:3 280px;column-gap:18px}
.vs-gallery a{display:block;margin:0 0 18px;overflow:hidden;position:relative;break-inside:avoid;cursor:zoom-in}
.vs-gallery img{width:100%;display:block;transition:transform 1.2s var(--vs-ease)}
.vs-gallery a:hover img{transform:scale(1.06)}
.vs-gallery a span{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;color:#fff;font-size:.85rem;background:linear-gradient(transparent,rgba(4,26,66,.85));opacity:0;transform:translateY(10px);transition:.5s var(--vs-ease)}
.vs-gallery a:hover span{opacity:1;transform:none}
.vs-videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.vs-video{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;cursor:pointer;color:#fff;text-decoration:none}
.vs-video img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--vs-ease)}
.vs-video:hover img{transform:scale(1.07)}
.vs-video::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(4,26,66,.9))}
.vs-video i{position:absolute;left:50%;top:44%;width:68px;height:68px;margin:-34px;background:var(--vs-orange);z-index:2;display:grid;place-items:center;transition:transform .5s var(--vs-ease)}
.vs-video i::before{content:"";border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:5px}
.vs-video:hover i{transform:scale(1.15)}
.vs-video strong{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;font-weight:500;font-size:1.05rem}
.vs-lb{position:fixed;inset:0;background:rgba(4,26,66,.94);z-index:100002;display:none;place-items:center;padding:4vw}
.vs-lb.on{display:grid}.vs-lb img{max-width:100%;max-height:88vh}.vs-lb iframe{width:min(1100px,100%);aspect-ratio:16/9;border:0}
.vs-lb .vs-x{background:var(--vs-orange);color:#fff}
.vs-pubs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.vs-pub{background:#fff;border:1px solid var(--vs-line);padding:0 0 24px;display:flex;flex-direction:column;transition:.6s var(--vs-ease)}
.vs-pub:hover{transform:translateY(-8px);box-shadow:0 30px 60px -30px rgba(6,36,90,.35)}
.vs-pub .cv{aspect-ratio:3/4;background:var(--vs-navy);color:#fff;padding:26px;display:flex;flex-direction:column;justify-content:flex-end;font-size:1.3rem;font-weight:500;line-height:1.2;letter-spacing:-.02em;position:relative;overflow:hidden}
.vs-pub .cv::before{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:var(--vs-orange);opacity:.9}
.vs-pub div.m{padding:20px 24px 0}.vs-pub p{margin:8px 0 14px;color:var(--vs-mut);font-size:.95rem;line-height:1.6}.vs-pub .f{font-size:.8rem;font-weight:600;color:var(--vs-navy);letter-spacing:.08em}

/* ---------- Map chips ---------- */
.vs-chips{display:flex;flex-wrap:wrap;gap:10px}
.vs-chip{position:relative;padding:10px 16px;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.92rem;cursor:default;transition:.3s}
.vs-chip.d{border-color:var(--vs-orange)}
.vs-chip:hover{background:var(--vs-orange);border-color:var(--vs-orange)}
.vs-chip em{position:absolute;left:0;bottom:calc(100% + 10px);width:max-content;max-width:260px;background:#fff;color:var(--vs-navy);font-style:normal;font-size:.85rem;line-height:1.5;padding:12px 14px;opacity:0;pointer-events:none;transform:translateY(6px);transition:.35s var(--vs-ease);z-index:5}
.vs-chip:hover em{opacity:1;transform:none}
.vs-legend{display:flex;gap:24px;font-size:.85rem;color:rgba(255,255,255,.75);margin-bottom:20px}.vs-legend b{display:inline-block;width:10px;height:10px;background:var(--vs-orange);margin-right:8px}.vs-legend b.n{background:transparent;border:1px solid rgba(255,255,255,.5)}
.vs-map img{width:100%;max-width:560px;display:block;margin:auto;filter:drop-shadow(0 30px 60px rgba(0,0,0,.35))}

/* ---------- Forms (Elementor Pro) ---------- */
.vs-form .elementor-field-group .elementor-field{border:0;border-bottom:1px solid var(--vs-line);background:transparent;border-radius:0;padding:16px 0;font-size:1.05rem;color:var(--vs-ink);transition:border-color .3s}
.vs-form .elementor-field-group .elementor-field:focus{border-color:var(--vs-orange);box-shadow:none;outline:0}
.vs-form .elementor-field-label{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--vs-navy)}
.vs-form .elementor-button{background:var(--vs-orange);color:#fff;border-radius:0;padding:18px 36px;font-weight:600}
.vs-form .elementor-button:hover{background:var(--vs-navy)}
.vs-form-dark .elementor-field-group .elementor-field{color:#fff;border-bottom-color:rgba(255,255,255,.35)}
.vs-form-dark .elementor-field-label{color:#fff}

/* ---------- Misc ---------- */
.vs-num-big{font-size:clamp(3rem,6vw,5rem);font-weight:500;color:var(--vs-orange);letter-spacing:-.04em;line-height:1}
.vs-circle-img img{border-radius:50%}
.vs-check .elementor-icon-list-icon i{color:var(--vs-orange)}
.vs-check .elementor-icon-list-text{color:var(--vs-ink);font-size:1.02rem}
.vs-check .elementor-icon-list-item{padding:10px 0;border-bottom:1px solid var(--vs-line)}
.vs-footer a{transition:color .3s}.vs-footer a:hover{color:var(--vs-orange)!important}
@media(max-width:767px){.vs-scroll-cue{display:none}.vs-big-num .elementor-counter-title{max-width:none}}
@media(prefers-reduced-motion:reduce){html.vs-js .vs-fade,html.vs-js .vs-wipe,.wi{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}#vs-loader{display:none!important}.vs-marquee div{animation:none}html{scroll-behavior:auto}}
body.elementor-editor-active .vs-fade,body.elementor-editor-active .vs-wipe>.elementor-widget,body.elementor-editor-active .wi{opacity:1!important;transform:none!important;clip-path:none!important}
body.elementor-editor-active .vs-header{position:relative!important}

/* polish */
.vs-wipe>.elementor-widget{flex:1 1 auto;height:100%}
.vs-wipe>.elementor-widget>.elementor-widget-container{height:100%}
.vs-person .elementor-widget-image img{aspect-ratio:4/5;object-fit:cover;width:100%}
.vs-hl .vs-hl-item .elementor-widget-heading{flex:1;text-align:left}
.vs-hl .vs-hl-item .elementor-heading-title{text-align:left}
.vs-logo,.vs-logo *{text-decoration:none!important}
.vs-cta-in .elementor-widget{text-align:center}
.vs-cta-in .elementor-widget.vs-lead{max-width:60ch}
.vs-cta-in .vs-eyebrow p{justify-content:center}
@media(max-width:767px){.vs-chip em{display:none}}

/* logo images */
.vs-logo img{height:clamp(54px,4.8vw,70px);width:auto;display:block}
.vs-logo .l-c{display:none}
.vs-header.vs-scrolled .vs-logo .l-w{display:none}.vs-header.vs-scrolled .vs-logo .l-c{display:block}
.vs-logo-f img{height:62px}.vs-logo-f .l-c{display:none!important}.vs-logo-f .l-w{display:block!important}

/* =================== MOTION PACK 2 =================== */
.wi{transform:translateY(115%) rotate(5deg);transform-origin:0 100%}
.is-in .wi{transform:none}
/* custom cursor */
html.vs-cursor-on,html.vs-cursor-on *{cursor:none!important}
html.vs-cursor-on input,html.vs-cursor-on textarea,html.vs-cursor-on select{cursor:text!important}
.vs-cur,.vs-cur-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:100005;border-radius:50%;opacity:0;transition:opacity .3s}
.vs-cur{width:8px;height:8px;margin:-4px;background:var(--vs-orange)}
.vs-cur-ring{width:46px;height:46px;margin:-23px;border:1.5px solid rgba(255,107,0,.9);display:grid;place-items:center;transition:width .45s var(--vs-ease),height .45s var(--vs-ease),margin .45s var(--vs-ease),background .3s,opacity .3s}
.vs-cur-ring span{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .25s}
.vs-cur-on .vs-cur,.vs-cur-on .vs-cur-ring{opacity:1}
.vs-cur-ring.hov{width:70px;height:70px;margin:-35px;background:rgba(255,107,0,.18)}
.vs-cur-ring.lbl{width:96px;height:96px;margin:-48px;background:var(--vs-orange);border-color:var(--vs-orange)}
.vs-cur-ring.lbl span{opacity:1}
/* nav letter-roll */
.roll{display:inline-block;overflow:hidden;height:1.35em;vertical-align:middle;line-height:1.35}
.roll>span{display:block;transition:transform .55s var(--vs-ease)}
.roll>span+span{color:var(--vs-orange)}
a:hover>.roll>span{transform:translateY(-100%)}
/* loader percentage */
#vs-loader u{position:absolute;left:var(--vs-pad);bottom:24px;text-decoration:none;color:#fff;font-weight:500;font-size:clamp(3rem,10vw,8rem);line-height:1;letter-spacing:-.05em;transition:opacity .4s}
#vs-loader.vs-open u{opacity:0}
/* stripe divider (Higherlife colour-band motif) */
.vs-stripes{overflow:hidden}
.vs-stripes i{display:block;height:clamp(16px,2.6vw,38px);transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.77,0,.18,1)}
.vs-stripes i:nth-child(1){background:var(--vs-navy)}.vs-stripes i:nth-child(2){background:var(--vs-blue);transition-delay:.12s}.vs-stripes i:nth-child(3){background:var(--vs-orange);transition-delay:.24s}.vs-stripes i:nth-child(4){background:#9DB7E8;transition-delay:.36s}
.vs-stripes.is-in i{transform:none}
html:not(.vs-js) .vs-stripes i{transform:none}
/* big scroll-driven marquee text */
.vs-bigmq{overflow:hidden;padding:clamp(30px,5vw,70px) 0;background:#fff}
.vs-bigmq .row{display:flex;white-space:nowrap;will-change:transform;font-size:clamp(3.2rem,10vw,10rem);font-weight:500;letter-spacing:-.05em;line-height:1.05;color:var(--vs-navy)}
.vs-bigmq .row span{padding-right:.5em}
.vs-bigmq .row.o span{color:transparent;-webkit-text-stroke:1.5px var(--vs-navy)}
.vs-bigmq .row b{color:var(--vs-orange);font-weight:500}
/* expanding image */
.vs-expand{position:relative;min-height:105vh;overflow:hidden;background:var(--vs-navy-d)}
.vs-expand .vs-ex-img.elementor-widget{position:absolute!important;inset:0;width:100%;height:100%;clip-path:inset(var(--i,16%) var(--j,26%) round 28px);will-change:clip-path}
.vs-expand .vs-ex-img .elementor-widget-container,.vs-expand .vs-ex-img img{width:100%;height:100%;object-fit:cover;display:block}
.vs-expand::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,26,66,.2),rgba(4,26,66,.85));opacity:var(--o,0);pointer-events:none}
.vs-expand .vs-ex-in{position:relative;z-index:2;min-height:105vh;opacity:var(--o,0);transform:translateY(calc((1 - var(--o,0))*40px))}
/* pinned horizontal gallery */
.vs-hscroll{position:relative}
.vs-hs-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.vs-hs-track.e-con{width:max-content!important;flex-direction:row!important;flex-wrap:nowrap!important;will-change:transform}
.vs-hs-track>.vs-hs-card,.vs-hs-track>.e-con-inner>.vs-hs-card{flex:0 0 clamp(260px,30vw,440px);width:clamp(260px,30vw,440px)!important}
.vs-hs-card .elementor-widget-image{overflow:hidden}
.vs-hs-card img{aspect-ratio:4/5;object-fit:cover;width:100%;display:block;transition:transform 1.2s var(--vs-ease)}
.vs-hs-card:hover img{transform:scale(1.06)}
.vs-hs-card:nth-child(even){margin-top:60px}
@media(max-width:767px){.vs-hs-sticky{position:relative;height:auto;padding:40px 0}.vs-hs-track.e-con{width:100%!important;overflow-x:auto}.vs-hs-card:nth-child(even){margin-top:0}}
@media(prefers-reduced-motion:reduce){.vs-stripes i{transform:none!important}.vs-expand .vs-ex-img.elementor-widget{clip-path:none}.vs-expand::after,.vs-expand .vs-ex-in{opacity:1!important;transform:none}.vs-cur,.vs-cur-ring{display:none}}
body.elementor-editor-active .vs-stripes i{transform:none!important}
#vs-loader b{display:flex;align-items:center;justify-content:center}
