:root{
  --primary:#208EC5; --primary-dark:#155E83; --secondary:#7049BA; --navy:#052E42;
  --head:#1A1A1A; --text:#333; --muted:#999; --border:#E8E8E8; --alt:#F5F5F5;
  --card:#EEEEEE; --grey-wash:#EDEDED; --footer:#2A2A2A; --footer-bar:#222;
  --container:1140px; --gutter:24px; --header-h:85px;
  --font:'Roboto',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --display:'Raleway','Roboto',sans-serif;
  --shadow-card:0 .01rem .02rem rgba(0,0,0,.1),0 .03rem .1rem rgba(0,0,0,.1);
  --shadow-card-hover:0 .05rem .1rem rgba(0,0,0,.1),0 .17rem .5rem rgba(0,0,0,.15);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font);font-size:16px;line-height:23px;color:var(--text);background:#fff;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--primary);text-decoration:none;transition:color .3s;}
a:hover{color:var(--secondary);}
h1,h2,h3,h4{font-family:var(--font);color:var(--head);margin:0 0 1.5rem;line-height:1.2;}
h1{font-size:2.2rem;font-weight:700;} h2{font-size:2rem;font-weight:400;} h3{font-size:1.8rem;font-weight:400;} h4{font-size:1.1rem;}
p{margin:0 0 1.5rem;}
.container{max-width:calc(var(--container) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter);width:100%;}
.section{padding:4rem 0;}
[id]{scroll-margin-top:60px;}

/* ---- Buttons ---- */
.btn{display:inline-block;font:700 16px/1.2 var(--font);padding:.8em 1.8em;border-radius:.3em;border:2px solid transparent;
  background:var(--primary);color:#fff;cursor:pointer;transition:background .3s,color .3s;}
.btn:hover{background:var(--primary-dark);color:#fff;}

/* =========================== HEADER =========================== */
.site-header{position:fixed;top:0;left:0;right:0;z-index:111;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.08);
  transition:box-shadow .3s cubic-bezier(.78,.13,.15,.86);}
.header-inner{display:flex;align-items:center;height:var(--header-h);transition:height .3s cubic-bezier(.78,.13,.15,.86);}
/* logo box = client logo size (320x40); any other logo is fitted proportionally inside it */
.site-logo{flex:0 0 auto;margin-right:20px;display:flex;align-items:center;}
.site-logo img{height:40px;width:auto;max-width:min(320px,calc(100vw - 120px));object-fit:contain;object-position:left center;
  transition:height .3s cubic-bezier(.78,.13,.15,.86),max-width .3s cubic-bezier(.78,.13,.15,.86);}
.site-header.sticky .header-inner{height:50px;}
.site-header.sticky .site-logo img{height:32px;max-width:min(256px,calc(100vw - 120px));}
.main-nav{flex:1 1 auto;}
.nav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;}
.nav-list a{position:relative;display:block;padding:0 18px;line-height:50px;font-size:16px;color:var(--text);white-space:nowrap;}
.nav-list a::after{content:"";position:absolute;left:18px;right:18px;bottom:-.4em;height:2px;background:currentColor;opacity:0;transition:bottom .3s,opacity .3s;}
.nav-list a:hover,.nav-list li.active>a,.nav-list a.current{color:var(--primary);}
.nav-list a:hover::after{bottom:4px;opacity:1;}
.burger{display:none;margin-left:auto;width:36px;height:36px;border:0;background:none;cursor:pointer;padding:8px;flex-direction:column;justify-content:space-between;}
.burger span{display:block;width:20px;height:3px;background:var(--text);transition:transform .3s,opacity .3s;}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.site-main-wrap{padding-top:var(--header-h);}

