.banner {
  position: relative;
  width: 100%;
  min-height: 520px;
  height: 95vh;
  max-height: 45rem;
  overflow: hidden;
  padding: 5rem 0;
  display: flex;
  justify-content: center;
  background: linear-gradient(
    to bottom,
    rgba(var(--bs-ws-color-rgb), 0.15) 0%,
    var(--bs-white) 35%,
    var(--bs-white) 50%,
    var(--bs-white) 65%,
    rgba(var(--bs-ws-color-rgb), 0.15) 100%
  );
}
/* felső circuit háttér */

.circuit-top {
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
  height: 50%;

  background: url("../layout/circuit-top.png") no-repeat center top;
  background-size: cover;

  opacity: 0.75;
  z-index: 1;
  pointer-events: none;
}

/* alsó circuit háttér */

.circuit-bottom {
  position: absolute;
  bottom: 0;
  left: 0;

  width: 100%;
  height: 50%;
  background: url("../layout/circuit-bottom.png") no-repeat center bottom;
  background-size: cover;

  opacity: 0.75;
  z-index: 1;
  pointer-events: none;
}

/* wrapper */

.circuit-wrapper {
  position: relative;
  width: 92%;
  z-index: 2;
  padding: 2rem;
}

/* logo */

.banner-logo-container {
  position: absolute;
  top: 15%;
  right: 0;
  z-index: 99;
  width: 50%;
  padding: 1rem;
}

.banner-logo {
  width: 100%;
  max-width: 15rem;
  display: block;
}

.banner-slogan {
  margin: 0.5rem 0;
  color: var(--bs-ws-color);
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  text-align: center;
}

.banner-title {
  font-size: 1rem;
  color: var(--bs-ws-color);
  padding-top: 0.5rem;
  text-transform: uppercase;
  font-weight: 400;
  letter-spacing: 0.11em;
}

.banner-info {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  padding: 1rem;
  max-width: 75rem;
  z-index: 9;
  text-align: center;
}

.banner-info p {
  margin: 0;
  padding: 0;
  font-size: 0.9rem;
}

/* shade svg */

.circuit-shade {
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
  height: auto;

  z-index: 1;
  opacity: 0.65;
}

/* main svg */

.circuit-main {
  position: relative;
  width: 100%;
  height: auto;
  z-index: 2;
}

/* =========================
   ANIMATIONS
========================= */

@keyframes gentleZoom {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.5);
  }
}

@keyframes gentleRotate {
  0%,
  100% {
    transform: rotate(0deg) scale(1);
  }
  25% {
    transform: rotate(-3deg) scale(1.012);
  }
  50% {
    transform: rotate(0deg) scale(1.028);
  }
  75% {
    transform: rotate(3deg) scale(1.012);
  }
}

@keyframes gentleRotateShade {
  0%,
  100% {
    transform: rotate(0deg) scale(1);
  }
  40% {
    transform: rotate(3.5deg) scale(1.1);
  }
  70% {
    transform: rotate(-3.5deg) scale(1.2);
  }
}

@keyframes shadeBreathingAndTilt {
  0%,
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 0.64;
  }
  50% {
    transform: scale(1.1) rotate(-1.2deg);
    opacity: 0.81;
  }
}

/* animation apply */

.circuit-main {
  animation:
    gentleRotate 58s ease-in-out infinite,
    softZoom 42s ease-in-out infinite;

  animation-direction: alternate;
}

.circuit-top, .circuit-bottom {
  animation: gentleZoom 100s ease-in-out infinite;

  animation-direction: alternate;
}

.circuit-shade {
  animation:
    gentleRotateShade 62s ease-in-out infinite,
    shadeBreathingAndTilt 54s ease-in-out infinite;

  animation-direction: normal;
}

.circuit-wrapper {
  animation:
    wrapperFloat 56s ease-in-out infinite,
    gentleRotate 80s linear infinite;
}

/* =========================
   ≥576px
========================= */

@media (min-width: 576px) {

  .banner {
    min-height: 620px;
    max-height: 55rem;
  }

}

/* =========================
   ≥768px
========================= */

@media (min-width: 768px) {
  .circuit-main,
  .circuit-shade {
    width: 85%;
  }

  .banner {
    min-height: 580px;
    align-items: center;
  }

}

/* =========================
   ≥992px
========================= */

@media (min-width: 992px) {
  .banner {
    min-height: 620px;
    max-height: 65rem;
  }

  .circuit-main,
  .circuit-shade {
    width: 70%;
  }


  .banner-logo {
    max-width: 20rem;
  }


  .circuit-main {
    height: 80vh;
    
  }

  .circuit-shade {

    height: 80vh;
  }
}

/* =========================
   ≥1400px
========================= */

@media (min-width: 992px){

  .banner-logo-container{
    top: 40%;
  }

}

@media (min-width: 1200px) {
  .banner {
    height: 90vh;
  }

  .circuit-wrapper {
    padding: 3rem;
    max-width: 1600px;
  }

  .circuit-main, .circuit-shade{
    left: 10%;
  }

  .banner-logo-container
  {
    right: 4rem;
  }
  
}

@media (min-width: 1400px) {
  .circuit-main, .circuit-shade{
    left: 10%;
  }
}

@media (min-width: 1600px) {
  .circuit-main, .circuit-shade{
    left: 10%;
  }

  .banner-logo-container
  {
    right: 8rem;
  }
}
