/*
Theme Name: Nettoyage Synergie
Theme URI: https://nettoyagesynergie.ca/
Description: Thème WordPress personnalisé pour Nettoyage Synergie Inc. - Experts en nettoyage après construction et grand ménage.
Version: 1.0.0
Author: Véronique Taché
Author URI: https://nettoyagesynergie.ca/
Text Domain: nettoyagesynergie
*/

/* ==========================================
   Interactive Clickable Phone Numbers
   ========================================== */

/* General phone links */
a[href^="tel:"] {
    color: #3DA5E1 !important;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(61, 165, 225, 0.4);
    padding-bottom: 2px;
    transition: all 0.3s ease;
}

a[href^="tel:"]:hover {
    color: #298cbd !important;
    border-bottom-color: #298cbd;
    text-decoration: none;
}

/* Header phone buttons */
.ns-header a[href^="tel:"],
.site-header a[href^="tel:"],
.pbmit-header-wrapper a[href^="tel:"] {
    color: #3DA5E1 !important;
    background-color: rgba(61, 165, 225, 0.08) !important;
    border: 1px solid rgba(61, 165, 225, 0.2) !important;
    padding: 10px 20px !important;
    border-radius: 50px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border-bottom: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    transition: all 0.3s ease !important;
}

.ns-header a[href^="tel:"]:hover,
.site-header a[href^="tel:"]:hover,
.pbmit-header-wrapper a[href^="tel:"]:hover {
    background-color: #3DA5E1 !important;
    color: #ffffff !important;
    border-color: #3DA5E1 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 10px rgba(61, 165, 225, 0.2) !important;
}

/* Hero section telephone button (Smart Slider) */
.n2-ss-layer a[href^="tel:"],
.heroSwiper a[href^="tel:"],
    align-items: center !important;
    gap: 8px !important;
    box-shadow: 0 10px 20px rgba(61, 165, 225, 0.3) !important;
    transition: all 0.3s ease !important;
}

.n2-ss-layer a[href^="tel:"]:hover,
.heroSwiper a[href^="tel:"]:hover,
.ns-hero-slider a[href^="tel:"]:hover {
    background-color: #298cbd !important;
    border-color: #298cbd !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 25px rgba(61, 165, 225, 0.4) !important;
}

/* ==========================================
   Popup Modal Contact Form Styles
   ========================================== */

.ns-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(13, 14, 16, 0.45);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 1060;
    display: flex;
    align-items: flex-start;
    /* Changed from center to flex-start for scrolling support */
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    padding: 20px;
    overflow-y: auto;
    /* Enable vertical scroll */
    -webkit-overflow-scrolling: touch;
    /* Smooth momentum scrolling on iOS */
}

.ns-modal-overlay.open {
    opacity: 1;
    pointer-events: auto;
}

.ns-modal-wrapper {
    width: 100%;
    max-width: 600px;
    padding: 6px;
    background: rgba(61, 165, 225, 0.05);
    border: 1px solid rgba(61, 165, 225, 0.15);
    border-radius: 36px;
    transform: scale(0.9) translateY(20px);
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    margin: auto;
    /* Vertically and horizontally center when height allows */
}

.ns-modal-overlay.open .ns-modal-wrapper {
    transform: scale(1) translateY(0);
}

.ns-modal-container {
    background: #ffffff;
    border-radius: 30px;
    padding: 45px;
    position: relative;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.15);
}

.ns-modal-close {
    position: absolute;
    top: 25px;
    right: 25px;
    background: none;
    border: none;
    font-size: 32px;
    line-height: 1;
    color: #64748B;
    cursor: pointer;
    transition: all 0.3s ease;
}

.ns-modal-close:hover {
    color: #3DA5E1;
    transform: rotate(90deg);
}

.ns-modal-success-msg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #ffffff;
    border-radius: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 45px;
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s ease;
}

.ns-modal-success-msg.open {
    opacity: 1;
    pointer-events: auto;
}

.ns-success-icon {
    width: 80px;
    height: 80px;
    background: rgba(61, 165, 225, 0.1);
    color: #3DA5E1;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    margin-bottom: 25px;
}

.ns-modal-form label {
    font-size: 14px;
    font-weight: 600;
    color: #0D0E10;
    margin-bottom: 6px;
    display: block;
}

.ns-modal-form .form-control {
    border: 1px solid rgba(61, 165, 225, 0.15);
    border-radius: 12px;
    padding: 12px 16px;
    font-size: 15px;
    background-color: #F8FAFC;
    transition: all 0.3s ease;
    width: 100%;
}

.ns-modal-form .form-control:focus {
    border-color: #3DA5E1;
    background-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(61, 165, 225, 0.15);
    outline: none;
}

@media (max-width: 767px) {
    .ns-modal-wrapper {
        border-radius: 26px;
        margin: 20px auto !important;
        /* Force margin on mobile for top/bottom scroll spacing */
        max-width: 95% !important;
    }

    .ns-modal-container {
        padding: 25px 20px !important;
        /* Compact padding for mobile viewports */
        border-radius: 20px;
    }

    .ns-modal-close {
        top: 15px;
        right: 15px;
    }
}

/* iOS click compatibility */
.n2-ow,
.n2-ss-layer,
[role="button"],
a,
button {
    cursor: pointer !important;
}

/* Prevent wrapping on phone links and buttons */
a[href^="tel:"] {
    white-space: nowrap !important;
}


/* ==========================================
   High Contrast Modal Form Controls
   ========================================== */

.ns-modal-overlay p.text-muted {
    color: #334155 !important;
    /* Darker body text for better contrast */
    font-size: 15px;
    line-height: 1.6;
}

.ns-modal-form label {
    font-weight: 700 !important;
    color: #0F172A !important;
    /* Near black labels */
}

.ns-modal-form .form-control {
    border: 1.5px solid #64748B !important;
    /* Darker border outline */
    background-color: #FFFFFF !important;
    /* Pure white background */
    color: #0F172A !important;
    /* Dark typed text */
}

.ns-modal-form .form-control:focus {
    border-color: #3DA5E1 !important;
    box-shadow: 0 0 0 3px rgba(61, 165, 225, 0.25) !important;
}

/* Styled placeholders with high contrast */
.ns-modal-form .form-control::placeholder {
    color: #475569 !important;
    /* High-contrast slate placeholder */
    opacity: 1 !important;
}

.ns-modal-form .form-control::-webkit-input-placeholder {
    color: #475569 !important;
}

.ns-modal-form .form-control:-moz-placeholder {
    color: #475569 !important;
    opacity: 1 !important;
}

.ns-modal-form .form-control::-moz-placeholder {
    color: #475569 !important;
    opacity: 1 !important;
}

.ns-modal-form .form-control:-ms-input-placeholder {
    color: #475569 !important;
}


/* ==========================================
   Vibrant Hero Background & Lightened Overlay
   ========================================== */


/* Remove all text shadows, outlines, and borders on hero slider elements */
h2#n2-ss-3item2,
.n2-style-654fb965c533036469fbf99fa08e4336-heading,
.n2-font-8193c8b9e076bed2914dde92383729e7-paragraph,
.n2-style-f8293b450b12ef15d5c4ff97a617a3e3-heading,
.n2-ss-layer p,
.n2-ss-layer a {
    text-shadow: none !important;
    box-shadow: none !important;
    outline: none !important;
    border: none !important;
    -webkit-text-stroke: 0px transparent !important;
    text-stroke: 0px transparent !important;
}


/* Make twilight team photo brighter and more vibrant */
.n2-ss-slide-background-image img,
.n2-ss-slide-backgrounds img {
    filter: brightness(1.18) contrast(1.02) !important;
    /* Subtle boost to offset dusk shadows */
    transition: filter 0.3s ease;
}

/* ==========================================
   Global Responsive Layout Controls
   ========================================== */
html,
body {
    max-width: 100% !important;
    overflow-x: hidden !important;
    width: 100%;
}

img,
video,
iframe,
svg {
    max-width: 100% !important;
    height: auto !important;
}

