:root {
    --primary-color: #b894f6;
    --secondary-color: #9ACOFF;
    --accent-color: #faa439;
    --highlight-color: #f090f4;
    --background-color: #e4ebf5;
}

body {
    font-family: "Arial", sans-serif;
    color: #333;
    /*background-color: var(--background-color);*/
    --tw-bg-opacity: 1;
    background-color: rgb(0 0 0 / var(--tw-bg-opacity));
}

.gradient-bg {
    background: radial-gradient(
        circle at center,
        rgba(240, 144, 244, 0.15) 0%,
        rgba(184, 148, 246, 0.2) 25%,
        rgba(154, 192, 255, 0.15) 50%,
        rgba(26, 32, 44, 0.9) 100%
    );
}

.backdrop-blur-sm {
    backdrop-filter: blur(4px);
}

.h-screen {
    height: 100vh;
}

.btn-primary {
    background-color: var(--primary-color);
    color: white;
    transition: background-color 0.3s ease;
}

.btn-primary:hover {
    background-color: var(--secondary-color);
}

.btn-secondary {
    border: 2px solid var(--primary-color);
    color: var(--primary-color);
    transition: all 0.3s ease;
}

.btn-secondary:hover {
    background-color: var(--primary-color);
    color: white;
}

.section-title {
    color: var(--primary-color);
    font-weight: bold;
}

.card {
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

.hover-scale {
    transition: transform 0.3s ease;
}

.hover-scale:hover {
    transform: scale(1.05);
}

@media (max-width: 768px) {
    .gradient-bg {
        background: linear-gradient(120deg, rgba(26, 32, 44, 0.95) 0%, rgba(45, 55, 72, 0.9) 100%);
    }
}

.typewriter-container {
    position: relative;
    min-height: 2em;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
    border-radius: 8px;
}

.typewriter-text {
    position: absolute;
    left: 0;
    right: 0;
    opacity: 0;
    font-size: 1.875rem;
    transform: translateY(-50%);
    transition: opacity 0.5s;
}

.typewriter-text.active {
    opacity: 1;
    animation: typing 3s steps(40, end);
}

.cursor {
    border-right: 2px solid #fff;
    animation: blink 0.75s step-end infinite;
}

@keyframes typing {
    from {
        width: 0;
    }

    to {
        width: 100%;
    }
}

@keyframes blink {
    from,
    to {
        border-color: transparent;
    }

    50% {
        border-color: #fff;
    }
}

.gradient-text {
    background: linear-gradient(90deg, #3882f6, #328fb7, #2e9a80, #28a545);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity));
}

.text-white-sub {
    --tw-text-opacity: 1;
    color: rgb(223 223 223 / var(--tw-text-opacity));
}

.text-green-icons {
    --tw-text-opacity: 1;
    color: #10a37f;
}

/* services cards */
.services-cards {
    color: white;
}
.pservices-cards {
    color: rgb(188 197 204);
    opacity: 0.8;
}

/* Styles pour le slider de témoignages - mise à jour */
.testimonial-slider {
    position: relative;
    margin: 0 auto;
    max-width: 100%;
    overflow: hidden;
}

.testimonial-track {
    display: flex;
    flex-wrap: nowrap;
}

.testimonial-slide {
    flex-shrink: 0;
    transition: transform 0.5s ease;
}

/* Propriété line-clamp pour limiter le texte des témoignages */
.line-clamp-6 {
    display: -webkit-box;
    -webkit-line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Responsive styling */
@media (max-width: 768px) {
    .testimonial-slide {
        width: 90% !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .testimonial-slide {
        width: 33.33% !important;
    }
}

@media (min-width: 1025px) {
    .testimonial-slide {
        width: 25% !important;
    }
}

.testimonial-dot {
    transition: background-color 0.3s ease;
}

.testimonial-dot.active {
    background-color: white;
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.testimonial-slide > div {
    animation: fadeInUp 0.5s ease forwards;
    animation-delay: calc(var(--index) * 0.1s);
}

/* Boutons de navigation */
.testimonial-prev, .testimonial-next {
    transition: all 0.3s ease;
}

.testimonial-prev:hover, .testimonial-next:hover {
    transform: translateY(-50%) scale(1.1);
}

/* EN tete avec video */
/* Animations pour les éléments avec data-aos */
[data-aos] {
    opacity: 0;
    transition: opacity 0.8s ease, transform 0.8s ease;
}

[data-aos="fade-up"] {
    transform: translateY(30px);
}

[data-aos="fade-down"] {
    transform: translateY(-30px);
}

[data-aos="fade-left"] {
    transform: translateX(30px);
}

[data-aos="fade-right"] {
    transform: translateX(-30px);
}

.aos-animate {
    opacity: 1 !important;
    transform: translate(0) !important;
}

/* Amélioration de l'effet machine à écrire */
.cursor {
    display: inline-block;
    width: 3px;
    height: 1em;
    background-color: currentColor;
    margin-left: 2px;
    animation: blink 1s step-end infinite;
    vertical-align: text-bottom;
}

@keyframes blink {
    from, to {
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
}

/* Style amélioré pour le conteneur vidéo */
.aspect-video {
    aspect-ratio: 16 / 9;
}

.aspect-square {
    aspect-ratio: 1 / 1;
}

@media (max-width: 768px) {
    .aspect-video, .aspect-square {
        aspect-ratio: auto;
        height: 300px;
    }
}

/* Animations particules */
@keyframes float {
    0%, 100% {
        transform: translateY(0) rotate(0);
    }
    50% {
        transform: translateY(-20px) rotate(5deg);
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 0.1;
    }
    50% {
        opacity: 0.2;
    }
}

.animate-pulse {
    animation: pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-float {
    animation: float 8s ease-in-out infinite;
}

/* Effet de survol des boutons */
.hero-button {
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.hero-button::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.7s ease;
}

.hero-button:hover::after {
    left: 100%;
}

/* Styles pour l'indicateur de défilement */
@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

.animate-bounce {
    animation: bounce 1.5s infinite;
}

/* Style pour le badge flottant */
@keyframes rotate {
    0% {
        transform: rotate(-3deg);
    }
    50% {
        transform: rotate(3deg);
    }
    100% {
        transform: rotate(-3deg);
    }
}

.rotate-animation {
    animation: rotate 6s ease-in-out infinite;
}