/* ==========================================================================
   Blue Orbit Group — shared "orbit" background motif
   Light blue + white, no black. Included on every page of every group site.
   ========================================================================== */

.orbit-bg{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  background:
    radial-gradient(ellipse 900px 700px at 84% -8%, rgba(90,160,232,.30), transparent 60%),
    radial-gradient(ellipse 700px 600px at -8% 108%, rgba(20,93,192,.13), transparent 60%),
    linear-gradient(180deg, #FFFFFF 0%, var(--orbit-pale,#EFF6FE) 55%, var(--orbit-mist,#E3EFFC) 100%);
}
.orbit-field{
  position:absolute;
  top:6%;
  right:-6%;
  width:min(1100px,120vmin);
  height:min(1100px,120vmin);
}
.orbit-field.field-alt{ top:auto; bottom:-14%; left:-16%; right:auto; width:min(760px,90vmin); height:min(760px,90vmin); }
.orbit-ring{
  position:absolute; top:50%; left:50%;
  border-radius:50%;
  border:1.5px solid rgba(11,47,99,.18);
  transform:translate(-50%,-50%);
  animation:orbit-spin linear infinite;
  will-change:transform;
}
.orbit-ring::before{
  content:"";
  position:absolute; top:-4.5px; left:50%;
  width:9px; height:9px; margin-left:-4.5px;
  border-radius:50%;
  background:var(--orbit-2,#2E7BE0);
  box-shadow:0 0 12px 3px rgba(46,123,224,.75);
}
.orbit-ring.r1{ width:34%; height:34%; animation-duration:26s; }
.orbit-ring.r2{ width:56%; height:56%; animation-duration:42s; animation-direction:reverse; border-color:rgba(11,47,99,.15); }
.orbit-ring.r2::before{ background:var(--orbit-bright,#7FC1F5); box-shadow:0 0 12px 3px rgba(127,193,245,.85); }
.orbit-ring.r3{ width:80%; height:80%; animation-duration:64s; border-color:rgba(11,47,99,.11); }
.orbit-ring.r3::before{ width:7px; height:7px; margin-left:-3.5px; background:var(--orbit-1,#145DC0); box-shadow:0 0 10px 2px rgba(20,93,192,.65); }
.orbit-ring.r4{ width:104%; height:104%; animation-duration:90s; animation-direction:reverse; border-color:rgba(11,47,99,.07); }
.orbit-ring.r4::before{ display:none; }

@keyframes orbit-spin{
  from{ transform:translate(-50%,-50%) rotate(0deg); }
  to{ transform:translate(-50%,-50%) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce){
  .orbit-ring{ animation:none; }
}
@media (max-width:640px){
  .orbit-field{ top:-6%; right:-42%; width:130vmin; height:130vmin; }
  .orbit-field.field-alt{ display:none; }
}

/* Ensure page chrome sits above the fixed orbit layer */
.site-header, main, .page-head, section, footer.site-footer, footer{ position:relative; z-index:1; }

/* The sticky header (and any dropdowns/menus inside it, e.g. mobile nav
   panel, .nav-more) must always stack above page sections below it —
   without this, a section with the same z-index that comes later in the
   DOM (e.g. a hero banner) paints on top and silently swallows clicks
   intended for header dropdown menus. */
.site-header{ z-index:1000; }

/* =========================================================
   Touch & mobile UX baseline — shared across all four sites
   ========================================================= */

/* Tap feedback: :hover-only states feel unresponsive on touch,
   so every interactive surface gets an explicit :active press state. */
.btn:active{ transform:scale(0.97); }
.nav-links a:active{ opacity:.6; }
a[class*="card"]:active, .shield-card:active, .spec-card:active, .flow-card:active, .sector-card:active{
  transform:scale(0.985);
  transition:transform .1s ease;
}

/* 44px minimum tap target for the hamburger menu, independent of icon size */
.nav-toggle{ min-width:44px; min-height:44px; align-items:center; justify-content:center; }

/* =========================================================
   Shared "More" dropdown — lets each site nav host extra
   sections (Industries, Case Studies, Careers, Blog, Downloads)
   without crowding the primary nav row.
   ========================================================= */
.nav-more{ position:relative; }
.nav-more > .nav-more-toggle{ cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.nav-more > .nav-more-toggle::after{ content:"▾"; font-size:10px; opacity:.7; }
.nav-more-panel{
  position:absolute; top:calc(100% + 10px); left:0;
  background:#fff; border:1px solid var(--line, rgba(11,47,99,.14));
  border-radius:10px; min-width:200px; padding:8px;
  box-shadow:0 20px 40px -20px rgba(11,47,99,.35);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
  z-index:50;
}
.nav-more:hover > .nav-more-panel,
.nav-more:focus-within > .nav-more-panel,
.nav-more.open > .nav-more-panel{
  opacity:1; visibility:visible; transform:translateY(0);
}
.nav-more-panel a{
  display:block; padding:10px 12px !important; border-radius:6px;
  font-size:14px !important; text-transform:none !important; letter-spacing:0 !important;
  color:var(--ink) !important; white-space:nowrap;
}
.nav-more-panel a:hover{ background:rgba(46,123,224,.08); }
@media (max-width:980px){
  .nav-more-panel{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:none; padding:0 0 0 14px; margin-top:2px;
    background:transparent; display:block;
  }
  .nav-more > .nav-more-toggle{ pointer-events:none; }
  .nav-more > .nav-more-toggle::after{ display:none; }
  .nav-more-panel a{ padding:12px 10px !important; border-bottom:1px solid var(--line-soft, rgba(11,47,99,.08)); font-size:15px !important; }
}

/* Larger invisible tap area for small decorative controls (carousel dots) */
.banner-dots button{ position:relative; }
.banner-dots button::before{
  content:"";
  position:absolute;
  top:50%; left:50%;
  width:32px; height:32px;
  transform:translate(-50%,-50%);
}

/* =========================================================
   Language switcher — shared across all English + Hindi pages
   ========================================================= */
.lang-switch{
  display:inline-flex; align-items:center; gap:6px;
  font-family:"JetBrains Mono", monospace; font-size:12.5px; font-weight:600;
  padding:9px 14px; border:1px solid var(--line, rgba(11,47,99,.16));
  border-radius:20px; color:inherit; white-space:nowrap; flex-shrink:0;
  transition:background .2s ease, border-color .2s ease;
}
.lang-switch:hover{ background:rgba(46,123,224,.10); border-color:rgba(46,123,224,.4); }
.lang-switch:active{ transform:scale(0.96); }
.lang-switch .lang-off{ opacity:.45; }
@media (max-width:980px){
  .lang-switch{ width:100%; justify-content:center; margin-top:6px; }
}

.orbit-field.compact{ width:60vmin; height:60vmin; top:-20%; right:-14%; }
@media (max-width:640px){ .orbit-field.compact{ width:90vmin; height:90vmin; top:-30%; right:-34%; } }

/* Dark-section variant: light rings for use inside deep-blue blocks (hero, page-head, CTA, footer) */
.orbit-field.on-dark{ position:absolute; z-index:0; pointer-events:none; }
.orbit-field.on-dark .orbit-ring{ border-color:rgba(255,255,255,.22); }
.orbit-field.on-dark .orbit-ring::before{ background:#DCEEFC; box-shadow:0 0 12px 3px rgba(220,238,252,.65); }
.orbit-field.on-dark .orbit-ring.r2{ border-color:rgba(255,255,255,.16); }
.orbit-field.on-dark .orbit-ring.r2::before{ background:#BFE0FB; box-shadow:0 0 12px 3px rgba(191,224,251,.7); }
.orbit-field.on-dark .orbit-ring.r3{ border-color:rgba(255,255,255,.12); }
.orbit-field.on-dark .orbit-ring.r3::before{ background:#8FC7F2; box-shadow:0 0 10px 2px rgba(143,199,242,.6); }
.orbit-field.on-dark .orbit-ring.r4{ border-color:rgba(255,255,255,.09); }

/* =========================================================
   CONTACT ICONS — email / phone / WhatsApp / landline
   Shared across Blue Orbit Group and every operating company
   site. Add class "contact-link" to any mailto:/tel:/wa.me
   anchor and place a "c-icon" svg as its first child.
   ========================================================= */
.contact-link{
  display:flex !important; align-items:center; gap:9px;
}
.contact-link .c-icon{
  width:16px; height:16px; flex:none; opacity:.85;
}
.contact-link:hover .c-icon{ opacity:1; }
.whatsapp-link .c-icon{ color:#25D366; }
.whatsapp-link:hover{ color:#25D366 !important; }
.landline-note{
  display:block; font-size:12px; color:#8AA3C7; margin:-6px 0 10px 25px;
}
