.accueil { --bs-primary: #db3832; background: #fff; color: #212529; }
.accueil .text-primary { color: #db3832 !important; }
.accueil .bg-primary { background-color: #db3832 !important; }
.accueil .btn-primary {
  background: #db3832;
  border-color: #db3832;
  color: #fff;
  font-family: Roboto, sans-serif;
  font-weight: 400;
}
.accueil .btn-primary:hover,
.accueil .btn-primary:focus { background: #db3832; border-color: #db3832; color: #fff; }
.accueil .btn-outline-primary { color: #db3832; border-color: #db3832; }
.accueil .btn-outline-primary:hover,
.accueil .btn-outline-primary:focus { background: #db3832; border-color: #db3832; color: #fff; }

.accueil .header-carousel { position: relative; overflow: hidden; }
.accueil .header-carousel-item { display: none; position: relative; }
.accueil .header-carousel-item.is-active { display: block; }
.accueil .header-carousel-item::before {
  content: "";
  position: absolute;
  width: 300px;
  height: 1200px;
  top: -150px;
  left: -265px;
  transform: rotate(-30deg);
  background: red;
  animation: accueil-rotate-left 5s linear infinite;
  opacity: 0.7;
  z-index: 2;
  pointer-events: none;
}
.accueil .header-carousel-item img,
.accueil .header-carousel-fallback {
  display: block;
  width: 100%;
  height: 87vh;
  max-height: 100vh;
  object-fit: cover;
  background: #17418a;
}
.accueil .header-carousel-photo { position: relative; overflow: hidden; }
.accueil .header-carousel-photo::before {
  content: "";
  position: absolute;
  width: 600px;
  height: 600px;
  top: -300px;
  right: -300px;
  border-radius: 300px;
  border: 100px solid rgba(68, 210, 246, 0.2);
  animation: accueil-rotate-circle 10s linear infinite;
  z-index: 2;
}
.accueil .header-carousel-photo::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 1200px;
  top: -150px;
  left: 70px;
  transform: rotate(-30deg);
  background: rgba(68, 210, 246, 0.2);
  animation: accueil-rotate-right 5s linear infinite;
  z-index: 2;
}
@keyframes accueil-rotate-circle {
  0% { top: -400px; }
  50% { right: -200px; }
  75% { top: -200px; }
  100% { top: -400px; }
}
@keyframes accueil-rotate-right {
  0% { left: 0; }
  50% { left: 70px; }
  100% { left: 0; }
}
@keyframes accueil-rotate-left {
  0% { left: -240px; }
  50% { left: -300px; }
  100% { left: -240px; }
}
.accueil .carousel-caption {
  position: absolute;
  width: 80%;
  height: 100%;
  top: 0;
  right: auto;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0;
  color: #fff;
  text-align: center;
  z-index: 9;
}
.accueil .carousel-caption-inner {
  background: #000000bd;
  bottom: 76px;
  position: absolute;
  width: 100%;
  margin-left: -11px;
}
.accueil .owl-prev,
.accueil .owl-next {
  position: absolute;
  width: 60px;
  height: 60px;
  top: 50%;
  transform: translateY(-50%);
  padding: 0;
  border: 0;
  border-radius: 40px;
  background: #17418a;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  z-index: 10;
  transition: 0.5s;
}
.accueil .owl-prev { left: 30px; }
.accueil .owl-next { right: 30px; }
.accueil .owl-prev:hover,
.accueil .owl-next:hover { background: #212529; color: #fff; }

.accueil .card { transition: 0.3s; }
.accueil .card-img-top { width: 100%; height: 190px; object-fit: cover; background: #e9ecef; }
.accueil .card-img-fallback { height: 190px; background: #e9ecef; }
.accueil .partenaire-logo { max-height: 150px; width: auto; }
.accueil .partenaire-logo.is-compact { max-height: 100px; }

.accueil .wow { visibility: hidden; }
.accueil .wow.animated { visibility: visible; animation-duration: 1s; animation-fill-mode: both; }
.accueil .wow.animated.fadeInUp { animation-name: accueil-fade-up; }
.accueil .animate__animated { animation-duration: 1s; animation-fill-mode: both; }
.accueil .animate__fadeInDown { animation-name: accueil-fade-down; }
.accueil .animate__fadeInUp { animation-name: accueil-fade-up; }
@keyframes accueil-fade-down {
  from { opacity: 0; transform: translate3d(0, -100%, 0); }
  to { opacity: 1; transform: none; }
}
@keyframes accueil-fade-up {
  from { opacity: 0; transform: translate3d(0, 100%, 0); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 992px) {
  .accueil .carousel-caption { width: 100%; padding: 0 10px; }
  .accueil .header-carousel-item img,
  .accueil .header-carousel-fallback { height: 700px; }
  .accueil .owl-prev,
  .accueil .owl-next { top: 40px; transform: none; }
  .accueil .owl-prev { left: 65%; }
}
@media (prefers-reduced-motion: reduce) {
  .accueil .header-carousel-item::before,
  .accueil .header-carousel-photo::before,
  .accueil .header-carousel-photo::after,
  .accueil .animate__animated,
  .accueil .wow.animated { animation: none; }
  .accueil .wow { visibility: visible; }
}
