/**
  * Theme Name: Full Front-End
  * Template: hello-elementor
  * Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
  * Version: 1.0.0
  * Text Domain: full-front-end-theme
  */


:root {
    /* Global Padding Variables - Editable */
    /* Left and Right Padding All /Sections/Containers*/
    --fluid-side-padding-min: 1.25rem; /* 20px */
    --fluid-side-padding-max: 5rem; /* 80px */

    /* Top and Bottom Padding All Containers*/
    --section-xxl-padding-min: 9.375rem; /* 150px */
    --section-xxl-padding-max: 10rem; /* 160px */

    --section-xl-padding-min: 6.875rem; /* 110px */
    --section-xl-padding-max: 7.5rem; /* 120px */

    --section-l-padding-min: 5.625rem; /* 90px */
    --section-l-padding-max: 6.25rem; /* 100px */

    --section-m-padding-min: 5rem; /* 80px */
    --section-m-padding-max: 5rem; /* 80px */

    --section-s-padding-min: 3.75rem; /* 60px */
    --section-s-padding-max: 3.75rem; /* 60px */

    --section-xs-padding-min: 2.5rem; /* 40px */
    --section-xs-padding-max: 2.5rem; /* 40px */

    --section-xxs-padding-min: 1.5rem; /* 24px */
    --section-xxs-padding-max: 1.5rem; /* 24px */

    --section-header-padding-min: 1.25rem; /* 20px */
    --section-header-padding-max: 1.25rem; /* 20px */


    /* Hero Sections Height Variable */
    --section-hero-height: 100vh; /* 100% the screen height */

    /* Offset Padding for Overlay Headers */
    --section-offset-header: 80px; /* Adjust to the overlay header's negative margin */

    /* Width For Narrow Sections*/
    --section-narrow: 62.5rem; /* 1000px */
    --section-narrow-xs: 45rem; /* 720px */

    --ffe-accent-desat: hsl(48, 15%, 50%);
}

.section-full,
.section-full .e-con-inner,
.section-header,
.section-header .e-con-inner,
.section-hero,
.section-hero .e-con-inner,
.section-xxl,
.section-xxl .e-con-inner,
.section-xl,
.section-xl .e-con-inner,
.section-l,
.section-l .e-con-inner,
.section-m,
.section-m .e-con-inner,
.section-s,
.section-s .e-con-inner,
.section-xs,
.section-xs .e-con-inner,
.section-xxs,
.section-xxs .e-con-inner {
    margin-block-end: 0;
    padding-block-end: 0;
}

