:root {
  --black: #031d43;
  --green-primary: #0756ad;
  --green-dark: #032b63;
  --green-light: #d8eeff;
  --green-pale: #eef7ff;
  --gray-50: #f7fafc;
  --gray-100: #edf2f7;
  --gray-200: #dce6ef;
  --gray-300: #c5d2df;
  --gray-400: #94a5b7;
  --gray-500: #65758a;
  --gray-600: #4b5d72;
  --gray-700: #33465b;
  --gray-800: #1e3248;
  --gray-900: #102238;
  --radius-md: 10px;
  --radius-lg: 18px;
  --radius-xl: 28px;
  --radius-full: 999px;
  --shadow-md: 0 12px 35px rgba(3, 43, 99, 0.1);
  --shadow-xl: 0 24px 70px rgba(3, 43, 99, 0.18);
  --transition: 0.3s ease;
}
.globe {
  position: absolute;
  width: min(38vw, 650px);
  aspect-ratio: 1;
  right: 3%;
  top: 7%;
  border-radius: 50%;
  overflow: hidden;
  background: radial-gradient(
    circle at 30% 22%,
    #55c9f2 0,
    #0a70c3 42%,
    #03468e 70%,
    #022a62 100%
  );
  box-shadow:
    inset -40px -25px 70px rgba(0, 19, 61, 0.58),
    inset 18px 15px 35px rgba(255, 255, 255, 0.22),
    -20px 30px 80px rgba(0, 82, 165, 0.3);
}
.globe-map {
  position: absolute;
  inset: 5%;
  border-radius: 50%;
  opacity: 0.42;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='420' viewBox='0 0 900 420'%3E%3Cg fill='%23b9eaff'%3E%3Cpath d='M55 88l62-39 83 17 52 53-26 37-51 2-23 51-60-18-18-47-42-20zM247 204l61 18 45 65-15 94-44 24-29-76-35-55zM433 61l61-29 86 22 36 42-31 29-49-14-24 38-61-12-34-42zM498 160l88-22 91 38 39 78-56 28-53-19-31 83-64-35-14-73-42-31zM724 276l69-26 62 45-25 66-76 14-38-47z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: auto 100%;
  background-repeat: repeat-x;
  animation: globeRotate 22s linear infinite;
  filter: drop-shadow(0 3px 4px rgba(0, 30, 75, 0.2));
}
.globe:after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: repeating-radial-gradient(
    ellipse at center,
    transparent 0 11%,
    rgba(181, 229, 249, 0.18) 11.4% 11.8%,
    transparent 12.2% 22%
  );
  transform: scaleX(1.55);
  opacity: 0.52;
}
.globe-shine {
  position: absolute;
  z-index: 2;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(
    circle at 27% 20%,
    rgba(255, 255, 255, 0.32),
    transparent 29%
  );
}
.hero-white-logo {
  position: absolute;
  z-index: 4;
  width: 39%;
  height: 39%;
  left: 30.5%;
  top: 30.5%;
  object-fit: contain;
  filter: drop-shadow(0 9px 16px rgba(0, 29, 76, 0.3));
}
@keyframes globeRotate {
  to {
    background-position: -900px 0;
  }
}
.service-icon:after {
  display: none !important;
}
.service-icon {
  overflow: hidden;
}
.service-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.project-marquee {
  width: 100%;
  overflow: hidden;
  padding: 10px 0 35px;
}
.project-track {
  display: flex;
  width: max-content;
  gap: 24px;
  animation: projectFlow 42s linear infinite;
}
.project-marquee:hover .project-track {
  animation-play-state: paused;
}
.project-item {
  width: clamp(280px, 34vw, 520px);
  margin: 0;
  flex: none;
}
.project-item img {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  border-radius: 4px;
  background: #f2f5f8;
}
.project-item figcaption {
  padding-top: 13px;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--muted);
}
@keyframes projectFlow {
  to {
    transform: translateX(calc(-50% - 12px));
  }
}
.page-template-default #main-content,
.page:not(.home) #main-content,
.single #main-content,
.archive #main-content {
  color: var(--ink);
}
.page:not(.home) section[style*="background:var(--black)"],
.single section[style*="background:var(--black)"],
.archive section[style*="background:var(--black)"] {
  color: #fff;
}
@media (max-width: 1000px) {
  .globe {
    width: 60vw;
  }
  .hero-white-logo {
    width: 38%;
    height: 38%;
  }
}
@media (max-width: 680px) {
  .globe {
    width: 78vw;
    right: 0;
    top: 8%;
  }
  .project-track {
    gap: 14px;
    animation-duration: 32s;
  }
  .project-item {
    width: 78vw;
  }
}
@media (prefers-reduced-motion: reduce) {
  .globe-map,
  .project-track {
    animation-play-state: paused;
  }
}

