body {
  font-family: "Helvetica Neue",Arial, sans-serif;
  font-size:12pt;
  margin: 0;
  padding-left:10vw;
  padding-right:10vw;
  padding: 0;
  background-color: #fff;
  color: #555;
  letter-spacing:-0.05vw;
  font-weight:400;
}
section {
  font-family: "Montserrat",Arial, sans-serif;
  letter-spacing:0vw;
  padding-left:10vw;
  padding-right:10vw;
  margin-block-start: 0;
  margin-block-end: 0;
  padding-top:1vw;
  padding-bottom:1vw;
}

code {
	font-size:0.8vw;
	color:blue;
}

pre {
	line-height:0.8;
	margin-left:200px;
}


.frosty {
  background-color: rgba(255, 255, 255, .25);
  border: 0px solid rgba(255, 255, 255, .25);
  box-shadow: 0 0 10px 1px rgba(0, 0, 0, .25);
	backdrop-filter: blur(12px) saturate(200%);
	  background: linear-gradient(
    120deg,
    rgba(255, 255, 255, .25),
    rgba(255, 255, 255, .85), 70%, 
    rgba(255, 255, 255, .25)
  );
}

.card {
	width:25%;
	background: linear-gradient(
    120deg,
    rgba(255, 255, 255, .05),
    rgba(255, 255, 255, .25), 70%, 
    rgba(255, 255, 255, .05)
  );
  border-radius: 15px;
  color:#FFFFFF;
  padding:1vw;
}

.card-right {
	position:absolute;
	top: 27%;
	right: 6%;
}

.card-left {
	position:absolute;
	top: 60%;
	left: 10%;
}

.card-address {
	position:absolute;
	top: 47%;
	right: 6%;
	color:#000000;
	text-align:left;
	padding-left:20px;
	width:20%;
}

.map-responsive {
  overflow: hidden;
  /*padding-bottom: 56.25%; /* Creates a 16:9 aspect ratio */
  height: 40%;
}

.map-responsive iframe {
  left: 0;
  top: 0;
  height: 100%; 
  width: 100%; 
  position: absolute;
  opacity:0.8;
}

.homePageTextTopSection {
  margin-left: 50px;
  margin-right:50px;
}

a {
  text-decoration: none;
}

h1 {
  font-family: "Helvetica Neue",Arial, sans-serif;
	text-align:center
}

h2 {
  font-family: "Helvetica Neue",Arial, sans-serif;
  letter-spacing:-0.05pt;
  font-size:14pt;
}

h3 {
  font-family: "Helvetica Neue",Arial, sans-serif;
  letter-spacing:-0.03pt;
  font-size:11pt;
}

  section {
    padding-left: 5vw;
    padding-right: 5vw;
    padding-top: 4vw;
    padding-bottom: 4vw;
  }

.hero-main {
  background-image: url('../media/hero1.jpg');
  background-size: cover;      
  background-position: center;  
  background-repeat: no-repeat; 
  height: 100vh; 
  padding: 0;  
  position:relative;
  top:-170px;
}




footer {
	width:100%;
	text-align:center;

}

.multicol {
	column-count: 3;
}

.halfpage {
	margin-left:5vw;
	margin-right:5vw;
}

.logo {
  font-size: 2vw;
     letter-spacing:-0.05vw;
  font-weight: 600;
  text-decoration: none;
  color: #333333;
}

header {
font-family: "Helvetica Neue",Arial, sans-serif;
   letter-spacing:-0.05vw;
font-size:1.3vw;
font-weight:600;
color:orangered;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 3vw;
  position:sticky;
  top:0px;
  z-index:10;
}

nav {
font-family: "Helvetica Neue",Arial, sans-serif;
   letter-spacing:-0.05vw;
font-size:1.1vw;
font-weight:600;
color:black;
  list-style: none;
  padding: 0;
  margin: 0;
}

nav li {
  display: inline-block;
  margin-right: 3vw;
}

nav a {
  text-decoration: none;
  color: #000;
}

.hero-nav a {
	colour:#FFFFFF;
}

main {
  padding: 0;
}

.hero {
  text-align: center;
  background-color: #ffffff;
  position:relative;
  padding:0;
  margin: 0;
}

.hero-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff; 
  text-align: center;
  z-index: 1; 
  text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.5);
}

.hero-overlay-reverse {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #000; 
  text-align: center;
  width:40vw;
  z-index: 1; 
  background-color:#ffffff70;
  text-shadow: 0px 0px 5px rgba(256, 256, 256, 3);
}


.hero video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  padding:0;
  margin: 0;
  display:block;
}

.hero2 {
  text-align: left;
  background-color: #ffffff;
  position:relative;
  padding:0;
  margin: 0;
  margin-top:80px;
  display:flex;
  color:black;
}

.hero2 img,.hero2 video {
	margin:30px;
	border-radius:15px;
	width:45%;
	display:block;
}

.heroL {
width: 50%;
}

.heroR {
width: 50%;
}

