.elementor-kit-7{--e-global-color-primary:#E53F4B;--e-global-color-secondary:#1D1D1D;--e-global-color-text:#4E4E4E;--e-global-color-accent:#E53F4B;--e-global-color-6bcc1a0:#FFFFFF;--e-global-color-c8722f3:#E9E9E9;--e-global-typography-primary-font-family:"Questrial";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Questrial";--e-global-typography-secondary-font-size:3.2rem;--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Questrial";--e-global-typography-text-font-size:1rem;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Questrial";--e-global-typography-accent-font-size:1rem;--e-global-typography-accent-font-weight:500;--e-global-typography-fc7cbad-font-family:"Questrial";--e-global-typography-fc7cbad-font-size:1.8rem;}.elementor-kit-7 e-page-transition{background-color:#171717;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.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-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}.elementor-kit-7{--e-page-transition-entrance-animation:e-page-transition-slide-out-right;--e-page-transition-exit-animation:e-page-transition-slide-in-right;}}/* Start custom CSS *//* --- CONFIGURATION CSS --- */

/* État initial : les images sont invisibles et décalées vers le bas */
.elementor-gallery-item {
 
    transform: translateY(60px); 
    transition: transform 0.8s cubic-bezier(0.2, 1, 0.3, 1), 
                opacity 0.8s ease-out;
    will-change: transform, opacity;
}

/* État final : les images glissent vers le haut et apparaissent */
.elementor-gallery-item.animate-in {
    opacity: 1;
    transform: translateY(0);
}

/* Ajustement pour mobile */
@media (max-width: 767px) {
    .elementor-gallery-item {
        transform: translateY(40px);
    }
}
/* Base header style */
.site-header {
  position: relative;
  z-index: 999;
  transition:
    background-color 300ms ease,
    backdrop-filter 300ms ease,
    box-shadow 300ms ease,
    transform 300ms ease;
  will-change: background-color, backdrop-filter, transform;
}

/* State when scrolling */
.site-header.is-scrolled {
  background-color: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}

/* Optional: subtle "settle" animation */
.site-header.is-scrolled {
  transform: translateY(0);
}

/* Optional: if header becomes sticky and overlaps content */
body.admin-bar .site-header {
  top: 32px;
}
/* Base element */
body .my-custom-hover {
    position: relative;
    overflow: hidden !important;

    /* Center content */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;

    cursor: pointer;

    background: transparent !important;
    border: 2px solid #ffffff !important;
    border-radius: 0px !important;

    transform: translateZ(0);
    will-change: border-radius, border-color;

    transition:
        border-radius 700ms cubic-bezier(0.16, 1, 0.3, 1),
        border-color 500ms ease;
}




/* Sticky dropdown header base */
.sticky-drop-header {
  width: 100%;
  z-index: 9999;
}

/* State when sticky becomes active */
.sticky-drop-header.is-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  animation: stickyDropIn 260ms ease-out;
  box-shadow: 0 8px 24px rgba(0,0,0,0.10);
}

/* Optional: hide header when scrolling UP (if you enable in JS) */
.sticky-drop-header.is-hidden {
  transform: translateY(-110%);
  transition: transform 200ms ease-in;
}

/* When visible */
.sticky-drop-header.is-visible {
  transform: translateY(0);
  transition: transform 200ms ease-out;
}

/* Dropdown animation (slide down) */
@keyframes stickyDropIn {
  from { transform: translateY(-100%); opacity: 0.6; }
  to   { transform: translateY(0); opacity: 1; }
}
#backToTop {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 50px;
  height: 50px;
  background-color: #000; /* Black Background */
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 9999;
  
  /* Initial Hidden State */
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.8); /* Starts lower and smaller */
  
  /* Smooth transitions for all properties */
  transition: 
    opacity 0.4s ease, 
    visibility 0.4s ease, 
    transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275),
    background-color 0.3s ease;
}

/* Visible State - Triggered by JS */
#backToTop.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

/* Hover Effect */
#backToTop:hover {
  transform: scale(1.1); /* Slight grow on hover */
  background-color: #222; /* Very dark grey feedback */
}

/* Ensure the SVG and Dot don't block the click */
#backToTop * {
  pointer-events: none;
}

/* The White Dot */
.dot {
  width: 8px;
  height: 8px;
  background-color: white;
  border-radius: 50%;
  position: absolute;
}

/* Progress Ring Setup */
.progress-circle {
  transform: rotate(-90deg);
}

.progress-bar {
  stroke-dasharray: 145; /* Circumference of the circle */
  stroke-dashoffset: 145;
  transition: stroke-dashoffset 0.1s linear;
}