/* Section/Container Padding - Fluid Variants */
.section-xxl {
    padding-top: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max));
    padding-bottom: clamp(var(--section-xxl-padding-min), 1.087vw + 9.13rem, var(--section-xxl-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}

.section-xl {
    padding-top: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
    padding-bottom: clamp(var(--section-xl-padding-min), 1.087vw + 6.63rem, var(--section-xl-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}

.section-l {
    padding-top: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    padding-bottom: clamp(var(--section-l-padding-min), 1.087vw + 5.38rem, var(--section-l-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}

.section-m {
    padding-top: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
    padding-bottom: clamp(var(--section-m-padding-min), 0vw + 5rem, var(--section-m-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}

.section-s {
    padding-top: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    padding-bottom: clamp(var(--section-s-padding-min), 0vw + 3.75rem, var(--section-s-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}

.section-xs {
    padding-top: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    padding-bottom: clamp(var(--section-xs-padding-min), 0vw + 2.5rem, var(--section-xs-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}

.section-xxs {
    padding-top: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    padding-bottom: clamp(var(--section-xxs-padding-min), 0vw + 1.5rem, var(--section-xxs-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}

.section-header {
    padding-top: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    padding-bottom: clamp(var(--section-header-padding-min), 0vw + 1.25rem, var(--section-header-padding-max));
    padding-left: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
    padding-right: clamp(var(--fluid-side-padding-min), 6.522vw + -0.217rem, var(--fluid-side-padding-max)) !important;
}


/* Hero Container/Sections Height */
.section-hero {
    min-height: var(--section-hero-height) !important;
    margin-top: -8.1875rem;
    padding-top: 8.1875rem;
}

.hero-qr {
    min-height: 60vh !important;
}

/* Full Width Sections - No Side Padding */

.section-full div {
    max-width: 100% !important;
}


/* Narrow Sections */
.section-narrow .e-con-inner {
    max-width: var(--section-narrow) !important;
}

.section-narrow-xs .e-con-inner {
    max-width: var(--section-narrow-xs) !important;
}


/* Offset Padding for Overlay Headers */
.section-offset {
    padding-top: calc(var(--section-offset-header) + var(--section-xxl-padding-min));
}

strong {
    color: var(--e-global-color-accent);
}

/* margin-bottom après les titres (avant un paragraphe) */
h1.elementor-heading-title {
    margin-bottom: 2rem; /* 32px */
}

h2.elementor-heading-title {
    margin-bottom: 1.5rem; /* 24px */
}

h3.elementor-heading-title {
    margin-bottom: 1.25rem; /* 20px */
}

h4.elementor-heading-title {
    margin-bottom: 1.125rem; /* 18px */
}

h5.elementor-heading-title {
    margin-bottom: 1rem; /* 16px */
}

h6.elementor-heading-title {
    margin-bottom: 0.875rem; /* 14px */
}


[class*=" section-"] h2.elementor-heading-title {
    margin-bottom: 2rem;
}

.business-card h2.elementor-heading-title {
    margin-bottom: 0;
}

body .section-hero .elementor-heading-title {
    margin-bottom: 0;
}

body .section-hero .main-title .elementor-heading-title {
    margin-bottom: 0;
}

/* Margin-top avant les titres (après un paragraphe) */
.elementor-widget-text-editor + .elementor-widget-heading h2 {
    margin-top: 3rem; /* 48px */
}

.elementor-widget-text-editor + .elementor-widget-heading h3 {
    margin-top: 2.5rem; /* 40px */
}

.elementor-widget-text-editor + .elementor-widget-heading h4 {
    margin-top: 2rem; /* 32px */
}

.elementor-widget-text-editor + .elementor-widget-heading h5 {
    margin-top: 1.75rem; /* 28px */
}

.elementor-widget-text-editor + .elementor-widget-heading h6 {
    margin-top: 1.5rem; /* 24px */
}


.ffe-header {
    backdrop-filter: blur(4px);
}

.ffe-footer p {
    margin-block-end: 1rem;
}

.ffe-values h1.elementor-heading-title {
    margin-bottom: 0;
}

.ffe-values h2.elementor-heading-title {
    margin-bottom: 0;
}

.ffe-values h3.elementor-heading-title {
    margin-bottom: 0;
}

.ffe-values p {
    margin-block-end: 0;
}

.elementor-widget-text-editor ul {
    margin-block-end: 1.5rem
}

.elementor-widget-text-editor ul:last-child {
    margin-block-end: 0
}

.elementor-widget-text-editor strong {
    color: var(--e-global-color-accent)
}

.elementor-widget-text-editor:last-child p:last-child {
    margin-block-end: 0
}

.ffe-category h3.elementor-heading-title {
    margin-bottom: 0;
}

.ffe-category h3.elementor-heading-title span {
    color: var(--e-global-color-accent);
    font-size: 0.9em;
    font-weight: 300;
}


.ffe-read-more .elementor-button,
.ffe-read-more .elementor-button:hover {
    background: none;
    box-shadow: none;
    text-transform: uppercase;
    letter-spacing: 0.05em
}


/**
    La carte, comme sur la home
 */
[class*=" section-"],
.ffe-card {
    position: relative;
    width: 100%;
}

.ffe-card {
    box-shadow: #00000044 0 0 30px 5px inset;
}

.ffe-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 0 30px 5px #FFCC0044;
    transition: 0.3s ease-out;
}

[class*=" section-"] .ffe-section-bg{
    position: initial;
    height: 100%;
    overflow: hidden;
}
[class*=" section-"] .ffe-section-bg,
[class*=" section-"] .ffe-section-bg h3,
.ffe-card .ffe-card-bg {
    z-index: 0;
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    overflow: hidden;
    color: var(--ffe-accent-desat);
    opacity: .08;
}

[class*=" section-"] .ffe-section-bg > .elementor-widget-container,
.ffe-card .ffe-card-bg > .elementor-widget-container {
    height: auto;
}

.ffe-card .ffe-card-bg h3,
.ffe-card .ffe-card-bg p {
    margin-block-end: 0;
    margin: 0 -0.5rem 0 -0.625rem;
}

[class*=" section-"] .ffe-section-bg h3 {
    line-height: 10.5rem !important;
    font-size: 15rem !important;
    opacity: 1;
    margin-bottom: 0;
}

.ffe-card .ffe-card-bg.ffe-icon-compass .elementor-icon {
    margin: 0 -0.625rem -1.5rem;
}

.ffe-card .ffe-card-bg.ffe-icon-edit .elementor-icon {
    margin: 0 -0.625rem -2rem;
}

.ffe-card .ffe-card-bg.ffe-icon-star .elementor-icon,
.ffe-card .ffe-card-bg.ffe-icon-gear .elementor-icon {
    margin: 0 -2rem -3rem;
}

.ffe-card .ffe-card-bg.ffe-icon-workflow .elementor-icon {
    margin: 0 -3rem -4rem;
}

.ffe-card .ffe-card-bg.ffe-icon-flame .elementor-icon {
    margin: 0 -4rem -3rem;
}


.ffe-card .ffe-card-bg.ffe-icon-target .elementor-icon,
.ffe-card .ffe-card-bg.ffe-icon-circle .elementor-icon {
    margin: 0 -2.5rem -3rem;
}

.ffe-card .ffe-card-title {
}

.ffe-card .ffe-card-title span {
    color: var(--e-global-color-text);
    font-weight: normal;
    font-size: 0.75em;
}

.ffe-card .ffe-result,
.ffe-card .ffe-read-more,
.ffe-card .ffe-card-keywords {
    margin-top: auto;
}

.ffe-card .ffe-card-keywords h4 {
    margin: 0;
}

.ffe-card .ffe-result p {
    margin-bottom: 0;
}


.ffe-card-before.fixed {
    min-height: 240px;
}

.ffe-card-after {
    flex-grow: 1 !important;
}

.ffe-card:hover .ffe-card-before > * {
    opacity: 0.5;
    transition: 0.3s ease-out;
}


.ffe-card-keywords:not(:first-child) h3,
.elementor-widget-text-editor.ffe-card-bg + .elementor-widget-heading h3 {
    margin-top: 0;
}

.ffe-faq,
.ffe-gain {
    max-width: 43.75rem;
}

.ffe-about-intro{
    max-width: 50rem;
}

/*.ffe-gain strong{color: var(--e-global-color-text)}*/
.ffe-transition h3 {
    margin-bottom: 0;
}

footer a:hover :not(.elementor-button) {
    transition-duration: 0.5s;
    transition-property: transform;
}

footer a:hover:not(.elementor-button) {
    transform: translateX(2px);
}

.ffe-footer:before {
    mix-blend-mode: soft-light;
}


.twae-content h5{
    padding-top: 1rem;
    color: var(--e-global-color-accent);
}

.ffe-before-after-grid{}
.ffe-before-after-grid h3{margin-bottom: 0}
.ffe-before-after-grid .ffe-before{}
.ffe-before-after-grid .ffe-after{
    position: relative;
}

.ffe-before-after-grid .ffe-after::after{
    position: absolute;
    width: 3.125rem;
    height: 3.125rem;
    left: 0;
    top: 50%;
    margin: -1.5625rem;
    font-family: "eicons";
    font-weight: 400;
    color: var(--e-global-color-accent);
    z-index: 999;
    font-size: 3.125rem;
    content: "\e8c0"
}

/* Version mobile (max-width: 768px) */
@media (max-width: 768px) {
    /* margin-bottom mobile */
    h1.elementor-heading-title {
        margin-bottom: 1.5rem; /* 24px */
    }

    h2.elementor-heading-title {
        margin-bottom: 1.25rem; /* 20px */
    }

    h3.elementor-heading-title {
        margin-bottom: 1.125rem; /* 18px */
    }

    h4.elementor-heading-title {
        margin-bottom: 1rem; /* 16px */
    }

    h5.elementor-heading-title {
        margin-bottom: 0.875rem; /* 14px */
    }

    h6.elementor-heading-title {
        margin-bottom: 0.75rem; /* 12px */
    }

    /* Margin-top mobile */
    .elementor-widget-text-editor + .elementor-widget-heading h2 {
        margin-top: 2.5rem; /* 40px */
    }

    .elementor-widget-text-editor + .elementor-widget-heading h3 {
        margin-top: 2rem; /* 32px */
    }

    .elementor-widget-text-editor + .elementor-widget-heading h4 {
        margin-top: 1.75rem; /* 28px */
    }

    .elementor-widget-text-editor + .elementor-widget-heading h5 {
        margin-top: 1.5rem; /* 24px */
    }

    .elementor-widget-text-editor + .elementor-widget-heading h6 {
        margin-top: 1.25rem; /* 20px */
    }

    .ffe-before-after-grid .ffe-before{
        margin-bottom: -3.75rem;
    }

    .ffe-before-after-grid .ffe-after::after{
        left: 50%;
        top: 0;
        rotate: 90deg;
    }
}

/**
 * Anchor fix with sticky header
 */
body:not(.elementor-editor-active) .elementor-menu-anchor {
    /* For a header height of 131px */
    scroll-margin-top: 8.1875rem;
}

body.admin-bar:not(.elementor-editor-active) .elementor-menu-anchor {
    /* For a header height of 131px + admin bar of 32px */
    scroll-margin-top: 10.1875rem;
}
