/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/
/* Add your custom styles here */
/* 1. Le conteneur horizontal */
/* Container principal */
/* Horaires */
/* Wrapper et Flèches */
.seo-slider-wrapper {position: relative;display: flex;align-items: center;width: 100%;}
.seo-slider-btn {background: #ffffff;border: 1px solid #eaeaea;box-shadow: 0 2px 4px rgba(0,0,0,0.1);color: #333;width: 40px;height: 40px;border-radius: 50%;cursor: pointer;font-size: 16px;display: flex;justify-content: center;align-items: center;position: absolute;z-index: 10;transition: background 0.2s, transform 0.2s;}
.seo-slider-btn:hover { background: #f0f0f0; transform: scale(1.05); }
.seo-slider-btn.prev { left: -20px; }
.seo-slider-btn.next { right: -20px; }
/* Le Slider Natif */
.seo-avis-container.slider-mode {display: flex;overflow-x: auto;scroll-snap-type: x mandatory;gap: 20px;padding: 10px 0;width: 100%;scroll-behavior: smooth;cursor: grab;/* Masquer la scrollbar moche */ -ms-overflow-style: none;scrollbar-width: none;}
.seo-avis-container.slider-mode::-webkit-scrollbar {display: none;}
/* Les Cartes Avis */
.seo-avis-item {min-width: 300px;max-width: 300px;flex: 0 0 auto;scroll-snap-align: center; /* Centre la carte au scroll */ background: #ffffff;padding: 24px;border-radius: 12px;border: 1px solid #eaeaea;box-shadow: 0 4px 6px rgba(0,0,0,0.02);user-select: none; /* Empêche de surligner le texte quand on drag */}
.seo-avis-header { margin-bottom: 12px; }
.seo-avis-auteur { margin: 0 0 4px 0; font-size: 16px; font-weight: bold; }
.seo-avis-note { color: #fbbc04; font-size: 18px; display: block; }
.seo-avis-date { font-size: 12px; color: #70757a; }
.seo-avis-texte { font-size: 14px; line-height: 1.6; color: #3c4043; margin: 0; }
/* Responsive mobile : masquer les boutons, on swipe au doigt ! */

@media (max-width: 768px) {	.seo-slider-btn { display: none; }
    .seo-avis-container.slider-mode { padding: 10px 20px; }
}
/* Gestion de la troncature du texte */
.seo-avis-texte.seo-tronque {display: -webkit-box;-webkit-line-clamp: 4; /* Limite à 4 lignes */-webkit-box-orient: vertical;overflow: hidden;transition: all 0.3s ease;}
/* Classe ajoutée par le JS au clic */
.seo-avis-texte.seo-tronque.deploye {-webkit-line-clamp: unset; /* Fait sauter la limite */}
/* Le bouton Lire la suite */
.seo-lire-suite {background: transparent;border: none;color: #1a73e8; /* Bleu Google */ padding: 0;margin-top: 8px;font-size: 14px;font-weight: 500;cursor: pointer;text-decoration: none;}
.seo-lire-suite:hover {text-decoration: underline;}
/* Cartouche Avis Google */
.seo-google-badge {display: inline-flex;align-items: center;background: #ffffff;padding: 16px 24px;border-radius: 16px; /* Coins arrondis comme sur l'image */box-shadow: 0 4px 12px rgba(0,0,0,0.06); /* Ombre douce */ text-decoration: none !important; /* Retire le soulignement du lien */color: #000000;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;transition: transform 0.2s ease, box-shadow 0.2s ease;border: 1px solid #f0f0f0;}
.seo-google-badge:hover {transform: translateY(-2px);box-shadow: 0 6px 16px rgba(0,0,0,0.1);}
.sgb-logo {margin-right: 16px;display: flex;align-items: center;}
.sgb-content {display: flex;flex-direction: column;}
.sgb-title {font-size: 18px;font-weight: 700;line-height: 1.2;margin-bottom: 4px;}
.sgb-rating-row {display: flex;align-items: center;margin-bottom: 2px;}
.sgb-note {font-size: 18px;font-weight: 700;margin-right: 8px;}
.sgb-stars {color: #fbbc04; /* Jaune Google officiel */font-size: 20px;letter-spacing: 2px;line-height: 1;}
.sgb-count {font-size: 13px;color: #70757a; /* Gris Google officiel */}

/* Footer des avis & CTA */
.seo-avis-footer {display: flex;justify-content: center;margin-top: 24px;width: 100%;}
.seo-cta-tous-avis {display: inline-flex;align-items: center;gap: 8px;background-color: #f8f9fa; /* Gris très léger style Google */color: #1a73e8; /* Bleu Google */font-weight: 600;font-size: 15px;padding: 12px 24px;border-radius: 24px; /* Bouton "pilule" moderne */border: 1px solid #dadce0;text-decoration: none !important;transition: all 0.2s ease;}
.seo-cta-tous-avis:hover {background-color: #f1f3f4;color: #174ea6;border-color: #d2e3fc;transform: translateY(-1px);box-shadow: 0 1px 3px rgba(60,64,67,0.1);}
/* Composant Vraies Étoiles (Fractionnelles) */
.seo-stars-wrapper {display: inline-block;position: relative;font-size: 22px; /* Taille des étoiles à ajuster selon ton design */line-height: 1;font-family: Arial, sans-serif; /* Police standard pour s'assurer que l'étoile ★ s'affiche parfaitement */letter-spacing: 2px; /* Espace entre les étoiles */}
/* Les étoiles grises (Le fond) */
.seo-stars-bg {color: #e0e0e0;}
/* Les étoiles jaunes (Le remplissage) */
.seo-stars-fill {color: #fbbc04; /* Jaune officiel Google */ position: absolute;top: 0;left: 0;white-space: nowrap;overflow: hidden; /* C'est ça qui coupe l'étoile à la décimale près ! */}
/* Composant Téléphone Click-to-Call */
.seo-telephone-link { background-color:#5555; width:100% !important; display:flex; color:#fff; align-items:center; justify-content:center; padding:0.8vw 1vw; font-size:0.9vw; font-family:inter; font-weight:500; letter-spacing:0.1vw; border-radius:0.5vw }
.seo-telephone-link:hover {background-color: #444444;transform: translateY(-1px); transition: all 0.3s; color: #fff}
.seo-tel-icon {margin-right: 8px;opacity: 0.9;}
.seo-services-cartouche {justify-content: end;}
.seo-services-cartouche .elementor-icon,.seo-liens-cartouche .elementor-icon{font-size: 1vw; color: #000}
.seo-services-cartouche .elementor-icon-box-content,.seo-liens-cartouche .elementor-icon-box-content{display: none; position: absolute;}
.elementor-widget-icon-box:hover .elementor-icon-box-content{display: block; position: absolute; width: max-content; left: 50%; transform: translateX(-50%); margin-top: -2.5vw; z-index: 1000;}
.elementor-icon-box-content h3{font-size: 0.8vw; box-shadow: 0 0 0.3vw rgba(0, 0, 0, 0.3); padding:0 0.5vw; border-radius: 0.3vw;color: #000; background-color: #fff; margin: 0;}
.elementor-icon-box-content a{color: #000}
/* Composant Bouton de Réservation */
.seo-reservation-link {display: inline-flex;align-items: center;background-color: #1a73e8; /* Bleu action fort */color: #ffffff !important; /* Texte en blanc forcé */font-weight: 600;font-size: 15px;text-decoration: none !important;padding: 8px 16px;border-radius: 20px;transition: all 0.2s ease;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;border: 1px solid #1a73e8;}
.seo-reservation-link:hover {background-color: #1557b0; /* Bleu plus foncé au survol */border-color: #1557b0;box-shadow: 0 4px 6px rgba(26, 115, 232, 0.2);}
.seo-resa-icon {margin-right: 8px;}
/* Bouton Principal - Carte Restaurant */
.linkUnRestaurant {display: inline-flex;align-items: center;justify-content: center;background-color: #222222; /* Noir très sombre, très premium */color: #ffffff !important;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font-size: 15px;font-weight: 600;text-decoration: none !important;padding: 12px 28px;border-radius: 30px; /* Bords parfaitement arrondis */border: 2px solid #222222;transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);}
/* L'effet au survol : le bouton devient blanc, le texte noir, et il se soulève légèrement */
.linkUnRestaurant:hover {background-color: #ffffff;color: #222222 !important;transform: translateY(-3px); /* Soulèvement 3D */box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1); /* Ombre plus diffuse */}
/* Petit hack UX : si tu veux ajouter une flèche automatiquement après ton texte */
.linkUnRestaurant::after {content: '→';margin-left: 8px;font-size: 16px;transition: transform 0.3s ease;}
/* La flèche se décale vers la droite au survol */
.linkUnRestaurant:hover::after {transform: translateX(4px);}
.titre,.titre *,.avisListe {width: max-content}
/* 1. Le conteneur principal */
.blocImage {position: relative;overflow: hidden; /* Empêche l'image de déborder pendant le zoom */border-radius: 12px; /* Ajoute un bel arrondi (à ajuster ou supprimer selon ton design Elementor) */}
/* 2. On force les conteneurs internes d'Elementor à prendre toute la hauteur */
.blocImage .elementor-widget-theme-post-featured-image,
.blocImage .elementor-widget-container {height: 100%;width: 100%;margin: 0;padding: 0;}
/* 3. On transforme le lien en bloc complet */
.blocImage a {display: block;height: 100%;width: 100%;}
/* 4. L'image en mode Cover (La Magie) */
.blocImage img {width: 100%;height: 100%;object-fit: cover; /* Remplit l'espace sans déformer (coupe les bords si besoin) */object-position: center; /* Centre le point d'intérêt de l'image */transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); /* Animation fluide */}
/* 5. Effet Premium : Léger zoom de l'image au survol de la carte */
.blocImage:hover img {transform: scale(1.05);}
#iconBufle,#iconBufle *{color: #fff !important; fill: #ffffff}
/* 1. On masque le débordement sur le widget parent pour l'effet de zoom */
.mediaSlideRestoHome .elementor-widget-theme-post-featured-image {overflow: hidden;border-radius: 4px; /* Optionnel : très léger arrondi */}
/* 2. On force l'image au ratio vertical (3/4) et on la passe en cover */
.mediaSlideRestoHome img {width: 100% !important;height: auto !important;aspect-ratio: 3 / 4; /* Ratio vertical classique (ou 4/5 selon ton goût) */object-fit: cover !important;object-position: center center;transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1); /* Transition ultra douce */will-change: transform; /* Opti perf pour le rendu matériel */}
/* 3. L'effet de survol déclenché au niveau du container parent */
.mediaSlideRestoHome:hover img {transform: scale(1.05);}
#newsFooter button{font-family: "Inter", Sans-serif;font-weight: 700; text-transform: uppercase;letter-spacing: 0.2vw; padding: 1vw 2vw 1vw 2vw; background-color: var(--e-global-color-accent) !important; height: auto; width: 100%; font-size: 0.7vw}
#newsFooter input{ background-color:rgba(255, 255, 255, 0.1); color: var(--e-global-color-ca58fbc) !important; border-color: var(--e-global-color-ca58fbc); height: auto; padding: 0.7vw; border-radius: 0.3vw}
#newsFooter input::placeholder{color: var(--e-global-color-ca58fbc); opacity: 1;}
#newsFooter .wpforms-container{margin: 0}

.glouton-popup .leaflet-popup-content-wrapper { padding: 0.5vw !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
}
body > header #iconBullScroll{display: none;}

body.scroll > header *{ color:#000 !important; border-color:#000 !important }
body.scroll > header .indepHeader p span{color: var(--e-global-color-accent) !important;}
body.scroll > header>div{background: #fff !important; background-image: none !important;}
body.scroll > header #iconBullScroll{display: flex;}
body.scroll > header #iconBufle{display: none;}
#distinction ul, #distinction li{list-style: none; padding: 0;}
#capacite{background-color: rgba(0, 0, 0, 0.05); justify-content: center; padding: 1vw; border-radius: 0.3vw}
#capacite ul{display: flex; padding:0 0.3vw}
#capacite li{display: flex; margin-right: 0.5vw}
#capacite.elementor-widget-icon-box:hover .elementor-icon-box-content{display: flex !important; position: relative; left: auto; transform: none; margin: 0}
#capacite .elementor-icon-box-content,#capacite .elementor-icon-box-wrapper{display: flex; align-items: center;}
#capacite .elementor-icon-box-content h3{box-shadow: none; padding: 0; margin-right: 0 !important; background-color: transparent;}
#capacite .elementor-icon-box-icon{margin-right: 0.5vw}

#horaires li,#horaires ul{list-style: none; padding:0.3vw 0 ; font-family: inter}
#horaires li::marker{display: none !important;}
#horaires li{display: flex; justify-content: space-between;}
#horaires li.jour-actuel{color: var( --e-global-color-accent ) !important; font-weight: 800}

.liste-geoloc ul {
    list-style: none !important;
    padding-left: 0 !important;
}

.liste-geoloc li {
    position: relative;
    padding-left: 2vw;
    color: #4B5563;
    line-height: 1.4;
}

/* Remplacement de la puce par le SVG en pseudo-élément */
.liste-geoloc li::before {
    content: '';
    position: absolute;
    left: 0;
    width: 1vw;
    height: 1vw;
    background-color: #D97706; /* Couleur de l'icône (Ambre) */
    
    /* Le SVG encodé en mask */
    -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"></path><circle cx="12" cy="10" r="3"></circle></svg>') no-repeat center / contain;
    mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"></path><circle cx="12" cy="10" r="3"></circle></svg>') no-repeat center / contain;
}

#services .seo-services-cartouche .elementor-icon-box-content,#services .seo-liens-cartouche .elementor-icon-box-content{display: flex; position: relative; background-color: transparent; box-shadow: none !important; color: #000 !important}
#services .seo-services-cartouche .elementor-icon-box-content h3,#services .seo-liens-cartouche .elementor-icon-box-content h3{ box-shadow: none !important; color: #000 !important}
#services .elementor-icon-box-wrapper{flex-direction: row;}
#services .elementor-widget-icon-box{width: 45% !important}
#services .seo-services-cartouche{justify-content: start; gap: 0}
#services svg{fill: var(--e-global-color-accent);}
#services .elementor-widget-icon-box:hover .elementor-icon-box-content{left: auto; margin-top: 0; transform: none;}


/* --------------------------------------------------------------------------
   GLOUTON : UI DES FACETTES AJAX (Filtres de tri)
-------------------------------------------------------------------------- */

/* Conteneur global */
#glouton-facettes-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1vw;
    margin-bottom:0;
}

/* Le séparateur vertical (masqué sur mobile) */
#glouton-facettes-wrapper .w-px {
    width: 1px;
    height: 1vw;
    background-color: #E5E7EB;}

@media (max-width: 768px) {
    #glouton-facettes-wrapper .w-px { display: none; }
}

/* Style de base des boutons (Pilules Premium) */
.glouton-ajax-filter {
    display: inline-flex;
    align-items: center;
    gap: 1vw;
    padding: 0.5vw 1vw;
    border-radius: 50px;
    font-family: inherit;
    font-size: 0.7vw;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-decoration: none;
    background-color: #FFFFFF;
    color: #4B5563;
    border: 1px solid #E5E7EB;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    cursor: pointer;
}

/* Survol (Hover) : Effet de soulèvement */
.glouton-ajax-filter:hover {
    border-color: #111111;
    color: #111111;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0,0,0,0.08);
}

/* Alignement des icônes SVG */
.glouton-ajax-filter svg {
    width: 1vw;
    height: 1vw;
    flex-shrink: 0;
}

/* --- ÉTATS ACTIFS --- 
   (On utilise des sélecteurs d'attributs pour intercepter les classes Tailwind du PHP) */

/* État Actif : Tri (Noir) */
.glouton-ajax-filter[class*="bg-[#111]"] {
    background-color: #111111 !important;
    color: #FFFFFF !important;
    border-color: #111111 !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

/* État Actif : Ouvert Aujourd'hui (Vert) */
.glouton-ajax-filter[class*="bg-green-600"] {
    background-color: #16A34A !important;
    color: #FFFFFF !important;
    border-color: #16A34A !important;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.2);
}

/* --- ANIMATION DU POINT (Dot Ouvert) --- */
.glouton-ajax-filter span.rounded-full {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.glouton-ajax-filter span[class*="bg-green-500"] {
    background-color: #22C55E; /* Point vert quand inactif */
}
.glouton-ajax-filter span[class*="bg-white"] {
    background-color: #FFFFFF; /* Point blanc quand actif */
}

/* Pulsation Radar */
@keyframes gloutonPulse {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(255, 255, 255, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}
.glouton-ajax-filter span[class*="animate-pulse"] {
    animation: gloutonPulse 2s infinite;
}
#vueGrille,#boxMaps{display:none;}
#vueGrille,#vueCarte{cursor: pointer;}
.wp-singular #glouton-map-container{height: 80vh !important}
.openToday{font-size: 0.8vw; font-family: inter; font-weight: 800; padding: 0}
.adresse span{text-align: left}
.glouton-view-map #filtresBase{opacity: 0}
.glouton-view-map #filtresBase *{cursor: default;}
.distinctions ul{padding:0 1vw; margin-bottom: 0.5vw}

