:root {
	--white: #FFF;
	--light-grey: #F4F4F4;
	--orange: #FF5101;
}

html {
  scroll-behavior: smooth;
}

.orange-gradient {
	background: linear-gradient(to bottom right, #FF5101 0%, transparent 100%);
}
/* ----------------------------------------------------- Background Styles ------------------------------------------------- */
.bg-light-grey {
	background-color: var(--light-grey);
}
.bg-orange {
	background-color: var(--orange);
}
.bg-orange img {
	max-width: 70px;
	margin-bottom: 20px;
}

.bg-black {
	background-color: black; 
}


.slider-nav {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}

.arrow-button {
  background-color: var(--orange);
  color: #fff;
  border: none;
  padding: 12px 18px;
  font-size: 1.5rem;
  cursor: pointer;
  border-radius: 5px;
  transition: background 0.3s;
}

.arrow-button:hover {
  background-color: #e63f00;
}

.service-slider-wrapper {
  overflow: hidden;
  width: 100%;
  position: relative;
}

.service-slider-track {
  display: flex;
  transition: transform 0.5s ease;
  gap: 20px;
}

.service-slide {
  flex: 0 0 calc(100% / 2.5); /* Show 2.5 boxes */
  box-sizing: border-box;
}

.service-box {
  border: 1px solid var(--orange);
  border-radius: 10px;
  padding: 20px;
  background-color: white;
  height: 100%;
  transition: all 0.3s ease;
}

.service-box:hover {
  background-color: var(--orange);
  color: white;
	text-decoration: none !important;
}

.service-number {
  font-size: 2.5rem;
  font-weight: bold;
  color: var(--orange);
}

.service-box:hover .service-number,
.service-box:hover h3,
.service-box:hover p {
  color: white;
}

.composite-slider-section h2 {
  font-size: 2.5rem;
  margin-bottom: 30px;
}

.composite-slider-section {
  position: relative; 
  background-color: var(--light-grey);
  overflow: hidden;
}

.composite-slider-section::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 50%; /* Covers the bottom half */
  background-color: #000; /* Solid black */
  z-index: 0; /* Keep it behind the content */
}

/* Make sure your row content stays above the overlay */
.composite-slider-section > .row {
  position: relative;
  z-index: 1;
}


.composite-slide .composite-card {
  position: relative;
  height: 55vh;
  background-size: cover;
  background-position: center;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s ease-in-out;
}

.composite-content {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 20px;
  color: white;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
}

.orange-button {
  background-color: var(--orange);
  color: white;
  padding: 10px 20px;
  font-weight: bold;
  text-decoration: none;
  border-radius: 4px;
  transition: background 0.3s;
}

.orange-button:hover {
  background-color: #cc583f;
}

/* ----------------------------------------------------- Menu Styles ------------------------------------------------- */

.menu ul {
	padding: 0px;
	margin: 0;
}
.menu li {
	list-style: none;
	display: inline-block;
	padding: 3px 15px;
	margin-left: 10px;
	background-image: none;
	margin-bottom: 10px;
}

.menu li {
  list-style: none;
}


.menu ul li ul {
	position:absolute;
	left:-999em;
	z-index:9999 !important;
	width: auto;
	text-align: left;
	padding-top: 10px;
	padding-bottom: 10px;
	background-color: var(--orange);
}
.menu ul li ul li {
	display: block;
	margin-bottom: 0;
	padding-left: 0;
	padding-right: 20px;
}
.menu ul li:hover ul, .menu ul li ul:hover {
	left:auto;
}

.menu a {
	color: var(--white);
	font-size: 18px;
	font-weight: 400;
}

/** Menu arrows **/
.menu li > a:after {
    content: '  ▾';
	vertical-align: 1px;
}

.menu li > a:only-child:after {
    content: '';
}


.menu-item-20 {
	background-color: var(--orange); 
}

/* ----------------------------------------------------- Header And Banner Image Styles ---------------------------------------------------------------- */

header {
	/*position: absolute;*/
	width: 100%;
	top: 0;
	left: 0;
	right: 0;
	/*padding: 50px 5%;*/
}

.logo {
	width: 45%;
	/*max-width: 350px;
	min-width: 200px;*/
}

.banner-image {
	width: 100%;
	height: auto;
	min-height: 65vh;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	background-color: rgba(0,55,98,0.65);
	background-blend-mode: multiply;
	display: flex;
	flex-direction: column;
}
.banner-overlay-text {
	position: absolute;
  	top: 30%;
  	color: white;
	width: 80%;
}


.hero-motorsport {
  --bg-url: url('/wp-content/uploads/2025/08/Comptech-Website-Header.jpg');
  position: relative;
  color: var(--text-on-dark);
  overflow: clip;
}

