.text-brand-color {
  color: #00ff41 !important;
}

.bg-brand-color {
  background: #003b1b;
}

body.no-cursor * {
  cursor: none;
}

/* Global fonts and smoothing */
*:not(i) {
  font-family: "nexa_boldregular" !important;
  -webkit-font-smoothing: antialiased;
  font-smooth: always;
  text-shadow: 0 0 8px rgba(0, 255, 65, 0.6);
}

html {
  scroll-behavior: smooth;
}

/* spacing between sections, but no extra space after the last one */
.scroll-section:not(:first-child) {
  margin: 40px auto 0 !important;   /* 40px top, 0 bottom */
}

/* keep the old utility margin if you still use m-100 anywhere */
.m-100 {
  margin: 40px auto !important;
}

/* ensure absolutely no bottom gap under the last scroll-section */
.scroll-section:last-of-type {
  margin-bottom: 0 !important;
}


hr {
  border-top: 1px solid #222 !important;
}

body {
  overflow-x: hidden !important;
  position: relative;
  max-width: 100vw;
  background-color: #000501;
}

body.modal-open {
  overflow: hidden;
}

body p {
  font-family: Arial, sans-serif !important;
}

/* Layout helpers */
.our-partners-section {
  max-width: 1700px !important;
}

.our-partners-section h2 {
  font-size: 4rem;
}

.our-partners-section p {
  font-size: 1.2rem;
  width: min(100%, 75ch);
}

@media (min-width: 767px) {
  .d-md-none {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .d-xs-none {
    display: none !important;
  }
}

/* Font face */
@font-face {
  font-family: "nexa_boldregular";
  font-weight: bold;
  font-style: normal;
  src: url("../fonts/nexa_boldfree_macroman/Nexa_Free_Bold-webfont.eot");
  src: url("../fonts/nexa_boldfree_macroman/Nexa_Free_Bold-webfont.eot?#iefix") format("embedded-opentype"),
       url("../fonts/nexa_boldfree_macroman/Nexa_Free_Bold-webfont.woff2") format("woff2"),
       url("../fonts/nexa_boldfree_macroman/Nexa_Free_Bold-webfont.woff") format("woff"),
       url("../fonts/nexa_boldfree_macroman/Nexa_Free_Bold-webfont.ttf") format("truetype"),
       url("../fonts/nexa_boldfree_macroman/Nexa_Free_Bold-webfont.svg#nexa_boldregular") format("svg");
}

* {
  font-family: "nexa_boldregular";
}

/* Contact link (header & buttons) */
.contact-modal-opener {
  transition: color 0.5s ease-out;
  font-family: "Lucida Console", monospace !important;
  font-weight: 100;
  color: azure;
  text-decoration: none;
}

.contact-modal-opener img {
  max-width: 500px;
}

/* Header / nav */
header {
  padding-top: 30px;
  width: 100%;
  position: absolute;
  top: 0;
  display: flex;
  align-items: center;
  left: 0;
  z-index: 50;
  color: #00ff41 !important;
}

header img {
  max-width: 400px;
  max-height: 130px;
  margin-top: -10px;
}

@media (max-width: 780px) {
  header img {
    margin-top: 0;
    max-height: 100px;
  }
}

header .nav ul {
  margin-left: auto;
  padding-right: 3em;
  display: flex;
  list-style: none;
  align-items: center;
}

header .nav ul a:hover {
  opacity: 0.7;
}

header .nav ul a {
  transition: color 0.5s ease-out;
  font-family: "Lucida Console", monospace !important;
  font-weight: 100;
  color: azure;
  text-decoration: none;
}

header .nav ul a img {
  max-width: 500px;
}

header .nav ul #contact-modal-opener:hover {
  color: #000 !important;
}

header .nav ul li {
  margin-left: 2rem;
  font-size: 1rem;
}