.heroR h1, .heroL h1 {
	font-size:1.5vw;
	font-family:"Helvetica Neue", Arial, sans-serif;
	letter-spacing:-0.05vw;	
	margin: 3vw;
	text-align:left;
}

.heroL p, .heroR p {
	padding-left:3vw;
	padding-right:3vw;
	font-family: "Montserrat",Arial, sans-serif;
}

.hero img {
  width: 100%;
    padding:0;
  margin: 0;
  display:block;
}

.hero h1 {
  font-size: 5vw;
  margin-bottom: 3vw;
  letter-spacing:-0.2vw;
}

.hero p {
  font-size: 1.2vw;
  margin-bottom: 30px;
}

.button {
  background-color: #000;
  color: #fff;
  padding: 0.5vw 1.5vw;
  border: none;
  border-radius: 1vw;
  cursor: pointer;
  text-decoration:none;
  text-shadow:none;
}

.orange {
  background-color: orangered;
}

.features {
  text-align: center;
  padding: 50px;
}

.features h2 {
  font-size: 2vw;
  margin-bottom: 3vw;
}

ul li {
  list-style: "►";
  padding-inline-start: 1ch;
}

ul li::marker {
  color: powderblue;
  font-size:0.7vw;
}

.features ul {
  list-style: none;
}

#eval, #lic, #licence,#liability,#term {background-color:lavenderblush}  
#techr, #pen, #proc, #dm, #si, #rev, #method,#network-sec,#infra-sec,#pol-sec  {background-color:aliceblue} 
#techdd,#impl {} 

.bannerImg {
	width:100%;
	max-width:none;
}

.select {
	font-weight:600;
	text-decoration: underline solid orangered 0.3vw;
	text-decoration-skip-ink: none;
}

.figure {
  width: 75%;
  display: block;
  margin: 0 auto;
}

.heavylist li {
	margin-bottom:10px;
}

.desktop {
	display:block !important;
}
.mobile {
	display:none !important;
}

@media (max-width: 768px) {

.desktop {
	display:none !important;
}
.mobile {
	display:block !important;
	margin:0vw !important;
}

  .figure {
    width: 100%; /* 150% of the viewport width */
    max-width: none; /* remove any max-width limits */
  }

  .figure#OD4 {
    width: 75vw !important;
    margin-left: auto;
    margin-right: auto;
  }

  body {
    font-size: 2vw;
    /* padding-left: 5vw;
    padding-right: 5vw; */
    letter-spacing: -0.1vw;
  }



  h1 {
    font-size: 4vw;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  h2 {
    font-size: 2.5vw;
    text-align: center;
  }

  h3 {
    font-size: 2vw;
    text-align: center;
  }

  nav {
    font-size: 2vw;
    text-align: center;
  }

  nav li {
    display: block;
    margin: 1.5vw 0;
  }

  .logo {
    font-size: 3vw;
    text-align: center;
    display: block;
    margin: 0 auto 2vw auto;
  }

  .hero h1 {
    font-size: 5vw;
    margin-bottom: 4vw;
    text-align: center;
  }

  .hero p {
    font-size: 2vw;
    margin: 0 auto 3vw auto;
    max-width: 90vw;
  }

  #pageHeadline {
    font-size: 3vw;
    text-align: center;
  }

  .heroR h1, .heroL h1 {
    font-size: 3vw;
    margin: 3vw auto;
    text-align: center;
  }

  .heroL p, .heroR p {
    padding-left: 5vw;
    padding-right: 5vw;
    max-width: 90vw;
    margin: 0 auto 3vw auto;
    text-align: center;
  }

  .hero2 {
    flex-direction: column;
    align-items: center;
  }

  .heroL, .heroR {
    width: 100% !important;
  }

  .hero2 video {
    width: 100% !important;
    height: auto !important;
    max-height: 300px;
    margin-bottom: 2vw;
  }

  .hero img {
    width: 100%;
    height: auto;
    object-fit: contain;
    margin-bottom: 2vw;
  }

  .button {
    font-size: 2vw;
    padding: 2vw 4vw;
    border-radius: 2vw;
    display: inline-block;
    width: auto;
    min-width: 10%;
    text-align: center;
  }

  .features {
    padding: 20px 5vw;
  }

  .features h2 {
    font-size: 3vw;
    margin-bottom: 3vw;
    text-align: center;
  }

  .multicol {
    column-count: 1;
  }

  main {
    /* padding: 0 5vw; */
  }

  #heroSection {
    display: flex;
    flex-direction: column;
    gap: 0.9rem; /* small space between video and overlay */
  }

  /* iframe first, full width */
  #heroVideo {
    order: 1;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    position: static !important; /* override inline styles */
    
  }

  /* overlay second, full width, no absolute positioning */
  #heroOverlay {
    order: 2;
    position: static !important; /* cancel absolute */
    width: 100% !important;
    height:75%;
    left: auto !important; /* override inline */
    background-color: #ffffffcc !important; /* translucent */
    margin-top: 15%;
    margin-left: 50%;
    text-align: center;
  }  
}
