/* ==========================================================================
   1. FOOTER & EN-TÊTE DE PIED DE PAGE
   ========================================================================== */
.footer-container {
    flex-direction: column;
    align-items: flex-start;
}

.footer-menu-wrapper {
    text-align: left;
}

.footer-copyright {
    text-align: right;
    font-size: 11px;
}

.kroma-block {
    width: 90%;
    padding: 20px;
}

.footer-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 16px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.footer-menu > li {
    display: flex;
    align-items: center;
}

.footer-menu > li > a {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    white-space: nowrap;
}

#menu-footer li {
    display: inline-block;
    position: relative;
    margin: 0 5px; 
    width: 30px; 
    height: 30px;
}

#menu-footer a {
    display: block;
    width: 100%;
    height: 100%;
    text-indent: -9999px;
    position: absolute;
    top: 0;
    left: 0;
}

/* ==========================================================================
   2. STRUCTURE HEADER & APPLICATION PREMIUM (PWA)
   ========================================================================== */
header {
    position: relative !important;
    display: block !important;
    height: 80px !important;
    min-height: 80px !important;
    background-color: #ffffff !important;
    border-bottom: 1px solid #eef0f2 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    z-index: 99999 !important;
}

/* Masquage par défaut des structures desktop et compteurs */
header .menu-main-container,
header .nav-menu,
header .counter-wrapper,
.main-menu {
    display: none;
}

/* Zone tactile étendue du Burger à gauche */
.header-nav-container {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 70px !important;
    height: 80px !important;
    display: block !important; /* CORRECTION : Forcé en block (était écrasé en none plus bas) */
    cursor: pointer !important;
    z-index: 100000 !important; /* Reste au-dessus de l'overlay */
}

/* Lignes du Burger minimaliste */
.header-nav-container::before {
    content: "" !important;
    position: absolute !important;
    left: 20px !important;
    top: 28px !important;
    width: 32px !important;
    height: 4px !important;
    background-color: #111827 !important;
    border-radius: 4px !important;
    box-shadow: 0 10px 0 #111827, 0 20px 0 #111827 !important;
    transition: transform 0.25s ease, top 0.25s ease, box-shadow 0.15s ease !important;
}

/* Centrage absolu du Logo */
.site-logo, header h1, header .custom-logo-link {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 5 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
}

.site-logo img, header h1 img {
    height: 60px !important;
    width: auto !important;
    display: block !important;
}

.language-selector img { 
    height: 20px;
    width: auto;
}

/* ==========================================================================
   3. ÉTAT MENU OUVERT : ANIMATIONS ET OVERLAY PLEIN ÉCRAN (CORRIGÉ & UNIVERSEL)
   ========================================================================== */

/* SÉCURITÉ : Annule les transforms du header qui bloquent le position: fixed des enfants */
header.menu-open {
    transform: none !important;
    animation: none !important;
    filter: none !important;
    perspective: none !important;
}

/* Animation morphing des lignes du burger en X */
header.menu-open .header-nav-container::before {
    transform: rotate(45deg) !important;
    top: 38px !important;
    box-shadow: none !important;
}

header.menu-open .header-nav-container::after {
    content: "" !important;
    position: absolute !important;
    left: 20px !important;
    top: 38px !important;
    width: 32px !important;
    height: 4px !important;
    background-color: #111827 !important;
    border-radius: 4px !important;
    transform: rotate(-45deg) !important;
    transition: transform 0.25s ease !important;
}

/* L'OVERLAY DE FOND - S'applique au conteneur principal du menu sur n'importe quelle page */
header.menu-open .menu-main-container,
header.menu-open .nav-menu,
header.menu-open .main-menu {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding-top: 60px !important;     
    box-sizing: border-box !important;
    z-index: 99998 !important; 

    /* POSITIONNEMENT ET FIXATION ÉCRAN */
    position: fixed !important;        
    top: 75px !important;              
    left: 0 !important;
    width: 100vw !important;
    height: calc(100vh - 75px) !important; 

    /* NETTOYAGE DU FOND */
    background-color: #ffffff !important;
    background-image: none !important; 
    border: none !important;
    box-shadow: none !important;
}

/* SÉCURITÉ IMBRICATION : Si les conteneurs du thème sont imbriqués (comme sur la Homepage), 
   on force les sous-éléments à redevenir de simples blocs transparents pour éviter les doublons d'overlay blanc */
header.menu-open .menu-main-container .nav-menu,
header.menu-open .menu-main-container .main-menu,
header.menu-open .nav-menu .main-menu,
header.menu-open .menu-main-container ul,
header.menu-open .nav-menu ul,
header.menu-open .main-menu ul {
    display: block !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: auto !important;
}