/* v2.2 — subpage spacing, breadcrumbs, calmer interactions and realistic globe */
body:not(.home) #main-content {
  padding-top: 118px;
}
.container {
  width: min(1180px, 88%);
  margin-left: auto;
  margin-right: auto;
}
.page-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 8vw, 118px) 0 clamp(58px, 7vw, 95px);
  background: linear-gradient(135deg, #f7fbff 0%, #e5f3ff 100%);
  color: var(--ink);
}
.page-hero:after {
  content: "";
  position: absolute;
  width: 36vw;
  height: 36vw;
  border-radius: 50%;
  right: -12vw;
  top: -24vw;
  background: radial-gradient(
    circle,
    rgba(38, 169, 224, 0.18),
    rgba(7, 86, 173, 0.03) 62%,
    transparent 63%
  );
}
.page-hero-content {
  position: relative;
  z-index: 1;
}
.page-hero .section-label {
  display: block;
  margin-bottom: 18px;
  color: var(--blue);
  font-size: 12px;
  letter-spacing: 0.22em;
  font-weight: 700;
}
.page-hero h1 {
  margin: 0 0 16px;
  color: var(--ink);
  font-size: clamp(38px, 5.4vw, 72px);
  line-height: 1.18;
  letter-spacing: -0.035em;
}
.page-hero p {
  margin: 0;
  color: var(--muted);
}
.breadcrumb {
  background: #fff;
  border-top: 1px solid rgba(7, 86, 173, 0.08);
  border-bottom: 1px solid var(--line);
}
.breadcrumb-list {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap;
  gap: 0 !important;
  min-height: 54px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.breadcrumb-list li {
  display: flex;
  align-items: center;
  margin: 0 !important;
  padding: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.breadcrumb-list li::before,
.breadcrumb-list li::marker {
  display: none !important;
  content: none !important;
}
.breadcrumb-list a {
  color: var(--blue);
  transition: color 0.45s ease;
}
.breadcrumb-list a:hover {
  color: var(--deep);
}
.breadcrumb-list .sep {
  display: block;
  margin: 0 13px;
  color: #a9b9c8;
  font-size: 16px;
}
.service-row {
  transition:
    padding 0.68s cubic-bezier(0.22, 0.61, 0.36, 1),
    background-color 0.68s ease !important;
}
.service-row .service-icon,
.service-row h3,
.service-row p,
.service-row > b {
  transition:
    transform 0.68s cubic-bezier(0.22, 0.61, 0.36, 1),
    color 0.68s ease,
    background-color 0.68s ease !important;
}
.service-row:hover .service-icon {
  transform: scale(1.04);
}
.service-row:hover > b {
  transform: rotate(8deg);
}
.globe {
  background: radial-gradient(
    circle at 31% 23%,
    #49b7eb 0,
    #0877c8 29%,
    #0754a0 53%,
    #032f70 76%,
    #011d48 100%
  );
  box-shadow:
    0 0 0 7px rgba(94, 203, 245, 0.13),
    0 0 42px rgba(49, 176, 230, 0.38),
    inset -72px -46px 100px rgba(0, 12, 43, 0.68),
    inset 24px 18px 45px rgba(192, 239, 255, 0.25),
    -22px 34px 85px rgba(0, 55, 128, 0.34);
}
.globe:after {
  display: none;
}
.globe-map {
  inset: 2%;
  opacity: 0.82;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='420' viewBox='0 0 900 420'%3E%3Cdefs%3E%3ClinearGradient id='l' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop stop-color='%237ecf92'/%3E%3Cstop offset='.55' stop-color='%234a9d72'/%3E%3Cstop offset='1' stop-color='%232f765c'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='url(%23l)' stroke='%2394d8a2' stroke-width='2'%3E%3Cpath d='M35 89l68-47 96 19 53 50-20 43-48 4-31 55-62-16-20-48-50-23zM245 205l65 13 47 69-15 101-43 26-33-78-38-57zM424 59l69-35 93 27 39 48-37 31-48-15-27 41-67-15-36-50zM491 158l96-27 98 43 41 82-61 32-58-21-32 88-67-39-17-77-46-32zM719 274l78-29 67 49-28 72-83 16-41-51z'/%3E%3C/g%3E%3C/svg%3E");
  filter: drop-shadow(0 5px 6px rgba(0, 24, 49, 0.45));
}
.globe-clouds {
  position: absolute;
  z-index: 1;
  inset: 1%;
  border-radius: 50%;
  opacity: 0.34;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='840' height='360' viewBox='0 0 840 360'%3E%3Cg fill='none' stroke='%23ffffff' stroke-linecap='round'%3E%3Cpath d='M20 78c85-43 141 26 225-5s138-20 197 8 134 5 196-22' stroke-width='17' opacity='.55'/%3E%3Cpath d='M110 235c63-29 121 21 193-3s109-8 168 18 117 4 184-24' stroke-width='12' opacity='.42'/%3E%3Cpath d='M348 145c48-19 89 10 131-7s89-13 131 5' stroke-width='8' opacity='.38'/%3E%3C/g%3E%3C/svg%3E");
  background-size: auto 100%;
  background-repeat: repeat-x;
  animation: cloudRotate 32s linear infinite;
}
.globe-shine {
  z-index: 3;
  background: radial-gradient(
    circle at 27% 19%,
    rgba(255, 255, 255, 0.43),
    rgba(255, 255, 255, 0.08) 24%,
    transparent 44%
  );
}
@keyframes cloudRotate {
  to {
    background-position: -840px 0;
  }
}
@media (max-width: 1000px) {
  body:not(.home) #main-content {
    padding-top: 89px;
  }
}
@media (max-width: 680px) {
  .page-hero {
    padding: 58px 0 50px;
  }
  .breadcrumb-list {
    min-height: 48px;
  }
  .breadcrumb-list .sep {
    margin: 0 9px;
  }
}

/* v2.3 — generated realistic earth, restored exterior orbits, cache-safe subpage offset */
body.page:not(.home) #main-content,
body.single #main-content,
body.archive #main-content,
body.search #main-content,
body.error404 #main-content {
  padding-top: 118px !important;
}
.globe {
  overflow: visible;
  background: none;
  box-shadow: none;
}
.globe:after,
.globe-map,
.globe-clouds,
.globe-shine {
  display: none !important;
}
.earth-photo {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(-18px 28px 42px rgba(0, 55, 128, 0.3));
  animation: earthSpin 110s linear infinite;
}
.hero-white-logo {
  z-index: 5;
}
.hero-visual .orbit {
  display: block !important;
  z-index: 0;
  border-color: rgba(7, 86, 173, 0.28);
}
.hero-visual .orbit-one {
  animation: orbitDrift 12s ease-in-out infinite alternate;
}
.hero-visual .orbit-two {
  animation: orbitDrift 16s ease-in-out -5s infinite alternate-reverse;
}
@keyframes earthSpin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes orbitDrift {
  from {
    transform: rotate(-22deg) scale(1);
  }
  to {
    transform: rotate(-16deg) scale(1.025);
  }
}
@media (max-width: 1000px) {
  body.page:not(.home) #main-content,
  body.single #main-content,
  body.archive #main-content,
  body.search #main-content,
  body.error404 #main-content {
    padding-top: 42px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .earth-photo,
  .hero-visual .orbit {
    animation: none !important;
  }
}