.hero-motorsport .hero-bg {
  position: absolute; inset: 0;
  background-image: var(--bg-url);
  background-size: cover;
  background-position: center;
  z-index: -2;
}
.hero-motorsport .hero-overlay {
  position: absolute; inset: 0;
  background:
    radial-gradient(1200px 600px at 30% 20%, rgba(0,0,0,.25), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,.65) 40%, rgba(0,0,0,.75));
  z-index: -1;
}




/* ----------------------------------------------------- Post Slider Styles ---------------------------------------------------------------- */
/* Keep heading/content padding */
#all.content-padding { padding-right: var(--bs-gutter-x, 15px); }

/* Slider flush right */
.post-slider-wrapper {
  padding-right: 0 !important;
  margin-right: 0 !important;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  position: relative;
  cursor: grab;
}
.post-slider-wrapper:active { cursor: grabbing; }

.post-slider-track {
  display: flex;
  gap: 20px;
  align-items: stretch;
  width: max-content;
  padding: 0 0 10px 0;
}

.post-slide {
  flex: 0 0 auto;
  text-decoration: none;
  color: inherit;
}

.post-card {
  position: relative;
  width: 560px;
  height: 460px;
  border-radius: 10px;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

/* Solid orange overlay */
.post-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #FF5101;
  opacity: 0.75;
  pointer-events: none;
  z-index: 0;
}

/* White text */
.post-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  color: #fff;
  z-index: 1;
}

/* Hide scrollbar */
.post-slider-wrapper::-webkit-scrollbar { height: 0; }
.post-slider-wrapper { scrollbar-width: none; }


/* Hide overlay and text initially */
.post-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #FF5101;
  opacity: 0; /* hidden by default */
  pointer-events: none;
  z-index: 0;
  transition: opacity 0.3s ease;
}

.post-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  color: #fff;
  z-index: 1;
  opacity: 0; /* hidden by default */
  transition: opacity 0.3s ease;
}

/* Show overlay and text on hover */
.post-slide:hover .post-card::after,
.post-slide:hover .post-content {
  opacity: 0.85; /* adjust overlay strength */
}

/* ----------------------------------------------------- Before and After Styles ---------------------------------------------------------------- */


.ba-compare {
	position:relative;
	width:100%;
	overflow:hidden;
	border-radius:10px;
}

.ba-after {
	display:block;
	width:100%;
	height:auto;
	user-select:none;
	pointer-events:none;
}

.ba-before-wrap {
	position:absolute;
	inset:0;
	width:var(--pos,50%);
	overflow:hidden;
}

.ba-before {
	width:100%;
	height:100%;
	object-fit:cover;
	user-select:none;
	pointer-events:none;
}

.ba-handle {
	position:absolute;
	top:0;
	left:calc(var(--pos,50%) - 12px);
	width:24px;
	height:100%;
	cursor:ew-resize;
	border:0;
	background:transparent;
}

.ba-handle::before {
	content:"";
	position:absolute;
	left:50%;
	top:0;
	transform:translateX(-50%);
	width:3px;
	height:100%;
	background: var(--orange);
	box-shadow:0 0 0 1px rgba(0,0,0,.2),0 0 10px rgba(0,0,0,.25);
}

.ba-handle::after {
  content:"< >"; 
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:36px;
  height:36px;
  border-radius:50%;
  background: var(--orange);
  box-shadow:0 2px 10px rgba(0,0,0,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family: "Space Grotesk", sans-serif;
  font-size:14px;
  font-weight:bold;
  color: white; 
}

.ba-range {
	position:absolute;
	left:0;
	right:0;
	bottom:10px;
	width:clamp(200px,40%,420px);
	margin:0 auto;
	appearance:none;
	height:4px;
	background:rgba(255,255,255,.6);border-radius:999px;
}

.ba-range::-webkit-slider-thumb {
	appearance:none;
	width:16px;
	height:16px;
	border-radius:50%;
	background:#fff;
	box-shadow:0 0 0 1px rgba(0,0,0,.2);
}

.ba-range::-moz-range-thumb {
	width:16px;
	height:16px;
	border-radius:50%;
	background:#fff;
	border:0;
}


/* ----------------------------------------------------- Generic Content Styles ---------------------------------------------------------------- */

.content-padding {
	padding: 5%;
}
.content-padding-sm {
	padding: 2.5%;
}
.content-margin {
	margin: 5% 0;
}




/* ----------------------------------------------------- Metaslider Styles ---------------------------------------------------------------- */

.slides {
	padding: 0px !important;
}
.ms-image {
	display: block !important;
	height: 80vh !important;
	position: relative !important;
}
.ms-image img {
	height: 100%;
	object-fit: cover;
	object-position: center;
	width: 100%;
	background-color: rgba(0,55,98,0.65);
}

.metaslider .caption-wrap {
    bottom: 5% !important;
    background: none !important;
	opacity: 1 !important;
}
.caption-wrap .caption {
	position: absolute;
	bottom: 5%;
	left: 3%;
	padding: 20px 35px !important;
	width: auto;
	color: var(--white) !important;
	font-size: 35px;
	line-height: initial;
}

.caption-wrap .caption p {
	color: var(--white) !important;
}

.caption-wrap .caption h1 {
	color: var(--white) !important;
	
}

.metaslider .flexslider .slides > li img
{
	height: inherit;
}


/* ----------------------------------------------------- Testimonial ---------------------------------------------------------------- */



#sp-testimonial-free-wrapper-42 .sp-testimonial-free-section .sp-testimonial-title .sp-testimonial-post-title {
	color: white !important;
}