/* Bloque le scroll du site entier quand le menu est affiché */
html:has(header.menu-open),
body:has(header.menu-open) {
    overflow: hidden !important;
    height: 100vh !important;
}

/* Neutralisation des éléments de déco du thème sur le menu */
header.menu-open .menu-main-container::before,
header.menu-open .menu-main-container::after,
header.menu-open .nav-menu::before,
header.menu-open .nav-menu::after {
    display: none !important;
    content: none !important;
}

/* Entrées de menu (LI) */
header.menu-open .nav-menu li,
header.menu-open .menu-main-container ul li,
header.menu-open .main-menu li {
    display: block !important;
    list-style: none !important;
    margin: 24px 0 !important; 
    width: 100% !important;
    text-align: center !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Typographie des liens + NETTOYAGE RADICAL DU BLOC GRIS PARASITE */
header.menu-open .nav-menu li a,
header.menu-open .menu-main-container ul li a,
header.menu-open .main-menu li a {
    font-size: 26px !important;
    font-weight: 700 !important;
    color: #111827 !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    display: block !important;         
    width: 90% !important;             
    margin: 0 auto !important;         
    padding: 12px 0 !important;        
    box-sizing: border-box !important;
    opacity: 1 !important;

    /* SUPPRESSION DE L'EFFET DE CHEVAUCHEMENT DU THÈME */
    background: transparent !important; 
    clip-path: none !important;         
    box-shadow: none !important;
    border: none !important;
}

/* Sécurité contre les résidus de lignes décoratives sur les liens */
header.menu-open .main-menu li a::before,
header.menu-open .main-menu li a::after,
header.menu-open .nav-menu li a::before,
header.menu-open .nav-menu li a::after {
    display: none !important;
    content: none !important;
}

header.menu-open .nav-menu li a:active,
header.menu-open .menu-main-container ul li a:active,
header.menu-open .main-menu li a:active {
    background-color: rgba(0, 0, 0, 0.05) !important; 
    border-radius: 8px !important;
    opacity: 0.5 !important;
}
/* Ajustement spécifique pour la Home en présence de la barre supplémentaire */
body.home header.menu-open .menu-main-container,
body.home header.menu-open .nav-menu,
body.home header.menu-open .main-menu {
    top: 105px !important; /* 75px de base + les ~40px de ta barre supplémentaire */
    height: calc(100vh - 115px) !important;
}

/* 1. Ajout de la transition fluide de base sur les liens */
header.menu-open .nav-menu li a,
header.menu-open .menu-main-container ul li a,
header.menu-open .main-menu li a {
    transition: color 0.25s ease, background-color 0.25s ease, transform 0.25s ease !important;
}

/* 2. Effet au Roll-over (Hover) pour ordinateur/tablette */
@media (hover: hover) {
    header.menu-open .nav-menu li a:hover,
    header.menu-open .menu-main-container ul li a:hover,
    header.menu-open .main-menu li a:hover {
        color: #FF9800 !important; /* Ta couleur principale */
        background-color: rgba(255, 152, 0, 0.05) !important; /* Un fond très léger et subtil */
        border-radius: 8px !important;
        transform: translateY(-1px) !important; /* Très léger effet de soulèvement */
    }
}

/* 3. Effet au clic/tactile (Active) */
header.menu-open .nav-menu li a:active,
header.menu-open .menu-main-container ul li a:active,
header.menu-open .main-menu li a:active {
    background-color: rgba(255, 152, 0, 0.1) !important;
    transform: scale(0.98) !important; /* Léger enfoncement au clic */
}
/* ==========================================================================
   AJOUT ISOLÉ : DESIGN ET PLACEMENT DE LA CROIX DE FERMETURE EN HAUT À DROITE
   ========================================================================== */
header.menu-open ~ .menu-mobile-close, 
header.menu-open .menu-mobile-close,
body:has(header.menu-open) .menu-mobile-close {
    position: fixed !important;
    top: 5px !important;    
    right: 5px !important;   
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #f3f4f6 !important; 
    color: #111827 !important;
    border-radius: 50% !important;
    font-size: 18px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    z-index: 2000000 !important; 
}

.menu-mobile-close:active {
    background-color: #e5e7eb !important;
}
/* ==========================================================================
   4. INTERFACES UTILISATEURS & SLIDERS
   ========================================================================== */
.user-profile {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 15px;
    gap: 20px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.user-photo-slider-container {
    width: 100%;
    max-width: 380px;
    height: 360px;
    margin: 0 auto;
    box-sizing: border-box;
}

.user-info-section {
    width: 100%;
    text-align: left;
    box-sizing: border-box;
    margin-left:-30px;
}

.swiper-button-prev, 
.swiper-button-next {
    display: none !important;
}

.swiper-pagination-bullet-active {
    background: #ff9800 !important;
}

.swiper-horizontal>.swiper-pagination-bullets, 
.swiper-pagination-bullets.swiper-pagination-horizontal {
    bottom: var(--swiper-pagination-bottom, -3px) !important;
}

.n2-ss-slide-background-image img {
    filter: brightness(0.55);
}

.infos-user-box {
    max-width: 83%;
}

.user-sticker {
    top: -35px;
    right: 75px;
}

.langues-section {
    left: -80px;
    position: relative;
}

/* ==========================================================================
   5. FORMULAIRES (ACF) & COMPOSANTS SÉLECTEURS
   ========================================================================== */
input:not([type="checkbox"]):not([type="radio"]), 
select, 
textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

input[type="checkbox"], 
input[type="radio"] {
    width: auto !important;
    max-width: none !important;
    margin-right: 10px;
    cursor: pointer;
}

textarea {
    resize: vertical;
}

.acf-formulaire-titre-wrapper {
    width: 100% !important;
    height: 150px !important;
}

.acf-containter-second {
    width:100%;
    margin-top:0px;
    padding-top:170px;
}

.acf-formulaire-titre {
    font-size: 1.1rem !important;
    line-height: 1.3;
    word-break: normal; 
    white-space: normal !important;
    margin: 0;
    flex: 1; 
    min-width: 0; 
    width: 100%;
}

.acf-formulaire-container .acf-formulaire-titre-wrapper h3 {
    font-size: 16px;
    white-space: nowrap;
}

.acf-formulaire-champ input[type="radio"],
.acf-formulaire-champ input[type="checkbox"] {
    width: auto !important;
    flex-shrink: 0;
}

.acf-formulaire-champ {
    font-weight: bold;
}

.acf-formulaire-container label {
    min-width: 80px;
}

.acf-repeater-item {
    display: block;
}

.activites .acf-checkbox-options label {
    min-width: auto;
}

.acf-radio-options,
.acf-checkbox-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 15px;
}

.acf-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}
.acf-formulaire-container {
     min-height: 100vh; /* Prend toute la hauteur de l'écran pour un effet immersif */
}

