
:root{
  --blue:#0a6fdb;
  --blue-2:#0a5fc0;
  --blue-light:#23a8e0;
  --navy:#06104a;
  --navy-2:#0b1f5c;
  --ink:#0b1f4d;
  --text:#1c2b52;
  --muted:#5a6788;
  --grey:#f2f2f2;
  --white:#ffffff;
  --ease:cubic-bezier(.22,.8,.26,1);
  --container:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Outfit',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:#fff;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
.container{max-width:var(--container);margin:0 auto;padding:0 38px}
.img-fallback{background:linear-gradient(135deg,#0b1f5c,#0a6fdb 60%,#23a8e0)}

/* ============ HEADER ============ */
.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fff;transition:box-shadow .35s var(--ease)}
.header.scrolled{box-shadow:0 6px 24px rgba(6,16,74,.1)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:136px;transition:height .35s var(--ease)}
.header.scrolled .container{height:84px}
.header .container{gap:30px}
.logo{flex-shrink:0}
.logo img{height:66px;width:auto;transition:height .35s var(--ease)}
.header.scrolled .logo img{height:54px}
.head-right{display:flex;flex-direction:column;align-items:flex-end;gap:18px;transition:gap .35s var(--ease)}
.header.scrolled .head-right{gap:0}
.topbar{display:flex;align-items:center;gap:20px;font-size:15px;max-height:30px;overflow:hidden;transition:max-height .35s var(--ease),opacity .3s}
.header.scrolled .topbar{max-height:0;opacity:0}
.topbar a:hover{color:var(--blue)}
.topbar .region{color:var(--blue);display:flex;align-items:center;gap:4px}
.lang{display:flex;align-items:center}
.lang a{padding:0 6px;line-height:1}
.lang a.on{color:var(--blue)}
.lang a+a{border-left:2px solid var(--ink)}
.caret{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;margin-left:4px;transition:transform .3s}
.nav>ul{display:flex;list-style:none;gap:20px;align-items:center}
.nav>ul>li>a{white-space:nowrap}
.nav>ul>li{position:relative}
.nav>ul>li>a{display:flex;align-items:center;font-size:15px;padding:10px 0;position:relative}
.nav>ul>li>a::after{content:"";position:absolute;left:0;bottom:2px;height:2px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav>ul>li:hover>a::after{transform:scaleX(1);transform-origin:left}
.nav>ul>li:hover>a{color:var(--blue)}
.nav>ul>li:hover .caret{transform:rotate(180deg)}
.dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%,14px);min-width:560px;background:#fff;box-shadow:0 20px 50px rgba(6,16,74,.18);border-top:3px solid var(--blue);padding:28px 30px;display:grid;grid-template-columns:1fr 1fr;gap:6px 30px;opacity:0;visibility:hidden;transition:all .35s var(--ease)}
.nav>ul>li:hover .dropdown{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dropdown h6{grid-column:1/-1;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:8px}
.dropdown a{font-size:15px;padding:7px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eef1f7;transition:color .25s,padding .25s}
.dropdown a::after{content:"›";font-size:20px;color:var(--blue);opacity:0;transform:translateX(-6px);transition:.25s}
.dropdown a:hover{color:var(--blue);padding-left:6px}
.dropdown a:hover::after{opacity:1;transform:none}
.burger{display:none;width:44px;height:44px;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:.35s var(--ease)}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:27px}
.burger.open span:nth-child(1){top:21px;transform:rotate(45deg)}
.burger.open span:nth-child(2){opacity:0;transform:translateX(10px)}
.burger.open span:nth-child(3){top:21px;transform:rotate(-45deg)}

/* ============ HERO ============ */
main{padding-top:136px}
.hero{position:relative;height:570px;background:var(--navy);overflow:hidden;color:#fff}
.hero .slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s var(--ease),visibility 1s}
.hero .slide.active{opacity:1;visibility:visible;z-index:2}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.12);transition:transform 8s linear}
.slide.active .slide-bg{transform:scale(1)}
.slide-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,16,74,.95) 0%,rgba(6,16,74,.82) 38%,rgba(6,16,74,.2) 75%,rgba(6,16,74,0) 100%)}
.slide.ai .slide-bg{background:radial-gradient(ellipse at 75% 50%,#1a1a8a 0%,#08107a 30%,#050b52 70%)}
.slide.ai .slide-bg::after{display:none}
.hero-canvas{position:absolute;right:0;top:0;height:100%;width:62%}
.ai-badge{position:absolute;right:21.5%;top:50%;width:150px;height:150px;margin:-75px -75px 0 0;border-radius:50%;background:radial-gradient(circle,#0b1450 54%,#0a6fdb 55%,#0a6fdb 70%,#0e7ff0 71%);display:grid;place-items:center;font-size:56px;font-weight:600;letter-spacing:.02em;box-shadow:0 0 0 0 rgba(10,111,219,.5),0 0 60px rgba(10,111,219,.6);animation:badgePulse 3s ease-in-out infinite;z-index:3}
@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(10,111,219,.45),0 0 50px rgba(10,111,219,.5)}50%{box-shadow:0 0 0 22px rgba(10,111,219,0),0 0 90px rgba(35,168,224,.8)}}
.slide.active .ai-badge{animation:badgePulse 3s ease-in-out infinite,badgeIn 1.2s var(--ease) both}
@keyframes badgeIn{from{transform:scale(.3) rotate(-90deg);opacity:0}to{transform:none;opacity:1}}
.hero-content{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;justify-content:center;max-width:var(--container);margin:0 auto;padding:0 55px}
.hero-content>*{max-width:560px;opacity:0;transform:translateY(40px)}
.slide.active .hero-content>*{animation:heroUp .9s var(--ease) forwards}
.slide.active .hero-content>*:nth-child(1){animation-delay:.25s}
.slide.active .hero-content>*:nth-child(2){animation-delay:.45s}
.slide.active .hero-content>*:nth-child(3){animation-delay:.65s}
.slide.active .hero-content>*:nth-child(4){animation-delay:.85s}
@keyframes heroUp{to{opacity:1;transform:none}}
.eyebrow{font-size:23px;font-weight:300;margin-bottom:22px}
.hero h1{font-size:50px;line-height:1.12;font-weight:600;margin-bottom:26px}
.hero p.sub{font-size:26px;font-weight:300;margin-bottom:40px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;font-weight:500;font-size:15px;padding:11px 24px;position:relative;overflow:hidden;transition:background .3s,color .3s,border-color .3s;border:2px solid var(--blue);width:max-content;z-index:0}
.btn::before{content:"";position:absolute;inset:0;background:var(--navy);transform:translateX(-101%);transition:transform .45s var(--ease);z-index:-1}
.btn:hover::before{transform:none}
.btn:hover{border-color:var(--navy)}
.btn .arr{display:inline-block;transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
.btn.outline{background:transparent;color:#fff;border-color:#fff}
.btn.outline::before{background:#fff}
.btn.outline:hover{color:var(--blue);border-color:#fff}
.btn.ghost-blue{background:#fff;color:var(--blue);border-color:var(--blue)}
.btn.ghost-blue::before{background:var(--blue)}
.btn.ghost-blue:hover{color:#fff;border-color:var(--blue)}

/* hero tabs */
.hero-tabs{position:relative;background:#f2f2f2;box-shadow:0 6px 18px rgba(0,0,0,.08);z-index:5}
.hero-tabs .inner{display:flex;align-items:stretch;max-width:1600px;margin:0 auto}
.ht-arrow{width:70px;flex:0 0 70px;display:grid;place-items:center;color:#c9ccd4;transition:color .3s}
.ht-arrow:hover{color:var(--blue)}
.ht-arrow svg{width:34px;height:34px}
.ht-list{flex:1;display:flex;overflow-x:auto;scrollbar-width:none}
.ht-list::-webkit-scrollbar{display:none}
.ht-tab{flex:1 0 auto;min-width:150px;padding:18px 14px;font-size:15px;color:var(--ink);position:relative;text-align:center;transition:color .3s;white-space:nowrap}
.ht-tab:hover{color:var(--blue)}
.ht-tab.active{color:var(--blue);font-weight:600}
.ht-tab .prog{position:absolute;left:0;right:0;top:0;height:3px;background:rgba(10,111,219,.12);opacity:0}
.ht-tab.active .prog{opacity:1}
.ht-tab .prog i{position:absolute;inset:0;background:var(--blue);transform:scaleX(0);transform-origin:left}
.ht-tab.active .prog i{animation:prog var(--dur,7s) linear forwards}
.hero.paused~.hero-tabs .ht-tab.active .prog i,.hero-tabs.paused .ht-tab.active .prog i{animation-play-state:paused}
@keyframes prog{to{transform:scaleX(1)}}

/* ============ SECTIONS ============ */
section{position:relative}
.sec-title{font-size:32px;font-weight:500;color:var(--ink);margin-bottom:36px;line-height:1.2}
.sec-title.white{color:#fff}
.pad{padding:80px 0}

/* intro */
.intro{padding:70px 0 90px}
.intro-grid{display:grid;grid-template-columns:1.9fr 1fr;gap:34px;align-items:start}
.intro p{font-size:15px;color:var(--ink);margin-bottom:14px;line-height:1.6}
.video-thumb{position:relative;overflow:hidden;cursor:pointer;aspect-ratio:16/9;background:#000;box-shadow:0 12px 30px rgba(6,16,74,.15)}
.video-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s}
.video-thumb:hover img{transform:scale(1.08);filter:brightness(.85)}
.play{position:absolute;left:50%;top:50%;width:66px;height:66px;margin:-33px 0 0 -33px;border-radius:50%;background:var(--blue);display:grid;place-items:center;transition:transform .35s var(--ease)}
.play::before,.play::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.8);animation:ripple 2.2s ease-out infinite}
.play::after{animation-delay:1.1s}
@keyframes ripple{from{transform:scale(1);opacity:.9}to{transform:scale(1.9);opacity:0}}
.play svg{width:24px;height:24px;fill:#fff;margin-left:4px}
.video-thumb:hover .play{transform:scale(1.12)}

/* modal */
.modal{position:fixed;inset:0;background:rgba(3,8,40,.88);z-index:3000;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:.4s}
.modal.open{opacity:1;visibility:visible}
.modal-box{width:min(960px,100%);aspect-ratio:16/9;background:#000;position:relative;transform:scale(.85);transition:transform .45s var(--ease)}
.modal.open .modal-box{transform:none}
.modal video{width:100%;height:100%}
.modal-close{position:absolute;top:-46px;right:0;color:#fff;font-size:36px;line-height:1;transition:transform .3s}
.modal-close:hover{transform:rotate(90deg)}

/* carousel generic */
.car{position:relative}
.car-viewport{overflow:hidden;touch-action:pan-y;padding:4px 2px 12px;margin:-4px -2px -12px}
.car-track{display:flex;gap:var(--gap,20px);transition:transform .7s var(--ease);will-change:transform}
.car-item{flex:0 0 calc((100% - var(--gap,20px) * (var(--pv,3) - 1)) / var(--pv,3));min-width:0}
.car.dragging .car-track{transition:none}
.dots{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:22px}
.dots button{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--blue);transition:all .35s var(--ease)}
.dots button.on{background:var(--blue);width:16px;height:16px}
.dots.light button{border-color:#fff}
.dots.light button.on{background:#fff}

/* news */
.news{background:var(--grey);padding:62px 0 48px}
.news-card{background:#fff;padding:14px 16px 24px;min-height:150px;height:100%;display:block;border-top:3px solid transparent;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.news-card:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(6,16,74,.14);border-color:var(--blue)}
.news-card time{font-size:14px;color:var(--ink)}
.news-card .tag{font-size:11px;font-weight:600;margin:14px 0 18px;color:var(--ink)}
.news-card h3{font-size:16px;line-height:1.2;font-weight:600;color:var(--blue)}
.news-card:hover h3{text-decoration:underline}
.news .btn{margin-top:30px}

/* ideas */
.ideas{background:var(--blue);padding:62px 0 42px;overflow:hidden}
.ideas::before{content:"";position:absolute;width:620px;height:620px;border-radius:50%;border:90px solid rgba(255,255,255,.04);right:-220px;top:-260px;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.idea-card{background:#fff;display:flex;flex-direction:column;height:100%;min-height:340px;overflow:hidden}
.idea-card .im{height:150px;overflow:hidden;background:#0b1f5c}
.idea-card .im img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.idea-card:hover .im img{transform:scale(1.12)}
.idea-card .body{padding:14px 10px 18px;display:flex;flex-direction:column;flex:1}
.idea-card time{font-size:14px;color:var(--ink)}
.idea-card h3{font-size:18px;font-weight:400;line-height:1.2;margin-top:10px;color:var(--ink);transition:color .3s}
.idea-card:hover h3{color:var(--blue)}
.idea-card .go{margin-top:auto;align-self:flex-end;width:34px;height:34px;display:grid;place-items:center;transition:transform .35s var(--ease)}
.idea-card .go svg{width:22px;height:22px;stroke:var(--ink);stroke-width:3.2;fill:none;transition:stroke .3s}
.idea-card:hover .go{transform:translateX(6px)}
.idea-card:hover .go svg{stroke:var(--blue)}
.ideas .btn{margin-top:40px}

/* client success */
.clients{padding:80px 0 50px}
.cs{position:relative;height:620px;overflow:hidden;background:#0b1f5c}
.cs-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s var(--ease),visibility 1s}
.cs-slide.active{opacity:1;visibility:visible;z-index:2}
.cs-slide .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.15);transition:transform 9s linear}
.cs-slide.active .bg{transform:scale(1.02)}
.cs-card{position:absolute;left:107px;top:80px;width:394px;background:#fff;padding:38px 36px 38px;z-index:3;opacity:0;transform:translateX(-60px);transition:opacity .8s .3s var(--ease),transform .8s .3s var(--ease)}
.cs-slide.active .cs-card{opacity:1;transform:none}
.cs-card .kicker{font-size:14px;color:var(--ink);font-weight:500}
.cs-card h3{font-size:31px;font-weight:600;color:var(--ink);line-height:1.18;margin:16px 0 36px}
.cs-card p{font-size:15px;color:var(--ink);line-height:1.6;margin-bottom:34px}
.cs-card .btn{padding:8px 16px;font-size:14px}
.cs-arc{position:absolute;right:-60px;top:50%;width:300px;height:300px;margin-top:-90px;z-index:2;pointer-events:none;animation:spin 18s linear infinite}
.cs-arrow{position:absolute;top:50%;margin-top:-32px;width:46px;height:64px;background:rgba(10,20,60,.55);color:#fff;display:grid;place-items:center;z-index:5;transition:background .3s}
.cs-arrow:hover{background:var(--blue)}
.cs-arrow svg{width:22px;height:22px;stroke:#fff;stroke-width:3;fill:none}
.cs-prev{left:14px}.cs-next{right:14px}
.cs-dots{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:5;display:flex;gap:6px;background:rgba(255,255,255,.55);padding:5px 8px;border-radius:20px}
.cs-dots button{width:12px;height:12px;border-radius:50%;border:1.5px solid #1a1a1a;transition:.3s}
.cs-dots button.on{background:#1a1a1a}
.clients .btn{margin-top:18px}

/* work with us */
.work{background:var(--blue);color:#fff;padding:40px 0;overflow:hidden}
.work .container{display:flex;align-items:center;gap:40px;padding-left:100px}
.chevrons{width:190px;flex:0 0 190px}
.chevrons path{opacity:0;transform:translateX(-40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.work.in .chevrons path{opacity:1;transform:none}
.work.in .chevrons path:nth-child(2){transition-delay:.25s}
.work h2{font-size:32px;font-weight:400;margin-bottom:30px}

/* footer */
.footer-main{background:#fff;padding:60px 0 40px;border-top:1px solid #eef0f4}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.f-grid img{height:66px;width:auto;margin-bottom:16px}
.f-grid p{font-size:14px;color:var(--muted);max-width:320px}
.f-grid h4{font-size:15px;color:var(--ink);font-weight:600;margin-bottom:14px}
.f-grid ul{list-style:none}
.f-grid li{margin-bottom:9px}
.f-grid li a{font-size:14px;color:var(--muted);transition:color .25s,padding .25s}
.f-grid li a:hover{color:var(--blue);padding-left:4px}
.social{background:var(--blue);padding:10px 0;display:flex;justify-content:center;gap:22px}
.social a{width:26px;height:26px;display:grid;place-items:center;transition:transform .3s var(--ease)}
.social a:hover{transform:translateY(-4px) scale(1.15)}
.social svg{width:18px;height:18px;fill:#fff}
.f-bottom{background:#f2f2f2;padding:16px 0;text-align:center;font-size:12.5px;font-weight:500;color:var(--ink)}
.f-bottom a{margin:0 8px;transition:color .25s}
.f-bottom a:hover{color:var(--blue)}
.float-mail{position:fixed;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;background:var(--navy);border:3px solid #fff;box-shadow:0 0 0 2px var(--navy),0 8px 20px rgba(0,0,0,.25);display:grid;place-items:center;z-index:900;transition:transform .3s var(--ease)}
.float-mail:hover{transform:scale(1.1) rotate(-8deg)}
.float-mail svg{width:28px;height:28px;stroke:#fff;fill:none;stroke-width:1.6}
.to-top{position:fixed;right:30px;bottom:92px;width:40px;height:40px;background:var(--blue);color:#fff;display:grid;place-items:center;z-index:900;opacity:0;transform:translateY(20px);transition:.35s var(--ease);font-size:20px}
.to-top.show{opacity:1;transform:none}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(46px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
[data-reveal="left"]{transform:translateX(-50px)}
[data-reveal="right"]{transform:translateX(50px)}
[data-reveal="zoom"]{transform:scale(.92)}
[data-reveal].in{opacity:1;transform:none}

/* ============ RESPONSIVE ============ */
@media (max-width:1100px){
  .hero h1{font-size:42px}
  .cs-card{left:70px}
}
@media (max-width:1080px){
  .header .container,.header.scrolled .container{height:76px}
  main{padding-top:76px}
  .logo img,.header.scrolled .logo img{height:50px}
  .topbar{display:none}
  .burger{display:block;z-index:1101}
  .nav{position:fixed;top:76px;right:0;bottom:0;width:min(380px,100%);background:#fff;transform:translateX(100%);transition:transform .45s var(--ease);overflow-y:auto;box-shadow:-10px 0 30px rgba(0,0,0,.1);padding:10px 0 30px}
  .nav.open{transform:none}
  .nav>ul{flex-direction:column;gap:0}
  .nav>ul>li{border-bottom:1px solid #eef0f4}
  .nav>ul>li>a{padding:16px 24px;justify-content:space-between;font-size:17px}
  .nav>ul>li>a::after{display:none}
  .dropdown{position:static;transform:none!important;min-width:0;box-shadow:none;border:0;padding:0 24px;display:block;max-height:0;overflow:hidden;opacity:1;visibility:visible;transition:max-height .45s var(--ease),padding .3s}
  .nav>ul>li:hover .dropdown{transform:none}
  .nav>ul>li.open .dropdown{max-height:600px;padding:0 24px 14px}
  .nav>ul>li.open .caret{transform:rotate(180deg)}
  .nav>ul>li:hover .caret{transform:none}
  .nav>ul>li.open:hover .caret{transform:rotate(180deg)}
  .dropdown h6{display:none}
  .mobile-extra{display:flex!important}
  .overlay{position:fixed;inset:76px 0 0 0;background:rgba(6,16,74,.4);opacity:0;visibility:hidden;transition:.4s;z-index:999}
  .overlay.show{opacity:1;visibility:visible}
}
@media (max-width:960px){
  .container{padding:0 22px}
  .hero{height:600px}
  .hero-canvas{width:100%;opacity:.45}
  .ai-badge{right:50%;top:auto;bottom:40px;margin:0 -50px 0 0;width:100px;height:100px;font-size:36px}
  .hero-content{padding:0 22px;justify-content:flex-start;padding-top:60px}
  .slide-bg::after{background:linear-gradient(180deg,rgba(6,16,74,.9) 0%,rgba(6,16,74,.75) 60%,rgba(6,16,74,.45) 100%)}
  .ht-arrow{width:44px;flex-basis:44px}
  .ht-tab{flex:0 0 auto;min-width:0;padding:16px 16px}
  .intro-grid{grid-template-columns:1fr}
  .cs{height:auto;min-height:0}
  .cs-slides{position:relative;height:640px}
  .cs-card{left:16px;right:16px;width:auto;top:auto;bottom:56px;padding:26px 22px}
  .cs-card h3{font-size:25px;margin:10px 0 16px}
  .cs-card p{margin-bottom:20px;font-size:14px}
  .cs-arrow{top:20px;margin-top:0;width:40px;height:52px}
  .cs-arc{width:170px;height:170px;right:-80px;top:-50px;margin:0}
  .cs-card p{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
  .work .container{padding-left:22px;flex-direction:row}
  .chevrons{width:120px;flex-basis:120px}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .hero{height:560px}
  .eyebrow{font-size:17px;margin-bottom:14px}
  .hero h1{font-size:32px;margin-bottom:16px}
  .hero p.sub{font-size:19px;margin-bottom:28px}
  .sec-title{font-size:26px;margin-bottom:26px}
  .intro{padding:50px 0 60px}
  .news,.ideas{padding:48px 0 36px}
  .clients{padding:56px 0 36px}
  .work .container{flex-direction:column;text-align:center;gap:20px}
  .work h2{font-size:26px;margin-bottom:20px}
  .work .btn{margin:0 auto}
  .f-grid{grid-template-columns:1fr;gap:28px}
  .f-bottom a{display:inline-block;margin:4px 8px}
  .float-mail{width:50px;height:50px;right:14px;bottom:14px}
  .to-top{right:19px;bottom:76px}
}
.mobile-extra{display:none;flex-wrap:wrap;gap:18px;padding:20px 24px;font-size:15px}
.mobile-extra a{color:var(--blue)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ======== GROUP SITE ADDITIONS ======== */
.nav>ul>li>a.tech-tab{background:var(--blue);color:#fff;padding:9px 16px;border-radius:2px;position:relative;overflow:hidden;box-shadow:0 0 0 0 rgba(10,111,219,.5);animation:techGlow 2.6s ease-in-out infinite}
.nav>ul>li>a.tech-tab::after{display:none}
.nav>ul>li>a.tech-tab::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:shine 3.2s ease-in-out infinite}
.nav>ul>li:hover>a.tech-tab{color:#fff;background:var(--navy)}
@keyframes shine{0%,60%{left:-60%}100%{left:130%}}
@keyframes techGlow{0%,100%{box-shadow:0 0 0 0 rgba(10,111,219,.45)}50%{box-shadow:0 0 0 6px rgba(10,111,219,0)}}
.dropdown.sm{min-width:300px;grid-template-columns:1fr}
.hero p.lead{font-size:19px;font-weight:300;line-height:1.55;margin-bottom:36px;max-width:600px}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;max-width:none!important}
.ai-badge{font-size:44px}

/* about */
.footprint{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 8px}
.footprint span{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1.5px solid var(--blue);color:var(--blue);font-size:14px;font-weight:500;opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease),background .3s,color .3s}
.footprint span::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;animation:ping 2s ease-out infinite}
.footprint span:hover{background:var(--blue);color:#fff}
.in .footprint span{opacity:1;transform:none}
.in .footprint span:nth-child(2){transition-delay:.1s}.in .footprint span:nth-child(3){transition-delay:.2s}.in .footprint span:nth-child(4){transition-delay:.3s}.in .footprint span:nth-child(5){transition-delay:.4s}
@keyframes ping{0%{box-shadow:0 0 0 0 currentColor}100%{box-shadow:0 0 0 7px transparent}}
.label{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);font-weight:600;margin-bottom:10px;display:block}
.stat-row{display:flex;gap:40px;margin-top:26px}
.stat b{display:block;font-size:40px;font-weight:600;color:var(--blue);line-height:1}
.stat small{font-size:13px;color:var(--muted)}
.offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:56px}
.offer{position:relative;padding:34px 32px 30px;background:var(--navy);color:#fff;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.offer:nth-child(2){background:var(--blue)}
.offer::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:46px solid rgba(255,255,255,.06);right:-90px;bottom:-110px;transition:transform .8s var(--ease)}
.offer:hover{transform:translateY(-8px);box-shadow:0 24px 40px rgba(6,16,74,.25)}
.offer:hover::after{transform:scale(1.25) rotate(20deg)}
.offer .num{font-size:14px;opacity:.7;letter-spacing:.12em}
.offer h3{font-size:26px;font-weight:500;margin:8px 0 12px}
.intro .offer p{color:#fff;font-size:15px;opacity:.9;margin-bottom:22px;max-width:460px}
.offer .more{font-size:15px;font-weight:500;display:inline-flex;gap:8px;align-items:center}
.offer .more i{font-style:normal;transition:transform .3s var(--ease)}
.offer:hover .more i{transform:translateX(6px)}

/* service cards (advisory) */
.svc-card{background:#fff;height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.06);border-bottom:3px solid transparent;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.svc-card:hover{transform:translateY(-8px);box-shadow:0 20px 36px rgba(6,16,74,.14);border-color:var(--blue)}
.svc-card .im{height:190px;overflow:hidden;position:relative}
.svc-card .im img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.svc-card:hover .im img{transform:scale(1.1)}
.svc-card .ico{position:absolute;left:20px;bottom:-26px;width:52px;height:52px;background:var(--blue);display:grid;place-items:center;transition:transform .5s var(--ease)}
.svc-card:hover .ico{transform:rotate(-8deg) scale(1.08)}
.svc-card .ico svg{width:26px;height:26px;stroke:#fff;fill:none;stroke-width:1.8}
.svc-card .body{padding:40px 22px 26px;flex:1;display:flex;flex-direction:column}
.svc-card h3{font-size:20px;font-weight:600;color:var(--ink);margin-bottom:10px}
.svc-card p{font-size:15px;color:var(--muted);flex:1}
.svc-card .go{margin-top:18px;color:var(--blue);font-weight:500;font-size:14px;display:inline-flex;gap:8px}
.svc-card .go i{font-style:normal;transition:transform .3s var(--ease)}
.svc-card:hover .go i{transform:translateX(6px)}
.advisory{background:var(--grey);padding:70px 0 56px}
.advisory .intro-line{max-width:720px;color:var(--ink);font-size:16px;margin:-20px 0 34px}

/* digital transformation */
.digital-top{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end;margin-bottom:34px;color:#fff}
.digital-top p{font-size:17px;opacity:.95;font-weight:300}
.pill-row{display:flex;flex-wrap:wrap;gap:10px}
.pill-row span{border:1px solid rgba(255,255,255,.6);padding:7px 14px;font-size:14px;color:#fff}
.idea-card p{font-size:14px;color:var(--muted);margin-top:8px}
.idea-card .tag2{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-weight:600}

/* testimonials */
.testi{background:var(--grey);padding:80px 0 56px;overflow:hidden}
.testi .intro-line{max-width:720px;color:var(--ink);font-size:16px;margin:-20px 0 34px}
.q-card{background:#fff;height:100%;padding:34px 30px 28px;position:relative;display:flex;flex-direction:column;border-left:4px solid var(--blue);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.q-card:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(6,16,74,.13)}
.q-card .qm{position:absolute;right:24px;top:10px;font-size:110px;line-height:1;color:var(--blue);opacity:.12;font-family:Georgia,serif;transition:transform .6s var(--ease),opacity .4s}
.q-card:hover .qm{transform:translateY(-6px) rotate(-8deg);opacity:.25}
.q-card .org{font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);font-weight:600;margin-bottom:16px}
.q-card blockquote{font-size:17px;line-height:1.55;color:var(--ink);flex:1}
.q-card blockquote.plain{font-size:16px}
.q-card .who{margin-top:22px;padding-top:16px;border-top:1px solid #e6e9f0;font-size:14px;font-weight:600;color:var(--ink)}
.q-card .eng{font-size:13px;color:var(--muted);margin-top:6px}
.testi .car-arrows{display:flex;gap:10px;justify-content:flex-end;margin-top:-6px}

/* why farsight */
.why{padding:80px 0}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.why-card{position:relative;padding:32px 26px 30px;border:1px solid #e3e7f0;overflow:hidden;transition:color .45s,border-color .45s,transform .45s var(--ease);z-index:0;background:#fff}
.why-card::before{content:"";position:absolute;inset:0;background:var(--blue);transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease);z-index:-1}
.why-card:hover::before{transform:scaleY(1)}
.why-card:hover{color:#fff;border-color:var(--blue);transform:translateY(-6px)}
.why-card .n{font-size:46px;font-weight:600;color:var(--blue);line-height:1;opacity:.25;transition:color .45s,opacity .45s}
.why-card:hover .n{color:#fff;opacity:.5}
.why-card svg{width:40px;height:40px;stroke:var(--blue);fill:none;stroke-width:1.7;margin:16px 0 14px;transition:stroke .45s,transform .6s var(--ease)}
.why-card:hover svg{stroke:#fff;transform:scale(1.1) rotate(-6deg)}
.why-card h3{font-size:20px;font-weight:600;color:var(--ink);margin-bottom:8px;transition:color .45s}
.why-card:hover h3{color:#fff}
.why-card p{font-size:15px;color:var(--muted);transition:color .45s}
.why-card:hover p{color:rgba(255,255,255,.9)}

/* CTA */
.work p{font-size:17px;opacity:.92;max-width:640px;margin:-14px 0 26px;font-weight:300}

/* footer offices */
.office h4{display:flex;align-items:center;gap:8px}
.office h4::before{content:"";width:8px;height:8px;background:var(--blue);border-radius:50%}
.office p{font-size:14px;color:var(--muted);margin-bottom:6px}
.office a{color:var(--blue);font-size:14px}
.office a:hover{text-decoration:underline}

@media (max-width:1100px){.why-grid{grid-template-columns:1fr 1fr}}
@media (max-width:960px){
  .offer-grid,.digital-top{grid-template-columns:1fr}
  .digital-top{gap:18px}
  .hero{height:640px}
  .hero p.lead{font-size:16px;margin-bottom:26px}
  .ai-badge{width:84px;height:84px;margin:0 -42px 0 0;font-size:28px;bottom:26px}
}
@media (max-width:600px){
  .hero{height:680px}
  .why-grid{grid-template-columns:1fr}
  .stat-row{gap:24px}
  .stat b{font-size:32px}
  .offer{padding:28px 22px}
  .offer h3{font-size:22px}
  .advisory,.testi,.why{padding:54px 0 44px}
  .q-card{padding:28px 22px 22px}
  .q-card blockquote{font-size:16px}
  .btn-row .btn{padding:10px 18px;font-size:14px}
}

/* mid-width: two-row header so the full menu stays visible */
@media (min-width:1081px) and (max-width:1300px){
  .header .container{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"logo top" "nav nav";height:auto;padding-top:10px;padding-bottom:4px;row-gap:4px;gap:4px 20px}
  .header.scrolled .container{height:auto;padding-top:6px}
  .logo{grid-area:logo}
  .head-right{display:contents}
  .topbar{grid-area:top;justify-self:end}
  .nav{grid-area:nav;width:100%;border-top:1px solid #eef0f4}
  .nav>ul{justify-content:space-between;gap:12px}
  main{padding-top:150px}
}
/* make the mobile menu button obvious */
.burger{background:var(--blue);border-radius:2px}
.burger span{background:#fff}

/* ================= INNER PAGES ================= */
.page-banner{position:relative;background:var(--navy);color:#fff;overflow:hidden;padding:84px 0 78px}
.page-banner .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.35;transform:scale(1.08);animation:bannerZoom 12s ease-out forwards}
.page-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,16,74,.96) 0%,rgba(6,16,74,.85) 45%,rgba(6,16,74,.35) 100%)}
@keyframes bannerZoom{to{transform:scale(1)}}
.page-banner canvas.rings{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:.9}
.page-banner .container{position:relative;z-index:2}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;opacity:.85;margin-bottom:20px;animation:heroUp .8s .1s var(--ease) both}
.crumbs a:hover{text-decoration:underline}
.crumbs span.sep{opacity:.6}
.page-banner h1{font-size:46px;font-weight:600;line-height:1.12;max-width:760px;opacity:0;transform:translateY(30px);animation:heroUp .9s .25s var(--ease) forwards}
.page-banner p{font-size:19px;font-weight:300;max-width:680px;margin-top:18px;opacity:0;transform:translateY(30px);animation:heroUp .9s .45s var(--ease) forwards}
.page-banner .tag{display:inline-block;border:1px solid rgba(255,255,255,.55);padding:5px 12px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;animation:heroUp .8s .15s var(--ease) both}

.prose{color:var(--ink);font-size:16px;line-height:1.75}
.prose p{margin-bottom:16px}
.prose h2{font-size:28px;font-weight:500;margin:34px 0 14px}
.prose h3{font-size:22px;font-weight:600;margin:30px 0 12px}
.prose ul,.prose ol{margin:0 0 18px 22px}
.prose li{margin-bottom:8px}
.prose ul li::marker{color:var(--blue)}
.prose a{color:var(--blue);text-decoration:underline}
.prose img{margin:18px 0}
.prose blockquote{border-left:4px solid var(--blue);padding:6px 0 6px 18px;margin:20px 0;font-size:18px}

.section{padding:80px 0}
.section.grey{background:var(--grey)}
.lead-text{max-width:760px;color:var(--ink);font-size:17px;margin:-18px 0 36px}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card-grid.two{grid-template-columns:repeat(2,1fr)}
.case-card{background:#fff;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.case-card:hover{transform:translateY(-8px);box-shadow:0 22px 40px rgba(6,16,74,.15)}
.case-card .im{height:220px;overflow:hidden;position:relative}
.case-card .im img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.case-card:hover .im img{transform:scale(1.1)}
.case-card .im .country{position:absolute;left:16px;top:16px;background:var(--blue);color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px}
.case-card .body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.case-card .client{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);font-weight:600}
.case-card h3{font-size:22px;color:var(--ink);font-weight:600;margin:8px 0 10px;line-height:1.25}
.case-card p{font-size:15px;color:var(--muted);flex:1}
.case-card .go{margin-top:18px;color:var(--blue);font-weight:500;font-size:15px;display:inline-flex;gap:8px}
.case-card .go i{font-style:normal;transition:transform .3s var(--ease)}
.case-card:hover .go i{transform:translateX(6px)}

.detail-grid{display:grid;grid-template-columns:1fr 340px;gap:50px;align-items:start}
.detail-hero-img{width:100%;aspect-ratio:16/8;object-fit:cover;margin-bottom:34px;box-shadow:0 18px 40px rgba(6,16,74,.15)}
.sidebar{position:sticky;top:110px;display:flex;flex-direction:column;gap:22px}
.side-box{background:var(--grey);padding:26px 24px}
.side-box h4{font-size:16px;color:var(--ink);font-weight:600;margin-bottom:14px;letter-spacing:.02em}
.side-box ul{list-style:none}
.side-box li a{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid #dde2ec;font-size:15px;color:var(--ink);transition:color .25s,padding .25s}
.side-box li a::after{content:"›";color:var(--blue);font-size:20px}
.side-box li a:hover,.side-box li a.on{color:var(--blue);padding-left:6px}
.side-box li a.on{font-weight:600}
.side-box.blue{background:var(--blue);color:#fff}
.side-box.blue h4{color:#fff;font-size:20px}
.side-box.blue p{font-size:15px;opacity:.92;margin-bottom:18px}
.facts{list-style:none}
.facts li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #dde2ec;font-size:14px}
.facts li b{color:var(--ink)}
.facts li span{color:var(--muted);text-align:right}
.pager{display:flex;justify-content:space-between;gap:20px;margin-top:46px;padding-top:26px;border-top:1px solid #e3e7f0}
.pager a{color:var(--blue);font-weight:500;max-width:48%}
.pager a small{display:block;color:var(--muted);font-weight:400;font-size:13px}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:start}
.form-card{background:#fff;padding:36px 34px;box-shadow:0 18px 44px rgba(6,16,74,.12);border-top:4px solid var(--blue)}
.form-card h2{font-size:26px;font-weight:500;color:var(--ink);margin-bottom:6px}
.form-card .hint{font-size:14px;color:var(--muted);margin-bottom:24px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.field label{font-size:14px;font-weight:500;color:var(--ink)}
.field label b{color:#d23}
.field input,.field textarea,.field select{font:inherit;font-size:15px;padding:12px 14px;border:1.5px solid #d6dbe6;background:#fbfcfe;color:var(--ink);transition:border-color .25s,box-shadow .25s,background .25s;border-radius:0}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(10,111,219,.12)}
.field textarea{min-height:150px;resize:vertical}
.field .err{color:#c2182b;font-size:13px}
.field.has-err input,.field.has-err textarea{border-color:#c2182b}
.hp{position:absolute;left:-9999px;opacity:0}
.office-card{display:flex;gap:16px;padding:22px 0;border-bottom:1px solid #e3e7f0}
.office-card .pin{flex:0 0 46px;height:46px;background:var(--blue);display:grid;place-items:center}
.office-card .pin svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:1.8}
.office-card h3{font-size:19px;color:var(--ink);font-weight:600;margin-bottom:4px}
.office-card p{font-size:15px;color:var(--muted)}
.office-card a{color:var(--blue);font-size:15px}
.flash{position:relative;padding:16px 20px;margin-bottom:22px;font-size:15px;border-left:4px solid;transition:opacity .5s,transform .5s;animation:heroUp .6s var(--ease) both}
.flash.ok{background:#e9f7ef;border-color:#1e9e5a;color:#12623a}
.flash.bad{background:#fdecee;border-color:#c2182b;color:#8a1020}
.flash.hide{opacity:0;transform:translateY(-10px)}

.empty{padding:40px;text-align:center;color:var(--muted);background:var(--grey)}
.err-page{padding:120px 0;text-align:center}
.err-page h1{font-size:110px;color:var(--blue);line-height:1}
.err-page p{font-size:19px;color:var(--ink);margin:14px 0 30px}
.err-page .btn{margin:0 auto}

@media (max-width:1100px){.card-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr 300px;gap:34px}}
@media (max-width:960px){
  .detail-grid,.contact-grid{grid-template-columns:1fr}
  .sidebar{position:static}
  .page-banner{padding:60px 0 56px}
  .page-banner h1{font-size:34px}
  .page-banner p{font-size:17px}
}
@media (max-width:640px){
  .card-grid,.card-grid.two,.frow{grid-template-columns:1fr}
  .section{padding:56px 0}
  .form-card{padding:26px 20px}
  .page-banner h1{font-size:29px}
  .pager{flex-direction:column}
  .pager a{max-width:none}
}
.f-grid.f-grid-5{grid-template-columns:1.4fr 1fr 1.1fr 1fr 1fr;gap:34px}
.f-offices-more{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:26px;padding-top:20px;border-top:1px solid #eef0f4}
.f-offices-more .office p{margin:0}
.nav>ul>li>a.active{color:var(--blue)}
.nav>ul>li>a.active::after{transform:scaleX(1)}
@media (max-width:1100px){.f-grid.f-grid-5{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:640px){.f-grid.f-grid-5{grid-template-columns:1fr}}
.pagination{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:40px}
.pagination .pg{min-width:40px;padding:9px 12px;text-align:center;border:1.5px solid #d6dbe6;color:var(--ink);font-size:14px;transition:.25s}
.pagination a.pg:hover{border-color:var(--blue);color:var(--blue)}
.pagination .pg.on{background:var(--blue);border-color:var(--blue);color:#fff}
.pagination .pg.disabled{opacity:.45}
.q-card .q-logo{height:64px;display:flex;align-items:center;margin-bottom:16px;position:relative;z-index:1}
.q-card .q-logo img{max-height:64px;max-width:190px;width:auto;object-fit:contain;transition:transform .5s var(--ease)}
.q-card:hover .q-logo img{transform:scale(1.05)}
@media (max-width:600px){.q-card .q-logo{height:52px}.q-card .q-logo img{max-height:52px;max-width:160px}}

/* contact: social + map */
.contact-social{margin-top:28px;padding-top:24px;border-top:1px solid #e3e7f0}
.contact-social h3{font-size:19px;color:var(--ink);font-weight:600;margin-bottom:14px}
.social-list{display:flex;flex-wrap:wrap;gap:10px}
.social-list a{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1.5px solid #d6dbe6;background:#fff;color:var(--ink);font-size:14px;font-weight:500;transition:background .3s,border-color .3s,color .3s,transform .3s var(--ease)}
.social-list a svg{width:18px;height:18px;fill:var(--blue);transition:fill .3s}
.social-list a:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-3px)}
.social-list a:hover svg{fill:#fff}
.map-section{padding:70px 0 80px}
.map-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}
.map-tabs{display:flex;flex-wrap:wrap;gap:8px}
.map-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1.5px solid #d6dbe6;background:#fff;color:var(--ink);font-size:14px;font-weight:500;transition:.3s}
.map-tab svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.map-tab:hover{border-color:var(--blue);color:var(--blue)}
.map-tab.on{background:var(--blue);border-color:var(--blue);color:#fff}
.map-box{position:relative;height:460px;background:#e8ecf5;box-shadow:0 18px 44px rgba(6,16,74,.12);overflow:hidden}
.map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.9)}
.map-card{position:absolute;left:24px;bottom:24px;background:#fff;padding:18px 20px;max-width:320px;border-left:4px solid var(--blue);box-shadow:0 10px 30px rgba(6,16,74,.18);display:flex;flex-direction:column;gap:4px;animation:heroUp .6s var(--ease) both}
.map-card b{font-size:17px;color:var(--ink)}
.map-card span{font-size:14px;color:var(--muted)}
.map-card a{font-size:14px;color:var(--blue);font-weight:500;margin-top:4px}
.map-card a:hover{text-decoration:underline}
.f-bottom span{display:block}
@media (max-width:640px){
  .map-section{padding:50px 0 56px}
  .map-box{height:340px}
  .map-card{left:12px;right:12px;bottom:12px;max-width:none;padding:14px 16px}
  .map-tab{padding:8px 12px;font-size:13px}
  .social-list a{padding:8px 12px}
}

/* technology partners marquee */
.partners{background:#f3f6fd;padding:64px 0 70px;overflow:hidden}
.partners-title{text-align:center;font-size:36px;font-weight:500;color:var(--ink);margin-bottom:36px;line-height:1.2}
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;gap:28px;width:max-content;animation:marquee 35s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.partner-logo{flex:0 0 auto;width:210px;height:76px;background:#fff;display:grid;place-items:center;padding:10px 20px;box-shadow:0 1px 3px rgba(6,16,74,.06);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.partner-logo img{max-width:100%;max-height:52px;object-fit:contain;filter:grayscale(.15);transition:filter .35s,transform .35s var(--ease)}
.partner-logo span{font-weight:600;color:var(--ink)}
.partner-logo:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(6,16,74,.12)}
.partner-logo:hover img{filter:none;transform:scale(1.06)}
@media (max-width:640px){
  .partners{padding:48px 0 52px}
  .partners-title{font-size:25px;margin-bottom:26px;padding:0 6px}
  .marquee-track{gap:16px;animation-duration:25s}
  .partner-logo{width:150px;height:62px;padding:8px 14px}
  .partner-logo img{max-height:42px}
}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto}}

/* keep slide-in animations from widening the page on mobile */
main,footer{overflow-x:clip}

/* contact: regional offices cards */
.branches{background:#f3f6fd;padding:70px 0 80px}
.branches-head{text-align:center;margin-bottom:40px}
.branches-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 14px;border:1.5px solid #1b95c9;border-radius:30px;color:#1b95c9;font-size:13.5px;font-weight:500;background:#fff}
.branches-badge svg{width:16px;height:16px;fill:#1b95c9;stroke:#fff;stroke-width:2.2}
.branches-head h2{font-size:36px;font-weight:600;color:var(--ink);margin-top:12px;line-height:1.2}
.branch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.branch-card{background:#fff;border-radius:16px;padding:36px 26px 30px;text-align:center;display:flex;flex-direction:column;align-items:center;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.branch-card:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(6,16,74,.12)}
.branch-photo{position:relative;width:174px;height:174px;margin-bottom:26px}
.branch-photo .ring{position:absolute;inset:0;border-radius:50%;border:1.5px dashed #1b95c9;animation:spin 22s linear infinite}
.branch-card:hover .branch-photo .ring{animation-duration:6s}
.branch-photo img,.branch-photo .ph{position:absolute;inset:11px;width:calc(100% - 22px);height:calc(100% - 22px);border-radius:50%;object-fit:cover;transition:transform .6s var(--ease)}
.branch-photo .ph{display:grid;place-items:center;background:#e8f1fb}
.branch-photo .ph svg{width:44px;height:44px;stroke:var(--blue);fill:none;stroke-width:1.6}
.branch-card:hover .branch-photo img{transform:scale(1.06)}
.branch-card h3{font-size:21px;font-weight:500;color:var(--ink)}
.branch-card .type{font-size:12.5px;color:#1b95c9;font-weight:500;text-transform:uppercase;letter-spacing:.02em;margin-top:8px}
.branch-card .bar{display:block;width:38px;height:2px;background:#1b95c9;margin:14px 0 16px;transition:width .4s var(--ease)}
.branch-card:hover .bar{width:70px}
.branch-card .addr{font-size:14.5px;color:#555e75;line-height:1.6;max-width:240px}
.branch-card .line{font-size:14.5px;color:#555e75;margin-top:9px;transition:color .25s}
.branch-card .line:hover{color:var(--blue)}
.branch-card .map-link{margin-top:14px;font-size:13.5px;color:var(--blue);font-weight:500;opacity:.85}
.branch-card .map-link:hover{opacity:1;text-decoration:underline}
@media (max-width:960px){.branch-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){
  .branches{padding:52px 0 58px}
  .branches-head h2{font-size:26px}
  .branch-grid{grid-template-columns:1fr;gap:16px}
  .branch-photo{width:150px;height:150px}
}

/* legal pages (privacy / terms) */
.legal{background:#f3f6fd;padding:70px 0 90px}
.legal-grid{display:grid;grid-template-columns:280px 1fr;gap:34px;align-items:start}
.legal-side{position:sticky;top:110px;display:flex;flex-direction:column;gap:18px}
.legal-toc{background:#fff;border-radius:14px;padding:24px 22px;box-shadow:0 1px 3px rgba(6,16,74,.06)}
.legal-toc h4{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:12px}
.legal-toc ol{list-style:none;counter-reset:t;max-height:calc(100vh - 300px);overflow-y:auto}
.legal-toc li{counter-increment:t}
.legal-toc a{display:flex;gap:10px;padding:8px 10px;border-radius:8px;font-size:14px;color:var(--ink);line-height:1.35;transition:background .25s,color .25s,padding .25s}
.legal-toc a::before{content:counter(t,decimal-leading-zero);color:#9aa5c0;font-size:12px;font-weight:600;padding-top:2px}
.legal-toc a:hover{background:#f0f5fd;color:var(--blue)}
.legal-toc a.on{background:var(--blue);color:#fff}
.legal-toc a.on::before{color:rgba(255,255,255,.75)}
.legal-other a{display:block;background:var(--navy);color:#fff;border-radius:14px;padding:18px 22px;font-weight:500;transition:background .3s,transform .3s var(--ease)}
.legal-other a span{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:4px}
.legal-other a:hover{background:var(--blue);transform:translateY(-3px)}
.legal-card{background:#fff;border-radius:16px;padding:40px 46px 36px;box-shadow:0 1px 3px rgba(6,16,74,.06)}
.legal-meta{display:flex;align-items:center;gap:14px;padding-bottom:22px;margin-bottom:26px;border-bottom:1px solid #e6eaf2}
.legal-meta b{display:block;font-size:18px;color:var(--ink)}
.legal-meta small{color:var(--muted);font-size:13.5px}
.legal-icon{width:48px;height:48px;border-radius:12px;background:#e8f1fd;display:grid;place-items:center;flex:0 0 48px}
.legal-icon svg{width:24px;height:24px;stroke:var(--blue);fill:none;stroke-width:1.8}
.legal-print{margin-left:auto;padding:8px 16px;border:1.5px solid #d6dbe6;border-radius:8px;font-size:13.5px;color:var(--ink);background:#fff;transition:.25s}
.legal-print:hover{border-color:var(--blue);color:var(--blue)}
.legal-body h2{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:600;margin:38px 0 14px;scroll-margin-top:110px}
.legal-body h2:first-of-type{margin-top:10px}
.legal-body h2 .num{flex:0 0 auto;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e8f1fd;color:var(--blue);font-size:13px;font-weight:700}
.legal-body p,.legal-body li{color:#3c4a6b}
.legal-help{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:40px;padding:22px 24px;border-radius:14px;background:linear-gradient(135deg,#06104a,#0a6fdb)}
.legal-help b{display:block;color:#fff;font-size:18px}
.legal-help span{color:rgba(255,255,255,.85);font-size:14px}
.legal-help .btn{background:#fff;color:var(--blue);border-color:#fff}
.legal-help .btn:hover{color:#fff}
.f-bottom .f-legal{margin-top:6px}
.f-bottom .f-legal a{margin:0 8px;color:var(--ink);transition:color .25s}
.f-bottom .f-legal a:hover{color:var(--blue)}
@media (max-width:960px){
  .legal-grid{grid-template-columns:1fr}
  .legal-side{position:static;order:2}
  .legal-toc ol{max-height:none}
  .legal-card{padding:30px 26px}
}
@media (max-width:640px){
  .legal{padding:40px 0 60px}
  .legal-card{padding:24px 18px;border-radius:12px}
  .legal-body h2{font-size:19px}
  .legal-meta{flex-wrap:wrap}
  .legal-print{display:none}
}
@media print{
  .header,.overlay,.hero-tabs,footer,.to-top,.float-mail,.legal-side,.legal-help,.page-banner canvas,.legal-print{display:none!important}
  main{padding:0!important}.page-banner{padding:20px 0;background:#fff!important;color:#000}.page-banner::after,.page-banner .bg{display:none}
  .legal{background:#fff;padding:0}.legal-grid{display:block}.legal-card{box-shadow:none;padding:0}
  [data-reveal]{opacity:1!important;transform:none!important}
}

/* icon-only social buttons (contact page) */
.social-list{gap:12px}
.social-list a{width:46px;height:46px;padding:0;border-radius:50%;justify-content:center;gap:0}
.social-list a svg{width:19px;height:19px}
.form-note{font-size:13px;color:var(--muted);margin-top:14px}
.form-note a{color:var(--blue);text-decoration:underline}
/* footer social bar – round icons */
.social{gap:14px;padding:14px 0}
.social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);transition:background .3s,transform .3s var(--ease)}
.social a:hover{background:#fff;transform:translateY(-4px)}
.social a:hover svg{fill:var(--blue)}
.social svg{transition:fill .3s}

/* searchable select */
.ss{position:relative}
.ss-native{position:absolute!important;opacity:0;pointer-events:none;left:0;bottom:0;width:100%;height:1px}
.ss-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font:inherit;font-size:15px;padding:12px 14px;border:1.5px solid #d6dbe6;background:#fbfcfe;color:var(--ink);cursor:pointer;transition:border-color .25s,box-shadow .25s,background .25s}
.ss-btn .ph{color:#8a93a8}
.ss-btn i{width:9px;height:9px;border-right:2px solid #6b7590;border-bottom:2px solid #6b7590;transform:rotate(45deg);margin:-4px 4px 0 0;transition:transform .3s var(--ease)}
.ss.open .ss-btn,.ss-btn:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(10,111,219,.12)}
.ss.open .ss-btn i{transform:rotate(-135deg);margin-top:4px}
.field.has-err .ss-btn{border-color:#c2182b}
.ss-panel{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:#fff;border:1.5px solid #d6dbe6;box-shadow:0 18px 40px rgba(6,16,74,.16);padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .25s var(--ease),visibility .2s}
.ss.open .ss-panel{opacity:1;visibility:visible;transform:none}
.ss-search{width:100%;font:inherit;font-size:14.5px;padding:9px 12px;border:1.5px solid #d6dbe6;margin-bottom:6px}
.ss-search:focus{outline:0;border-color:var(--blue)}
.ss-list{list-style:none;max-height:230px;overflow-y:auto;margin:0;padding:0}
.ss-list li{padding:10px 12px;font-size:15px;color:var(--ink);cursor:pointer;transition:background .15s,color .15s}
.ss-list li:hover,.ss-list li.act{background:#eef4fd;color:var(--blue)}
.ss-list li.sel{background:var(--blue);color:#fff}
.ss-empty{display:none;padding:10px 12px;font-size:14px;color:var(--muted)}
.field.has-err .ss-search{border-color:#d6dbe6}
.field.has-err .ss-search:focus{border-color:var(--blue)}