/* =========================== HERO =========================== */
.hero{position:relative;height:calc(100vh - 60px);min-height:480px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-shade{position:absolute;inset:0;background:rgba(41,46,49,.25);}
.hero-content{position:relative;z-index:2;text-align:center;padding:0 var(--gutter);max-width:900px;transition:transform .6s ease-out;}
.hero-line1{font:800 70px/79px var(--display);color:#fff;margin:0 auto 18px;max-width:857px;opacity:0;animation:heroUp 1s .75s ease-out forwards;}
.hero-line2{font:800 60px/70px var(--display);color:#fff;margin:0 0 56px;}
.hero-line2 span{display:inline-block;opacity:0;transform:scale(.8);animation:heroLetter .45s ease-out forwards;animation-delay:calc(1.6s + var(--i) * 45ms);}
.hero-btn{display:inline-block;font:700 20px/1 var(--display);letter-spacing:3px;text-transform:uppercase;color:#fff;
  border:2px solid rgba(255,255,255,.15);padding:20px 50px;opacity:0;animation:heroUp 2s .75s ease-out forwards;transition:color .3s,border-color .3s;}
.hero-btn:hover{color:var(--primary);border-color:var(--primary);}
@keyframes heroUp{from{opacity:0;transform:translateY(50px);}to{opacity:1;transform:none;}}
@keyframes heroLetter{to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.hero-line1,.hero-line2 span,.hero-btn{animation:none;opacity:1;transform:none;}}
.spacer-medium{height:128px;}

/* =========================== SERVICE CARDS =========================== */
.cards-section{padding-top:0;margin-bottom:60px;}
.cards-grid{display:flex;gap:48px;align-items:center;}
.service-card{flex:1 1 0;min-height:420px;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--card);border-radius:10px;
  padding:30px 22px 22px;box-shadow:2px 2px 5px 3px #F5F5F5;transition:all .5s;}
.service-card:hover{background:#fff;border-color:#fff;box-shadow:4px 4px 6px 6px #E8E8E8;}
.service-card-icon{width:64px;height:64px;margin:0 auto;}
.service-card-icon img{width:64px;height:64px;object-fit:cover;border-radius:50%;}
.service-card h3{text-align:center;padding:14.4px 0;margin:0;}
.service-card p{text-align:justify;margin-bottom:1rem;}
.read-more{margin-top:auto;align-self:flex-end;font-weight:700;font-size:13.3px;color:var(--primary);}

/* =========================== SPLIT BAND =========================== */
.split-band{padding:160px 0;background:url('/assets/images/bg-world-map.png') center/cover no-repeat;}
.split-row{display:flex;}
.split-photo,.split-panel{flex:0 0 50%;min-height:496px;}
.split-photo{background-size:cover;background-position:center;}
.split-panel{background:rgba(32,142,197,.8);padding:24px;display:flex;flex-direction:column;justify-content:center;}
.split-text{padding:0 10% 0 15px;}
.split-text h3{font-weight:700;color:#F7F7F7;}
.split-text p{color:#F7F7F7;text-align:justify;margin:0;}
.split-text strong{color:#fff;}

/* =========================== SECTION TITLES =========================== */
.title-section{padding:0;}
.big-title{font-size:48px;font-weight:700;color:var(--primary);text-align:center;margin:0;line-height:1.2;}
.separator{height:4rem;display:flex;align-items:center;justify-content:center;}
.separator span{display:block;width:30%;border-top:1px solid var(--muted);}

/* =========================== FEATURE ITEMS =========================== */
.features-grid{display:flex;flex-wrap:wrap;margin:0 calc(-1 * var(--gutter));}
.features-grid.cols-3 .feature-item{flex:0 0 33.333%;max-width:33.333%;}
.features-grid.cols-2 .feature-item{flex:0 0 50%;max-width:50%;}
.feature-item{display:flex;gap:15px;padding:0 var(--gutter);margin-bottom:35px;}
.feature-icon{flex:0 0 48px;width:48px;height:48px;}
.feature-icon img{width:48px;height:48px;object-fit:cover;border-radius:50%;}
.feature-body h3{font-size:16px;font-weight:700;line-height:1.2;margin:0;}
.feature-body p{margin:10px 0 0;text-align:justify;}
.features-bg{position:relative;background-size:cover;background-position:center;}
.features-bg::before{content:"";position:absolute;inset:0;background:rgba(237,237,237,.8);}
.features-bg>.container{position:relative;}
#professional-services{margin-top:20px;}

/* =========================== CONSULTING (parallax) =========================== */
.consulting-bg{position:relative;background-size:cover;background-position:center;background-attachment:fixed;}
.consulting-bg::before{content:"";position:absolute;inset:0;background:rgba(237,237,237,.2);}
.consulting-row{position:relative;display:flex;}
.consulting-items{flex:0 0 33.333%;max-width:33.333%;margin-left:8.333%;}
.consulting-items .feature-item{padding:0;}

/* =========================== CAROUSEL =========================== */
.carousel{position:relative;}
.carousel-viewport{overflow:hidden;}
.carousel-track{display:flex;transition:transform .25s ease;will-change:transform;}
.carousel-item{flex:0 0 50%;min-width:0;padding:var(--gutter);}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:3.5rem;height:3.5rem;border-radius:50%;border:0;background:transparent;
  color:var(--text);font-size:1.8rem;cursor:pointer;z-index:3;transition:background .3s;display:flex;align-items:center;justify-content:center;}
.carousel-arrow:hover{background:var(--alt);}
.carousel-arrow.prev{left:-4.5rem;} .carousel-arrow.next{right:-4.5rem;}
.carousel-arrow[disabled]{opacity:.3;cursor:default;}
.partners-title{padding-bottom:30px;}
.carousel-item.partner{display:flex;align-items:center;justify-content:center;min-height:120px;}
.carousel-item.partner img{max-width:100%;max-height:80px;width:auto;}

/* =========================== BLOG CARD =========================== */
.post-card{display:flex;background:#fff;padding:3px;box-shadow:var(--shadow-card);transition:box-shadow .3s;height:100%;}
.post-card:hover{box-shadow:var(--shadow-card-hover);}
.post-card-text{flex:0 0 50%;max-width:50%;display:flex;flex-direction:column;gap:.7rem;padding:1.5rem 0 1.5rem 1.5rem;position:relative;z-index:2;}
.post-card-meta{font-size:14px;line-height:1.4;}
.post-card-cat{font-weight:700;text-transform:uppercase;color:var(--primary);margin-right:.8rem;}
.post-card-date{color:var(--muted);}
.post-card-title{font-size:1.8rem;font-weight:400;line-height:1.2;margin:0 -35% 0 0;background:#fff;padding:1rem 1.2rem 1rem 0;}
.post-card-title a{color:var(--head);}
.post-card-title a:hover{color:var(--primary);}
.post-card-excerpt{font-size:.9rem;line-height:1.6;padding-right:1.5rem;margin:0;}
.post-card-img{flex:0 0 50%;max-width:50%;position:relative;overflow:hidden;}
.post-card-img::before{content:"";display:block;padding-top:100%;}
.post-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* =========================== BLOG PAGE =========================== */
.page-banner{position:relative;padding:4rem 0;background-size:cover;background-position:center;text-align:center;}
.page-banner::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.25);}
.page-banner h1{position:relative;color:#F5F5F5;margin:0;font-weight:700;}
.page-banner.plain{background:var(--primary);}
.page-banner.plain::before{display:none;}
.blog-grid{display:flex;flex-wrap:wrap;margin:0 calc(-1 * var(--gutter));}
.blog-grid>.blog-grid-item{flex:0 0 50%;max-width:50%;padding:var(--gutter);}

/* =========================== SINGLE POST =========================== */
.post-hero{position:relative;padding:10vw 0;background-size:cover;background-position:center;text-align:center;}
.post-hero::before{content:"";position:absolute;inset:0;background:rgba(51,51,51,.75);}
.post-hero h1{position:relative;color:#fff;margin:0;}
.post-content h2{font-size:2rem;font-weight:400;}
.post-content h3{font-size:1.8rem;font-weight:400;}
.post-content *+h2,.post-content *+h3{padding-top:1.5rem;}
.post-content ul{margin:0 0 1.5rem;padding-left:2.5rem;}
.post-content li{margin-bottom:.5rem;}
.post-content strong{color:var(--head);}

/* =========================== CONTACT =========================== */
.contact-row{display:flex;gap:48px;}
.contact-form-col{flex:0 0 calc(66.666% - 24px);}
.contact-info-col{flex:0 0 calc(33.333% - 24px);}
.form-row{display:flex;gap:1.5rem;margin-bottom:1rem;}
.form-row>*{flex:1 1 0;}
.form-field{margin-bottom:1rem;}
.form-field label{display:block;font-weight:700;margin-bottom:.4rem;color:var(--head);}
.form-field label span,.req{color:#c00;}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;min-height:2.5rem;padding:.6rem;font:1rem var(--font);color:var(--text);
  background:var(--alt);border:0;border-radius:.3rem;box-shadow:inset 0 1px 0 rgba(0,0,0,.08);transition:box-shadow .2s;}
.contact-form textarea{resize:vertical;}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;box-shadow:0 0 0 2px var(--primary);}
.contact-info-col h2{font-weight:700;}
.contact-list{list-style:none;margin:1.5rem 0 0;padding:0;}
.contact-list li{display:flex;align-items:center;gap:1rem;padding:1.3rem 0 0;}
.contact-list .ci-icon{flex:0 0 3.5rem;width:3.5rem;height:3.5rem;border-radius:50%;box-shadow:inset 0 0 0 2px var(--primary);
  display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:1.4rem;}
.contact-list a{color:var(--text);} .contact-list a:hover{color:var(--primary);}

/* =========================== LEGAL =========================== */
.legal h2{font-size:1.5rem;font-weight:700;padding-top:1rem;}
.legal ul{margin:0 0 1.5rem;padding-left:2.5rem;}
.legal li{margin-bottom:.4rem;}

/* =========================== FOOTER =========================== */
.footer-main{background:var(--footer);padding:2rem 0;color:var(--muted);}
.footer-grid{display:flex;align-items:center;}
.footer-info{flex:0 0 66.666%;display:flex;}
.footer-col{flex:1 1 50%;padding-right:var(--gutter);}
.footer-heading{font-size:16px;font-weight:700;color:#F2F2F2;margin:0 0 .5rem;}
.footer-col p{margin:0;line-height:1.7;}
.footer-main a{color:#CCC;} .footer-main a:hover{color:#fff;}
.footer-brand{flex:0 0 33.333%;display:flex;justify-content:center;}
/* footer logo box = client logo size (348x44) */
.footer-brand img{height:44px;width:auto;max-width:min(348px,100%);object-fit:contain;object-position:center;}
.footer-bottom{background:var(--footer-bar);padding:32px 0;text-align:center;color:var(--muted);}
.footer-bottom p{margin:0;}
.copyright strong{color:#CCC;}
.legal-links{margin-top:.4rem !important;font-size:13.3px;}
.legal-links a{color:#CCC;} .legal-links a:hover{color:#fff;}
.legal-links span{margin:0 .6rem;color:#555;}

/* ---- back to top ---- */
.to-top{position:fixed;left:15px;bottom:15px;width:50px;height:50px;border-radius:.3rem;background:rgba(0,0,0,.3);color:#fff;
  display:flex;align-items:center;justify-content:center;z-index:100;transform:translateY(80px);transition:transform .3s,background .3s;}
.to-top.show{transform:none;}
.to-top:hover{background:var(--primary);color:#fff;}

/* ---- toast ---- */
.show_message{position:fixed;left:50%;bottom:40px;transform:translateX(-50%) translateY(30px);background:var(--primary);color:#fff;padding:18px 34px;
  border-radius:.3rem;box-shadow:0 12px 30px rgba(0,0,0,.2);opacity:0;visibility:hidden;transition:.35s;z-index:2000;text-align:center;}
.show_message.active{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.show_message p{margin:0;}

/* =========================== RESPONSIVE =========================== */
@media (max-width:1280px){
  .carousel{padding:0 3rem;}
  .carousel-arrow{width:2.75rem;height:2.75rem;font-size:1.4rem;}
  .carousel-arrow.prev{left:0;} .carousel-arrow.next{right:0;}
}
@media (max-width:600px){
  .carousel{padding:0 2.25rem;}
  .carousel-arrow{width:2.25rem;height:2.25rem;font-size:1.1rem;}
  .carousel-item{padding:12px 6px;}
  .carousel-item.partner img{max-height:48px;}
}
@media (max-width:1180px){
  :root{--header-h:50px;}
  .burger{display:flex;}
  .site-logo img{height:34px;max-width:min(272px,calc(100vw - 120px));}
  .main-nav{position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:0 3px 3px rgba(0,0,0,.1);max-height:0;overflow:hidden;transition:max-height .35s;}
  .main-nav.open{max-height:420px;}
  .nav-list{flex-direction:column;align-items:stretch;padding:6px 0;}
  .nav-list a{text-align:right;font-size:1.1rem;line-height:1.2;padding:10.5px var(--gutter);}
  .nav-list a::after{display:none;}
}
@media (max-width:1024px){
  .section{padding:2.5rem 0;}
  .split-band{padding:9vmax 0;}
  .separator{height:calc(1.4rem + 2vw);}
  .hero-line1{font-size:52px;line-height:60px;}
  .hero-line2{font-size:44px;line-height:52px;}
  .features-grid.cols-3 .feature-item{flex-basis:50%;max-width:50%;}
  .consulting-items{flex-basis:50%;max-width:50%;margin-left:0;}
}
@media (max-width:767px){
  .cards-grid,.split-row,.contact-row,.footer-grid,.footer-info{flex-direction:column;}
  .service-card{width:100%;}
  .split-photo,.split-panel{flex-basis:auto;min-height:0;}
  .split-photo{height:300px;}
  .split-panel{padding:32px 24px;}
  .features-grid.cols-3 .feature-item,.features-grid.cols-2 .feature-item{flex-basis:100%;max-width:100%;}
  .consulting-bg{background:var(--grey-wash) !important;}
  .consulting-items{flex-basis:100%;max-width:100%;}
  .blog-grid>.blog-grid-item{flex-basis:100%;max-width:100%;}
  .contact-form-col,.contact-info-col{flex-basis:auto;}
  .footer-info{width:100%;} .footer-col{padding:0 0 1.2rem;}
  .footer-brand{margin-top:1rem;} .footer-brand img{height:33px;max-width:min(260px,100%);}
  .big-title{font-size:38px;}
  .spacer-medium{height:64px;}
}
@media (max-width:600px){
  body{font-size:15px;line-height:24px;}
  h1,h2{font-size:1.7rem;}
  .section{padding:1.5rem 0;}
  .site-logo img{height:28px;max-width:min(224px,calc(100vw - 120px));}
  .site-header.sticky .site-logo img{height:26px;max-width:min(208px,calc(100vw - 120px));}
  .hero-line1{font-size:36px;line-height:39px;}
  .hero-line2{font-size:30px;line-height:36px;color:#007AFF;}
  .hero-btn{font-size:14px;padding:14px 35px;}
  .form-row{flex-direction:column;gap:1rem;}
  .post-card-date,.post-card-excerpt{display:none;}
  .post-card-text{flex-basis:58%;max-width:58%;padding:1rem 0 1rem 1rem;}
  .post-card-img{flex-basis:42%;max-width:42%;}
  .post-card-cat,.post-card-title{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word;}
  .post-card-meta{padding-right:.75rem;}
  .post-card-title{font-size:1.1rem;margin-right:0;padding-right:.75rem;}
}