/* Contact button outline */
header .nav ul li.outline-link {
  transition: background-position 0.5s ease-in-out;
  background-size: 100% 200%;
  background-image: linear-gradient(to bottom, transparent 50%, #00ff41 50%);
  padding: 18px 40px;
  border: 2px solid #00ff41;
}

header .nav ul li.outline-link:hover {
  background-position: 0 -100%;
}

.z3 {
  z-index: 3 !important;
}

/* Hero / Matrix canvas section */
.hero {
  --color-text: #00ff41;
  --color-bg: #000501;
  --color-link: #00ff41;
  --color-link-hover: #f7f5fb;
  --color-info: #333;
  --color-title: #00ff41;
  --color-subtitle: #fbffff;
  --color-subtitle-bg: #00ff41;

  background: #000501 url(../img/X.svg) no-repeat 50% 50%;
  background-size: 50%;
}

.content__title {
  font-family: "nexa_boldregular", sans-serif;
  font-size: 10vw;
  font-weight: normal;
  color: var(--color-title);
  text-align: center;
  margin: 0;
  pointer-events: none;
}

.content__subtitle {
  animation: float 6s ease-in-out infinite;
  font-size: 1.75em;
  color: var(--color-subtitle);
  padding: 0 0.75em;
  margin: 0;
  margin-top: 100px;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
  text-align: center;
  font-weight: bold;
  text-transform: uppercase;
}

@keyframes float {
  0% { transform: translateY(0); }
  50% { transform: translateY(20px); }
  100% { transform: translateY(0); }
}

@media screen and (max-width: 55em) {
  .content__title {
    font-size: 3.5em;
  }

  .content__subtitle {
    font-size: 0.85em;
  }

  .hero {
    background-position: 50% 20em;
  }
}

/* Typewriter titles */
.tp-wrapper {
  display: inline-block;
  align-items: center;
  position: relative;
}

.typewriter-title {
  overflow: hidden;
  display: inline-block;
  font-size: 4em;
  width: 0;
}

.typewriter h2 {
  transition: color 0.5s ease-in-out;
  color: #000501;
}

.typewriter h2.active {
  width: auto;
  font-family: monospace;
  border-right: 0.15em solid #00ff41;
  white-space: nowrap;
  margin: 0 auto;
  letter-spacing: 0.15em;
  animation: typing var(--animation-speed) steps(var(--animtaion-steps), end),
             blink-caret 0.5s step-end infinite;
  height: 100px;
}

.mt-100 {
  margin-top: 100px !important;
}

.bg-black .typewriter h2 {
  color: #f7f5fb;
}

/* Slider colour variables (Matrix green) */
.bg-black #slider {
  --h2-color: #00ff41;
  --meta-color: #00ff41;
  --slide-color: #00ff41;
  --btn-color: #00ff41;
}

.scroll-section:not(.bg-black) #slider {
  --h2-color: #00ff41;
  --meta-color: #00ff41;
  --slide-color: #00ff41;
  --btn-color: #00ff41;
}

@keyframes typing {
  from { width: 0; }
  to   { width: 100%; }
}