/* ==========================================
   Mobile Responsiveness & Typography (iPhone 15 Pro, etc.)
   ========================================== */
@media (max-width: 768px) {

    /* 1. Hero Slider Title overrides */
    h2#n2-ss-3item2,
    .n2-style-654fb965c533036469fbf99fa08e4336-heading,
    .n2-ss-layer h2 {
        font-size: 28px !important;
        line-height: 1.2 !important;
    }

    /* Hero slider description */
    .n2-font-8193c8b9e076bed2914dde92383729e7-paragraph,
    .n2-style-f8293b450b12ef15d5c4ff97a617a3e3-heading,
    .n2-ss-layer p {
        font-size: 14px !important;
        line-height: 1.4 !important;
    }

    /* "Véronique Taché" text (280% inline override) */
    .n2-ss-layer p[style*="font-size: 280%"],
    .n-uc-l001P1oDkRY0 p {
        font-size: 22px !important;
        line-height: 1.2 !important;
        margin-top: 10px !important;
    }

    /* Phone number link in hero (160% inline override) */
    .n2-ss-layer p[style*="font-size: 160%"],
    .n-uc-15740173ecbd1 p,
    .n-uc-15740173ecbd1 a {
        font-size: 16px !important;
        line-height: 1.2 !important;
    }

    /* Contact button in hero */
    .n2-ss-button-container a {
        font-size: 13px !important;
        padding: 8px 16px !important;
    }

    /* 2. Global Heading overrides on mobile */
    h1 {
        font-size: 28px !important;
        line-height: 1.2 !important;
    }

    h2.pbmit-element-title,
    .pbmit-heading-subheading h2 {
        font-size: 22px !important;
        line-height: 1.3 !important;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .pbmit-element-title,
    .pbmit-heading-subheading h1,
    .pbmit-heading-subheading h2,
    .pbmit-heading-subheading h3,
    .n2-ss-layer h2,
    h2#n2-ss-3item2 {
        letter-spacing: 0.01em !important;
    }

    h3.pbmit-element-subtitle,
    .pbmit-heading-subheading h3 {
        font-size: 14px !important;
        letter-spacing: 1px !important;
    }

    /* Counter / FID element on mobile */
    .pbmit-fid-counter {
        font-size: 40px !important;
        line-height: 1.1 !important;
    }

    .pbmit-fid-title {
        font-size: 14px !important;
    }

    /* 3. Header Phone numbers scaling */
    .ns-header a[href^="tel:"],
    .site-header a[href^="tel:"],
    .pbmit-header-wrapper a[href^="tel:"] {
        padding: 8px 16px !important;
        font-size: 15px !important;
    }
}

/* ==========================================
   Global Readability and Typography Rules
   ========================================== */
body {
    font-family: 'Inter', 'Barlow', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    line-height: 1.65 !important;
    letter-spacing: 0.015em !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'Barlow', 'Outfit', sans-serif !important;
}

/* ==========================================
   Logo Overlap Prevention on Extra Small Screens
   ========================================== */
@media (max-width: 480px) {
    .pbmit-logo-img {
        max-height: 38px !important;
        width: auto !important;
    }

    .ns-header a[href^="tel:"],
    .site-header a[href^="tel:"],
    .pbmit-header-wrapper a[href^="tel:"] {
        padding: 6px 12px !important;
        font-size: 13px !important;
    }

    /* Stack main elements in mobile header header wrapper nicely if squeezed */
    .pbmit-header-wrapper .e-con-inner,
    .site-header .e-con-inner {
        flex-wrap: wrap !important;
        gap: 8px !important;
        justify-content: center !important;
    }
}

/* ==========================================
   Smooth Continuous Marquee Ticker Transitions
   ========================================== */
.pbmit-marquee-container .swiper-wrapper {
    transition-timing-function: linear !important;
}

/* ==========================================
   Metric Counter Layout and Baseline Alignment
   ========================================== */
.pbmit-fid-counter {
    display: inline-flex !important;
    align-items: baseline !important;
    font-family: 'Barlow', 'Outfit', sans-serif !important;
    font-weight: 800 !important;
}

.pbmit-fid-counter .pbmit-number-rotate {
    font-family: 'Barlow', 'Outfit', sans-serif !important;
}

.pbmit-fid-counter .pbmit-fid span {
    position: static !important;
    top: auto !important;
    margin-left: 2px !important;
    font-size: 0.7em !important;
    line-height: 1 !important;
    vertical-align: baseline !important;
    font-family: 'Barlow', 'Outfit', sans-serif !important;
}

/* ==========================================
   Responsiveness for Owner/Founder Section
   ========================================== */
@media (max-width: 991px) {
    #proprietaire {
        padding: 100px 20px !important;
        box-sizing: border-box !important;
    }

    #proprietaire .e-con-inner {
        flex-direction: column !important;
        gap: 40px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    #proprietaire .e-con-inner>div {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    #proprietaire img {
        max-width: 100% !important;
        height: auto !important;
    }
}

@media (max-width: 480px) {
    #proprietaire {
        padding: 80px 15px !important;
    }

    #proprietaire .e-con-inner {
        gap: 30px !important;
    }

    #proprietaire .pbmit-element-title {
        font-size: 30px !important;
        line-height: 40px !important;
    }

    #proprietaire .pbmit-element-subtitle {
        font-size: 11px !important;
        letter-spacing: 1px !important;
    }
}


/* ==========================================
   Mission, Vision & Valeurs Section Styles
   ========================================== */
.ns-card {
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.ns-card:hover {
    transform: translateY(-8px) !important;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.06) !important;
}

.ns-valeur-card {
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), border-color 0.3s ease, box-shadow 0.3s ease !important;
}

.ns-valeur-card:hover {
    transform: translateY(-6px) !important;
    border-color: var(--pbmit-enginix-global-color, #3da5e1) !important;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.04) !important;
}

.ns-valeur-card div i {
    transition: transform 0.3s ease !important;
    display: inline-block;
}

.ns-valeur-card:hover div i {
    transform: scale(1.15) !important;
}

@media (max-width: 991px) {
    #proprietaire {
        padding-bottom: 100px !important;
    }

    #mission-vision-valeurs {
        padding-top: 100px !important;
        padding-bottom: 60px !important;
    }

    #mission-vision-valeurs .e-con-inner {
        gap: 40px !important;
    }

    .ns-card {
        padding: 30px !important;
    }
}

@media (max-width: 480px) {
    #proprietaire {
        padding-bottom: 80px !important;
    }

    #mission-vision-valeurs {
        padding-top: 80px !important;
        padding-bottom: 40px !important;
    }

    #mission-vision-valeurs .e-con-inner {
        gap: 30px !important;
    }

    #mission-vision-valeurs .pbmit-element-title {
        font-size: 32px !important;
        line-height: 42px !important;
    }

    .ns-card h3 {
        font-size: 22px !important;
    }
}

/* ==========================================
   Premium Micro-Animations & Hover Effects
   ========================================== */

/* Navigation Menu slide-under hover effect */
.htmega-megamenu li.main-menu-item>a {
    position: relative;
    transition: color 0.3s ease !important;
}

.htmega-megamenu li.main-menu-item>a::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: var(--pbmit-enginix-global-color, #3da5e1);
    transition: width 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.htmega-megamenu li.main-menu-item>a:hover::after,
.htmega-megamenu li.main-menu-item.current-menu-item>a::after {
    width: 100%;
}

/* Header phone CTA subtle pulse effect */
.ns-header a[href^="tel:"],
.site-header a[href^="tel:"],
.pbmit-header-wrapper a[href^="tel:"] {
    animation: ns-pulse 2.2s infinite ease-in-out;
    transition: transform 0.3s ease, background-color 0.3s ease !important;
}

.ns-header a[href^="tel:"]:hover,
.site-header a[href^="tel:"]:hover,
.pbmit-header-wrapper a[href^="tel:"]:hover {
    transform: scale(1.05) !important;
}

@keyframes ns-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(61, 165, 225, 0.45);
    }

    70% {
        box-shadow: 0 0 0 8px rgba(61, 165, 225, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(61, 165, 225, 0);
    }
}