#sp-testimonial-free-wrapper-42 .sp-testimonial-free-section .testimonial-nav-arrow {
	color: white !important;
}

/* ----------------------------------------------------- Ninja Forms Styles ---------------------------------------------------------------- */


.nf-form-fields-required {
	display: none !important;
}

.nf-field-element input {
	color: white !important;
	background-color: transparent;
	border: none;
	border-bottom: white 1px solid;
}

.nf-field-element select {
	color: white !important;
	background-color: transparent;
	border: none;
	border-bottom: white 1px solid;
}
option, optgroup { 
	-webkit-appearance: none;
	color: #000;
}
.field-wrap > div input[type="checkbox"], .field-wrap button, .field-wrap input[type="button"], .field-wrap input[type="submit"] {
	background-color: var(--orange);
	border: var(--orange); 
	width: 100% !important;
	border-radius: 5px;
	padding: 10px;
}

/* ----------------------------------------------------- Button and A Styles ---------------------------------------------------------------- */

.btn-orange {
  position: relative;
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--orange);
  background: transparent;
  color: white;
  font-size: 1.25rem;
  line-height: 1;
  text-decoration: none;
  padding: 14px 22px;       /* padding for text side */
  padding-right: 90px;      /* space for arrow block */
  overflow: hidden;
  cursor: pointer;
  transition: background-color 0.4s ease, color 0.4s ease;
}

/* Orange arrow block on the right */
.btn-orange::after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -2px;
  width: 76px; /* width of the orange block */
  background: var(--orange);
}

/* White NE arrow */
.btn-orange::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 20px;
  height: 20px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  z-index: 1;
  transition: transform 0.3s ease;
}

/* Hover: full orange background */
.btn-orange:hover {
  background-color: var(--orange);
  color: #fff;
}

/* Hover: pulse the arrow */
.btn-orange:hover::before {
  animation: arrowPulse 0.8s infinite;
}

/* which arrow block on the right */

.btn-white {
  position: relative;
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--white);
  background: transparent;
  color: white;
  font-size: 1.25rem;
  line-height: 1;
  text-decoration: none;
  padding: 14px 22px;       /* padding for text side */
  padding-right: 90px;      /* space for arrow block */
  overflow: hidden;
  cursor: pointer;
  transition: background-color 0.4s ease, color 0.4s ease;
}

.btn-white::after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -2px;
  width: 76px; /* width of the orange block */
  background: var(--white);
}

/* White NE arrow */
.btn-white::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 20px;
  height: 20px;
  border-top: 3px solid var(--orange);
  border-right: 3px solid var(--orange);
  transform: translateY(-50%) rotate(45deg);
  z-index: 1;
  transition: transform 0.3s ease;
}

/* Hover: full orange background */
.btn-white:hover {
  background-color: var(--white);
  color: var(--orange);
}

/* Hover: pulse the arrow */
.btn-white:hover::before {
  animation: arrowPulse 0.8s infinite;
}
.metaslider a {
  position: relative;
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--orange);
  background: transparent;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  text-decoration: none;
  padding: 14px 22px;       /* padding for text side */
  padding-right: 90px;      /* space for arrow block */
  overflow: hidden;
  cursor: pointer;
  transition: background-color 0.4s ease, color 0.4s ease;
}

/* Orange arrow block on the right */
.metaslider a::after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -2px;
  width: 76px; /* width of the orange block */
  background: var(--orange);
}

/* White NE arrow */
.metaslider a::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 20px;
  height: 20px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  z-index: 1;
  transition: transform 0.3s ease;
}

/* Hover: full orange background */
.metaslider a:hover {
  background-color: var(--orange);
  color: #fff;
}

/* Hover: pulse the arrow */
.metaslider a:hover::before {
  animation: arrowPulse 0.8s infinite;
}

@keyframes arrowPulse {
  0%, 100% {
    transform: translateY(-50%) rotate(45deg) scale(1);
  }
  50% {
    transform: translateY(-50%) rotate(45deg) scale(1.15);
  }
}

