* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/*---------------------------------------
  CUSTOM PROPERTIES ( VARIABLES )             
-----------------------------------------*/
:root {
    --white-color:                  #ffffff;
    --primary-color:                #004A80;
    --secondary-color:              #006FBF;
    --section-bg-color:             #002540;
    --custom-btn-bg-color:          #59A84D;
    --custom-btn-bg-hover-color:    #68B05D;
    --dark-color:                   #000000;
    --p-color:                      #002540;
    --link-hover-color:             #59A84D;
  
    --body-font-family:             'DM Sans', sans-serif;
  
    --h1-font-size:                 42px;
    --h2-font-size:                 36px;
    --h3-font-size:                 28px;
    --h4-font-size:                 24px;
    --h5-font-size:                 22px;
    --h6-font-size:                 20px;
    --p-font-size:                  18px;
    --menu-font-size:               16px;
    --btn-font-size:                14px;
  
    --border-radius-large:          100px;
    --border-radius-medium:         20px;
    --border-radius-small:          10px;
  
    --font-weight-normal:           400;
    --font-weight-medium:           500;
    --font-weight-bold:             700;
  }
  
  body {
    background-color: var(--white-color);
    font-family: var(--body-font-family); 
  }



.container {
    width: 90%;
    max-width: 1100px;
    margin: auto;
}

/* HERO */
.hero {
    position: relative;          /* WICHTIG */
    background: #002540;
    color: white;
    text-align: center;
    min-height: 120vh;
    overflow: hidden;            /* verhindert Überlaufen */
}

/* VIDEO im Hintergrund */
.hero-video {
    position: absolute;
    top: 0%;
    left: 0%;
    transform: none;

    width: 100%;
    height: 100%;
    object-fit:cover;
    object-position: bottom;

    z-index: 0;                  /* ganz hinten */
    opacity: 0.3;               /* leicht sichtbar */
}

/* Content darüber */
.hero .container,
.navbar-brand {
    position: relative;
    z-index: 2;
}

/* Optional: dunkles Overlay für bessere Lesbarkeit */
.hero::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 37, 64, 0.6);
    z-index: 1;
}

.hero-text{
    margin-top: 20%;
}



.headerlogo{
    width: 100px;
    filter: brightness(1) invert(1) sepia(1) hue-rotate(170deg) saturate(2);

    position: absolute;
    top: 50px;
    left: 50px;

    z-index: 99;

}



/* Welle ebenfalls über Video */
.welle {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;
}

.button-hero{
    background-color: #59A84D;
    padding: 10px;
    text-decoration: none;
    color: #f9f9f9;
    
}

.button-hero:hover{
    background-color: #ffffff;
    color: #59A84D;
    border-radius: 10px;
    transition-duration: 200ms;
}


/* SECTIONS */
section {
    padding: 60px 60px;
    margin-top: 10px;
}

h2 {
    margin-bottom: 20px;
    text-align: center;
    font-size: 2rem;
}

/* PROJECTS */
.project-grid {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
    
}
.project-grid a{
 text-decoration: none;
 color: #002540;
}

.project {
    flex: 1;
    min-width: 250px;
}

.project img {
    width: 100%;
    border-radius: 10px;
}

/* REVIEWS */
.reviews {
    background-color:  #002540;


}
.reviews > h2{
    color: #f9f9f9;
}

.reviews-container{
    display:  flex;
    justify-content: center;
    flex-wrap: wrap;
}

.card {
    padding: 2rem;
    max-width: 320px;
    border-radius: 10px;
    margin: 1%;
    margin-bottom: 5%;
  }
  
  .card-header {
    background-color: #ffffff;
    display: flex;
    align-items: center;
    grid-gap: 1rem;
    gap: 1rem;
  }
  
  .card-header .card-image {
    height: 4rem;
    width: 4rem;
    border-radius: 9999px;
    object-fit: cover;
    background-color: royalblue;
  }
  
  .stars {
    display: flex;
    justify-content: start;
    grid-gap: 0.125rem;
    gap: 0.125rem;
    color: rgba(34, 197, 94, 1);
  }
  
  .stars svg {
    height: 1rem;
    width: 1rem;
  }
  
  .name {
    margin-top: 0.25rem;
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
    --tw-text-opacity: 1;

  }
  
  .message {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    margin-top: 1rem;
    color: rgba(107, 114, 128, 1);
  }



/* FAQ */
details {
    margin: 10px 0;
    padding: 10px;
    background: #f9f9f9;
    border-radius: 5px;
}

/* CONTACT */
form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

input, textarea {
    padding: 10px;
    width: 100%;
}

button {
    padding: 12px;
    background: #111;
    color: white;
    border: none;
    cursor: pointer;
}

/* FOOTER */

.site-footer {
    position: relative;
    padding-bottom: 200px;
  }
  
  .site-footer .container {
    position: relative;
    z-index: 2;
  }
  
  .site-footer svg {
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    pointer-events: none;
  }
  
  .site-footer-title {
    color: var(--secondary-color);
  }
  
  .site-footer p span {
    font-weight: #002540;
    margin-right: auto;
  }
  
  .logo-brand{
    max-width: 100px;
    margin-bottom: 150px;
    margin-left: -20px;
  }

  .whatsapp-float{
    position: fixed;

    right: 25px;
    bottom: 25px;

    width: 45px;
    height: 45px;

    background: #25D366;
    color: white;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 28px;

    text-decoration: none;

    box-shadow: 0 4px 12px rgba(0,0,0,0.3);

    z-index: 9999;

    transition: all 0.2s ease;
}

.whatsapp-float:hover{
    transform: scale(1.08);
    background: #1ebe5d;
    color: white;
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .hero h1 {
        font-size: 2rem;
    }

    .project-grid {
        flex-direction: column;
    }

    .headerlogo{
      height: 70px;
      width: auto;
    }

    .hero-text{
      margin-top: 50%;
    }

    .seo-text{
      padding: 10px;
    }

    .projects{
      padding: 10px;
    }

    .reviews{
      padding: 10px;
    }

    .faq{
      padding: 10px;
    }

    .contact{
      padding: 10px;
    }

    .side-footer{
      padding-bottom: 30px;
    }

    .logo-brand{
      margin: 20px auto 20px 10px;
      
    }

}