/* Service cards zoom and shadow */
.pbmit-ele-service {
    transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.35s ease !important;
}

.pbmit-ele-service:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06) !important;
}



/* Custom Search Field and Submit Button Styles */
.pbmit-search-wrap,
.search-form .pbmit-search-wrap {
    border: 1px solid #000 !important;
    background-color: #000 !important;
    display: flex !important;
    align-items: center !important;
    overflow: hidden !important;
}

.pbmit-search-wrap .search-field,
.search-form .search-field {
    background-color: #000 !important;
    color: #fff !important;
    border: none !important;
    padding: 10px 15px !important;
    height: auto !important;
}

.pbmit-search-wrap .search-field::placeholder,
.search-form .search-field::placeholder {
    color: rgba(255, 255, 255, 0.6) !important;
}

.pbmit-search-wrap .search-submit,
.search-form .search-submit {
    background-color: #000 !important;
    color: #fff !important;
    border: none !important;
    min-width: 50px !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: background-color 0.3s ease, color 0.3s ease !important;
}

.pbmit-search-wrap .search-submit:hover,
.search-form .search-submit:hover {
    background-color: #3da5e1 !important;
    /* Theme blue color */
}

.pbmit-search-wrap .search-submit:hover i,
.pbmit-search-wrap .search-submit:hover::after,
.pbmit-search-wrap .search-submit:hover::before,
.search-form .search-submit:hover i,
.search-form .search-submit:hover::after,
.search-form .search-submit:hover::before {
    color: #000 !important;
    /* Black text/arrow on hover */
}



/* Force correct premium condensed font (Share Tech/Oswald) for hero headings and clean styles */
#n2-ss-3item2,
#n2-ss-3item7,
.n2-style-654fb965c533036469fbf99fa08e4336-heading {
    font-family: 'Share Tech', 'Oswald', sans-serif !important;
    letter-spacing: -1px !important;
    font-weight: 700 !important;
    text-shadow: none !important;
    box-shadow: none !important;
    outline: none !important;
    border: none !important;
    -webkit-text-stroke: 0px transparent !important;
    text-stroke: 0px transparent !important;
}

/* Completely remove and hide any slider overlay colors or gradient filters */
.n2-ss-slide-background-color,
.n2-ss-slide-background-grad,
[data-overlay="1"],
#n2-ss-3item1,
img[src*="slider-b-bg-01"] {
    display: none !important;
    background: transparent !important;
    background-color: transparent !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

@media (min-width: 1025px) {

    /* Center the desktop header navigation menu links vertically and make them bigger */
    .pbmit-navigation-wrapper,
    .htmega-menu-container,
    .htmega-menu-area,
    ul.htmega-megamenu {
        height: 100% !important;
        display: flex !important;
        align-items: center !important;
    }

    ul.htmega-megamenu li.main-menu-item {
        height: 100% !important;
        display: flex !important;
        align-items: center !important;
        margin: 0 18px !important;
    }

    ul.htmega-megamenu li.main-menu-item>a.main-menu-link {
        height: 100% !important;
        display: flex !important;
        align-items: center !important;
        font-size: 25px !important;
        font-weight: 600 !important;
    }
}

/* Make service column titles bold */
.pbmit-element-title {
    font-weight: 700 !important;
}

@media (max-width: 767px) {

    /* Center the satisfaction counter card container and its text elements */
    .pbminfotech-ele-fid-style-5 .pbmit-fld-contents-inner {
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        display: flex !important;
        flex-direction: column !important;
        margin: 0 auto !important;
    }

    .pbminfotech-ele-fid-style-5 .pbmit-contents-box {
        margin: 0 auto !important;
        text-align: center !important;
    }

    .pbminfotech-ele-fid-style-5 svg {
        margin: 10px auto !important;
        display: block !important;
    }

    .pbminfotech-ele-fid-style-5 .pbmit-fid-title {
        text-align: center !important;
        display: block !important;
    }
}

/* Fix header contact button text visibility */
.elementor-element-4c31ab3 a.elementor-button {
    color: #191818 !important;
    border-color: #191818 !important;
}

.elementor-element-4c31ab3 a.elementor-button:hover {
    color: #ffffff !important;
    background-color: #191818 !important;
    border-color: #191818 !important;
}

/* ============================================================
   Sticky Header Natif du Thème — Overlay Noir Semi-Transparent 90%
   ============================================================ */

/* Header statique principal — FIXÉ EN PERMANENCE, fond noir 90% opaque */
.pbmit-template-header-wrapper,
header#masthead,
.site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    background-color: rgba(0, 0, 0, 0.90) !important;
    box-shadow: none !important;
    overflow: visible !important;
}

/* Fondu dégradé noir → transparent au bas du header statique */
.pbmit-template-header-wrapper::after,
header#masthead::after,
.site-header::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    bottom: -32px !important;
    left: 0 !important;
    width: 100% !important;
    height: 32px !important;
    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 0.45) 0%,
            rgba(0, 0, 0, 0.15) 55%,
            rgba(0, 0, 0, 0.00) 100%) !important;
    pointer-events: none !important;
    z-index: 9998 !important;
}

/* Supprimer le sticky secondaire du thème dans TOUS ses états — évite le doublon */
body:not(.single-pbmit-header-footer) .pbmit-sticky-header-wrapper,
body:not(.single-pbmit-header-footer) .pbmit-sticky-header-wrapper.pbmit-show-header-animation,
body:not(.single-pbmit-header-footer) .pbmit-sticky-header-wrapper.pbmit-hide-header-animation {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateY(-200%) !important;
}

/* Fondu dégradé au bas du sticky header */
body:not(.single-pbmit-header-footer) .pbmit-sticky-header-wrapper::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    bottom: -32px !important;
    left: 0 !important;
    width: 100% !important;
    height: 32px !important;
    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 0.45) 0%,
            rgba(0, 0, 0, 0.15) 55%,
            rgba(0, 0, 0, 0.00) 100%) !important;
    pointer-events: none !important;
    z-index: 9998 !important;
}

/* Afficher le logo blanc, masquer le logo foncé */
.pbmit-template-header-wrapper img.pbmit-logo-img:not([src*="white-logo"]),
.site-header img.pbmit-logo-img:not([src*="white-logo"]),
.pbmit-sticky-header-wrapper img.pbmit-logo-img:not([src*="white-logo"]) {
    display: none !important;
}

.pbmit-template-header-wrapper img.pbmit-logo-img[src*="white-logo"],
.site-header img.pbmit-logo-img[src*="white-logo"],
.pbmit-sticky-header-wrapper img.pbmit-logo-img[src*="white-logo"] {
    display: block !important;
}

/* Liens du menu — blanc sur fond noir */
.pbmit-template-header-wrapper a.main-menu-link,
.site-header a.main-menu-link,
.pbmit-sticky-header-wrapper a.main-menu-link {
    color: #ffffff !important;
}

.pbmit-template-header-wrapper a.main-menu-link:hover,
.site-header a.main-menu-link:hover,
.pbmit-sticky-header-wrapper a.main-menu-link:hover {
    color: #3da5e1 !important;
}

/* Bouton "Contactez-nous" — bordure et texte blancs */
.pbmit-template-header-wrapper .elementor-element-4c31ab3 a.elementor-button,
.site-header .elementor-element-4c31ab3 a.elementor-button,
.pbmit-sticky-header-wrapper .elementor-element-4c31ab3 a.elementor-button {
    color: #ffffff !important;
    border-color: #ffffff !important;
}

.pbmit-template-header-wrapper .elementor-element-4c31ab3 a.elementor-button:hover,
.site-header .elementor-element-4c31ab3 a.elementor-button:hover,
.pbmit-sticky-header-wrapper .elementor-element-4c31ab3 a.elementor-button:hover {
    color: #000000 !important;
    background-color: #ffffff !important;
    border-color: #ffffff !important;
}

/* Hover transition underline blue */
.htmega-megamenu li.main-menu-item>a.main-menu-link {
    position: relative !important;
    text-decoration: none !important;
    border-bottom: 3px solid transparent !important;
}

