/* ── Cabal Technologies — Dark Neon Mobile Theme Overrides ── */

/* ── Mobile Hero (replaces broken RevSlider on phones) ── */
.mobile-hero {
  display: none;
}
@media (max-width: 767px) {
  /* Hide the Revolution Slider — char-split animation is broken on mobile */
  #rev_slider_one_wrapper,
  #rev_slider_one_wrapper *,
  .rev_slider_wrapper,
  .fullscreen-container {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }
  /* Show the static mobile hero instead */
  .mobile-hero {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 92vh;
    padding: 100px 24px 60px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(160deg, rgba(4,6,18,1) 0%, rgba(8,19,46,1) 60%, rgba(7,12,34,1) 100%);
  }
  .mobile-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('../images/Banner/ba1.jpg');
    background-size: cover;
    background-position: center;
    opacity: 0.22;
    z-index: 0;
  }
  .mobile-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(4,6,18,0.82) 0%, rgba(8,19,46,0.65) 100%);
    z-index: 1;
  }
  .mobile-hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
  }
  .mobile-hero__tag {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #4de6ff;
    text-shadow: 0 0 12px rgba(77,230,255,0.45);
    margin-bottom: 18px;
    display: block;
  }
  .mobile-hero__heading {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(2rem, 9vw, 2.8rem);
    font-weight: 900;
    line-height: 1.08;
    text-transform: uppercase;
    color: #fff;
    margin: 0 0 20px;
  }
  .mobile-hero__heading span {
    background: linear-gradient(90deg, #4de6ff, #c200ff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }
  .mobile-hero__desc {
    font-size: 0.97rem;
    line-height: 1.7;
    color: rgba(220,235,255,0.82);
    margin: 0 0 32px;
    max-width: 420px;
  }
  .mobile-hero__btn {
    display: inline-block;
    background: linear-gradient(135deg, rgba(77,230,255,0.95), rgba(194,0,255,0.95));
    color: #fff !important;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 14px 32px;
    border-radius: 50px;
    text-decoration: none !important;
    box-shadow: 0 8px 30px rgba(77,230,255,0.25);
    transition: transform 0.2s, box-shadow 0.2s;
  }
  .mobile-hero__btn:active {
    transform: scale(0.97);
  }
  /* Slide indicators */
  .mobile-hero__dots {
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 2;
  }
  .mobile-hero__dots span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(77,230,255,0.3);
    display: block;
  }
  .mobile-hero__dots span.active {
    background: #4de6ff;
    box-shadow: 0 0 8px rgba(77,230,255,0.6);
    width: 24px;
    border-radius: 4px;
  }
}

/* 1. Mobile header dark background */
.header_mobile {
  background: rgba(3, 8, 25, 0.97) !important;
  border-bottom: 1px solid rgba(77,230,255,0.15) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.5) !important;
}
.header_mobile.is-stuck {
  background: rgba(3, 8, 25, 0.99) !important;
  box-shadow: 0 4px 30px rgba(0,0,0,0.7) !important;
}

/* 2. Mobile nav panel */
.header_mobile .mobile_nav {
  background: rgba(5, 11, 27, 0.99) !important;
  border-top: 1px solid rgba(77,230,255,0.10) !important;
}

/* 3. All menu links */
.header_mobile .mobile_nav .mobile_mainmenu li a {
  color: rgba(220,235,255,0.88) !important;
  border-bottom: 1px solid rgba(77,230,255,0.09) !important;
  font-weight: 500 !important;
  padding: 14px 0 !important;
  transition: color 0.2s, padding-left 0.2s !important;
}
.header_mobile .mobile_nav .mobile_mainmenu li a:hover,
.header_mobile .mobile_nav .mobile_mainmenu > li.current-menu-item > a,
.header_mobile .mobile_nav .mobile_mainmenu > li.current-menu-ancestor > a,
.header_mobile .mobile_nav ul li.current-menu-item > a,
.header_mobile .mobile_nav .mobile_mainmenu ul > li > ul > li.current-menu-ancestor > a,
.header_mobile .mobile_nav .mobile_mainmenu li li a:hover {
  color: #4de6ff !important;
  text-shadow: 0 0 10px rgba(77,230,255,0.35) !important;
  padding-left: 6px !important;
}

/* 4. Sub-menu indent */
.header_mobile .mobile_nav .mobile_mainmenu ul {
  background: rgba(3,6,20,0.95) !important;
  border-left: 2px solid rgba(77,230,255,0.18) !important;
  margin-left: 14px !important;
}
.header_mobile .mobile_nav .mobile_mainmenu li li a {
  color: rgba(180,200,230,0.7) !important;
  font-size: 0.88rem !important;
}

/* 5. Hamburger toggle bars → neon cyan */
#mmenu_toggle button {
  background: #4de6ff !important;
}
#mmenu_toggle button::before,
#mmenu_toggle button::after {
  background: #4de6ff !important;
}

/* 6. Arrow icon in sub-menu toggle */
.header_mobile .mobile_nav .mobile_mainmenu > li.menu-item-has-children .arrow i {
  color: rgba(77,230,255,0.55) !important;
}

/* 7. Support link highlight */
.header_mobile .mobile_nav .mobile_mainmenu li a[href*="support"] {
  color: #4de6ff !important;
  font-weight: 700 !important;
}

/* 8. Logo height */
.header_mobile .mlogo_wrapper img {
  height: 42px !important;
}

/* 9. Disable 3D perspective tilt on touch/mobile — causes layout bugs */
@media (hover: none), (pointer: coarse), (max-width: 1024px) {
  body:hover #page { transform: none !important; }
  #page {
    perspective: none !important;
    transform-style: flat !important;
    transform: none !important;
  }
  .serv-box-2.s2:hover,
  .tech-box:hover,
  .contact-info:hover,
  .cta:hover {
    transform: none !important;
  }
  .service-box-s1:hover .icon-main,
  .tech-box:hover .icon-main,
  .contact-info:hover .box-icon {
    transform: none !important;
  }
}

/* 10. Hide topbar on phones — saves space */
@media (max-width: 767px) {
  .header-topbar { display: none !important; }
}

/* 11. Section & text responsive fixes */
@media (max-width: 767px) {
  .main-heading {
    font-size: clamp(1.8rem, 7vw, 2.8rem) !important;
    letter-spacing: -0.03em !important;
    line-height: 1.1 !important;
  }

  /* Prevent buttons from being forced full-width on mobile */
  .octf-btn-primary,
  .btn-slider,
  .octf-btn-third,
  .btn-border {
    width: auto !important;
    display: inline-block !important;
  }

  /* Footer menu stacked */
  .site-footer .footer-menu ul li,
  .footer-menu ul li {
    display: block !important;
    margin: 8px 0 !important;
    text-align: center !important;
  }

  /* Fix Bootstrap row bleeding on small screens */
  .container { padding-left: 16px !important; padding-right: 16px !important; }

  /* Coming soon modal full width on small screens */
  #comingSoonToast {
    min-width: calc(100vw - 48px) !important;
    padding: 32px 20px !important;
  }
}

@media (max-width: 480px) {
  .main-heading {
    font-size: clamp(1.5rem, 8vw, 2.1rem) !important;
  }

  /* Prevent horizontal overflow from revolution slider text */
  .tp-caption {
    white-space: normal !important;
    max-width: 90vw !important;
  }

  /* Fix grid rows overflowing viewport */
  .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Footer columns stack with breathing room */
  .footer-v2 [class*="col-"] {
    margin-bottom: 24px !important;
  }
}
