/*----------------------------------------------------
@File: Default Styles
@Author: Vuyani Joshua Matumbu
@Author Email: da_vuks@yahoo.com / vj@mkholoempire.co.za
----------------------------------------------------*/

/*=====================================================================
@Template Name: Joel Santana

@Default Styles

Table of Content:
01/ Variables 
02/ Font and Typography
03/ Font Weights
04/ Font Margin Bottom 
05/ Z-index
06/ Opacity 
07/ Base
08/ Buttons & Background
09/ Titles
10/ Flex
11/ Grids
12/ Margins
13/ Padding
14/ Animation
=====================================================================*/

/*=================| Variables |===============================*/

:root {
    /* Colors */
    --primary-color: #5470ff;
    --secondary-color:#2f446b;
    --gray-color: #dbdbdb;
    --white-color: #ffffff;
    --red-color: #ca0a00;
    --black-color: #000000;
    --dark-gray: #24242a; 
    --dark-color: #1d242d;
    --bg-dark:#18181f;

    /* Font and Typography */
    --body-font: 'Poppins', sans-serif;
    --font-family-sans-serif: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --font-family-roboto: "Roboto", sans-serif;

    /* Font Sizes */
    --bigger-font-size: clamp(1rem, 0.1rem + 10vw, 3rem);
    --h1-font-size: clamp(1rem, 0.5rem + 10vw, 4rem);
    --h2-font-size: 2.6rem;
    --h3-font-size: 1.5rem;
    --font-size-normal: 1rem;
    --font-size-small: 0.938rem;
    --font-size-smaller: 0.75rem;

    /* Font Weights */
    --font-small: 400;
    --font-medium: 500;
    --font-semi-bold: 600;
    --font-extra-bold: 800;
    --font-bolder: bolder;

    /* Font Margin Bottom */
    --mb-1: 0.5rem;
    --mb-2: 1rem;
    --mb-3: 1.5rem;
    --mb-4: 2rem;
    --mb-5: 2.5rem;
    --mb-6: 3rem;

    /* Z-index */
    --z-low: 1;
    --z-medium: 5;
    --z-high: 10;
    --z-highest: 999;

    /* Opacity */
    --op-01: 0.1;
    --op-02: 0.2;
    --op-03: 0.3;
    --op-04: 0.4;
    --op-05: 0.5;
    --op-06: 0.6;
    --op-07: 0.7;
    --op-08: 0.8;
    --op-09: 0.9;
    --op-10: 1;
}

/*==================== Base ====================*/
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

ul {
    list-style: none;
}

a {
    text-decoration: none !important;
    color: var(--white-color);
}

a:hover {
    text-decoration: none;
    color: var(--primary-color) !important;
    animation: fade 1.5s;
}
 .active{
    color: var(--primary-color);
}

html {
    scroll-behavior: smooth;
}
img{
    width: 100%;
  
    }
    
body {
    font-family: var(--font-family-sans-serif);
    font-size: var(--font-size-normal);
  
    line-height: 1.5;
    max-height: 100vh;
    overflow-x: hidden;
}

/* Container */
.container, .container-fluid {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

.container {
    max-width: 100%;
}

@media (min-width: 576px) {
    .container {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}

/* Rows and Columns */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}
.col-md-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%;
}
/* Offsets */
[class*="offset-"] {
    margin-left: 8.33333%;
}

@media (min-width: 576px) {
    .offset-sm-1 { margin-left: 8.33333%; }
    .offset-sm-2 { margin-left: 16.66667%; }
    .offset-sm-3 { margin-left: 25%; }
    .offset-sm-4 { margin-left: 33.33333%; }
    .offset-sm-5 { margin-left: 41.66667%; }
    .offset-sm-6 { margin-left: 50%; }
    .offset-sm-7 { margin-left: 58.33333%; }
    .offset-sm-8 { margin-left: 66.66667%; }
    .offset-sm-9 { margin-left: 75%; }
    .offset-sm-10 { margin-left: 83.33333%; }
    .offset-sm-11 { margin-left: 91.66667%; }
}



/*==================== Typography ====================*/
h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: var(--mb-1);
}

p {
    margin-top: 0;
    margin-bottom: var(--mb-1);
}

span {
    color: var(--primary-color);
}

/*==================== Buttons ====================*/
.btn-primary {
    position: relative;
    background-color: var(--primary-color) !important;
    padding: 1em;
    border-radius: 0.5em;
    border: none !important;
    color: var(--white-color);
    z-index: var(--z-high);
}

.btn-primary:hover {
    background-color: var(--black-color);
    color: var(--white-color);
    cursor: pointer;
}
/* Base styles for the button */
.btn {
    padding: 1em 2em;
    font-size: 1rem;
    text-align: center;
  }
  
  /* Medium devices (tablets, 768px and up) */
  @media (max-width: 768px) {
    .btn {
      padding: 0.8em 1.5em;
      font-size: 0.9rem;
    }
  }
  
  /* Small devices (phones, 576px and up) */
  @media (max-width: 576px) {
    .btn {
      width: 100%; /* Makes the button full width on small screens */
      padding: 0.6em 1.2em;
      font-size: 0.85rem;
    }
  }
  
/*===================Text===================*/
.text-center{
    text-align: center;
}
.text-l{
    text-align:left;
}
.text-r{
    text-align:right;
}
/*==================== Inputs ====================*/
select {
    padding: 1em;
    width: 100%;
    margin-top: 1em;
    border: 0.1em solid var(--primary-color);
    background: var(--white-color);
    text-align: center;
}
textarea,input{
    border: 0.1em solid var(--primary-color);
}
input{
    
    padding: 1em;
    width: 100%; 
}
textarea{
    position: relative;
    top: 1em;
    width: 100%;
}
input:focus, textarea:focus {
    outline: none;
}