/* Disable parent theme menu hover lines/strike effects */
.htmega-megamenu li.main-menu-item>a.main-menu-link::before,
.htmega-megamenu li.main-menu-item>a.main-menu-link::after,
.pbmit-navigation-wrapper ul li a::before,
.pbmit-navigation-wrapper ul li a::after,
.pbmit-navigation-wrapper ul li a:hover::before,
.pbmit-navigation-wrapper ul li a:hover::after {
    display: none !important;
    content: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Bottom border underline on hover */
.htmega-megamenu li.main-menu-item>a.main-menu-link:hover {
    border-bottom: 3px solid #3da5e1 !important;
}

/* Spacing under fixed header for policy pages */
.policies-section,
body.page-template-page-politiques-php #primary,
body.page-template-page-politiques #primary {
    padding-top: 150px !important;
}





/* Smooth scrolling behavior */
html {
    scroll-behavior: smooth !important;
}

/* ============================================================
   Titres de services dans le slider — Agrandissement
   (NETTOYAGE APRÈS-TRAVAUX, GRAND MÉNAGE, MÉNAGE DÉMÉNAGEMENT)
   ============================================================ */
div#n2-ss-3 .n2-font-038e663e767d805cd6426aff868b7735-link a,
div#n2-ss-3 .n2-font-038e663e767d805cd6426aff868b7735-link a:HOVER,
div#n2-ss-3 .n2-font-038e663e767d805cd6426aff868b7735-link a:ACTIVE,
div#n2-ss-3 .n2-font-038e663e767d805cd6426aff868b7735-link a:FOCUS {
    font-size: 155% !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    line-height: 1.2 !important;
}

/* Agrandir aussi le conteneur du titre pour que le texte ait de l'espace */
div#n2-ss-3 .n2-style-f6060eea0b9747f176a53e77ca9b0fa9-heading {
    padding: 14px 16px 14px 36px !important;
}

/* ============================================================
   LISIBILITÉ DU SLIDER HERO — Overlay sombre sur la photo
   ============================================================ */

/* Overlay dégradé sombre sur tous les slides du slider */
div#n2-ss-3 .n2-ss-slide-background::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(135deg,
            rgba(0, 0, 0, 0.60) 0%,
            rgba(0, 0, 0, 0.35) 50%,
            rgba(0, 0, 0, 0.15) 100%) !important;
    pointer-events: none !important;
    z-index: 5 !important;
}

/* Titre principal "NETTOYAGE SYNERGIE" — ombre portée pour lisibilité */
div#n2-ss-3 .n2-font-13d53ffce72b73d9bf7c33878a727e67-hover {
    text-shadow: 3px 3px 12px rgba(0, 0, 0, 0.85), 0 0 30px rgba(0, 0, 0, 0.5) !important;
}

/* Paragraphe de description — blanc pur + ombre */
div#n2-ss-3 .n2-font-8193c8b9e076bed2914dde92383729e7-paragraph,
div#n2-ss-3 .n2-font-383818edbe7bb65b8aa5c2361219f5b7-paragraph,
div#n2-ss-3 .n2-font-02a628d9b467f2625db3b8dab3de522d-paragraph {
    color: #ffffff !important;
    text-shadow: 1px 1px 6px rgba(0, 0, 0, 0.80) !important;
    font-weight: 500 !important;
}

/* Texte "Véronique Taché" / contact info sur photo — fond semi-transparent */
div#n2-ss-3 .n2-style-18195bfde53648fd31835cf78c1be18e-heading {
    background: rgba(0, 0, 0, 0.55) !important;
    backdrop-filter: blur(4px) !important;
    border-radius: 4px !important;
}

/* ============================================================
   Agrandissement des titres de services de 30% (Section Services)
   ============================================================ */
/* ============================================================
   SECTION SERVICES - STYLES DE LISIBILITÉ SUR FOND BLEU
   ============================================================ */
.pbmit-element-service-style-3 .pbmit-service-title {
    font-size: 26px !important;
    line-height: 36px !important;
    margin-bottom: 15px !important;
}

.pbmit-element-service-style-3 .pbmit-service-title a {
    padding-left: 36px !important;
    color: rgba(255, 255, 255, 0.8) !important;
    transition: all 0.3s ease !important;
}

.pbmit-element-service-style-3 li.pbmit-active .pbmit-service-title a {
    color: #ffffff !important;
    font-weight: 700 !important;
}

/* Cases à cocher blanches */
.pbmit-element-service-style-3 .pbmit-service-title a::after {
    width: 14px !important;
    height: 14px !important;
    border-width: 2px !important;
    border-color: rgba(255, 255, 255, 0.8) !important;
    background-color: transparent !important;
    top: 10px !important;
}

.pbmit-element-service-style-3 li.pbmit-active .pbmit-service-title a::after {
    border-color: #ffffff !important;
    background-color: #ffffff !important;
}

/* ============================================================
   MODAL DE DÉTAILS DES SERVICES (Expandable grey card concept)
   ============================================================ */
.ns-service-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.75) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 99999 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.35s ease, visibility 0.35s ease !important;
    backdrop-filter: blur(8px) !important;
    padding: 20px !important;
}

.ns-service-modal-overlay.open {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Card expands to 200% original width (max-width: 850px) */
.ns-service-modal-wrapper {
    background: #18191b !important;
    /* Dark grey matching card background */
    border-radius: 12px !important;
    width: 100% !important;
    max-width: 850px !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    transform: scale(0.85) translateY(30px) !important;
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.85) !important;
    position: relative !important;
    padding: 40px !important;
}

.ns-service-modal-overlay.open .ns-service-modal-wrapper {
    transform: scale(1) translateY(0) !important;
}

.ns-service-modal-close {
    position: absolute !important;
    top: 25px !important;
    right: 25px !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border: none !important;
    color: #ffffff !important;
    font-size: 28px !important;
    line-height: 1 !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.25s ease, transform 0.25s ease !important;
}

.ns-service-modal-close:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    transform: rotate(90deg) !important;
}

.ns-service-modal-tag {
    color: #3da5e1 !important;
    font-family: 'Share Tech', sans-serif !important;
    text-transform: uppercase !important;
    font-size: 15px !important;
    letter-spacing: 0.1em !important;
    display: inline-block !important;
    margin-bottom: 12px !important;
    font-weight: 500 !important;
}

.ns-service-modal-title {
    color: #ffffff !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    margin-bottom: 24px !important;
}

.ns-service-modal-intro {
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
    margin-bottom: 30px !important;
}

.ns-service-modal-section-title {
    color: #ffffff !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    margin-bottom: 20px !important;
}

.ns-service-modal-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

.ns-service-modal-list li {
    position: relative !important;
    padding-left: 32px !important;
    color: rgba(255, 255, 255, 0.75) !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
}

.ns-service-modal-list li strong {
    color: #ffffff !important;
}

/* Premium blue checkmark for the list */
.ns-service-modal-list li::before {
    content: "\2713" !important;
    position: absolute !important;
    left: 0 !important;
    top: 2px !important;
    color: #3da5e1 !important;
    font-weight: bold !important;
    font-size: 18px !important;
    line-height: 1 !important;
}

/* Custom scrollbar for modal container on desktop */
.ns-service-modal-wrapper::-webkit-scrollbar {
    width: 6px !important;
}

.ns-service-modal-wrapper::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.02) !important;
}

.ns-service-modal-wrapper::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15) !important;
    border-radius: 3px !important;
}

/* ============================================================
   Amélioration de la lisibilité du bouton dans la section Services (fond bleu)
   ============================================================ */
.pbmit-element-service-style-3 .pbmit-global-btn a {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
}

.pbmit-element-service-style-3 .pbmit-global-btn a .pbmit-button-text {
    color: #ffffff !important;
}

.pbmit-element-service-style-3 .pbmit-global-btn a:hover {
    background-color: #ffffff !important;
    border-color: #ffffff !important;
}

.pbmit-element-service-style-3 .pbmit-global-btn a:hover .pbmit-button-text {
    color: #0d0e10 !important;
}