/* ----------------------------------------------------- Underline Styles ---------------------------------------------------------------- */


.underline-80 {
  position: relative;
  margin-bottom: 5%;
  padding-bottom: 8px; /* space for the line */
}

.underline-80::after {
  content: "";
  position: absolute;
  left: 0;              /* left-aligned */
  bottom: 0;
  width: 80%;           /* << only 80% of the column */
  height: 3px;
  background: var(--orange);
}


/* ----------------------------------------------------- Footer Styles ---------------------------------------------------------------- */

footer {
	padding: 50px 5%;
	background-color: black !important;
}
footer p, footer a {
	color: var(--white);
	font-size: 14px;
}

footer a:hover {
	color: var(--orange);
}

footer h4 {
	color: var(--white);
	font-size: 30px;
	margin-bottom: 5%;
}

footer h4 a{
	color: var(--white);
	font-size: 30px;
	margin-bottom: 5%;
}





/* ----------------------------------------------------- 2200px + ---------------------------------------------------------------- */

@media only screen and (min-width : 2200px) {
}


/* ----------------------------------------------------- Smaller than 2200px ----------------------------------------------------- */

@media only screen and (max-width : 2200px) {
}


/* ----------------------------------------------------- Smaller than 1800px ----------------------------------------------------- */

@media only screen and (max-width : 1800px) {
}


/* ----------------------------------------------------- Smaller than 1750px ----------------------------------------------------- */

@media only screen and (max-width : 1750px) {
}


/* ----------------------------------------------------- Smaller than 1650px ----------------------------------------------------- */

@media only screen and (max-width : 1650px) {	
}


/* ----------------------------------------------------- Smaller than 1550px ----------------------------------------------------- */

@media only screen and (max-width : 1550px) {
}


/* ----------------------------------------------------- Smaller than 1450px ----------------------------------------------------- */

@media only screen and (max-width : 1450px) {
}


/* ----------------------------------------------------- Smaller than 1350px ----------------------------------------------------- */

@media only screen and (max-width : 1350px) {
	.slider-image {
		width: calc(50% - 10px);
		min-width: calc(50% - 10px);
	}
}


/* ----------------------------------------------------- Smaller than 1250px ----------------------------------------------------- */

@media only screen and (max-width : 1250px) {
} 


/* ----------------------------------------------------- Smaller than 1125px ----------------------------------------------------- */

@media only screen and (max-width : 1125px) {
	
	
}


/* ----------------------------------------------------- Smaller than 1080px ----------------------------------------------------- */
@media only screen and (max-width : 1080px) {
	.caption-wrap .caption {
 	   font-size: 30px;
	}
}


/* ----------------------------------------------------- Smaller than 1024px - iPad landscape ----------------------------------------------------- */

@media only screen and (max-width : 1024px) {	
	.testimonial {
		margin-bottom: 40px;
		padding: 18px;
	}
	.bg-orange img {
    	max-width: 50px;
	}
}


/* ----------------------------------------------------- Smaller than 991px ------------------------------------------------------ */

@media only screen and (max-width : 991px) {
	.caption-wrap .caption {
 	   	font-size: 25px;
		padding: 16px 20px !important;
	}
	.menu li {
		padding: 1px 12px 2px 12px;
	}
}

/* ----------------------------------------------------- Smaller than 870px ------------------------------------------------------ */

@media only screen and (max-width : 870px) {	

}

/* ----------------------------------------------------- Smaller than 800px ------------------------------------------------------ */

@media only screen and (max-width : 800px) {	
	
}


/* ----------------------------------------------------- Smaller than 768px - iPad portrait ------------------------------------------------------ */

@media only screen and (max-width : 768px) {
	.mobile-center {
		text-align: center !important;
	}
	.mobile-left {
		text-align: left !important;
	}
	.metaslider .caption-wrap {
	    width: 90% !important;
	}
	.bg-orange img {
    	max-width: 40px;
	}
	.banner-overlay-text {
		top: 33%;
	}

}


/* ----------------------------------------------------- Smaller than 700px ------------------------------------------------------ */

@media only screen and (max-width : 700px) {
}

/* ----------------------------------------------------- Smaller than Mobile ----------------------------------------------------- */

@media only screen and (max-width : 650px) {
	.service-slide {
		flex: 0 0 calc(100% / 1.5);
	}
	.nf-form-cont .one-fourth {
		width: 100% !important;
	}

}


/* ----------------------------------------------------- Smaller than 540px ------------------------------------------------------ */

@media only screen and (max-width : 540px) {	

}


/* ----------------------------------------------------- Smaller than 500px ------------------------------------------------------ */

@media only screen and (max-width : 450px) {

}