/*==================== Titles ====================*/
.section-title, .section-paragraph {
    margin-top: 1em;
    font-family: var(--font-family-roboto);
    font-size: var(--h2-font-size);
    font-weight: var(--font-semi-bold);
    color: var(--black-color);
    line-height: 1;
    z-index: var(--z-higher);
     
}
@media(min-width:800px){
    .hero-title{
        padding:0 1em;
    }
}
.hero-title {
    margin-top: 1em;
    font-size: var(--bigger-font-size);
    font-weight: var(--font-extra-bold);
    color: var(--white-color);
    line-height: 1;
    z-index: var(--z-higher);
}

.section-heading {
    text-align: left;
}

.section-heading p {
    position: relative;
    top: 2em;
}
/*----------------Backgrounds--------------------*/
.btn-primary,
.bg-primary{
    background:var(--primary-color);
    color: var(--white);
}
.btn-secondary,
.bg-secondary{
    background: var(--secondary-color);
    color:#fff;
}
.btn-white,
.bg-white{
    background: var(--white-color);
    color:var(--black-color);
}
.btn-dark,
.bg-dark{
    background-color: var(--bg-dark);
    color: var(--white-color);
}
.btn-gray,
.bg-gray{
    background: var(--gray-color);
    color:var(--black-color);
}

.btn-color,
.bg-color{
    background: var( --bg-dark);
    color:var(--white-color);
}
.btn-color,
.bg-card{
    background: var( --dark-gray);
    color:var(--white-color);
}
.btn-black,
.bg-black{
    background-color: var(--black-color);
    
}

.bg-parallax{
    background-attachment:fixed;
}
/*--
/*==================== Flex ====================*/
/*==================== Flexbox ====================*/

.flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1em;
}

/* Justify Content (Align items along the main axis) */
.flex-center {
    justify-content: center;
}

.flex-start {
    justify-content: flex-start;
}

.flex-end {
    justify-content: flex-end;
}

.flex-between {
    justify-content: space-between;
}

.flex-around {
    justify-content: space-around;
}

.flex-evenly {
    justify-content: space-evenly;
}

/* Align Items (Align items along the cross axis) */
.items-center {
    align-items: center;
}

.items-start {
    align-items: flex-start;
}

.items-end {
    align-items: flex-end;
}

.items-stretch {
    align-items: stretch;
}

/* Flex Direction */
.flex-row {
    flex-direction: row;
}

.flex-row-reverse {
    flex-direction: row-reverse;
}

.flex-column {
    flex-direction: column;
}

.flex-column-reverse {
    flex-direction: column-reverse;
}

/* Flex Wrap */
.flex-wrap {
    flex-wrap: wrap;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.flex-wrap-reverse {
    flex-wrap: wrap-reverse;
}

/* Align Content (For multi-line flex containers) */
.content-center {
    align-content: center;
}

.content-start {
    align-content: flex-start;
}

.content-end {
    align-content: flex-end;
}

.content-between {
    align-content: space-between;
}

.content-around {
    align-content: space-around;
}

.content-stretch {
    align-content: stretch;
}


/*==================== Grids ====================*/
.grid-auto, .grid-col-1, .grid-col-2, .grid-col-3, .grid-col-4, .grid-col-5 {
    display: grid;
    gap: 4em;
    justify-content: center;
    align-items: center;
    height: 100%;
    position: relative;
    
}

.grid-auto {
    grid-template-columns: repeat(auto-fit, minmax(20em, 1fr));
}

.grid-col-1 {
    grid-template-columns: repeat(1, 1fr);
}

.grid-col-2 {
    grid-template-columns: repeat(2, 1fr);
}

.grid-col-3 {
    grid-template-columns: repeat(3, 1fr);
}

.grid-col-4 {
    grid-template-columns: repeat(4, 1fr);
}

.grid-col-5 {
    grid-template-columns: repeat(5, 1fr);
}

/*==================== Margins ====================*/
.m-1 {
    margin: 1em;
}

.m-2 {
    margin: 2em;
}

.m-3 {
    margin: 3em;
}

.m-4 {
    margin: 4em;
}

.mt-1 {
    margin-top: 1em;
}

.mt-2 {
    margin-top: 2em;
}

.mt-3 {
    margin-top: 3em;
}

.mt-4 {
    margin-top: 4em;
}

.mt-5 {
    margin-top: 5em;
}

.mb-1 {
    margin-bottom: 1em;
}

.mb-2 {
    margin-bottom: 2em;
}

.mb-3 {
    margin-bottom: 3em;
}

.mb-4 {
    margin-bottom: 4em;
}

.mb-5 {
    margin-bottom: 5em;
}

/*==================== Padding ====================*/
.p-1 {
    padding: 1em;
}

.p-2 {
    padding: 2em;
}

.p-3 {
    padding: 3em;
}

.p-4 {
    padding: 4em;
}

.pt-1 {
    padding-top: 1em;
}

.pt-2 {
    padding-top: 2em;
}

.pt-3 {
    padding-top: 3em;
}

.pt-4 {
    padding-top: 4em;
}

.pt-5 {
    padding-top: 5em;
}
.py-0{
padding: 0 ;
} 
.py-1{
padding: 0  1em;
}  
.py-2{
padding: 0  2em;
}  
.py-3{
padding: 0  3em;
}  
.py-4{
padding: 0  4em;
}  
.py-5{
padding: 0  5em;
}  

/*==================== Animation ====================*/
@keyframes fade {
    from {
        opacity: var(--op-01);
    }
    to {
        opacity: var(--op-10);
    }
}