/* ============================================================
   Alignement vertical du menu, du logo et du téléphone
   ============================================================ */
.elementor-widget-pbm_infotech_logo_element,
.elementor-widget-pbm_infotech_navigation_element,
.elementor-element-f39cedc,
.elementor-element-40fe291,
.elementor-element-fc1490f,
.pbmit-logo-wrapper {
    align-self: center !important;
    display: flex !important;
    align-items: center !important;
}

/* Force les conteneurs flex de l'en-tête à s'aligner au centre verticalement */
.site-header .e-con,
.site-header .e-flex,
.pbmit-template-header-wrapper .e-con,
.pbmit-template-header-wrapper .e-flex {
    align-items: center !important;
}
    background-color: #ffffff !important;
}

/* ============================================================
   MODAL DE DÉTAILS DES SERVICES (Expandable grey card concept)
   ============================================================ */
.ns-service-modal-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.75) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 99999 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.35s ease, visibility 0.35s ease !important;
    backdrop-filter: blur(8px) !important;
    padding: 20px !important;
}

.ns-service-modal-overlay.open {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Card expands to 200% original width (max-width: 850px) */
.ns-service-modal-wrapper {
    background: #18191b !important;
    /* Dark grey matching card background */
    border-radius: 12px !important;
    width: 100% !important;
    max-width: 850px !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    transform: scale(0.85) translateY(30px) !important;
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.85) !important;
    position: relative !important;
    padding: 40px !important;
}

.ns-service-modal-overlay.open .ns-service-modal-wrapper {
    transform: scale(1) translateY(0) !important;
}

.ns-service-modal-close {
    position: absolute !important;
    top: 25px !important;
    right: 25px !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border: none !important;
    color: #ffffff !important;
    font-size: 28px !important;
    line-height: 1 !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.25s ease, transform 0.25s ease !important;
}

.ns-service-modal-close:hover {
    background: rgba(255, 255, 255, 0.15) !important;
    transform: rotate(90deg) !important;
}

.ns-service-modal-tag {
    color: #3da5e1 !important;
    font-family: 'Share Tech', sans-serif !important;
    text-transform: uppercase !important;
    font-size: 15px !important;
    letter-spacing: 0.1em !important;
    display: inline-block !important;
    margin-bottom: 12px !important;
    font-weight: 500 !important;
}

.ns-service-modal-title {
    color: #ffffff !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    margin-bottom: 24px !important;
}

.ns-service-modal-intro {
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: 17px !important;
    line-height: 1.65 !important;
    margin-bottom: 30px !important;
}

.ns-service-modal-section-title {
    color: #ffffff !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    margin-bottom: 20px !important;
}

.ns-service-modal-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

.ns-service-modal-list li {
    position: relative !important;
    padding-left: 32px !important;
    color: rgba(255, 255, 255, 0.75) !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
}

.ns-service-modal-list li strong {
    color: #ffffff !important;
}

/* Premium blue checkmark for the list */
.ns-service-modal-list li::before {
    content: "\2713" !important;
    position: absolute !important;
    left: 0 !important;
    top: 2px !important;
    color: #3da5e1 !important;
    font-weight: bold !important;
    font-size: 18px !important;
    line-height: 1 !important;
}

/* Custom scrollbar for modal container on desktop */
.ns-service-modal-wrapper::-webkit-scrollbar {
    width: 6px !important;
}

.ns-service-modal-wrapper::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.02) !important;
}

.ns-service-modal-wrapper::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15) !important;
    border-radius: 3px !important;
}

/* ============================================================
   Amélioration de la lisibilité du bouton dans la section Services (fond bleu)
   ============================================================ */
.pbmit-element-service-style-3 .pbmit-global-btn a {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
}

.pbmit-element-service-style-3 .pbmit-global-btn a .pbmit-button-text {
    color: #ffffff !important;
}

.pbmit-element-service-style-3 .pbmit-global-btn a:hover {
    background-color: #ffffff !important;
    border-color: #ffffff !important;
}

.pbmit-element-service-style-3 .pbmit-global-btn a:hover .pbmit-button-text {
    color: #0d0e10 !important;
}

/* ============================================================
   Alignement vertical du menu, du logo et du téléphone
   ============================================================ */
.elementor-widget-pbm_infotech_logo_element,
.elementor-widget-pbm_infotech_navigation_element,
.elementor-element-f39cedc,
.elementor-element-40fe291,
.elementor-element-fc1490f,
.pbmit-logo-wrapper {
    align-self: center !important;
    display: flex !important;
    align-items: center !important;
}

/* Force les conteneurs flex de l'en-tête à s'aligner au centre verticalement */
.site-header .e-con,
.site-header .e-flex,
.pbmit-template-header-wrapper .e-con,
.pbmit-template-header-wrapper .e-flex {
    align-items: center !important;
}

/* ============================================================
   Ajustement du bouton de téléphone pour s'assortir au menu
   ============================================================ */
.site-header a[href^="tel:"],
.pbmit-header-wrapper a[href^="tel:"] {
    font-size: 30px !important;
    /* Taille de police équilibrée */
    text-transform: uppercase !important;
    /* Majuscules pour s'harmoniser avec le menu */
    font-weight: 600 !important;
    /* Même poids visuel */
    letter-spacing: 0.05em !important;
    /* Espacement des lettres élégant */
    padding: 10px 24px !important;
    /* Hauteur et largeur ajustées proportionnellement */
    line-height: 1.2 !important;
    display: inline-flex !important;
    color: #ffffff !important;
    background-color: #3DA5E1 !important;
    border: 1px solid #3DA5E1 !important;
}

.site-header a[href^="tel:"]:hover,
.pbmit-header-wrapper a[href^="tel:"]:hover {
    background-color: #298cbd !important;
    border-color: #298cbd !important;
    color: #ffffff !important;
}

/* Ensure Services cyan blue background */
.elementor-element-1ed80d8,
.elementor-element-1ed80d8 .swiper-hover-slide-nav {
    background-color: #3da5e1 !important;
}

/* ============================================================
   SECTION TÉMOIGNAGES — Design moderne premium (fond sombre)
   ============================================================ */

.ns-testimonials-section {
    background: linear-gradient(160deg, #0f172a 0%, #1e2d45 55%, #162032 100%) !important;
    padding: 100px 20px !important;
    position: relative !important;
    overflow: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
    display: block !important;
}

/* Lueur décorative en arrière-plan */
.ns-testimonials-section::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background-image:
        radial-gradient(circle at 15% 25%, rgba(61, 165, 225, 0.07) 0%, transparent 50%),
        radial-gradient(circle at 85% 75%, rgba(61, 165, 225, 0.05) 0%, transparent 50%) !important;
    pointer-events: none !important;
}

/* Conteneur centré */
.ns-testimonials-inner {
    max-width: 1180px !important;
    margin: 0 auto !important;
    position: relative !important;
    z-index: 1 !important;
}

/* En-tête de section */
.ns-testimonials-header {
    text-align: center !important;
    margin-bottom: 60px !important;
}

.ns-section-tag {
    display: inline-block !important;
    color: #3da5e1 !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.18em !important;
    margin-bottom: 18px !important;
    position: relative !important;
    padding: 0 28px !important;
}

.ns-section-tag::before,
.ns-section-tag::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    width: 18px !important;
    height: 1px !important;
    background: #3da5e1 !important;
    opacity: 0.7 !important;
}

.ns-section-tag::before { right: 0 !important; }
.ns-section-tag::after  { left:  0 !important; }

.ns-testimonials-title {
    color: #ffffff !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 44px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    margin: 0 0 18px !important;
    letter-spacing: -0.5px !important;
}

.ns-testimonials-subtitle {
    color: rgba(255, 255, 255, 0.5) !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
    max-width: 520px !important;
    margin: 0 auto !important;
}

/* Grille 3 colonnes */
.ns-testimonials-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    margin-bottom: 48px !important;
    align-items: stretch !important;
}