.acf-option-label {
    font-size: 14px;
    line-height: 1.3;
}
/* --- Conteneur global --- */
.acf-avancement {
    margin-top: 10px;
}
.acf-option:has(input:checked) {
    border-color: #ff9800;
    background: #fff7e6;
}

.acf-formulaire-champ input[type="range"] {
    width: 100%;
}

.acf-repeater-item .acf-repeater-champ {
    display: block;
    width: 100%;
}

.acf-repeater-item label {
    min-width: 30px;
    width: 20px;
}

.acf-field-title {
    font-weight: bold;
}

.acf-instructions {
    display: block;
    margin: 5px 0 5px 0;
}

.acf-instructions.success .success-bubble {
    position: absolute;
    right: 5px;
    top: -30px;
}


/* ==========================================================================
   6. TABLEAUX & GRILLES EXTÉRIEURES (GETWID)
   ========================================================================== */
body .wp-block-getwid-section__content {
    width: 99%;
    padding:10px!important;
}

.wp-block-getwid-section h2 {
    background: linear-gradient(0deg, #e9d734, #e9d734, #DCE400);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: white;
    font-size: 1.5em !important;
    margin-left: 15px;
}

.wp-block-table.pack {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.wp-block-table.pack table {
    width: 95%;
    font-size: 8px;
    border-radius: 2px;
}

.wp-block-table.pack th,
.wp-block-table.pack td {
    padding: 4px 3px;
}

.wp-block-table.pack .wp-block-button__link {
    font-size: 8px;
    padding: 3px 6px;
    white-space: nowrap;
}

/* ==========================================================================
   7. COMPOSANTS MODAUX & SÉCURITÉS VISUELLES
   ========================================================================== */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.7);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    overflow-y: auto;
}

.modal-box {
    position: relative;
    width: 100%;
    max-width: 100%;
    background: #fff;
    margin: 0;
    padding: 30px 15px 20px;
    box-sizing: border-box;
    top: 80px;
    border-radius: 0;
}

#close-modal {
    position: absolute;
    top: 50px;
    left: 10px;
    z-index: 10000;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    background: #ff9800;
    font-size: 20px;
    font-weight: bold;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

