/* ===== SGOC LTD shared kit — dark / premium (SINGLE SOURCE OF TRUTH) ===== */
:root{ --sgoc-accent:#DCEA1E; --sgoc-dark:#040608; --sgoc-nav-h:88px;
  /* ---- motion tokens (single source of truth) ---- */
  --sgoc-ease:cubic-bezier(.16,1,.3,1);      /* entrances / premium ease-out */
  --sgoc-ease-ui:cubic-bezier(.4,0,.2,1);    /* UI / hover standard */
  --sgoc-dur:.55s;                            /* entrance duration */
  --sgoc-dur-ui:.22s;                         /* hover / UI duration */
  --sgoc-lift:-6px;                           /* standard card hover lift */
}

/* ---- floating glass navbar ---- */
header.elementor-location-header{
  position:fixed; top:14px; left:50%;
  transform:translate3d(-50%,0,0);
  will-change:transform; backface-visibility:hidden;
  width:calc(100% - 40px); max-width:1300px; z-index:1000;
  border-radius:999px;
  background:rgba(12,13,15,.62) !important;
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 12px 40px rgba(0,0,0,.35);
  transition:transform .45s cubic-bezier(.4,0,.2,1),background .35s ease,box-shadow .35s ease;
}
header.elementor-location-header .e-con,
header.elementor-location-header .e-con-inner,
header.elementor-location-header .elementor-element{ background:transparent !important; }
header.elementor-location-header.sgoc-nav-scrolled{
  background:rgba(6,7,9,.90) !important; box-shadow:0 10px 30px rgba(0,0,0,.55);
}
header.elementor-location-header.sgoc-nav-hidden{
  transform:translate3d(-50%,-160%,0) !important;
}
/* ElementsKit menu links */
header.elementor-location-header .ekit-menu-nav-link{
  color:#fff !important; font-weight:500 !important; letter-spacing:.2px; transition:color .2s ease;
}
header.elementor-location-header .ekit-menu-nav-link:hover,
header.elementor-location-header .ekit-menu-nav-link.active{ color:var(--sgoc-accent) !important; }
header.elementor-location-header .ekit-menu-hamburger-icon,
header.elementor-location-header svg{ color:#fff; }

/* ---- pill buttons ---- */
.sgoc-btn{ display:inline-flex;align-items:center;justify-content:center;font-family:'Inter',sans-serif;font-size:15px;font-weight:600;letter-spacing:.2px;border-radius:999px;padding:15px 32px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform var(--sgoc-dur-ui) var(--sgoc-ease-ui),box-shadow var(--sgoc-dur-ui) ease,background var(--sgoc-dur-ui) ease,color var(--sgoc-dur-ui) ease; }
.sgoc-btn-primary{ background:var(--sgoc-accent);color:#0a0a0a; }
.sgoc-btn-primary:hover{ transform:translateY(-2px);box-shadow:0 12px 30px rgba(220,234,30,.32); }
.sgoc-btn-outline{ background:transparent;color:#fff;border-color:rgba(255,255,255,.4); }
.sgoc-btn-outline:hover{ transform:translateY(-2px);background:#fff;color:#0a0a0a;border-color:#fff; }

/* ---- back-to-top ---- */
#sgoc-top{ position:fixed;right:24px;bottom:24px;width:52px !important;height:52px !important;min-width:0 !important;padding:0 !important;box-sizing:border-box !important;flex:none;border-radius:50% !important;background:var(--sgoc-accent);color:#0a0a0a;border:none;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s,visibility .3s,transform .3s,box-shadow .2s;z-index:999;box-shadow:0 8px 24px rgba(0,0,0,.35); }
#sgoc-top.show{ opacity:1;visibility:visible;transform:translateY(0); }
#sgoc-top:hover{ box-shadow:0 12px 30px rgba(220,234,30,.42); }

/* ---- motion standard ---- */
@media (prefers-reduced-motion:reduce){ *{animation-duration:.001s !important;transition-duration:.001s !important;} }

/* ---- nav clearance for hero pages: add class sgoc-nav-offset to first section ---- */
.sgoc-nav-offset{ border-top:var(--sgoc-nav-h) solid transparent !important; }

@media (max-width:600px){
  :root{ --sgoc-nav-h:74px; }
  header.elementor-location-header{ top:10px;width:calc(100% - 22px); }
}

/* ---- mobile menu (ElementsKit offcanvas, driven by sgoc-kit.js html.sgoc-mm) ---- */
@media (max-width:1024px){
  /* slide-in dark panel from the right */
  header.elementor-location-header .elementskit-menu-container.elementskit-menu-offcanvas-elements{
    position:fixed !important; top:0 !important; right:0 !important; left:auto !important; bottom:0 !important;
    height:100vh !important; width:min(86vw,330px) !important; max-width:none !important;
    background:#0b0c0e !important; -webkit-backdrop-filter:none; backdrop-filter:none;
    transform:translateX(106%); transition:transform .35s cubic-bezier(.4,0,.2,1);
    z-index:100001 !important; padding:74px 22px 30px !important; overflow-y:auto !important;
    box-shadow:-24px 0 60px rgba(0,0,0,.55) !important; display:block !important; border-radius:0 !important;
  }
  html.sgoc-mm header.elementor-location-header .elementskit-menu-container.elementskit-menu-offcanvas-elements{ transform:translateX(0) !important; }
  /* dark overlay behind */
  header.elementor-location-header .elementskit-menu-overlay{
    position:fixed !important; inset:0 !important; background:rgba(0,0,0,.55) !important;
    z-index:100000 !important; opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; display:block !important;
  }
  html.sgoc-mm header.elementor-location-header .elementskit-menu-overlay{ opacity:1 !important; visibility:visible !important; }
  /* nav links: stacked, readable */
  header.elementor-location-header .elementskit-menu-offcanvas-elements .elementskit-navbar-nav{ display:block !important; width:100% !important; background:transparent !important; }
  header.elementor-location-header .elementskit-menu-offcanvas-elements .elementskit-navbar-nav>li{ display:block !important; width:100% !important; margin:0 !important; border-bottom:1px solid rgba(255,255,255,.08) !important; }
  header.elementor-location-header .elementskit-menu-offcanvas-elements .ekit-menu-nav-link{ padding:15px 2px !important; font-size:17px !important; justify-content:flex-start !important; color:#fff !important; }
  header.elementor-location-header .elementskit-menu-offcanvas-elements .ekit-menu-nav-link:hover{ color:var(--sgoc-accent) !important; }
  /* kill the centered underline bar in the stacked mobile menu (60% of full width = too long) */
  header.elementor-location-header .elementskit-menu-offcanvas-elements .elementskit-navbar-nav>li>a::after{ display:none !important; }
  /* close button */
  header.elementor-location-header .elementskit-menu-close{ display:flex !important; align-items:center; justify-content:center; color:#fff !important; background:rgba(255,255,255,.06) !important; border-radius:50% !important; position:absolute !important; top:14px; right:16px; width:40px; height:40px; font-size:0 !important; z-index:3; cursor:pointer; }
  header.elementor-location-header .elementskit-menu-close::before{ content:"\2715"; font-size:20px !important; line-height:1; color:#fff; }
  header.elementor-location-header .elementskit-menu-close i, header.elementor-location-header .elementskit-menu-close svg{ display:none !important; }
  header.elementor-location-header .elementskit-nav-identity-panel{ background:transparent !important; }
  html.sgoc-mm{ overflow:hidden; }
}

/* ===== Aima 2026-08-06: desktop-site-on-mobile navbar + footer fixes ===== */
/* 1. When ElementsKit collapses the menu to a hamburger (<=1024px), the hamburger
   was floating in the centre of the navbar. Push it to the right, before the
   Get Started button, with padding. */
@media (max-width:1024px){
  /* Get Started button stays EXACTLY where it was (far right). The hamburger is
     taken out of the flex flow and absolutely pinned ~26px to the LEFT of the Get
     Started button, so nothing else in the navbar shifts. Anchored to the nav row
     (right edge), not the full-width header, so it lands next to the button. */
  header .e-con-inner:has(> .elementor-element-64921031){ position:relative !important; }
  /* NOTE: do NOT put `transform` on this container — the offcanvas menu panel
     inside it is position:fixed, and any transformed ancestor becomes its
     containing block, which drags the (hidden, off-screen) panel back on-screen
     and makes it render permanently next to Get Started. Vertically centre the
     hamburger with flex (top:0/bottom:0 + align-items:center) instead. */
  .elementor-element-64921031{
    position:absolute !important; right:167px !important; top:0 !important; bottom:0 !important;
    margin:0 !important; width:auto !important;
    /* z-index MUST beat the Get Started column (.elementor-element-a2229df, z-index:98),
       which overlaps the hamburger and was swallowing the click so the panel never
       opened. Sit above it so taps land on the hamburger, not the column. */
    z-index:120 !important;
    display:flex !important; align-items:center !important;
  }
  .elementor-element-64921031 .elementskit-menu-hamburger{ float:none !important; cursor:pointer !important; }
}
/* 1b. TRUE mobile (Desktop-site OFF, <=767px): the Get Started column is hidden, so
   there's no button to sit beside — the hamburger must go to the far right, clear of
   the logo (at 187/167px from the right it landed on the left, over the logo). */
@media (max-width:767px){
  .elementor-element-64921031{ right:16px !important; }
}
/* 2. Footer top container had 0 horizontal padding, clipping the left column
   (logo + intro text) on narrow/desktop-mode widths. Restore symmetric padding
   so it never gets cut off, at every screen size. */
/* the footer left column + logo widget carry negative left margins (-6/-10px)
   that push the logo/intro text off the left edge. Neutralise them so the left
   column lines up with the container's 30px padding, at every width. */
footer .elementor-element-1cf37865{ padding-left:46px !important; padding-right:16px !important; }
footer .elementor-element-1cf37865 > .e-con-inner{ padding-left:46px !important; }
footer{ overflow-x:clip; }