/* Carte de témoignage */
.ns-testimonial-card {
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 20px !important;
    padding: 32px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

/* Guillemet décoratif géant */
.ns-testimonial-card::before {
    content: '\201C' !important;
    position: absolute !important;
    top: -15px !important;
    right: 18px !important;
    font-size: 130px !important;
    line-height: 1 !important;
    color: rgba(61, 165, 225, 0.07) !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    pointer-events: none !important;
    z-index: 0 !important;
}

.ns-testimonial-card:hover {
    transform: translateY(-7px) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    border-color: rgba(61, 165, 225, 0.28) !important;
}

/* Carte centrale mise en avant */
.ns-card-featured {
    background: rgba(61, 165, 225, 0.07) !important;
    border-color: rgba(61, 165, 225, 0.22) !important;
}

.ns-card-featured:hover {
    background: rgba(61, 165, 225, 0.11) !important;
    border-color: rgba(61, 165, 225, 0.42) !important;
}

/* Ligne supérieure : étoiles + logo Google */
.ns-card-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: relative !important;
    z-index: 1 !important;
}

.ns-stars {
    color: #FBBF24 !important;
    font-size: 16px !important;
    letter-spacing: 2px !important;
    line-height: 1 !important;
}

.ns-google-badge {
    flex-shrink: 0 !important;
    opacity: 0.9 !important;
}

/* Texte de la citation */
.ns-testimonial-quote {
    color: rgba(255, 255, 255, 0.80) !important;
    font-size: 15px !important;
    line-height: 1.8 !important;
    font-style: italic !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-left: none !important;
    flex: 1 !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Auteur */
.ns-testimonial-author {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-top: auto !important;
    padding-top: 20px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.07) !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Avatar initiales */
.ns-author-avatar {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #3da5e1 0%, #1e6fa8 100%) !important;
    color: #ffffff !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    letter-spacing: 0.5px !important;
    box-shadow: 0 4px 12px rgba(61, 165, 225, 0.3) !important;
}

.ns-author-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

.ns-author-name {
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.ns-author-role {
    color: #3da5e1 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    display: block !important;
    opacity: 0.9 !important;
}

/* Barre de pied : note globale + CTA */
.ns-testimonials-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.07) !important;
    border-radius: 16px !important;
    padding: 22px 36px !important;
    gap: 20px !important;
    flex-wrap: wrap !important;
}

.ns-rating-bar {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}

.ns-rating-stars {
    color: #FBBF24 !important;
    font-size: 22px !important;
    letter-spacing: 3px !important;
    line-height: 1 !important;
}

.ns-rating-text {
    color: rgba(255, 255, 255, 0.65) !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
}

.ns-rating-text strong {
    color: #ffffff !important;
}

/* Bouton Laisser un avis */
.ns-leave-review-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-family: 'Barlow', sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border: none !important;
    border-bottom: none !important;
    border-radius: 50px !important;
    padding: 14px 28px !important;
    white-space: nowrap !important;
    transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25) !important;
    letter-spacing: 0.02em !important;
}

.ns-leave-review-btn:hover {
    background: #3da5e1 !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 25px rgba(61, 165, 225, 0.4) !important;
    border-bottom: none !important;
}

/* Responsive — tablette */
@media (max-width: 991px) {
    .ns-testimonials-section {
        padding: 80px 20px !important;
    }

    .ns-testimonials-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .ns-testimonial-card:last-child {
        grid-column: 1 / -1 !important;
        max-width: 500px !important;
        margin: 0 auto !important;
        width: 100% !important;
    }

    .ns-testimonials-title {
        font-size: 34px !important;
    }
}

/* Responsive — mobile */
@media (max-width: 600px) {
    .ns-testimonials-section {
        padding: 60px 16px !important;
    }

    .ns-testimonials-grid {
        grid-template-columns: 1fr !important;
    }

    .ns-testimonial-card:last-child {
        grid-column: auto !important;
        max-width: none !important;
    }

    .ns-testimonials-title {
        font-size: 26px !important;
    }

    .ns-testimonials-footer {
        flex-direction: column !important;
        text-align: center !important;
        padding: 22px 18px !important;
        gap: 18px !important;
    }

    .ns-rating-bar {
        flex-direction: column !important;
        gap: 8px !important;
        align-items: center !important;
    }
}

/* ============================================================
   Espacement entre Secteurs desservis et Recrutement
   ============================================================ */
#regions {
    margin-bottom: 100px !important;
    padding-bottom: 80px !important;
}

#recrutement {
    margin-top: 100px !important;
}

/* ============================================================
   Espacement entre Fiche propriétaire et Notre ADN
   ============================================================ */
#proprietaire {
    padding-top: 160px !important;
    margin-bottom: 0 !important;
    padding-bottom: 180px !important;
}

#mission-vision-valeurs {
    margin-top: 0 !important;
    padding-top: 180px !important;
}

/* ============================================================
   Centrage horizontal des lieux (Secteurs desservis)
   ============================================================ */
#regions .pbmit-element-posts-wrapper {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    width: 100% !important;
}

#regions .col-sm-12 {
    width: 100% !important;
    max-width: 1200px !important;
}

#regions .row.justify-content-center {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 30px !important;
    width: 100% !important;
    margin: 0 auto !important;
}

#regions .row.justify-content-center > div {
    flex: 1 1 300px !important;
    max-width: 360px !important;
    width: auto !important;
}

.region-card {
    background: #fcfcfc !important;
    border: 1px solid #eaeaea !important;
    border-radius: 12px !important;
    padding: 40px 25px !important;
    text-align: center !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.02) !important;
    height: 100% !important;
    transition: all 0.3s ease !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

.region-card:hover {
    transform: translateY(-5px) !important;
    border-color: #3da5e1 !important;
    box-shadow: 0 15px 30px rgba(61, 165, 225, 0.08) !important;
}

.region-icon-wrapper {
    margin-bottom: 20px !important;
    background: rgba(61, 165, 225, 0.1) !important;
    border-radius: 50% !important;
    width: 64px !important;
    height: 64px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.3s ease !important;
}

.region-card:hover .region-icon-wrapper {
    background: #3da5e1 !important;
}

.region-card:hover .region-icon-wrapper svg {
    color: #ffffff !important;
}

/* Google Review Button in Testimonials */
.ns-google-review-large-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #3da5e1 !important;
    color: #ffffff !important;
    padding: 14px 32px !important;
    border-radius: 50px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    text-decoration: none !important;
    box-shadow: 0 4px 15px rgba(61, 165, 225, 0.3) !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.ns-google-review-large-btn:hover {
    background: #ffffff !important;
    color: #111a24 !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 25px rgba(255, 255, 255, 0.25) !important;
}

.ns-google-review-large-btn:hover svg path {
    fill: #4285F4 !important;
}

/* Masquer la flèche de droite dans les cartes de service */
.pbmit-btn-plus,
.pbmit-hover-content-area .pbmit-btn-plus,
.swiper-button-next {
    display: none !important;
}

/* ============================================================
   Répartition centrée pleine largeur des 3 services (Section À propos / Services)
   ============================================================ */
.elementor-element-ddb9080 {
    flex-direction: column !important;
    width: 100% !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
}

.elementor-element-74c07f1 {
    display: none !important;
}

.elementor-element-297811d {
    width: 100% !important;
}

.elementor-element-131ee31 p {
    text-align: center !important;
    max-width: 750px !important;
    margin: 0 auto 24px !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
}

.elementor-element-a80ca08 {
    text-align: center !important;
    margin-bottom: 50px !important;
}

.elementor-element-e5e7c5f {
    width: 100% !important;
}

.elementor-element-e5e7c5f .pbmit-element-posts-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 30px !important;
    width: 100% !important;
    margin: 0 !important;
}

.elementor-element-e5e7c5f .pbmit-ele-miconheading {
    flex: 1 1 30% !important;
    max-width: 31% !important;
    width: 100% !important;
    padding: 0 !important;
}

@media (max-width: 991px) {
    .elementor-element-e5e7c5f .pbmit-element-posts-wrapper {
        flex-direction: column !important;
    }
    .elementor-element-e5e7c5f .pbmit-ele-miconheading {
        max-width: 100% !important;
    }
}

