.elementor-kit-14{--e-global-color-primary:#FFFFFF;--e-global-color-secondary:#FFFFFF;--e-global-color-text:#FFFFFF;--e-global-color-accent:#FFFFFF;--e-global-color-e2b494d:#000000;--e-global-color-668a50a:#000000;--e-global-color-f737c9a:#FFFFFF00;--e-global-color-3c65eba:#00000080;--e-global-typography-primary-font-family:"DM Serif Display";--e-global-typography-primary-font-size:80px;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-text-transform:capitalize;--e-global-typography-primary-font-style:normal;--e-global-typography-primary-text-decoration:none;--e-global-typography-primary-line-height:0.9em;--e-global-typography-primary-letter-spacing:-0.3px;--e-global-typography-primary-word-spacing:0em;--e-global-typography-secondary-font-family:"DM Sans";--e-global-typography-secondary-font-size:25px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-font-style:normal;--e-global-typography-secondary-text-decoration:none;--e-global-typography-secondary-line-height:1.1em;--e-global-typography-secondary-letter-spacing:0px;--e-global-typography-secondary-word-spacing:0em;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:500;--e-global-typography-text-text-transform:none;--e-global-typography-text-font-style:normal;--e-global-typography-text-text-decoration:none;--e-global-typography-text-line-height:1.3em;--e-global-typography-text-letter-spacing:0px;--e-global-typography-text-word-spacing:0em;--e-global-typography-accent-font-family:"DM Sans";--e-global-typography-accent-font-size:25px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-font-style:normal;--e-global-typography-accent-text-decoration:none;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0px;--e-global-typography-accent-word-spacing:0em;--e-global-typography-08bcdff-font-family:"DM Serif Display";--e-global-typography-08bcdff-font-size:12vw;--e-global-typography-08bcdff-font-weight:400;--e-global-typography-08bcdff-text-transform:capitalize;--e-global-typography-08bcdff-font-style:normal;--e-global-typography-08bcdff-text-decoration:none;--e-global-typography-08bcdff-line-height:0.8em;--e-global-typography-08bcdff-letter-spacing:-0.3px;--e-global-typography-08bcdff-word-spacing:0em;--e-global-typography-3111954-font-family:"DM Sans";--e-global-typography-3111954-font-size:18px;--e-global-typography-3111954-font-weight:500;--e-global-typography-3111954-text-transform:uppercase;--e-global-typography-3111954-font-style:normal;--e-global-typography-3111954-text-decoration:none;--e-global-typography-3111954-line-height:1em;--e-global-typography-3111954-letter-spacing:-0.2px;--e-global-typography-3111954-word-spacing:0em;--e-page-transition-entrance-animation:e-page-transition-fade-out;--e-page-transition-exit-animation:e-page-transition-fade-in;--e-page-transition-animation-duration:1500ms;--e-preloader-animation-duration:1500ms;--e-preloader-delay:0ms;--e-preloader-color:var( --e-global-color-accent );--e-preloader-size:20px;}.elementor-kit-14 e-page-transition{background-color:var( --e-global-color-e2b494d );}.elementor-kit-14 a{color:var( --e-global-color-accent );}.elementor-kit-14 h1{font-family:"Funnel Display", Sans-serif;font-size:104px;}.elementor-kit-14 h2{font-family:"Funnel Display", Sans-serif;font-size:156px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0%;--container-default-padding-right:0%;--container-default-padding-bottom:0%;--container-default-padding-left:0%;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-14{--e-global-typography-secondary-font-size:20px;--e-global-typography-text-font-size:14px;--e-global-typography-accent-font-size:18px;--e-global-typography-3111954-font-size:14px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-14{--e-global-typography-primary-font-size:62px;--e-global-typography-secondary-font-size:18px;--e-global-typography-accent-font-size:16px;--e-global-typography-08bcdff-font-size:70px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* --- GLOBAL SLIDE PADDING CONFIGURATION --- */

/* 1. Desktop (Standard Screens) */
.slide-padding {
    /* Vertical: Fixed pixels keep the height consistent */
    padding-top: 160px !important;
    padding-bottom: 80px !important;
    
    /* Horizontal: % ensures perfect alignment on all screen widths */
    padding-left: 5% !important;
    padding-right: 5% !important;
    
    /* Safety: Ensures padding doesn't make the element wider than 100% */
    box-sizing: border-box;
}

/* 2. Tablet (Portrait & Smaller Laptops) */
@media (max-width: 1024px) {
    .slide-padding {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
        padding-left: 5% !important; /* Keep 5% or reduce to 4% if tight */
        padding-right: 5% !important;
    }
}

/* 3. Mobile (Phones) - CRITICAL */
@media (max-width: 767px) {
    .slide-padding {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
        
        /* Switch to pixels here. 5% of a phone screen is tiny (approx 18px).
           20px or 25px is a much safer "safe zone" for text. */
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* --- INFINITE MARQUEE --- */

/* 1. The Container (The Track) */
.marquee-wrapper {
    display: flex !important;
    flex-wrap: nowrap !important; /* Force single line */
    overflow: hidden !important;  /* Hide anything outside the screen */
    width: 100%;
    
    /* Optional: Add a gap between the two text blocks */
    gap: 0; 
}

/* 2. The Text Elements (The Cars) */
.marquee-content {
    display: block;
    flex-shrink: 0; /* CRITICAL: Prevents text from squishing */
    width: auto;
    padding-right: 80px; /* Adjust this to change space between phrases */
    margin: 0 !important;
    
    /* Ensure text stays on one line */
    white-space: nowrap; 
    
    /* Typography checks (Optional) */
    line-height: 1; 
    margin: 0 !important;
    padding-right: 10px; /* Spacing between the end of text 1 and start of text 2 */
    
    /* The Engine: 20s loop, linear speed (no easing), infinite */
    animation: marquee-scroll 20s linear infinite;
}

/* 3. The Animation Keyframes */
@keyframes marquee-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        /* Move exactly -100% so the second text takes the place of the first */
        transform: translateX(-100%); 
    }
}

/* --- ANIMATION BULLES FLOTTANTES --- */

/* Appliquer l'animation de base */
.float-bubble-1 {
    /* 4 secondes, en boucle, avec des allers-retours (alternate) */
    animation: floating-organic 4s ease-in-out 0s infinite alternate;
    will-change: transform; /* Optimisation pour le navigateur */
}

.float-bubble-2 {
    /* 5 secondes et 1s de décalage pour un effet asynchrone naturel */
    animation: floating-organic 5s ease-in-out 1s infinite alternate;
    will-change: transform;
}

/* Les images à l'intérieur du widget doivent suivre le mouvement */
.float-bubble-1 img, 
.float-bubble-2 img {
    /* Ajoute un très léger effet 3D en tournant un peu (optionnel) */
    /* animation: rotate-organic 6s ease-in-out infinite alternate; */
}

/* --- LES KEYFRAMES (Le moteur du mouvement) --- */

@keyframes floating-organic {
    0% {
        transform: translateY(0px);
    }
    100% {
        transform: translateY(-20px); /* Modifie cette valeur pour un mouvement plus ou moins grand */
    }
}

/* --- DÉSACTIVER LE SCROLL SNAP SUR MOBILE ET TABLETTE --- */
@media (max-width: 1024px) {
    /* On désactive l'aimant global sur les conteneurs */
    html, 
    body, 
    .elementor-page, 
    .elementor-location-content {
        scroll-snap-type: none !important;
    }

    /* On retire le point d'arrêt sur toutes les sections */
    section, 
    .elementor-section {
        scroll-snap-align: none !important;
        /* Optionnel : On s'assure que la hauteur n'est plus bloquée à la taille de l'écran */
        min-height: auto !important; 
    }
}/* End custom CSS */