@keyframes blink-caret {
  from, to { border-color: transparent; }
  50%      { border-color: #00ff41; }
}

.scroll-section {
  transition: background-color 0.5s ease-in-out;
  max-height: 100vh;
}

.scroll-section.centered {
  display: flex;
  align-items: center;
}

/* Logos / partners grid */
.our-partners-wrapper {
  display: flex;
  flex-wrap: wrap;
}

.our-partners-wrapper .update-button {
  filter: grayscale(100%);
  transition: filter 0.2s ease-in-out;
}

.our-partners-wrapper .update-button:hover {
  filter: grayscale(0%);
}

.our-partners-wrapper img {
  object-fit: contain;
  width: 100%;
  height: min(100%, 120px);
  cursor: pointer !important;
  border-radius: 10px;
  padding: 15px;
}

/* Background */
.bg-black {
  background-color: #000501 !important;
}

/* Down arrow */
[downbutton] {
  display: flex;
  width: 100%;
  height: 48px;
  justify-content: center;
  position: absolute;
  pointer-events: none;
  bottom: 48px;
}

[downbutton]::before,
[downbutton]::after {
  content: "";
  width: 48px;
  height: 48px;
  background: transparent;
  mask-image: url("//cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/src/android-arrow-dropdown.svg");
  mask-size: 48px 48px;
  mask-repeat: no-repeat;
  -webkit-mask-image: url("//cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/src/android-arrow-dropdown.svg");
  -webkit-mask-size: 48px 48px;
  -webkit-mask-repeat: no-repeat;
  background-color: #00ff41;
}

[downbutton]::before {
  position: absolute;
}

[downbutton]::after {
  position: relative;
  animation-duration: 0.9s;
  animation-name: down;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

@keyframes down {
  from { margin-top: 0;  opacity: 1; }
  to   { margin-top: 48px; opacity: 0; }
}

/* Featured section */
.featured-in-section {
  text-align: center;
}

.featured-in-section h2 {
  font-size: 2rem;
  color: #f7f5fb;
  margin-bottom: 30px;
}

.featured-in-section .featured-list-wrapper {
  display: flex;
  max-width: 1200px;
  margin: auto;
  justify-content: center;
}

.featured-in-section .featured-list-wrapper img {
  padding: 1.4rem;
}

/* Team cards */
@media (max-width: 1700px) and (min-width: 750px) {
  .our-team-wrapper {
    transform: scale(0.9);
  }
}

.our-team-wrapper.active .team-member-card {
  transform: translateY(0%);
}

.team-member-card {
  border-radius: 10px;
  transition: transform 1s ease-in-out var(--animation-delay) !important;
  overflow: hidden;
  padding: 0 !important;
  margin: 10px;
}

@media (min-width: 767px) {
  .team-member-card {
    margin-top: var(--margin-top) !important;
    transform: translateY(200%);
  }
}

.team-member-card:hover img {
  filter: grayscale(0%);
}

.team-member-card img {
  transition: filter 0.2s ease-in-out;
  width: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  height: 450px;
  max-height: 30vh;
  border-radius: 10px;
}

.team-member-card span {
  display: block;
}

.team-member-card .member-info {
  padding: 20px;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}

.team-member-card .member-name {
  font-size: 2.5rem !important;
  line-height: 3rem;
  color: #00ff41;
}

.team-member-card .member-proffesion {
  text-transform: uppercase;
  font-weight: 100;
  font-size: 0.7rem !important;
  color: #88888a;
}

.team-member-card .member-proffesion.main-proffesion {
  margin-bottom: 20px;
  font-size: 1.2rem !important;
  color: #f7f5fb;
}

/* Left dark block behind text */
.circle-background-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  height: 100vh;
  width: 50vw;
  background-color: #000501;
}

/* CTA area */
.cta-area {
  color: #f7f5fb;
  position: relative;
  overflow: hidden !important;
  background-repeat: no-repeat;
  background-position-x: 100%;
  margin: auto;
}

.cta-area .container-fluid {
  max-width: 1700px;
}

.cta-area h2 {
  font-size: 3.5em;
}

.cta-area h3 {
  font-size: 2.5em;
}

.cta-area p {
  width: min(100%, 75ch);
  font-size: 1.2rem;
}

.cta-area .cta-btn {
  font-size: 1.5em;
  padding: 0.75rem 3rem;
  border: 3px solid #00ff41;
  background: none;
  color: #00ff41;
  transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;
}

.cta-area .cta-btn:hover {
  color: #000501;
  background: #00ff41;
}

.cta-area .image-wrapper img {
  max-height: 600px;
  border-radius: 10px;
  max-width: 100%;
}

.cta-area * {
  margin: 0;
  padding: 0;
  box-sizing: border-box !important;
}

/* Matrix vertical lines */
.lines {
  position: fixed; /* Changed from absolute to fixed */
  pointer-events: none !important;
  top: 0;
  left: 0;
  right: 0;
  height: 100vh; /* Changed from 100% to 100vh */
  margin: auto;
  width: 90vw;
  z-index: 2 !important;
}

.line {
  position: absolute;
  width: 1px;
  height: 100%;
  top: 0;
  left: 50%;
  overflow: hidden;
}

body .swiper-button-prev::after,
body .swiper-button-next::after {
  font-size: 2rem;
}

.line::after {
  content: "";
  display: block;
  position: absolute;
  height: 15vh;
  width: 100%;
  top: -50%;
  left: 0;
  background: linear-gradient(to bottom,
    rgba(0, 255, 65, 0) 0%,
    rgba(0, 255, 65, 0.75) 75%,
    #00ff41 100%);
  -webkit-animation: drop 8s 0s infinite;
  animation: drop 8s 0s infinite;
}

.line:nth-child(1) {
  margin-left: -35%;
}

.line:nth-child(1)::after {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.line:nth-child(3) {
  margin-left: 35%;
}

.line:nth-child(4) {
  margin-left: 20%;
}

.line:nth-child(4)::after {
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
}

.line:nth-child(5) {
  margin-left: -20%;
}

.line:nth-child(5)::after {
  -webkit-animation-delay: 3.5s;
  animation-delay: 3.5s;
}

.line:nth-child(3)::after {
  -webkit-animation-delay: 2.5s;
  animation-delay: 2.5s;
}

@-webkit-keyframes drop {
  0% { top: -50%; }
  100% { top: 110%; }
}

@keyframes drop {
  0% { top: -50%; }
  100% { top: 110%; }
}

/* Footer */
footer {
  margin: auto;
  font-size: 0.8rem;
  max-width: 1600px;
  background: #000501;
}

footer img {
  max-width: 50%;
  margin: auto;
  display: block;
  object-fit: contain;
}

footer p {
  color: #999;
}

/* Swiper / slider */
#slider canvas {
  display: none !important;
}

.swiper-container {
  width: 100%;
  height: 100%;
}

.swiper-slide {
  text-align: center;
  font-size: 18px;
  background: #000501;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}

.swiper-pagination-bullet {
  background: #00ff41 !important;
}

.swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Mobile menu button area */
.ov-btn-section p {
  max-width: 600px;
  margin: 0 auto;
  padding: 20px 0;
}

.ov-btn-section button {
  display: inline-block;
  background: #00ff41;
  color: #000501;
  font-weight: 400;
  padding: 10px 20px;
  margin: 5px;
  text-transform: uppercase;
  border-radius: 2px;
  letter-spacing: 1px;
  border: none;
  outline: none;
}

p.ov-btn-section {
  margin-left: auto;
  margin-right: 10px;
}

.ov-btn-section button svg {
  width: 20px;
}

/* Mobile overlay menu */
.overlay-slidedown {
  visibility: hidden;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  -webkit-transition: -webkit-transform 0.4s ease-in-out, visibility 0s 0.4s;
  transition: transform 0.4s ease-in-out, visibility 0s 0.4s;
}

.overlay {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.95);
}

.overlay nav {
  text-align: center;
  position: relative;
  top: 50%;
  height: 60%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.overlay nav .outline-link {
  display: flex;
  align-items: center;
  border: 2px solid #00ff41;
  padding: 0.75rem 2rem;
}

.overlay nav .outline-link span {
  font-size: 1.25rem;
  color: #00ff41;
}

.overlay ul {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  display: inline-block;
  height: 100%;
  position: relative;
}

.overlay ul li {
  display: block;
  height: calc(100% / 5);
  min-height: 54px;
  margin: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.overlay ul li a {
  font-size: 2rem;
  font-weight: 300;
  display: block;
  color: #f7f5fb;
  -webkit-transition: color 0.2s;
  transition: color 0.2s;
}

.overlay ul li a:hover {
  color: #00ff41;
}

.overlay .overlay-close {
  width: 30px;
  height: 30px;
  position: absolute;
  right: 20px;
  top: 20px;
  overflow: hidden;
  border: none;
  background: url(https://cdn0.iconfinder.com/data/icons/slim-square-icons-basics/100/basics-22-128.png) no-repeat center center;
  text-indent: 200%;
  color: transparent;
  outline: none;
  z-index: 100;
}

.overlay-slidedown.open {
  visibility: visible;
  -webkit-transform: translateY(0%);
  transform: translateY(0%);
  -webkit-transition: -webkit-transform 0.4s ease-in-out;
  transition: transform 0.4s ease-in-out;
}

/* Small white divider */
.white-divider {
  display: block;
  height: 8px;
  width: 5%;
  background: #fff;
  margin: auto;
  margin-bottom: 20px;
}

/* === NIMBUS SLIDER COLOURS FIX === */

/* 1) "Services" should be white, no green glow */
#slider .typewriter-title,
#slider .typewriter h2 {
  color: #ffffff !important;
  text-shadow: none !important;
}

/* 2) Slider titles (OSINT Investigations etc.) 
      → green text, black shadow (no green glow) */
#slide-title,
#slider span[data-slide-title],
#slider .meta,
#slider #slide-status {
  color: #00ff41 !important;
  text-shadow: 0 0 6px rgba(0, 0, 0, 0.8) !important;
}

/* 3) Just in case anything inside slider still picks up global glow */
#slider * {
  text-shadow: 0 0 6px rgba(0, 0, 0, 0.8);
}

/* Darker neon green */
:root {
  --brand-green-dark: #00c932;   /* darker than #00ff41 */
  --brand-glow-offwhite: rgba(245, 245, 245, 0.25);
}

/* HERO — Nimbus Labs text */
#canv + canvas,
#canv ~ * .hero-text,
.hero .content__title {
  color: var(--brand-green-dark) !important;
  text-shadow: 0 0 12px var(--brand-glow-offwhite) !important;
}

/* SLIDER HEADINGS — OSINT Investigations, Market Analysis, KYC Audits, etc. */
#slider h2,
#slider .slide-title,
.swiper-slide h2 {
  color: var(--brand-green-dark) !important;
  text-shadow: 0 0 12px var(--brand-glow-offwhite) !important;
}

/* If the slider uses custom class “tp-wrapper” */
.tp-wrapper h2 {
  color: var(--brand-green-dark) !important;
  text-shadow: 0 0 12px var(--brand-glow-offwhite) !important;
}

/* Fix extra space after footer */
.scroll-section.int-section {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Also kill bottom margin on the big contact row */
.m-100 {
  margin-bottom: 0 !important;
}

/* Just in case the browser injects default body margins */
html, body {
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
}

footer {
  margin-bottom: 0 !important;
  padding-bottom: 2rem;
}

/* Nimbus override: footer section should not be full-screen */
.int-section {
  min-height: 0 !important;
  height: auto !important;
}

/* Just in case there is a more specific rule */
.int-section.container-fluid {
  min-height: 0 !important;
  height: auto !important;
}

/* FINAL OVERRIDE – kill extra height under footer section */

/* Target exactly the footer wrapper */
.scroll-section[data-section-name="featured-in"] {
  margin-top: 40px !important;   /* keep a bit of gap above */
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

/* Make sure nothing inside adds fake vertical height */
.scroll-section[data-section-name="featured-in"] > *,
.scroll-section[data-section-name="featured-in"] > * > * {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Footer itself: only small internal padding, no outside margin */
.scroll-section[data-section-name="featured-in"] footer {
  margin: 0 !important;
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

/* Remove any full-screen behaviour that might be coming from other files */
.full-section.int-section,
.full-section[data-section-name="featured-in"] {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}
/* === HARD FIX: remove extra blank space after footer === */

/* Ensure the page wrapper isn't adding extra space */
html, body {
  margin: 0 !important;
  padding: 0 !important;
}

/* Target the footer scroll-section
   (note: data-section-name has a trailing space, so use ^= selector) */
.scroll-section.int-section.container-fluid.bg-black[data-section-name^="featured-in"] {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin-top: 40px !important;   /* keep a bit of gap above footer */
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Footer itself: only internal padding, no outside margin */
.scroll-section.int-section.container-fluid.bg-black[data-section-name^="featured-in"] > footer {
  margin: 0 !important;
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

/* Kill any "full screen section" behaviour that might leak onto int-section */
.full-section.int-section,
.full-section[data-section-name^="featured-in"] {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}
/* Remove the viewport height constraint from non-hero sections */
.scroll-section.int-section {
  max-height: none !important;
  height: auto !important;
}

/* Specifically target the footer's parent container */
main > .int-section {
  max-height: none !important;
  height: auto !important;
  min-height: 0 !important;
}

/* Also ensure the contact section above footer doesn't add extra space */
.row.bg-black.py-5.mt-100 {
  margin-bottom: 0 !important;
}