/* Boutons En savoir plus des 3 colonnes de services */
.ns-service-more-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: transparent !important;
    color: #3da5e1 !important;
    border: 1.5px solid #3da5e1 !important;
    padding: 9px 20px !important;
    border-radius: 50px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    text-decoration: none !important;
    transition: all 0.25s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.ns-service-more-btn:hover {
    background: #3da5e1 !important;
    color: #ffffff !important;
    border-color: #3da5e1 !important;
    box-shadow: 0 8px 20px rgba(61, 165, 225, 0.25) !important;
}

.ns-service-more-btn svg {
    transition: transform 0.25s ease !important;
}

.ns-service-more-btn:hover svg {
    transform: translateX(3px) !important;
}

/* Alignement parfait des boutons de services en bas de carte */
.elementor-element-e5e7c5f .pbmit-ihbox,
.elementor-element-e5e7c5f .pbmit-ihbox-box {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.elementor-element-e5e7c5f .pbmit-ihbox-contents {
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important;
}

.elementor-element-e5e7c5f .pbmit-ihbox-contents > div:last-child {
    margin-top: auto !important;
    padding-top: 18px !important;
}

/* Bouton flèche carrousel sur la photo */
.pbmit-featured-img-wrapper {
    position: relative !important;
}

.ns-next-slide-btn {
    position: absolute !important;
    right: 25px !important;
    bottom: 25px !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    background: #3da5e1 !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4) !important;
    transition: all 0.25s ease !important;
    z-index: 50 !important;
}

.ns-next-slide-btn:hover {
    background: #2b8cc4 !important;
    transform: scale(1.12) !important;
    box-shadow: 0 6px 20px rgba(61, 165, 225, 0.6) !important;
}

/* Remplir tout l'espace pour les photos du carrousel de services */
.pbmit-hover-service-image {
    height: 100% !important;
}

.pbmit-hover-service-image .swiper-wrapper,
.pbmit-hover-service-image .swiper-slide,
.pbmit-hover-service-image .pbmit-service-wrapper-inner,
.pbmit-hover-service-image .pbmit-featured-img-wrapper,
.pbmit-hover-service-image .pbmit-featured-wrapper {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.pbmit-hover-service-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* Centrage horizontal du bouton d'avis Google */
.ns-testimonials-footer {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin-top: 50px !important;
}

/* Bouton "Nous contacter" géant au centre du footer */
.ns-footer-cta-btns {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 60px 0 !important;
}

.ns-footer-contact-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 30px !important;
    background: #3da5e1 !important;
    color: #ffffff !important;
    font-size: 60px !important; /* ~600% size boost! */
    font-weight: 800 !important;
    padding: 35px 80px !important;
    border-radius: 100px !important;
    text-transform: uppercase !important;
    border: none !important;
    box-shadow: 0 15px 40px rgba(61, 165, 225, 0.4) !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}

.ns-footer-contact-btn:hover {
    background: #ffffff !important;
    color: #111a24 !important;
    transform: translateY(-5px) scale(1.02) !important;
    box-shadow: 0 25px 60px rgba(255, 255, 255, 0.2) !important;
}

.ns-footer-contact-btn svg {
    width: 70px !important;
    height: 70px !important;
    stroke-width: 2.5 !important;
    transition: stroke 0.3s ease !important;
}

.ns-footer-contact-btn:hover svg {
    stroke: #3da5e1 !important;
}

/* responsive adjustment */
@media (max-width: 991px) {
    .ns-footer-contact-btn {
        font-size: 40px !important;
        padding: 25px 50px !important;
        gap: 20px !important;
    }
    .ns-footer-contact-btn svg {
        width: 48px !important;
        height: 48px !important;
    }
}

@media (max-width: 480px) {
    .ns-footer-contact-btn {
        font-size: 24px !important;
        padding: 15px 30px !important;
        gap: 15px !important;
    }
    .ns-footer-contact-btn svg {
        width: 30px !important;
        height: 30px !important;
    }
}

/* Style de l'icône Google dans le footer */
.pbmit-social-links .pbmit-social-google a {
    color: #ffffff !important;
    border-radius: 50% !important;
}

.pbmit-social-links .pbmit-social-google a:hover {
    background-color: #4285F4 !important;
    border-color: #4285F4 !important;
}

/* ============================================================
   Défilement infini du Ticker (Marquee) en pur CSS
   ============================================================ */
.ns-marquee-wrapper {
    overflow: hidden;
    white-space: nowrap;
    width: 100%;
    background-color: #f1f3f5 !important;
    padding: 24px 0 !important;
    display: flex !important;
    align-items: center !important;
}

.ns-marquee-track {
    display: inline-flex !important;
    animation: ns-marquee-anim 28s linear infinite !important;
}

.ns-marquee-item {
    font-size: clamp(24px, 3.5vw, 42px) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: #191818 !important;
    padding: 0 45px !important;
    display: flex !important;
    align-items: center !important;
    gap: 30px !important;
    letter-spacing: 0.05em !important;
}

.ns-marquee-item::after {
    content: "•" !important;
    color: #3da5e1 !important;
    margin-left: 45px !important;
    font-size: 1.2em !important;
}

@keyframes ns-marquee-anim {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(-50%, 0, 0);
    }
}

/* ============================================================
   Bandeau/Header transparent foncé lors du défilement
   ============================================================ */
.site-header {
    transition: background-color 0.4s ease, backdrop-filter 0.4s ease, box-shadow 0.4s ease !important;
}

/* Application du filtre foncé semi-transparent */
.site-header.ns-header-scrolled {
    background-color: rgba(17, 26, 36, 0.88) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2) !important;
}

/* Forcer les sous-éléments du header à devenir transparents pour laisser passer le filtre */
.site-header.ns-header-scrolled .pbmit-header-style-2,
.site-header.ns-header-scrolled .pbmit-template-header-wrapper,
.site-header.ns-header-scrolled .pbmit-custom-header-template,
.site-header.ns-header-scrolled .elementor-element-a7dc2b3 {
    background-color: transparent !important;
    background: transparent !important;
}

/* Rendre le menu principal et le numéro parfaitement lisibles sur fond sombre */
.site-header.ns-header-scrolled .main-menu-link,
.site-header.ns-header-scrolled .menu-link {
    color: #ffffff !important;
}

.site-header.ns-header-scrolled .main-menu-link:hover,
.site-header.ns-header-scrolled .menu-link:hover {
    color: #3da5e1 !important;
}

/* ============================================================
   Correctif Bouton Téléphone Slide (attachment style)
   ============================================================ */