html, body {
  overflow-x: hidden;
  position: relative;
  width: 100%;
}

/* Specifically target the Elementor container to prevent leaks */
#page-content, 
.elementor-section-wrap, 
.elementor {
  overflow: hidden !important;
}


.manufa-header {
  transition: background-color 0.3s ease, padding 0.3s ease;
}

.manufa-header.is-sticky {
  background-color: #00000070;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.manufa-header .manufa-logo img {
  transition: transform 0.3s ease;
}

.manufa-header.is-sticky .manufa-logo img {
  transform: scale(0.85);
}

.gsap-word { display: inline-block; will-change: transform, opacity; }
/* Base state (before reveal) */
.reveal-text,
.reveal-image {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.7s ease,
    transform 0.7s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}

/* Image variation */
.reveal-image {
  transform: translateY(16px) scale(0.96);
}

/* Active state */
.reveal-text.is-visible,
.reveal-image.is-visible {
  opacity: 1;
  transform: none;
}

/* Wrapper controls reveal */
.reveal-ltr {
  position: relative;
  overflow: hidden;
}

/* Target the actual img inside Elementor image widget */
.reveal-ltr img {
  display: block;
  width: 100%;
  height: auto;

  /* Start hidden (clipped) */
  clip-path: inset(0 100% 0 0); /* top right bottom left */
  transition: clip-path 1s cubic-bezier(.22,.61,.36,1);
  will-change: clip-path;
}

/* When visible: reveal fully */
.reveal-ltr.is-visible img {
  clip-path: inset(0 0 0 0);
}

/* Optional: subtle zoom for “premium” feel */
.reveal-ltr img {
  transform: scale(1.03);
  transition:
    clip-path 1s cubic-bezier(.22,.61,.36,1),
    transform 1s cubic-bezier(.22,.61,.36,1);
}

.reveal-ltr.is-visible img {
  transform: scale(1);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal-ltr img {
    clip-path: inset(0 0 0 0);
    transform: none;
    transition: none;
  }
}


/* Base state */
.reveal-h2 .elementor-heading-title {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.7s ease,
    transform 0.7s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}

/* Visible state */
.reveal-h2.is-visible .elementor-heading-title {
  opacity: 1;
  transform: none;
}

/* Optional: tighter typography stability */
.reveal-h2 .elementor-heading-title span {
  display: inline-block;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal-h2 .elementor-heading-title {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* WP native gallery / Gutenberg gallery */
.wp-block-gallery,
.wp-block-gallery ul,
.wp-block-gallery li,
.gallery,
.gallery-item {
  display: block;
  visibility: visible;
  opacity: 1;
}

.wp-block-gallery .wp-block-image,
.gallery .gallery-item {
  display: inline-block;
}
/* ===== Elementor Gallery: force thumbnails visible even if animations fail ===== */
.elementor .elementor-widget-gallery .e-gallery-item.elementor-animated-content,
.elementor .elementor-widget-image-gallery .e-gallery-item.elementor-animated-content{
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* Sometimes the inner image is scaled/hidden */
.elementor .elementor-widget-gallery .e-gallery-image,
.elementor .elementor-widget-image-gallery .e-gallery-image{
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  min-height: 220px; /* important: avoids 0-height tiles */
}

/* Overlay can still hide it on some templates */
.elementor .elementor-widget-gallery .elementor-gallery-item__overlay,
.elementor .elementor-widget-image-gallery .elementor-gallery-item__overlay{
  opacity: 0 !important;
  background: transparent !important;
  pointer-events: none !important;
}

/* Ensure stacking order is correct */
.elementor .elementor-widget-gallery .e-gallery-item,
.elementor .elementor-widget-image-gallery .e-gallery-item{
  position: relative !important;
  z-index: 1 !important;
}

/* Custom cursor ring */
#cursor-ring {
  position: fixed;
  top: 0; left: 0;
  width: 44px;
  height: 44px;
  border: 2px solid rgba(255,255,255,0.95);
  border-radius: 999px;
  background: transparent;
  pointer-events: none;      /* important: don't block clicks */
  z-index: 2147483647;       /* above everything */
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity .15s ease;
  will-change: transform;
}

/* Optional: hide on touch devices */
@media (hover: none), (pointer: coarse) {
  #cursor-ring { display: none !important; }
}

/* Optional: make it slightly bigger on hover clickable elements */
#cursor-ring.is-hover {
  transform: translate(-50%, -50%) scale(1.15);
}


html, body, * {
  cursor: auto !important;
}
a, button, input, textarea, select, [role="button"] {
  cursor: pointer !important;
}/* End custom CSS */