#close-modal:hover {
    opacity: 0.8;
}

/* Maps & Langues */
.language-selector {
    display:none;
}

.acf-google-map .map-search-box {
    width: 100vw !important;
    max-width: none !important;
    margin-top: 60px !important;
    margin-left: 22px !important;
    left: 0 !important;
}

.pac-container {
    width: inherit !important;
    max-width: calc(100vw - 40px) !important;
}

/* Désactivation des fonctionnalités de sous-menu inutilisées en mobile */
.nav-menu > li:first-child {
    display: none;
}

.ga-section-title {
    padding-top:30px;
}

/* 1. SECTION PRINCIPALE : On force un empilement vertical propre */
.glameeto-pricing-section {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    padding: 20px 0 !important;
}

/* 2. L'APLAT (Le bloc noir avec le H3 "Créditer des noisettes" et la description) */
.glameeto-pricing-section .news-slider__content,
.glameeto-pricing-section .news-slider__head,
.glameeto-pricing-section [class*="-left-block"] { 
    display: block !important;       /* On force l'affichage sur mobile */
    position: relative !important;   /* On le remet dans le flux normal */
    width: 100% !important;          /* 100% de la largeur du téléphone */
    max-width: 100% !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    padding: 30px 20px !important;   /* Marges internes pour respirer */
    margin-bottom: 25px !important;  /* Espace pour pousser le slider vers le bas */
    box-sizing: border-box !important;
    border-radius: 0px !important;   /* Devient un bandeau complet sur mobile */
}

/* 3. LE CONTENEUR DU SLIDER SWIPER */
.glameeto-pricing-section .news-slider-instance {
    position: relative !important;
    width: 100% !important;
    margin-top: 0 !important;
}

/* 4. LARGEUR DES CARDS DU SLIDER (Correction du souci de dimension) */
.glameeto-pricing-section .pricing-card-slide {
    width: 300px !important;         /* Largeur fixe parfaite pour le swipe mobile */
    max-width: 85vw !important;      /* Évite de dépasser sur les micro-écrans */
    margin: 0 8px !important;        /* Espacement horizontal entre les cartes */
}

.glameeto-pricing-section .news__item {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* 5. BOUTONS DE TOGGLE (Abonnements / Packs) */
.glameeto-pricing-section .pricing-vertical-toggles {
    justify-content: center !important; /* Centrés pour le mobile */
    margin-bottom: 0px !important;
}

.glameeto-user-shortcode-container {
    position: initial !important;
    z-index: 100 !important;
    width: 89%;
    font-size: 12px !important;
    padding: 10px !important;
}
.abo-price {
    right:20px;
}
.pricing-middle-controls {
    display: flex;
    justify-content: center;
    margin-right: 0px;
}
.glameeto-pricing-section .agenda-header {
    display: flex !important;
    width: 100% !important;
}

.glameeto-pricing-section .news-slider__item:not(.active) .news__item  {
        background-color: rgba(255, 255, 255, 1) !important; 
}
.glameeto-pricing-section {
    padding: 0 !important;
}

.glameeto-pricing-section h2 {
    display:none;
}

.glameeto-pricing-section .pricing-dynamic-description {
    padding:10px;
}

.glameeto-pricing-section .agenda-header {
    margin: 0 !important;
    padding: 0 ! important;
    background: #1E1E1E !important;
    z-index: 1000;
}

.aplat-shortcode-desc {
    display: none;
}

.criteres-container,
.filtres-container {
    padding-left: 0px;
    padding-right: 0px;
}
.glameeto-swiper-coverflow,.glameeto-swiper-coverflow-partenaires {
    padding-top: 30px !important;
    padding-bottom: 50px  !important;
}
.site-footer {
    padding:0;
}

.filters-locked-content {
    width: 45%;
}

#cmplz-manage-consent,
#cmplz-manage-consent .cmplz-manage-consent {
    left: 10px !important;        /* On le rapproche un peu plus du bord sur petit écran */
}

#cmplz-manage-consent .cmplz-manage-consent {
    padding: 5px 10px !important; /* Format mini pour mobile */
    font-size: 11px !important;
    letter-spacing: 0.02em !important;
    border-radius: 6px 6px 0 0 !important; /* Arrondi uniquement sur les coins supérieurs */
}
.glameeto-empty-card {
    max-width: 355px;
    border-radius: 0;
}

/* Exception pour la page de validation (ID 1409) */
.page-id-1409 .acf-formulaire-titre-wrapper {
    height: 50px !important;
}