.n2-ss-layer a[href^="tel:"],
.heroSwiper a[href^="tel:"],
.ns-hero-slider a[href^="tel:"],
div[class*="n2-ow"] a[href^="tel:"],
.n2-ss-item-content a[href^="tel:"],
p.n2-style-a675b66e9e7fe42632aa6b3f2424d052-heading a[href^="tel:"] {
    color: #ffffff !important;
    background-color: #3DA5E1 !important;
    border: 1.5px solid #3DA5E1 !important;
    padding: 10px 24px !important;
    border-radius: 50px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    text-decoration: none !important;
    border-bottom: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    box-shadow: 0 6px 15px rgba(61, 165, 225, 0.25) !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.n2-ss-layer a[href^="tel:"]:hover,
.heroSwiper a[href^="tel:"]:hover,
.ns-hero-slider a[href^="tel:"]:hover,
div[class*="n2-ow"] a[href^="tel:"]:hover,
.n2-ss-item-content a[href^="tel:"]:hover,
p.n2-style-a675b66e9e7fe42632aa6b3f2424d052-heading a[href^="tel:"]:hover {
    background-color: #298cbd !important;
    border-color: #298cbd !important;
    color: #ffffff !important;
    transform: scale(1.1) translateY(-2px) !important; /* Hover plus gros */
    box-shadow: 0 12px 24px rgba(61, 165, 225, 0.4) !important;
}

/* ============================================================
   Bouton d'appel flottant mobile
   ============================================================ */
.ns-mobile-call-bar {
    display: none;
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #3DA5E1 !important;
    color: #ffffff !important;
    padding: 14px 28px !important;
    border-radius: 50px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    box-shadow: 0 10px 25px rgba(61, 165, 225, 0.4) !important;
    z-index: 9999 !important;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    width: calc(100% - 40px);
    max-width: 380px;
}

.ns-mobile-call-bar:hover {
    background-color: #298cbd !important;
    transform: translateX(-50%) scale(1.05) !important;
    box-shadow: 0 12px 30px rgba(61, 165, 225, 0.5) !important;
}

@media (max-width: 767px) {
    .ns-mobile-call-bar {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
    }
}

/* ============================================================
   Geographic Location Badge in Hero Slider
   ============================================================ */
.ns-slider-location-badge {
    display: inline-block !important;
    background-color: rgba(61, 165, 225, 0.18) !important;
    color: #3da5e1 !important;
    border: 1px solid rgba(61, 165, 225, 0.3) !important;
    font-size: clamp(11px, 2vw, 13px) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 2.5px !important;
    padding: 6px 18px !important;
    border-radius: 50px !important;
    margin-bottom: 20px !important;
}

/* ============================================================
   Centrage du menu hamburger sur mobile & Suppression Loupe
   ============================================================ */
@media (max-width: 991px) {
    /* Cache la loupe / recherche sur mobile */
    .pbmit-header-search-btn,
    .pbmit-search-wrapper,
    .elementor-widget-pbm_infotech_search_element,
    .pbmit-search-form-wrapper,
    .pbmit-search-wrap,
    form.search-form {
        display: none !important;
    }

    /* Forcer l'affichage du template mobile de l'en-tête */
    .pbmit-custom-mobile-header-template {
        display: block !important;
        position: relative !important;
        visibility: visible !important;
        opacity: 1 !important;
        background-color: #111a24 !important; /* Fond sombre premium */
    }
    
    .pbmit-custom-header-template {
        display: none !important;
    }

    /* En-tête mobile horizontal et ultra compact (pas de stacking) */
    .pbmit-custom-mobile-header-template .e-con-inner {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 8px 16px !important;
        height: 60px !important;
        width: 100% !important;
    }

    /* Logo aligné à gauche */
    .pbmit-custom-mobile-header-template .pbmit-logo-wrapper {
        text-align: left !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        width: auto !important;
    }

    .pbmit-custom-mobile-header-template .pbmit-logo-img {
        max-height: 38px !important;
        width: auto !important;
    }
    
    /* Hamburger aligné à droite, taille fine */
    .pbmit-custom-mobile-header-template .pbmit-burger-menu-wrapper {
        display: inline-flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 !important;
        background-color: #3da5e1 !important;
        width: 42px !important;
        height: 42px !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 10px rgba(61, 165, 225, 0.3) !important;
        position: relative !important;
        z-index: 999 !important;
        float: none !important;
    }

    .pbmit-custom-mobile-header-template .pbmit-burger-menu-wrapper a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        height: 100% !important;
    }

    .pbmit-custom-mobile-header-template .pbmit-burger-menu-wrapper svg {
        width: 22px !important;
        height: 22px !important;
        fill: #ffffff !important;
        color: #ffffff !important;
    }
    
    /* Supprimer l'ajustement vertical de l'en-tête de page */
    .site-header .e-con-inner {
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
    }
}

/* Supprimer le double icône de téléphone injecté par FontAwesome/thème sur le bouton flottant */
a.ns-mobile-call-bar::before,
a.ns-mobile-call-bar::after,
a.ns-mobile-call-bar i {
    content: none !important;
    display: none !important;
}

/* Cacher absolument les menus natifs buggés et vides */
.pbmit-mobile-menu-panel-wrapper,
.htmobile-menu-wrap,
.pbmit-mobile-menu-panel {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ============================================================
   Menu mobile sur mesure, moderne et indépendant
   ============================================================ */
.ns-custom-mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #0f172a; /* Bleu marine foncé chic */
    z-index: 100000;
    display: flex;
    flex-direction: column;
    padding: 30px 24px;
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    overflow-y: auto; /* Permet le défilement si le contenu dépasse */
    -webkit-overflow-scrolling: touch; /* Défilement fluide sur iOS */
}

.ns-custom-mobile-menu.open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}

.ns-mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 45px;
    width: 100%;
}

.ns-mobile-menu-logo img {
    height: 20px !important;
    max-height: 20px !important;
    width: auto !important;
    display: block !important;
}

.ns-mobile-menu-close {
    background: none;
    border: none;
    color: #ffffff;
    font-size: 38px;
    cursor: pointer;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: rgba(255,255,255,0.06);
    transition: background-color 0.2s ease;
}

.ns-mobile-menu-close:hover {
    background-color: rgba(255,255,255,0.12);
}

.ns-mobile-menu-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ns-mobile-menu-nav ul li a {
    color: #ffffff;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    transition: color 0.2s ease;
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.ns-mobile-menu-nav ul li a:hover {
    color: #3da5e1;
}

/* Forcer la couleur blanche sur le texte et l'icône du bouton flottant mobile (contourner les styles du thème) */
a.ns-mobile-call-bar[href^="tel:"],
a.ns-mobile-call-bar[href^="tel:"] *,
.ns-mobile-call-bar,
.ns-mobile-call-bar span,
.ns-mobile-call-bar svg,
.ns-mobile-call-bar svg path {
    color: #ffffff !important;
    fill: #ffffff !important;
    stroke: #ffffff !important;
}

/* Bloquer le défilement de l'arrière-plan lorsque les modals ou menus sont ouverts */
body.overflow-hidden {
    overflow: hidden !important;
}

/* ============================================================
   Section Partenaires - Carrousel Marquee
   ============================================================ */
.ns-partners-carousel-container {
    overflow: hidden;
    position: relative;
    width: 100%;
    padding: 20px 0;
}

/* Gradients sur les côtés pour effet fondu premium */
.ns-partners-carousel-container::before,
.ns-partners-carousel-container::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 150px;
    z-index: 2;
    pointer-events: none;
}

.ns-partners-carousel-container::before {
    left: 0;
    background: linear-gradient(90deg, #0f172a, transparent);
}

.ns-partners-carousel-container::after {
    right: 0;
    background: linear-gradient(-90deg, #0f172a, transparent);
}

.ns-partners-track {
    display: flex;
    width: calc(230px * 10); /* 5 éléments originaux + 5 clones */
    animation: nsPartnersScroll 25s linear infinite;
}

.ns-partners-track:hover {
    animation-play-state: paused;
}

.ns-partner-item {
    width: 200px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    margin: 10px 15px;
    background-color: #ffffff !important;
    border-radius: 12px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-decoration: none !important;
}

.ns-partner-item:hover {
    transform: scale(1.08) translateY(-2px);
    box-shadow: 0 12px 28px rgba(61, 165, 225, 0.4);
}

.ns-partner-item img {
    max-width: 100%;
    max-height: 55px;
    object-fit: contain;
}

/* Version sombre pour les logos blancs transparents (ex. Norexco & Laure-Lou) */
.ns-partner-item.ns-partner-dark-card {
    background-color: #1e293b !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.ns-partner-item.ns-partner-dark-card img {
    filter: brightness(0) invert(1) !important; /* Force le rendu blanc éclatant */
}

/* Card design pour MG5 (pas de logo) */
.ns-partner-logo-card {
    background-color: #1e293b;
    border-radius: 8px;
    padding: 6px 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 60px;
}

.ns-partner-logo-tag {
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 1.5px;
    line-height: 1;
}

.ns-partner-logo-sub {
    color: #3da5e1;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-top: 3px;
}

@keyframes nsPartnersScroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-230px * 5));
    }
}

/* ============================================================
   Masquer la recherche dans l'en-tête (Search icon/form)
   ============================================================ */
.pbmit-header-search-btn,
.pbmit-search-wrapper,
.elementor-widget-pbm_infotech_search_element {
    display: none !important;
}
