/* VISIONORE modernized 2026. Vanilla CSS, no frameworks.
   Faithful to the original design: Rubik headings, Roboto body,
   generous whitespace, cloud/mountain creative theme. */
:root{
  --ink:#2e2e2e;
  --lime:#FAFE90;
  --lime-deep:#dfe36a;
  --grey:#777777;
  --line:#e8ecec;
  --soft:#fafafa;
  --dark:#363636;
  --card-dark:#2b2b2b;
  --blue-link:#337ab7;
  --white:#ffffff;
  --shadow:0 0 10px rgba(0,0,0,.1);
  --font-head:'Rubik',system-ui,sans-serif;
  --font-body:'Roboto',system-ui,sans-serif;
  --font-display:'Poppins',system-ui,sans-serif;
--logo-red:#e74c3c;--logo-yellow:#f1c40f;--logo-blue:#2980b9;--logo-green:#27ae60;}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
#page-loader{position:fixed;inset:0;background:#fff;z-index:10000;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease}
#page-loader.hide{opacity:0;pointer-events:none}
.loader-wrap{position:relative;width:120px;height:120px;display:flex;align-items:center;justify-content:center}
.loader-logo{width:64px;height:64px;position:relative;z-index:2;animation:logoBreathe 2s ease-in-out infinite}
@keyframes logoBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.loader-ring{position:absolute;border-radius:50%;border:2px solid transparent}
.loader-ring.r1{inset:0;border-top-color:#e74c3c;border-right-color:#e74c3c;animation:ringSpin 1.8s linear infinite}
.loader-ring.r2{inset:10px;border-bottom-color:#2980b9;border-left-color:#2980b9;animation:ringSpin 1.8s linear infinite reverse}
.loader-ring.r3{inset:20px;border-top-color:#27ae60;border-right-color:#27ae60;animation:ringSpin 2.2s linear infinite}
@keyframes ringSpin{to{transform:rotate(360deg)}}
.loader-orbit{position:absolute;inset:-8px;animation:ringSpin 3s linear infinite}
.loader-orbit .dot{position:absolute;width:10px;height:10px;border-radius:50%;top:0;left:50%;margin-left:-5px}
.loader-orbit .dot.d1{background:#e74c3c}
.loader-orbit .dot.d2{background:#f1c40f;transform:rotate(90deg);transform-origin:5px 68px}
.loader-orbit .dot.d3{background:#2980b9;transform:rotate(180deg);transform-origin:5px 68px}
.loader-orbit .dot.d4{background:#27ae60;transform:rotate(270deg);transform-origin:5px 68px}
.loader-text{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%);font-family:var(--font-display);font-size:12px;letter-spacing:4px;color:#999;white-space:nowrap}
.loader-text span{animation:dotBlink 1.2s infinite}
.loader-text span:nth-child(2){animation-delay:.2s}
.loader-text span:nth-child(3){animation-delay:.4s}
@keyframes dotBlink{0%,100%{opacity:.2}50%{opacity:1}}
.skip-link{position:absolute;top:0;left:0;background:#1a1a1a;color:#fff;padding:10px 18px;z-index:9999;text-decoration:none;font-weight:600;border-radius:0 0 6px 0;transform:translateY(-110%);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0)}
body{font-family:var(--font-body);color:var(--grey);background:var(--white);font-size:16px;line-height:28px;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;width:100%}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);color:var(--ink);line-height:1.35;font-weight:400}
p{color:#666666;line-height:28px;font-size:16px;letter-spacing:.4px}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit}
.container{max-width:1170px;margin:0 auto;padding:0 15px}
.section{padding:70px 0;position:relative}
::selection{background:var(--lime);color:var(--ink)}

/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'Poppins';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/poppins-400.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-weight:700;font-style:normal;font-display:swap;src:url('../fonts/poppins-700.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-weight:900;font-style:normal;font-display:swap;src:url('../fonts/poppins-700.woff2') format('woff2')}
@font-face{font-family:'Rubik';font-weight:300;font-style:normal;font-display:swap;src:url('../fonts/rubik-300.woff2') format('woff2')}
@font-face{font-family:'Rubik';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/rubik-400.woff2') format('woff2')}
@font-face{font-family:'Rubik';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/rubik-500.woff2') format('woff2')}
@font-face{font-family:'Roboto';font-weight:400;font-style:normal;font-display:swap;src:url('../fonts/roboto-400.woff2') format('woff2')}
@font-face{font-family:'Roboto';font-weight:500;font-style:normal;font-display:swap;src:url('../fonts/roboto-500.woff2') format('woff2')}

/* ---------- side header (home) ---------- */
.side-bar{position:fixed;left:0;top:0;bottom:0;width:74px;background:var(--white);box-shadow:var(--shadow);z-index:80;display:flex;flex-direction:column;align-items:center;padding:18px 0}
.side-logo img{width:44px}
.open-minimal-menu{width:48px;height:48px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;margin:auto 0;touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent}
.open-minimal-menu span{display:block;width:26px;height:2px;background:#8b8b8b;border-radius:2px;transition:transform .35s ease,opacity .3s ease,background .3s ease}
.open-minimal-menu.open span{background:#0986bf}
.side-bottom{position:absolute;bottom:0;left:0;width:290px;transform:rotate(-90deg) translateX(180px) translateY(-106px);transform-origin:center;font-family:'Poppins',system-ui,sans-serif;font-size:13px;font-weight:200;letter-spacing:1px;color:#8c8c8c;white-space:nowrap;text-align:left;pointer-events:none}
.side-bottom a{color:#0986bf;text-decoration:none;pointer-events:auto;position:relative}
/* short viewports: shrink the vertical copyright so the full 2011- range
   always stays visible without ever reaching the hamburger icon */
@media (max-height:640px){.side-bottom{font-size:10px;letter-spacing:.5px}}
main.with-sidebar{margin-left:74px}
.minimal-menu{position:fixed;top:0;left:74px;bottom:0;width:292px;max-width:calc(85vw - 74px);background:var(--white);box-shadow:10px 0 20px rgba(0,0,0,.07);z-index:70;padding:34px 40px;transform:translateX(-120%);transition:transform .45s cubic-bezier(.22,.9,.3,1);display:flex;flex-direction:column}
.minimal-menu.open{transform:translateX(0)}
.menu-logo img{width:150px;margin-bottom:44px}
.minimal-menu nav ul{display:flex;flex-direction:column}
.minimal-menu nav a{font-family:'Poppins',system-ui,sans-serif;font-size:15px;color:#909090;padding:10px 0;display:inline-block;position:relative}
.menu-scrim{position:fixed;inset:0;background:rgba(45,48,50,.35);opacity:0;pointer-events:none;transition:opacity .35s ease;z-index:65}
.menu-scrim.open{opacity:1;pointer-events:auto}

/* ---------- classic header (inner pages) ---------- */
.classic-header{position:sticky;top:0;z-index:60;background:var(--white);box-shadow:var(--shadow)}
.header-row{display:flex;align-items:center;justify-content:space-between;height:76px}
.classic-header .logo img{height:44px;width:auto}
.desktop-nav ul{display:flex;gap:34px}
.desktop-nav a{font-family:var(--font-head);font-size:15px;letter-spacing:1px;color:var(--ink);padding:6px 0;position:relative}
.desktop-nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--lime-deep);transition:width .3s ease}
.desktop-nav a:hover::after{width:100%}

/* ---------- unified hyperlink animation ---------- */
/* Every text hyperlink on the site shares one signature hover animation:
   a lime underline that sweeps in from the left. The desktop-nav rules
   above are the reference; the rules below extend the same animation to
   every other text link on the site. Buttons and branded components
   (lime-btn, venture-btn, vs-link, venture-live, theme-btn, social-btns)
   keep their own treatments. */
.minimal-menu nav a::after,
.mobile-menu nav a::after,
.title2 a::after,
.contact-address a::after,
.social-links a::after,
.copyright a::after,.quick-links a::after,
.side-bottom a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--lime-deep);transition:width .3s ease}
.minimal-menu nav a:hover::after,
.mobile-menu nav a:hover::after,
.title2 a:hover::after,
.contact-address a:hover::after,
.social-links a:hover::after,
.copyright a:hover::after,.quick-links a:hover::after,
.side-bottom a:hover::after{width:100%}
.classic-header .open-minimal-menu{display:flex}
.classic-header .desktop-nav{display:none}
.mobile-menu{position:fixed;inset:0;background:rgba(255,255,255,.98);z-index:75;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s ease}
.mobile-menu.open{opacity:1;pointer-events:auto}
body.menu-open,html.menu-open{overflow:hidden!important}
.mobile-menu nav ul{display:flex;flex-direction:column;gap:8px;text-align:center}
.mobile-menu nav a{font-family:var(--font-head);font-size:30px;color:var(--ink);padding:10px;display:inline-block;position:relative}
.mobile-menu .open-minimal-menu{display:flex;position:absolute;top:22px;right:22px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#ffffff}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.8}
.hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,.3) 55%,rgba(255,255,255,.45))}
#particles{position:absolute;inset:0;width:100%;height:100%}
.hero-inner{position:relative;z-index:2;text-align:center;padding:120px 20px 80px;max-width:1100px}
.hero-title{font-family:var(--font-display);font-size:80px;font-weight:700;line-height:1.05;letter-spacing:1px;color:#e1e1e1;-webkit-text-stroke:2px #000;margin-bottom:26px}
.hero-title .line{display:block}
.hero-title{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.19,1,.22,1)}
.hero-title.go{opacity:1;transform:translateY(0)}
.hero-sub{opacity:0;transform:translateY(20px);transition:opacity .8s ease .1s,transform .8s cubic-bezier(.19,1,.22,1) .1s}
.hero-sub.go{opacity:1;transform:translateY(0)}
.hero .lime-btn{opacity:0;transform:translateY(20px);transition:opacity .8s ease .2s,transform .8s cubic-bezier(.19,1,.22,1) .2s}
.hero .lime-btn.go{opacity:1;transform:translateY(0)}
@supports not (-webkit-text-stroke:1px black){.hero-title{color:var(--ink)}}
.hero-sub{font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:10px;text-indent:10px;color:#2D3032;margin-bottom:44px;opacity:0;transform:translateY(-20px);filter:blur(10px);transition:transform 1s cubic-bezier(.19,1,.22,1),opacity 1s ease,filter 1s ease}
.hero-sub.go{opacity:1;transform:none;filter:blur(0)}
@keyframes heroUp{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
.lime-btn{display:inline-block;background:var(--lime);color:#2D3032;font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:1px;padding:16px 44px;border-radius:4px;opacity:0;transform:translateY(-20px);filter:blur(10px);transition:transform 1s cubic-bezier(.19,1,.22,1),opacity 1s ease,filter 1s ease,background .3s ease,color .3s ease}
.lime-btn.go{opacity:1;transform:none;filter:blur(0)}
.lime-btn.go:hover{background:#2D3032;color:#fff}

/* ---------- buttons ---------- */
.theme-btn{display:inline-block;background:#424242;color:#fff;font-family:var(--font-head);font-size:13px;letter-spacing:2px;text-transform:uppercase;padding:16px 35px;border-radius:3px;margin-top:30px;transition:background .3s ease,transform .3s ease}
.theme-btn:hover{background:#222;transform:translateY(-2px)}
.theme-btn.white{background:#fff;color:var(--ink)}
.theme-btn.white:hover{background:var(--lime)}
.fancy-btn{display:inline-flex;align-items:center;gap:10px;background:#fff;border-radius:50px;box-shadow:0 0 30px rgba(0,0,0,.1);color:#989898;font-size:16px;padding:16px 30px;transition:transform .3s ease;transition:transform .3s ease,box-shadow .3s ease}
.fancy-btn:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.15)}
.fancy-btn:hover{transform:translateY(-3px)}
.fancy-btn svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fancy-btn strong{color:var(--ink);font-weight:400}

/* ---------- inner banner ---------- */
.inner-banner{position:relative;padding:190px 0 0;overflow:hidden;background:#eef1f2}
/* drifting clouds over the inner page banners */
.banner-clouds{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bcloud{position:absolute;background:rgba(205,214,221,.96);border-radius:50%;filter:blur(22px);opacity:.95}
.bcloud.c1{width:420px;height:120px;top:14%;left:-440px;animation:cloudSlide 42s linear infinite}
.bcloud.c2{width:320px;height:95px;top:40%;left:-340px;animation:cloudSlide 58s linear infinite;animation-delay:-20s}
.bcloud.c3{width:520px;height:140px;top:60%;left:-540px;animation:cloudSlide 70s linear infinite;animation-delay:-38s}
.bcloud.c4{width:260px;height:80px;top:76%;left:-300px;animation:cloudSlide 50s linear infinite;animation-delay:-12s}
@keyframes cloudSlide{from{transform:translateX(0)}to{transform:translateX(calc(100vw + 900px))}}
.parallax{position:absolute;inset:-12% 0;background-size:cover;background-position:center 0;will-change:transform;z-index:0}
.inner-banner .container,.wide-band .container,.footer-block .container{position:relative;z-index:1}
.inner-header{text-align:center;border-bottom:1px solid var(--line);margin-top:0;padding-bottom:70px}
.inner-header h1{font-size:38px;letter-spacing:5px;margin-bottom:14px;font-weight:400;position:relative;padding-bottom:16px}
.inner-header h1::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:70px;height:4px;border-radius:2px;background:var(--logo-red)}
.page-services .inner-header h1::after{background:var(--logo-blue)}
.page-contact .inner-header h1::after{background:var(--logo-green)}
..page-services ..page-contact .sec-head{text-align:left;margin-bottom:24px}
.faq-sec{background:#f7f9fa}
.faq-list{max-width:800px;margin:0 auto}
.faq-inbox{margin-top:0}
.legal-sec .legal-hero{text-align:center;margin-bottom:36px}
.legal-ill{width:180px;height:144px;margin:0 auto 20px;display:block}
.legal-card{background:#fff;border-radius:12px;padding:24px 28px;margin-bottom:16px;box-shadow:0 4px 16px rgba(0,0,0,.05);border-left:4px solid var(--logo-green)}
.legal-card p{margin:0}
#to-top{position:fixed;bottom:24px;right:24px;width:48px;height:48px;border-radius:50%;background:var(--logo-green);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.2);z-index:999;transition:opacity .3s,transform .3s;opacity:0;pointer-events:none}
#to-top.show{opacity:1;pointer-events:auto}
#to-top:hover{transform:translateY(-3px);background:#1e8449}
#to-top[hidden]{display:none}
.flight-layer svg a{cursor:pointer;pointer-events:all}
.flight-layer svg a:hover image{filter:brightness(1.1)}
.faq-inbox .faq-list.compact .faq-q{font-size:14px;padding:14px 16px}
.faq-inbox .faq-list.compact .faq-a p{font-size:14px;line-height:24px}
.faq-inbox .faq-item{margin-bottom:8px}
.faq-sidebar .faq-list.compact .faq-q{font-size:14px;padding:14px 16px}
.faq-sidebar .faq-list.compact .faq-a p{font-size:14px;line-height:24px}
.faq-sidebar .faq-item{margin-bottom:8px}
.faq-item{background:#fff;border-radius:10px;margin-bottom:12px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.04)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 22px;background:none;border:none;font-family:var(--font-display);font-size:16px;font-weight:600;color:#1a1a1a;cursor:pointer;text-align:left}
.faq-q:hover{color:var(--logo-green)}
.faq-icon{font-size:22px;font-weight:400;color:var(--logo-green);transition:transform .3s ease;flex-shrink:0;margin-left:12px}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-a{padding:0 22px;max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}
.faq-item.open .faq-a{padding:0 22px 18px;max-height:200px}
.faq-a p{font-size:16px;color:var(--grey);line-height:28px;margin:0}
.page-contact .sec-head .section-title{margin-bottom:0}
.page-contact .sec-head .eyebrow{margin-bottom:6px}
.contact-cards{margin-bottom:36px}
.contact-title{margin-bottom:36px}
.contact-address{margin-bottom:36px}
.directions-card{margin:0 0 36px;padding:0;background:none}
.directions-card h3{font-family:var(--font-display);font-size:18px;margin:0 0 8px;color:#1a1a1a}
.directions-card p{font-size:16px;color:var(--grey);margin:0 0 16px}
.book-fields{display:flex;gap:12px;margin-bottom:16px}
.book-fields input{flex:1;padding:12px 14px;border:2px solid #e8ecef;border-radius:10px;font-size:15px;font-family:var(--font-body);transition:border-color .3s,box-shadow .3s}
.book-fields input:focus{outline:none;border-color:var(--logo-green);box-shadow:0 0 0 3px rgba(39,174,96,.15)}
.book-msg{font-size:14px;margin-top:12px;padding:12px;border-radius:8px}
.book-msg.ok{background:#e8f5e9;color:#1b7a3d}
.book-msg.err{background:#fdecea;color:#b71c1c}
.book-picker{display:flex;gap:12px;justify-content:flex-start;margin-bottom:18px;flex-wrap:nowrap;align-items:flex-start}
.book-picker .custom-date-wrap,.book-picker .custom-time-wrap{flex:1;min-width:0}
.book-picker input{width:100%;box-sizing:border-box}
.tz-label{font-size:12px;color:#8a949b;align-self:center}
.custom-time-wrap{position:relative}
.custom-time-list{position:absolute;top:100%;left:0;margin-top:8px;background:#fff;border:2px solid #e8ecef;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.12);padding:8px;z-index:100;min-width:200px;max-height:240px;overflow-y:auto}
.custom-time-list button{display:block;width:100%;text-align:left;padding:10px 14px;border:none;background:none;border-radius:8px;font-size:14px;cursor:pointer;color:#2e2e2e;transition:all .2s;font-family:var(--font-body)}
.custom-time-list button:hover{background:#e8f5e9;color:var(--logo-green)}
.custom-time-list button.selected{background:var(--logo-green);color:#fff;font-weight:700}
.custom-date-wrap{position:relative}
.custom-calendar{position:absolute;top:100%;left:0;margin-top:8px;background:#fff;border:2px solid #e8ecef;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.12);padding:16px;z-index:100;min-width:280px}
.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.cal-header button{background:#f0f4f8;border:none;border-radius:8px;width:32px;height:32px;font-size:16px;cursor:pointer;color:#2e2e2e;transition:background .2s}
.cal-header button:hover{background:var(--logo-green);color:#fff}
.cal-header span{font-family:var(--font-display);font-weight:700;font-size:15px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-grid .cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;border-radius:8px;cursor:pointer;transition:all .2s;border:none;background:none;color:#2e2e2e}
.cal-grid .cal-day:hover:not(:disabled){background:#e8f5e9;color:var(--logo-green)}
.cal-grid .cal-day.selected{background:var(--logo-green);color:#fff;font-weight:700}
.cal-grid .cal-day:disabled{opacity:.3;cursor:not-allowed}
.cal-grid .cal-dow{font-size:11px;font-weight:700;color:#8a949b;text-transform:uppercase}
.book-picker input,.book-picker select{padding:12px 14px;border:2px solid #e8ecef;border-radius:10px;font-size:15px;background:#fff;font-family:var(--font-body);color:#2e2e2e;transition:border-color .3s ease,box-shadow .3s ease;cursor:pointer}
.book-picker input:hover,.book-picker select:hover{border-color:var(--logo-green)}
.book-picker input:focus,.book-picker select:focus{outline:none;border-color:var(--logo-green);box-shadow:0 0 0 3px rgba(39,174,96,.15)}
.book-picker input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}
.tz-label{font-size:13px;color:var(--grey);align-self:center;font-style:italic}

.contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}
.contact-card{background:#fff;border-radius:10px;padding:20px;border-left:4px solid var(--logo-green);box-shadow:0 6px 18px rgba(0,0,0,.06);transition:transform .3s ease,box-shadow .3s ease}
.contact-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.1)}
.contact-card h4{font-family:var(--font-display);font-size:13px;letter-spacing:1.5px;color:var(--logo-green);margin:0 0 8px;text-transform:uppercase}
.contact-card p{margin:0;font-size:14px}
.contact-card p span{display:block;font-size:12px;color:#8a949b;margin-top:4px}
.page-contact ..inner-header{animation:bannerTitleIn 1s cubic-bezier(.19,1,.22,1) both}
@keyframes bannerTitleIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.inner-header>span{color:var(--grey);letter-spacing:2px;font-size:16px}

/* ---------- grids ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.grid-2.contact-grid{align-items:stretch}
.contact-right{display:flex;flex-direction:column}

.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:60px;align-items:start}

/* ---------- value cards ---------- */
.value-card{background:#fff;color:#3a3a3a;text-align:center;padding:80px 36px 50px;margin-top:30px;position:relative;transition:transform .35s ease;border-radius:10px;box-shadow:0 10px 34px rgba(0,0,0,.08);border-top:6px solid var(--logo-red)}
.value-card:nth-child(2){border-top-color:var(--logo-blue)}
.value-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px rgba(0,0,0,.14)}
.value-card:hover .value-icon{transform:scale(1.15)}
.value-card .value-icon{transition:transform .4s cubic-bezier(.19,1,.22,1)}
.value-card .value-icon{display:inline-block;transition:transform .4s ease}

.value-card:hover .value-icon{animation:iconSpin .6s ease}
@keyframes iconSpin{to{transform:rotate(360deg)}}
@keyframes iconPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.sec-head .section-title{animation:slideInLeft .8s cubic-bezier(.19,1,.22,1) both}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
.tl-dot{animation:dotPulse 2.5s ease-in-out infinite}
@keyframes dotPulse{0%,100%{box-shadow:0 0 0 3px var(--c)}50%{box-shadow:0 0 0 7px var(--c)}}


.value-card .value-icon{color:var(--logo-red)}
.value-card:nth-child(2) .value-icon{color:var(--logo-blue)}
.value-card:hover{transform:translateY(-6px)}
.value-icon{margin-bottom:26px}
.value-icon svg{width:52px;height:52px;stroke:var(--logo-red);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.value-card:nth-child(2) .value-icon svg{stroke:var(--logo-blue)}
.value-card h3{color:#1a1a1a;letter-spacing:4px;font-size:19px;margin-bottom:14px;font-weight:600}
.value-card p{font-size:15px;color:#2e2e2e;line-height:1.7}
.text-block{padding:40px 10px}
.bangalore-note strong{color:var(--logo-red)}
.text-block h3{font-size:27px;margin-bottom:16px}
.text-block p{margin-bottom:26px}

/* ---------- mockup / model ---------- */
.mockup{position:relative}
.mockup-frame{display:block;overflow:hidden;border-radius:4px;margin-bottom:28px}
.ill-title{text-align:center;margin:22px 0 0;line-height:1.3}
.ill-title .ill-line{display:block;font-size:18px;color:#8a949b;letter-spacing:3px;text-transform:uppercase;font-weight:400}
.ill-title .ill-word{display:inline-block;font-size:30px;color:var(--logo-red);font-weight:700;letter-spacing:1px;position:relative}
.ill-title .ill-word::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--logo-red);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1)}
.ill-title:hover .ill-word::after{transform:scaleX(1)}
.about-illust svg{width:100%;height:auto;display:block}
.gear-spin{transform-box:fill-box;transform-origin:center;animation:gearTurn 24s linear infinite}
@keyframes gearTurn{to{transform:rotate(360deg)}}
.person-bob{animation:bob 3.2s ease-in-out infinite}
.person-bob.p2{animation-delay:-1.6s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.float-dot{animation:floatUp 5s ease-in-out infinite}
.float-dot.d2{animation-delay:-1.2s}.float-dot.d3{animation-delay:-2.5s}.float-dot.d4{animation-delay:-3.8s}
@keyframes floatUp{0%,100%{transform:translateY(0);opacity:.6}50%{transform:translateY(-12px);opacity:1}}
.sparkle{transform-box:fill-box;transform-origin:center;animation:twinkle 2.4s ease-in-out infinite}
.sparkle.s2{animation-delay:-.8s}.sparkle.s3{animation-delay:-1.6s}
@keyframes twinkle{0%,100%{transform:scale(.7);opacity:.5}50%{transform:scale(1.15);opacity:1}}
.mockup-frame img{display:block;width:100%;height:auto;transition:transform .6s cubic-bezier(.19,1,.22,1)}
.mockup:hover .mockup-frame img{transform:scale(1.05)}
.mockup .fancy-btn{position:absolute;left:50%;bottom:-34px;transform:translateX(-50%) rotate(-90deg);background:#787979;color:#fff;box-shadow:none;border-radius:50px}
.mockup .fancy-btn strong{color:#fff}
.eyebrow{display:inline-block;font-size:13px;letter-spacing:3px;text-transform:uppercase;color:var(--grey);margin-bottom:8px}
.model-sec h3{font-size:30px;margin-bottom:16px}
.model-sec>p{margin-bottom:26px}
.check-list{margin-top:40px}
.check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.check-list li{padding:18px 20px;margin:0;background:#fff;border-radius:8px;border-left:5px solid var(--logo-red);box-shadow:0 10px 30px rgba(0,0,0,.12);transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column;gap:6px}

.check-list li:nth-child(2){border-left-color:var(--logo-yellow)}
.check-list li:nth-child(3){border-left-color:var(--logo-blue)}
.check-list li:nth-child(4){border-left-color:var(--logo-green)}
.check-list li:nth-child(5){border-left-color:var(--logo-red)}
.check-list li:nth-child(6){border-left-color:var(--logo-yellow)}
.check-list li:hover{transform:translateY(-5px)!important;box-shadow:0 14px 32px rgba(0,0,0,.16)!important}
.check-list li span{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#8a949b;font-weight:600}
.check-list li strong{display:block;font-size:15px;color:#1a1a1a;font-weight:600;line-height:1.4}
@media(max-width:700px){.check-list{grid-template-columns:1fr}}

.check-list span{color:#4a4a4a;font-style:italic;float:left;width:150px;font-size:15px}
.check-list strong{color:#1d1d1d;font-style:italic;font-weight:400;font-size:15px}

/* ---------- wide band ---------- */
.wide-band{position:relative;padding:70px 0;overflow:hidden;background:#f7f9fa}
.wide-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.wide-text p{font-size:16px;color:#4a4a4a;line-height:1.7;margin-bottom:24px}
.wide-ill svg{width:100%;max-width:320px;height:auto;margin:0 auto;display:block}
.wide-ill path{stroke-dasharray:150;stroke-dashoffset:150}
.wide-ill.in path,.wide-ill path.go{animation:drawCheck 1.5s .3s ease forwards}
@keyframes drawCheck{to{stroke-dashoffset:0}}
.wide-ill circle[cx="150"]{transform-box:fill-box;transform-origin:center;animation:circlePulse 3s ease-in-out infinite}
@keyframes circlePulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.04);opacity:.9}}
.wide-ill .float-dot{animation:floatUp 4s ease-in-out infinite}
.wide-ill .float-dot.d2{animation-delay:-1s}.wide-ill .float-dot.d3{animation-delay:-2s}.wide-ill .float-dot.d4{animation-delay:-3s}
@media(max-width:800px){.wide-grid{grid-template-columns:1fr}}
.wb-pattern{display:none}
.wide-block{max-width:480px;color:#fff}
.wide-block h3{color:#1a1a1a;letter-spacing:2px;font-size:28px;margin-bottom:16px}
.wide-block p{color:#eaf4fb;margin-bottom:10px}

/* ---------- dark fun facts ---------- */
.dark-strip{background:#f2f4f6;padding:70px 0}
.timeline-track{position:relative;max-width:800px;margin:0 auto;padding-left:40px}
.timeline-track::before{content:"";position:absolute;left:14px;top:10px;bottom:10px;width:3px;background:linear-gradient(to bottom,var(--logo-red),var(--logo-yellow),var(--logo-blue),var(--logo-green));border-radius:2px}
.who-deco{display:block;width:220px;height:auto;margin:0 auto 16px}
.who-deco .who-p1{animation:whoBob 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.who-deco .who-p2{animation:whoBob 3s ease-in-out 1.5s infinite;transform-box:fill-box;transform-origin:center}
@keyframes whoBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.who-deco .who-link{animation:dashMove 3s linear infinite}
.cv-deco,.tj-deco{display:block;margin:0 auto 20px;height:auto}
.cv-deco{width:300px}
.tj-deco{width:300px}
.cv-deco .cv-heart{animation:heartBeat 2.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes heartBeat{0%,100%{transform:scale(1)}25%{transform:scale(1.15)}50%{transform:scale(1)}}
.cv-deco .cv-star{animation:starSpin 6s linear infinite;transform-box:fill-box;transform-origin:center}
.cv-deco .cv-check{animation:checkDraw 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes checkDraw{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.2);opacity:1}}
@keyframes starSpin{to{transform:rotate(360deg)}}
.tj-deco .tj-path{animation:tjDash 3s linear infinite}
@keyframes tjDash{to{stroke-dashoffset:-20}}
.tj-deco .tj-dot{animation:tjDot 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.tj-deco .tj-dot.d2{animation-delay:.3s}
.tj-deco .tj-dot.d3{animation-delay:.6s}
@keyframes tjDot{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.25)}}
.tj-deco .tj-arrow{animation:arrowPulse 2s ease-in-out infinite}
@keyframes arrowPulse{0%,100%{opacity:1}50%{opacity:.5}}
.tj-deco .tj-end{animation:tjPop 2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes tjPop{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}
@media(prefers-reduced-motion:reduce){.who-deco *,.cv-deco *,.tj-deco *{animation:none!important}}
.journey-deco{width:100%;max-width:560px;height:auto;margin:0 auto 30px;display:block}
.journey-deco .j-dot{animation:jDotBounce 1.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.journey-deco .j-dot.d2{animation-delay:.3s}
.journey-deco .j-dot.d3{animation-delay:.6s}
@keyframes jDotBounce{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.35)}}
.journey-deco .j-walker{animation:walkPath 6s ease-in-out infinite}
@keyframes walkPath{0%{transform:translate(0,0)}25%{transform:translate(90px,-18px)}50%{transform:translate(180px,-2px)}75%{transform:translate(270px,-12px)}100%{transform:translate(350px,-18px)}}
.journey-deco .j-path{stroke-dasharray:8 6;animation:dashMove 20s linear infinite}
@keyframes dashMove{to{stroke-dashoffset:-280}}
@media(prefers-reduced-motion:reduce){.journey-deco *{animation:none!important}}
.tl-item{position:relative;padding:0 0 36px 20px}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:-34px;top:4px;width:16px;height:16px;border-radius:50%;background:var(--c);border:3px solid #f2f4f6;box-shadow:0 0 0 3px var(--c)}
.tl-item h4{color:#1a1a1a;font-size:20px;margin:0 0 8px;letter-spacing:1px}
.tl-item p{color:#4a4a4a;font-size:15px;margin:0;line-height:1.6}
.fun-facts{display:flex;justify-content:space-between;gap:20px}
/* ---------- dartboard: we hit our targets ---------- */
.how-section{background:#f7f9fa}
.sec-sub{font-size:15px;color:#6a737b;max-width:600px;margin:-10px auto 30px;text-align:center}
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.how-deco{display:block;width:240px;height:auto;margin:0 auto 20px}
.how-deco .how-g1,.how-deco .how-g2,.how-deco .how-g3{animation:howBounce 2.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.how-deco .how-g2{animation-delay:.5s}
.how-deco .how-g3{animation-delay:1s}
@keyframes howBounce{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.1)}}
.how-deco .how-link{animation:dashMove 2s linear infinite}
@media(prefers-reduced-motion:reduce){.how-deco *{animation:none!important}}
.process-flow{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:30px}
.process-line{position:absolute;top:54px;left:12%;right:12%;height:4px;background:linear-gradient(90deg,var(--logo-blue),var(--logo-red),#d4a017,var(--logo-green));border-radius:2px;opacity:.3}
.step-node{position:relative;text-align:center}
.step-dot{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--sd);color:#fff;font-size:20px;font-weight:700;margin-bottom:20px;box-shadow:0 6px 18px rgba(0,0,0,.15);position:relative;z-index:1;transition:transform .35s ease}
.step-node:hover .step-dot{transform:scale(1.15)}
.step-box{background:#fff;border-radius:12px;padding:24px 20px;box-shadow:0 8px 24px rgba(0,0,0,.06);transition:transform .35s ease,box-shadow .35s ease}
.step-node:hover .step-box{transform:translateY(-6px);box-shadow:0 14px 32px rgba(0,0,0,.1)}
.step-box h4{font-size:16px;margin:0 0 10px;color:#1a1a1a}
.step-box p{font-size:13px;color:#4a4a4a;line-height:1.6;margin:0}
@media(max-width:800px){.process-flow{grid-template-columns:1fr;gap:32px}.process-line{display:none}}
.step-card{background:#fff;border-radius:12px;padding:32px 24px;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.06);border-top:4px solid var(--logo-blue);transition:transform .35s ease,box-shadow .35s ease;position:relative}
.step-card:nth-child(2){border-top-color:var(--logo-red)}
.step-card:nth-child(3){border-top-color:var(--logo-yellow)}
.step-card:nth-child(4){border-top-color:var(--logo-green)}
.step-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(0,0,0,.1)}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--logo-blue);color:#fff;font-size:20px;font-weight:700;margin-bottom:16px}
.step-card:nth-child(2) .step-num{background:var(--logo-red)}
.step-card:nth-child(3) .step-num{background:#d4a017}
.step-card:nth-child(4) .step-num{background:var(--logo-green)}
.step-card h4{font-size:17px;margin:0 0 10px;color:#1a1a1a}
.step-card p{font-size:14px;color:#4a4a4a;line-height:1.6;margin:0}
.industries-section,.tech-section{position:relative;overflow:hidden}
.ind-map{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:95%;max-width:1000px;height:auto;pointer-events:none;z-index:0;opacity:.9}
.ind-map .map-pulse{animation:mapPulse 4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
.ind-map .map-pulse.d2{animation-delay:1.3s}
.ind-map .map-pulse.d3{animation-delay:2.6s}
@keyframes mapPulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.05);opacity:.9}}
.industries-section .container{position:relative;z-index:1}
.tech-float{position:absolute;top:20px;left:0;width:100%;height:120px;pointer-events:none;z-index:0}
.tech-float .tf-1,.tech-float .tf-2,.tech-float .tf-3{transform-box:fill-box;transform-origin:center}
.tech-float .tf-1{animation:techFloat 3s ease-in-out infinite}
.tech-float .tf-2{animation:techFloat 3.5s ease-in-out .7s infinite}
.tech-float .tf-3{animation:techFloat 4s ease-in-out 1.4s infinite}
.tech-section .container{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.ind-map *,.tech-float *{animation:none!important}}
.ind-deco{display:block;width:260px;height:auto;margin:0 auto 20px}
.ind-deco .ind-globe{animation:globeSpin 12s linear infinite;transform-box:fill-box;transform-origin:center}
@keyframes globeSpin{to{transform:rotate(360deg)}}
.ind-deco .ind-sat{animation:satOrbit 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.ind-deco .ind-sat.s2{animation-delay:1.3s}
.ind-deco .ind-sat.s3{animation-delay:2.6s}
@keyframes satOrbit{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.2)}}
@media(prefers-reduced-motion:reduce){.ind-deco *{animation:none!important}}
.industries-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.industry-card{background:#fff;border-radius:12px;padding:32px 24px;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.06);border-top:4px solid var(--logo-blue);transition:transform .35s ease,box-shadow .35s ease}
.industry-card:nth-child(2){border-top-color:var(--logo-red)}
.industry-card:nth-child(3){border-top-color:var(--logo-yellow)}
.industry-card:nth-child(4){border-top-color:var(--logo-green)}
.industry-card:nth-child(5){border-top-color:var(--logo-blue)}
.industry-card:nth-child(6){border-top-color:var(--logo-red)}
.industry-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(0,0,0,.1)}
.ind-icon{display:inline-flex;width:60px;height:60px;border-radius:50%;background:#f0f4f8;color:var(--ic);align-items:center;justify-content:center;margin-bottom:18px;transition:transform .4s ease}
.industry-card:hover .ind-icon{transform:scale(1.12)}
.ind-icon svg{width:28px;height:28px}
.industry-card h4{font-size:16px;margin:0 0 10px;color:#1a1a1a}
.industry-card p{font-size:13px;color:#6a737b;line-height:1.6;margin:0}
.tech-section{background:#f7f9fa}
.tech-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.tech-group{background:#fff;border-radius:10px;padding:24px;box-shadow:0 6px 20px rgba(0,0,0,.05);animation:techGlow 4s ease-in-out infinite;transition:transform .35s ease}
.tech-group:nth-child(2){animation-delay:.5s}
.tech-group:nth-child(3){animation-delay:1s}
.tech-group:nth-child(4){animation-delay:1.5s}
.tech-group:nth-child(5){animation-delay:2s}
.tech-group:nth-child(6){animation-delay:2.5s}
.tech-group:nth-child(7){animation-delay:3s}
.tech-group:nth-child(8){animation-delay:3.5s}
@keyframes techGlow{0%,100%{box-shadow:0 6px 20px rgba(0,0,0,.05)}50%{box-shadow:0 8px 28px rgba(41,128,185,.18)}}
.tech-group:hover{transform:translateY(-4px);animation:none;box-shadow:0 12px 32px rgba(41,128,185,.22)}
.tech-group h4{font-size:14px;letter-spacing:1.5px;color:var(--logo-blue);margin:0 0 14px;text-transform:uppercase}
.tech-tags{display:flex;flex-wrap:wrap;gap:8px}
.tech-tags span{background:#f0f4f8;color:#2e2e2e;font-size:13px;padding:6px 14px;border-radius:20px;transition:all .3s ease}
.tech-tags span:hover{background:var(--logo-blue);color:#fff;transform:translateY(-2px)}
.tech-note{font-size:12px;color:#6a737b;line-height:1.5;margin:12px 0 0;font-style:italic}
.dart-section{background:#f4f6f7}
.philo-track-flex{display:flex!important;align-items:center;gap:40px}.philo-track-flex>div{flex:1!important;min-width:0}@media(max-width:900px){.philo-track-flex{flex-direction:column!important}}.dart-grid{align-items:center;gap:40px}
.quick-links{display:flex;gap:28px;justify-content:center;list-style:none;padding:0;margin:0 0 10px;flex-wrap:wrap}
.quick-links a{color:#555;font-size:14px;font-weight:500;text-decoration:none;position:relative}
.values-link{color:var(--logo-blue);font-weight:600;text-decoration:none;border-bottom:2px solid var(--logo-blue)}
.values-link:hover{color:var(--logo-red);border-color:var(--logo-red)}
.quote-card{background:#fff;border-radius:12px;padding:28px 24px;border-left:5px solid var(--logo-red);box-shadow:0 8px 24px rgba(0,0,0,.07);margin:20px 0;position:relative}
.quote-card .qc-mark{font-size:48px;color:var(--logo-red);opacity:.3;line-height:1;font-family:Georgia,serif;display:block;margin-bottom:4px}
.quote-card p{font-size:16px;color:#2e2e2e;line-height:1.7;margin:0}
.quote-card strong{color:var(--logo-red)}
.quote-card em{color:var(--logo-blue);font-style:normal;font-weight:600}
.quote-card.blue{border-left-color:var(--logo-blue)}
.quote-card.blue .qc-mark{color:var(--logo-blue)}
.quote-card.blue strong{color:var(--logo-blue)}
.quote-card.blue em{color:var(--logo-red)}
.quote-card.green{border-left-color:var(--logo-green)}
.quote-card.green .qc-mark{color:var(--logo-green)}
.quote-card.green strong{color:var(--logo-green)}
.quote-card.green em{color:var(--logo-blue)}
.bullseye-quote{background:#fff;border-radius:12px;padding:28px 24px;border-left:5px solid var(--logo-blue);box-shadow:0 8px 24px rgba(0,0,0,.07);margin-top:20px;position:relative}
.bullseye-quote .bq-mark{font-size:48px;color:var(--logo-blue);opacity:.3;line-height:1;font-family:Georgia,serif;display:block;margin-bottom:4px}
.bullseye-quote p{font-size:17px;color:#2e2e2e;line-height:1.7;margin:0}
.bullseye-quote strong{color:var(--logo-blue)}
.bullseye-quote em{color:var(--logo-red);font-style:normal;font-weight:600}
.dart-values{margin-top:18px;font-size:15px;color:#6a757b}.dart-values strong{color:#2e2e2e;font-weight:600}
/* ---------- solar system: everything revolves around you ---------- */
.orbit-section{background:#eef2f5}
.solar{width:100%;max-width:430px;height:auto;display:block;margin:0 auto}
.porbit{transform-box:view-box;transform-origin:200px 200px}
.orbit-wrap.in .po1{animation:orbitSpin 14s linear infinite}
.orbit-wrap.in .po2{animation:orbitSpin 24s linear -8s infinite}
.orbit-wrap.in .po3{animation:orbitSpin 36s linear -22s infinite reverse}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
.orbit-wrap.in .sun-halo{transform-box:fill-box;transform-origin:center;animation:sunBreathe 4s ease-in-out infinite}
@keyframes sunBreathe{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}
.orbit-wrap.in .sun-core{transform-box:fill-box;transform-origin:center;animation:sunSpin 40s linear infinite}
@keyframes sunSpin{to{transform:rotate(360deg)}}
.dartboard{width:100%;max-width:430px;height:auto;display:block;margin:0 auto}
.dartboard-wrap.in .dartboard{animation:boardShake 3.2s ease-out}
@keyframes boardShake{0%,35.9%,38.1%,56.9%,58.1%,76.9%,78.1%,100%{transform:translate(0,0)}36%{transform:translate(2.5px,-1.5px)}37%{transform:translate(-1.5px,1px)}57%{transform:translate(-2.5px,1.5px)}58%{transform:translate(1.5px,-1px)}77%{transform:translate(2px,2px)}78%{transform:translate(-1px,-1.5px)}}
.dartboard .dart{opacity:0}
.dartboard-wrap.in .dart-1{animation:dartFly1 .75s cubic-bezier(.25,.8,.3,1.1) .35s forwards}
.dartboard-wrap.in .dart-2{animation:dartFly2 .75s cubic-bezier(.25,.8,.3,1.1) .95s forwards}
.dartboard-wrap.in .dart-3{animation:dartFly3 .75s cubic-bezier(.25,.8,.3,1.1) 1.55s forwards}
@keyframes dartFly1{0%{opacity:0;transform:translate(200px,-180px)}12%{opacity:1}68%{opacity:1;transform:translate(0,0)}71%{transform:translate(0,0) rotate(1.4deg)}74%{transform:translate(0,0) rotate(-1deg)}77%{transform:translate(0,0) rotate(0.6deg)}80%{transform:translate(0,0) rotate(-0.3deg)}83%,100%{opacity:1;transform:translate(0,0) rotate(0)}}
@keyframes dartFly2{0%{opacity:0;transform:translate(-200px,-160px)}12%{opacity:1}68%{opacity:1;transform:translate(0,0)}71%{transform:translate(0,0) rotate(1.4deg)}74%{transform:translate(0,0) rotate(-1deg)}77%{transform:translate(0,0) rotate(0.6deg)}80%{transform:translate(0,0) rotate(-0.3deg)}83%,100%{opacity:1;transform:translate(0,0) rotate(0)}}
@keyframes dartFly3{0%{opacity:0;transform:translate(70px,200px)}12%{opacity:1}68%{opacity:1;transform:translate(0,0)}71%{transform:translate(0,0) rotate(1.4deg)}74%{transform:translate(0,0) rotate(-1deg)}77%{transform:translate(0,0) rotate(0.6deg)}80%{transform:translate(0,0) rotate(-0.3deg)}83%,100%{opacity:1;transform:translate(0,0) rotate(0)}}
.dartboard .shock{opacity:0;transform-box:fill-box;transform-origin:center}
.dartboard-wrap.in .s1{animation:shockWave .6s ease-out 1.1s forwards}
.dartboard-wrap.in .s2{animation:shockWave .6s ease-out 1.7s forwards}
.dartboard-wrap.in .s3{animation:shockWave .6s ease-out 2.3s forwards}
@keyframes shockWave{0%{opacity:.85;transform:scale(.4)}100%{opacity:0;transform:scale(2.4)}}
.dartboard-wrap.in .bullseye{transform-box:fill-box;transform-origin:center;animation:bullPulse 3s ease-in-out 2.6s infinite}
@keyframes bullPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.fun-fact{flex:1;text-align:center;color:#fff;padding:0 12px}
.ff-icon{display:inline-flex;width:64px;height:64px;border-radius:50%;background:#414141;align-items:center;justify-content:center;margin-bottom:14px;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
/* playful icon wobble when hovering a fun-fact */
.fun-fact:hover .ff-icon{transform:rotate(-12deg) scale(1.12)}
.ff-icon svg{width:26px;height:26px;color:#bebebe}
.ff-year{display:block;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#9a9a9a}
.fun-fact h4{color:#fff;font-size:27px;font-weight:200;margin:24px 0 5px}
.fun-fact p{font-size:13px;color:#bdbdbd;letter-spacing:1px;text-transform:uppercase;line-height:1.9}

/* transformation rings */
.rings{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:10px;max-width:100%}
.ring-card{text-align:center;padding:24px 16px;background:#fff;border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.07);transition:transform .35s ease,box-shadow .35s ease}
.ring-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.12)}
.ring{width:110px;height:110px;margin:0 auto 14px;transition:transform .5s cubic-bezier(.19,1,.22,1)}
.ring-card:hover .ring{transform:scale(1.12)}
.ring circle[data-target]{transition:stroke-dashoffset 2.2s cubic-bezier(.34,1.3,.5,1);filter:drop-shadow(0 0 6px rgba(0,0,0,.15))}
.ring-num{font-family:var(--font-head);font-size:22px;font-weight:700;fill:#2e2e2e}
.ring-card h4{font-size:13px;letter-spacing:2px;margin:0 0 8px;color:#2e2e2e}
.ring-card p{font-size:13px;color:#8a949b;margin:0}

/* ---------- accordion / skills ---------- */
.sec-head{margin-bottom:40px}
.values-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:28px;margin-top:10px;max-width:1100px;margin-left:auto;margin-right:auto;justify-content:center}
.value-feat{background:#fff;border-radius:12px;padding:36px 28px;text-align:center;box-shadow:0 8px 28px rgba(0,0,0,.07);border-top:6px solid var(--vc);transition:transform .35s ease,box-shadow .35s ease;position:relative;overflow:hidden}
.value-feat:hover{transform:translateY(-8px);box-shadow:0 18px 44px rgba(0,0,0,.12)}
.value-feat::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--vc);opacity:.15}
.vf-icon{display:inline-flex;width:72px;height:72px;border-radius:50%;background:color-mix(in srgb,var(--vc) 12%,#fff);color:var(--vc);align-items:center;justify-content:center;margin-bottom:20px;transition:transform .4s ease}
.value-feat:hover .vf-icon{transform:scale(1.12) rotate(8deg)}
.vf-icon svg{width:36px;height:36px}
.value-feat h4{font-size:13px;letter-spacing:1px;margin:0 0 14px;color:#1a1a1a;line-height:1.5;hyphens:none;word-break:keep-all}
.value-feat p{font-size:14px;color:#4a4a4a;line-height:1.7;margin:0}
@media(max-width:900px){.values-grid{grid-template-columns:1fr;max-width:500px}}
.section-title{font-size:23px;letter-spacing:2px;margin-bottom:28px;position:relative;padding-bottom:14px}
.section-title::after{content:"";position:absolute;left:0;bottom:0;width:60px;height:4px;border-radius:2px;background:var(--logo-red)}
.section-title.c-yellow::after{background:var(--logo-yellow)}
.section-title.c-blue::after{background:var(--logo-blue)}
.section-title.c-green::after{background:var(--logo-green)}
.acc-item{margin-bottom:10px}
.acc-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:2px solid var(--line);background:#fff;cursor:pointer;padding:21px 50px;font-family:var(--font-display);font-size:15px;color:#7e7e7e;text-align:left;margin-bottom:10px;transition:border-color .3s ease}
.acc-head:hover{border-color:#c9cfd0}
.acc-ind{position:relative;flex:0 0 26px;width:26px;height:26px;border-radius:50%;border:1px solid #d5d9da}
.acc-ind::before,.acc-ind::after{content:"";position:absolute;background:#7e7e7e;left:50%;top:50%}
.acc-ind::before{width:10px;height:2px;margin:-1px 0 0 -5px}
.acc-ind::after{width:2px;height:10px;margin:-5px 0 0 -1px;transition:transform .3s ease}
.acc-head[aria-expanded="true"]{color:var(--ink)}
.acc-head[aria-expanded="true"] .acc-ind{background:var(--ink);border-color:var(--ink)}
.acc-head[aria-expanded="true"] .acc-ind::before,.acc-head[aria-expanded="true"] .acc-ind::after{background:#fff}
.acc-head[aria-expanded="true"] .acc-ind::after{transform:rotate(90deg)}
.acc-panel{max-height:0;overflow:hidden;transition:max-height .45s ease}
.acc-panel p{padding:6px 50px 28px}
.skill{margin-bottom:28px}
.skill-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.skill-row h4{font-size:14px;letter-spacing:1px;font-weight:400}
.skill-row strong{font-family:var(--font-head);color:var(--ink);font-weight:400}
.bar{height:5px;background:#efefef;position:relative}
.bar span{display:block;height:2px;background:#333;position:absolute;top:2px;left:0;width:0;transition:width 1.2s cubic-bezier(.2,.7,.2,1)}

/* ---------- services ---------- */
.title2{text-align:center;margin-bottom:70px}
.title2 h3{font-size:38px;margin-bottom:10px;font-weight:400}
.title2>span{display:block;color:var(--grey);letter-spacing:3px;text-transform:uppercase;font-size:14px;margin-bottom:30px}
.title2 p{max-width:800px;margin:0 auto 18px}
.title2 a{color:var(--blue-link);position:relative}
.ai-badge{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#f7f9fa 0%,#eef1f3 100%);border:1px solid #e0e6ea;border-left:5px solid var(--logo-blue);border-radius:10px;padding:18px 22px;margin:28px 0 10px}
.ai-badge .ai-icon{display:flex;align-items:center;justify-content:center;min-width:52px;height:52px;border-radius:12px;background:var(--logo-blue);color:#fff;font-weight:700;font-size:18px;letter-spacing:1px}
.ai-badge p{margin:0;font-size:15px;color:#2e2e2e}
.services-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;margin-bottom:40px}
.sh-text .eyebrow{color:var(--logo-blue)}
.sh-lead{font-size:20px;font-weight:600;color:#1a1a1a;margin-bottom:16px}
.sh-text p{font-size:15px;color:#4a4a4a;line-height:1.7;margin-bottom:14px}
.sh-ill svg{width:100%;max-width:320px;height:auto}
.anim-svg .float-a{animation:floatY 5s ease-in-out infinite}
.anim-svg .float-b{animation:floatY 6s ease-in-out 1s infinite}
.anim-svg .float-c{animation:floatY 5.5s ease-in-out .5s infinite}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes techFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(12deg)}}
.anim-svg .draw-check{stroke-dasharray:60;stroke-dashoffset:60;animation:drawCheck 2s 1s ease forwards}
@media(prefers-reduced-motion:reduce){.anim-svg *{animation:none!important}}
.ai-feature{display:flex;gap:20px;align-items:flex-start;background:linear-gradient(135deg,#f0f7ff 0%,#e8f4fd 100%);border-radius:12px;padding:28px;border-left:5px solid var(--logo-blue);margin-bottom:40px;box-shadow:0 8px 24px rgba(41,128,185,.1)}
.ai-badge-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;background:var(--logo-blue);color:#fff;font-weight:800;font-size:20px;flex-shrink:0;animation:aiPulse 3s ease-in-out infinite}
@keyframes aiPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(41,128,185,.4)}50%{transform:scale(1.08);box-shadow:0 0 0 12px rgba(41,128,185,0)}}
.ai-feature h4{font-size:17px;margin:0 0 8px;color:#1a1a1a}
.ai-feature p{font-size:14px;color:#4a4a4a;line-height:1.6;margin:0}
@media(max-width:800px){.services-hero{grid-template-columns:1fr}.sh-ill{display:none}}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:30px}
.service-card{background:#fff;border-radius:10px;padding:28px 24px;border-left:5px solid var(--logo-blue);box-shadow:0 8px 24px rgba(0,0,0,.07);transition:transform .35s ease,box-shadow .35s ease;position:relative}
.service-card:nth-child(4n+2){border-left-color:var(--logo-red)}
.service-card:nth-child(4n+3){border-left-color:var(--logo-yellow)}
.service-card:nth-child(4n+4){border-left-color:var(--logo-green)}
.service-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.12)}
.service-card .service-icon{display:inline-flex;width:56px;height:56px;border-radius:12px;background:#f0f4f8;color:var(--logo-blue);align-items:center;justify-content:center;margin-bottom:16px;font-size:24px;transition:transform .4s cubic-bezier(.19,1,.22,1)}
.service-card:hover .service-icon{transform:scale(1.15) rotate(-8deg)}
.service-card .service-icon svg{animation:iconWiggle 3s ease-in-out infinite;transform-origin:center}
@keyframes iconWiggle{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-4px) rotate(-6deg)}75%{transform:translateY(-4px) rotate(6deg)}}
.service-card:nth-child(2) .service-icon svg{animation-delay:.3s}
.service-card:nth-child(3) .service-icon svg{animation-delay:.6s}
.service-card:nth-child(4) .service-icon svg{animation-delay:.9s}
.service-card:nth-child(5) .service-icon svg{animation-delay:1.2s}
.service-card:nth-child(6) .service-icon svg{animation-delay:1.5s}
.service-card:nth-child(7) .service-icon svg{animation-delay:1.8s}
.service-card:nth-child(8) .service-icon svg{animation-delay:2.1s}
.service-card:nth-child(9) .service-icon svg{animation-delay:2.4s}
.service-card:nth-child(10) .service-icon svg{animation-delay:2.7s}
.service-card:nth-child(11) .service-icon svg{animation-delay:3s}
.service-card:nth-child(12) .service-icon svg{animation-delay:3.3s}

@media(prefers-reduced-motion:reduce){.service-card .service-icon svg{animation:none}}
.service-card:nth-child(4n+2) .service-icon{color:var(--logo-red);background:#fef0ef}
.service-card:nth-child(4n+3) .service-icon{color:#b7950b;background:#fef9e7}
.service-card:nth-child(4n+4) .service-icon{color:var(--logo-green);background:#eafaf1}
.service-card h3{font-size:17px;margin:0 0 10px;color:#1a1a1a}
.service-card p{font-size:14px;color:#4a4a4a;line-height:1.6;margin:0}
.service-card{text-align:center;padding:20px 10px;transition:transform .35s ease}
.service-card:hover{transform:translateY(-6px)}
.service-icon{margin-bottom:22px}
.service-icon svg{width:38px;height:38px;color:#9aa0a2}
.service-card h3{font-size:17px;letter-spacing:2px;margin-bottom:12px;text-transform:uppercase;font-weight:400}
.service-card p{font-size:14.5px}

/* ---------- testimonials ---------- */
.reviews-deco{width:120px;height:60px;margin:10px auto 0;display:block}
.reviews-deco .float-a{animation:floatY 4s ease-in-out infinite}
.reviews-deco .float-b{animation:floatY 5s ease-in-out 1s infinite}
.reviews-deco .float-c{animation:floatY 4.5s ease-in-out .5s infinite}
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.review-card{background:#fff;border-radius:12px;padding:32px 28px;box-shadow:0 8px 28px rgba(0,0,0,.07);border-top:5px solid var(--logo-blue);position:relative;transition:transform .35s ease,box-shadow .35s ease}
.review-card:nth-child(2){border-top-color:var(--logo-red)}
.review-card:nth-child(3){border-top-color:var(--logo-green)}
.review-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.12)}
.review-card .quote-mark{font-size:56px;color:var(--logo-blue);opacity:.25;line-height:1;display:block;margin-bottom:8px;font-family:Georgia,serif}
.review-card:nth-child(2) .quote-mark{color:var(--logo-red)}
.review-card:nth-child(3) .quote-mark{color:var(--logo-green)}
.review-card p{font-size:15px;color:#2e2e2e;line-height:1.7;margin:0 0 20px;font-style:italic}
.reviewer{display:flex;align-items:center;gap:14px}
.reviewer img{border-radius:50%;object-fit:cover;border:3px solid #f0f4f8;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.reviewer h4{font-size:15px;margin:0 0 4px;color:#1a1a1a}
.reviewer span{font-size:13px;color:var(--logo-blue);font-weight:600}
.reviews-sec{position:relative;background:#f7f9fa}
.reviews{text-align:center;position:relative;z-index:1;padding:70px 0 10px}
.t-track{overflow:hidden}
.t-slide{padding:10px 30px}
.t-slide img{width:100px;height:100px;border-radius:50%;object-fit:cover;margin:0 auto 20px}
.t-slide h3{font-size:19px;margin-bottom:4px}
.t-slide>span{display:block;color:#a0a0a0;font-size:13px;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px}
.t-slide p{font-style:italic;max-width:640px;margin:0 auto;font-size:17px}
.t-dots{display:flex;gap:10px;justify-content:center;margin-top:26px}
.t-dot{width:10px;height:10px;border-radius:50%;background:#d5d9da;transition:background .3s ease}
.t-dot.on{background:var(--ink)}

/* ---------- contact ---------- */
.contact-panel{background:var(--soft);padding:80px 60px}
.contact-address .sec-head h3{margin-top:0}
.contact-address h3 .flag{display:inline-block;vertical-align:-6px;margin:0 6px;width:28px;height:28px;border-radius:50%;object-fit:cover}
.contact-address p{margin-bottom:4px}
.contact-address a{color:var(--blue-link);position:relative}
.contact-address h2{font-size:26px;margin-bottom:8px}
.contact-title{margin:44px 0 6px}
.contact-intro{font-size:16px;color:var(--grey);margin:0 0 20px;line-height:28px}
.contact-title .sec-head{margin-bottom:16px}
.contact-title h3{font-size:22px;text-transform:uppercase;letter-spacing:1px}
.contact-title p{margin-top:6px}
.captcha-box{display:flex;gap:10px;align-items:center;background:#f7f9fa;border-radius:8px;padding:12px 14px;margin-bottom:16px}
.captcha-img{height:44px;border-radius:6px;border:1px solid #dbe4ea}
.captcha-reload{background:#fff;border:1px solid #dbe4ea;border-radius:6px;width:36px;height:36px;font-size:18px;cursor:pointer;color:#2e2e2e}
.captcha-box input{flex:1;padding:10px 12px;border:1px solid #dbe4ea;border-radius:6px;font-size:15px;max-width:160px;text-transform:uppercase}
a.contact-btn,button.contact-btn{display:inline-block;width:220px;min-width:220px;max-width:220px;text-align:center;background:#FAFE90;color:#2D3032;font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:1px;padding:16px 0;border-radius:4px;border:none;cursor:pointer;text-decoration:none;transition:background .3s ease,color .3s ease,transform .3s ease;box-sizing:border-box}
a.contact-btn:hover,button.contact-btn:hover{background:#2D3032;color:#fff;transform:translateY(-2px)}
.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
.field{position:relative;display:block;margin-bottom:30px;background:#fff}
.field-icon{position:absolute;left:14px;top:15px;pointer-events:none}
.field-icon svg{width:18px;height:18px;stroke:#b9bebe;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.field input,.field textarea{width:100%;border:0;background:transparent;padding:15px 16px 15px 44px;font-family:var(--font-body);font-size:15px;color:var(--ink)}
.field textarea{resize:vertical;min-height:150px}
.field input:focus,.field textarea:focus{outline:2px solid var(--lime-deep);outline-offset:-2px}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.form-note{min-height:24px;font-size:14px;margin-bottom:12px;color:#1c7a3d}
.form-note.err{color:#b3261e}
.contact-social-links{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:0;margin:16px 0 0}
.contact-social-links a{font-size:15px}
.contact-social{margin-top:46px}
.contact-social h3{font-size:19px;margin-bottom:4px}
.contact-social p{margin-bottom:18px}
.social-btns{display:flex;flex-wrap:wrap}
.location-card{display:flex;gap:14px;align-items:center;background:#fff;border-radius:10px;padding:18px;margin-bottom:14px;border-left:4px solid var(--logo-green);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.location-card:last-child{margin-bottom:0}
.location-card{transition:transform .3s ease,box-shadow .3s ease}
.location-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.location-card .flag{transition:transform .4s ease}
.location-card:hover .flag{transform:scale(1.2) rotate(-6deg)}
.location-card .flag{width:36px;height:auto;border-radius:4px}
.location-card h3{font-family:var(--font-display);font-size:16px;margin:0 0 4px;color:#1a1a1a}
.location-card p{font-size:16px;color:var(--grey);margin:0}
.social-btns{display:flex;gap:12px;flex-wrap:wrap}
.social-btns a{display:inline-flex;width:48px;height:48px;border-radius:50%;background:#f0f4f8;color:var(--logo-green);align-items:center;justify-content:center;transition:all .3s ease}
.social-btns a svg{width:20px;height:20px}
.social-btns a:hover{background:var(--logo-green);color:#fff;transform:translateY(-3px)}
.social-btns a:first-child{border-left:1px solid #e3e6e6}
.social-btns a:hover{background:#eef0f0}
.social-btns svg{width:20px;height:20px;stroke:#8a8f91;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.map-link{display:block;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.08);transition:transform .3s ease,box-shadow .3s ease}
.map-link:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.12)}
.map-illus{width:100%;height:auto;display:block}
.map-illus .map-pin{animation:pinBounce 2s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}
@keyframes pinBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media(prefers-reduced-motion:reduce){.map-illus *{animation:none}}
.map-wrap{margin-top:40px}
.map-wrap iframe{width:100%;height:450px;border:0;display:block}

/* ---------- legal ---------- */
.legal h3{font-size:26px;margin-bottom:22px}
.legal p{margin-bottom:18px}

/* ---------- footer ---------- */
.footer-block{position:relative;padding:100px 0 70px;overflow:hidden;background:#e9ebeb}
.footer-veil{position:absolute;inset:0;background:rgba(242,242,242,.68);z-index:0}
.parallax.anchor-bottom{background-position:center bottom}
/* drifting clouds: the footer sky pans slowly in a seamless back-and-forth.
   background-size is scaled past cover so the pan has room to travel. */
.footer-block .parallax{background-size:auto 185%;animation:cloudDrift 38s ease-in-out infinite alternate}
@keyframes cloudDrift{from{background-position:0% 100%}to{background-position:100% 100%}}
/* same drifting-sky treatment for the inner page banners */
.inner-banner .parallax{background-size:auto 130%;animation:bannerDrift 45s ease-in-out infinite alternate}
@keyframes bannerDrift{from{background-position:0% 0}to{background-position:100% 0}}
.footer-area{text-align:center}
/* flight routes: a little plane glides India to Toronto to Irvine across the footer sky */
/* flight route overlays the existing footer sky (adds no scroll height) */
.flight-layer{position:absolute;left:0;right:0;bottom:0;height:110px;z-index:0;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;opacity:.92}
.flight-layer svg{display:block;width:min(1060px,94%);height:auto}
/* pulsing location rings on the flight route */
.flight-rings circle{transform-box:fill-box;transform-origin:center;opacity:0;animation:ringPulse 2.8s ease-out infinite}
.flight-rings circle:nth-child(2){animation-delay:.9s}
.flight-rings circle:nth-child(3){animation-delay:1.8s}
@keyframes ringPulse{0%{transform:scale(.55);opacity:.65}100%{transform:scale(1.9);opacity:0}}
/* route dots drift in the direction of travel */
#flightRoute{animation:routeFlow 1.6s linear infinite}
@keyframes routeFlow{to{stroke-dashoffset:-12}}
.social-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 26px;margin-bottom:8px}
.social-links a{font-size:14px;letter-spacing:1px;color:#4c5153;padding:4px 0;position:relative}
.footer-line{margin:28px auto;opacity:.9}
.copyright{color:#777;font-size:14px}
.copyright a{color:var(--ink);position:relative}

/* ---------- venture constellation (footer TRADEORE link) ---------- */
.venture-star{margin:16px 0 4px;text-align:center}

.venture-star .eyebrow{display:block;margin-bottom:0}
.vs-link{position:relative;display:inline-block;margin-top:12px;text-decoration:none;border-radius:14px;transition:transform .35s ease}
.vs-link:hover{transform:translateY(-3px)}
.vs-link canvas{display:block;width:min(320px,74vw);height:auto}
.vs-logo{position:absolute;inset:0;margin:auto;width:76px;height:76px;transition:transform .4s ease;filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}
.vs-link:hover .vs-logo{transform:scale(1.08)}
@media (prefers-reduced-motion: reduce){.vs-link,.vs-logo{transition:none}}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(40px) scale(.96);transition:opacity .9s ease,transform .9s cubic-bezier(.19,1,.22,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .services-grid{grid-template-columns:repeat(3,1fr)}
  .fun-facts{flex-wrap:wrap}
  .fun-fact{flex:1 1 30%;margin-bottom:34px}
}
@media (max-width:900px){
  /* the original keeps the left sidebar on mobile: slimmer, not a top bar */
  .side-bar{width:60px;padding:14px 0}
  /* mobile QA: footer hidden behind fixed sidebar on home page */
  body.side-bar-page footer{margin-left:60px}
  body:has(.side-bar) footer{margin-left:60px}
  .side-logo img{width:36px}
  .open-minimal-menu{width:36px;height:36px}
  .open-minimal-menu span{width:22px}
  .side-bottom{font-size:10px;letter-spacing:1px}
  main.with-sidebar{margin-left:60px}
  .hero{min-height:100vh;min-height:100svh}
  .minimal-menu{padding-top:34px;left:60px;max-width:calc(85vw - 60px)}
  .desktop-nav{display:none}
  .classic-header .open-minimal-menu{display:flex}
  .grid-3{grid-template-columns:1fr;max-width:520px;margin:0 auto}
  /* mobile QA: contact grid blowout fix */
  .contact-cards{grid-template-columns:1fr}
  .grid-2.contact-grid>*{min-width:0}
  .book-fields{flex-direction:column}
  .grid-2{grid-template-columns:1fr}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .contact-form .form-row{grid-template-columns:1fr}
  .contact-panel{padding:50px 24px}
  .mockup{text-align:center}
  .mockup .fancy-btn{position:static;transform:none;display:inline-flex;margin-top:6px}
}
@media (max-width:600px){
  .section{padding:120px 0}
  .inner-banner{padding:150px 0 0}
  .services-grid{grid-template-columns:1fr}
  .fun-fact{flex:1 1 45%}
  .hero-title{font-size:44px}
  .hero-sub{letter-spacing:6px;text-indent:6px}
  .wide-block{max-width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s !important;transition-duration:.001s !important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
  .flight-plane{display:none}
}

.open-minimal-menu.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.open-minimal-menu.open span:nth-child(2){opacity:0}
.open-minimal-menu.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.open-minimal-menu.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.open-minimal-menu.open span:nth-child(2){opacity:0}
.open-minimal-menu.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
