/* =========================================================
AAKD — HEADER ULTRA COMPACT
À coller EN DERNIER dans le existant (il gagne par cascade).
Ne touche pas au JS, ni au hero, ni au contenu du méga-menu.
Hauteurs cibles : 44px desktop / 40px tablette / 36px mobile
========================================================= */
:root{ --aakd-hd:44px; }
@media(max-width:1024px){ :root{ --aakd-hd:40px; } }
@media(max-width:768px) { :root{ --aakd-hd:36px; } }
/* ---------- 1. La barre ---------- */
header,
.elementor-location-header{
min-height:0 !important;
padding:0 !important;
}
.header-nav{
display:flex !important;
flex-wrap:nowrap !important;
align-items:center !important;
height:var(--aakd-hd) !important;
min-height:var(--aakd-hd) !important;
padding:0 14px !important;
gap:10px !important;
}
.header-nav > *{ min-width:0; }
/* ---------- 2. Titre ---------- */
.site-title{
flex:0 1 auto !important;
min-width:0 !important;
max-width:280px !important;
padding:0 !important;
margin:0 !important;
}
.site-title h5{
margin:0 !important;
font-size:11.5px !important;
line-height:1.05 !important;
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
}
/* ---------- 3. Recherche ---------- */
.gd-header-search{
flex:1 1 auto !important;
min-width:0 !important;
margin:0 !important;
gap:6px !important;
justify-content:center !important;
}
.aakd-search-wrapper{
flex:1 1 auto !important;
min-width:0 !important;
width:auto !important;
max-width:460px !important;
height:30px !important;
padding:0 8px !important;
gap:6px !important;
border-radius:999px !important;
}
#aakd-city-input{
height:28px !important;
padding:0 4px !important;
font-size:14px !important;
line-height:28px !important;
}
#aakd-voice-btn,
.geodir_submit_search,
.geodir_submit_search2,
.aakd-search-wrapper button{
width:24px !important; min-width:24px !important;
height:24px !important; min-height:24px !important;
padding:0 !important; margin:0 !important;
font-size:12px !important;
line-height:1 !important;
}
/* ---------- 4. Boutons / pastilles ---------- */
.header-nav > a[href="/blog/"],
.header-nav > a[href="/login/"],
.header-nav > a[href="/faire-son-projet/"],
#menuBtn{
height:26px !important;
padding:0 10px !important;
font-size:12px !important;
line-height:1 !important;
border-radius:999px !important;
}
.header-nav > a.mobile-login,
.mobile-top a.mobile-login{
min-width:auto !important;
padding:0 10px !important;
font-size:12px !important;
}
.menu-toggle{
flex:0 0 28px !important;
width:28px !important; min-width:28px !important;
height:28px !important;
padding:0 !important; margin:0 !important;
font-size:22px !important;
line-height:1 !important;
}
/* ---------- 5. Méga-menu desktop calé sous la barre ---------- */
@media(min-width:1025px){
#megaMenu{
top:calc(var(--aakd-hd) + 6px) !important;
max-height:calc(100vh - var(--aakd-hd) - 24px) !important;
padding:24px !important;
}
}
/* ---------- 6. Tablette ---------- */
@media(max-width:1024px){
.elementor-location-header{ padding:0 !important; }
.header-nav{ padding:0 8px !important; gap:6px !important; }
.site-title{ max-width:110px !important; }
.site-title h5{
font-size:9.5px !important;
-webkit-line-clamp:1;
}
.aakd-search-wrapper{
height:28px !important;
max-width:none !important;
padding:0 6px !important;
gap:4px !important;
}
/* 16px = pas de zoom auto iOS au focus */
#aakd-city-input{
height:26px !important;
font-size:16px !important;
line-height:26px !important;
padding:0 2px !important;
}
#aakd-voice-btn,
.geodir_submit_search2,
.aakd-search-wrapper button{
width:22px !important; min-width:22px !important;
height:22px !important; min-height:22px !important;
font-size:11px !important;
}
.menu-toggle{
flex:0 0 26px !important;
width:26px !important; min-width:26px !important;
height:26px !important;
font-size:20px !important;
}
/* le tiroir démarre sous la barre, pas derrière */
#megaMenu,
.mega-dropdown{
top:var(--aakd-hd) !important;
height:calc(100dvh - var(--aakd-hd)) !important;
max-height:calc(100dvh - var(--aakd-hd)) !important;
padding:16px 20px 90px !important;
}
.menu-overlay{ top:var(--aakd-hd) !important; }
.mobile-top{ padding:0 0 12px !important; }
.mobile-top a{ padding:8px !important; font-size:14px !important; }
.mega-column{ margin-bottom:14px !important; }
.mega-column h4{ margin:12px 0 6px !important; font-size:13px !important; }
.mega-dropdown .mega-column a{ padding:7px 0 !important; font-size:14px !important; }
.submenu a{ padding:6px 0 !important; font-size:13px !important; }
}
/* ---------- 7. Mobile ---------- */
@media(max-width:768px){
.header-nav{ padding:0 6px !important; gap:5px !important; }
.site-title{ max-width:92px !important; }
.site-title h5{ font-size:9px !important; }
.aakd-search-wrapper{ height:26px !important; }
#aakd-city-input{ height:24px !important; line-height:24px !important; }
}
/* ---------- 8. Fil d'Ariane compact ---------- */
.aakd-breadcrumb-toggle{ margin:0 !important; padding:0 !important; }
.aakd-breadcrumb-toggle summary{
height:18px !important;
padding:0 8px !important;
margin:2px 0 !important;
font-size:10px !important;
line-height:18px !important;
}
.aakd-breadcrumb-inner{
margin:0 0 4px !important;
padding:3px 8px !important;
font-size:10.5px !important;
line-height:1.25 !important;
}
/* Login plus visible */
.header-nav > a.mobile-login,
.mobile-top a.mobile-login{
font-size:12px !important;
font-weight:500 !important;
min-width:48px !important;
padding:0 10px !important;
}
/* Mobile menu */
.mobile-top a.mobile-login{
padding:12px 14px !important;
}
@media(min-width:1025px){
.site-title{
min-width:400px;
max-width:440px;
}
.site-title h5{
font-size:14px;
line-height:1.2;
display:-webkit-box;
-webkit-line-clamp:3;
-webkit-box-orient:vertical;
overflow:hidden;
text-overflow:ellipsis;
}
}
@media(min-width:1025px){
#particle-canvas{
transform:translateY(-20px);
}
}
@media(max-width:1024px){
.elementor-location-header{
position:sticky !important;
top:0;
z-index:999999;
padding:6px 10px !important;
min-height:auto !important;
}
.header-nav{
min-height:40px;
padding:0;
}
.site-title h5{
font-size:12px;
line-height:1.1;
margin:0;
}
.header-nav,
.elementor-container,
.elementor-widget-wrap{
padding-top:5px !important;
padding-bottom:5px !important;
}
}
@media(max-width:1024px){
.gd-header-search{
position:relative;
display:flex;
align-items:center;
justify-content:flex-end;
z-index:999999;
}
.search-toggle{
font-size:22px;
padding:6px;
}
.gd-header-search.active {
opacity:1 !important;
pointer-events:auto !important;
transform:translateY(0) !important;
}
#aakd-city-input{
flex:1;
width:100%;
min-width:0;
font-size:16px;
padding:10px;
background:transparent;
color:#fff;
border:none;
outline:none;
}
.gd-header-search.active .aakd-search-wrapper{
opacity:1;
pointer-events:auto;
transform:translateY(0);
}
#aakd-city-input{
flex:1;
width:100%;
min-width:0;
font-size:16px;
padding:10px;
background:#0f1430;
color:#fff;
border:none;
outline:none;
}
.aakd-search-wrapper button{
width:36px;
height:36px;
flex-shrink:0;
display:flex;
align-items:center;
justify-content:center;
}
}
#particle-canvas{
position:absolute;
top:0;
left:0;
width:100%;
height:50%;
z-index:1;
pointer-events:none;
}
@media(max-width:768px){
.elementor-location-header{
position:sticky !important;
top:0;
z-index:999999;
}
body.menu-open{
overflow:auto !important;
}
}
@media(max-width:1024px){
#aakd-city-input{
flex:1;
min-width:0;
width:100%;
font-size:13px;
}
}
.elementor-11959 .elementor-element.elementor-element-d1d4771 > .elementor-element-populated{
z-index: auto !important;
}
.hero-wrapper{
display:flex;
align-items:center;
justify-content:center;
gap:70px;
max-width:1200px;
margin:40px auto;
padding:30px 20px;
min-height:260px;
}
#hero-3d{
position:relative;
width:460px;
height:230px;
border-radius:14px;
overflow:hidden;
border:4px solid #0a0f2a;
box-shadow:0 25px 70px rgba(0,0,0,.55);
flex-shrink:0;
}
.hero-text{
max-width:420px;
}
.hero-text h1{
font-size:52px;
letter-spacing:3px;
margin-bottom:10px;
line-height:1.1;
}
.hero-text p{
font-size:18px;
color:#cbd5e1;
}
@media (max-width:768px){
.hero-wrapper{
flex-direction:column;
text-align:center;
gap:20px;
}
.hero-text h1{
font-size:32px;
}
#hero-3d{
width:220px;
height:130px;
}
}
#hero-3d::before{
content:"";
position:absolute;
inset:0;
background:repeating-linear-gradient(
0deg,
rgba(255,255,255,.05) 0px,
rgba(255,255,255,.05) 1px,
transparent 1px,
transparent 3px
);
pointer-events:none;
z-index:3;
}
#hero-3d::after{
content:"";
position:absolute;
inset:0;
background:url("https://www.transparenttextures.com/patterns/noise.png");
opacity:.15;
mix-blend-mode:screen;
pointer-events:none;
z-index:3;
}
#particle-canvas{
position:absolute;
inset:0;
width:100%;
height:100%;
z-index:1;
}
section{
margin:0;
padding:0;
}
.hero-text{
position:relative;
z-index:4;
text-align:center;
}
.hero-text h1{
letter-spacing:4px;
font-weight:700;
color:white;
font-family:'Inter',sans-serif;
}
section{
position:relative;
}
section > *{
position:relative;
z-index:2;
}
.header-nav button{
color:#ffffff !important;
}
.mobile-top{
display:none;
}
.menu-toggle.active{
font-size:26px;
color:#fff;
}
.aakd-search-wrapper input.snear{
background:#0f1430 !important;
color:#ffffff !important;
border:none !important;
}
.aakd-search-wrapper input.snear::placeholder{
color:#9BA3B4 !important;
}
.gd-header-search{
flex:1;
display:flex;
justify-content:center;
margin:0 20px;
}
.aakd-search-wrapper{
display:flex;
align-items:center;
width:520px;
max-width:100%;
background:rgba(255,255,255,0.08);
border-radius:18px;
padding:6px 12px;
gap:10px;
}
.aakd-search-wrapper button{
background:none;
border:none;
cursor:pointer;
font-size:17px;
}
.elementor-location-header{
position:relative;
z-index:6000;
}
.header-nav{
display:flex;
align-items:center;
padding-left:40px;
gap:20px;
font-family:'Inter',sans-serif;
position:relative;
z-index:1001;
}
.header-nav a{
color:#9BA3B4;
text-decoration:none;
font-size:14px;
font-weight:500;
padding:12px 0;
transition:.25s ease;
}
.header-nav a:hover{
color:#fff;
}
.mega-menu{
position:relative;
z-index:10000;
}
.search-toggle{
color:#ffffff;
font-weight:600;
background:rgba(255,255,255,0.06);
padding:6px 12px;
border-radius:10px;
}
.mega-dropdown{
position:absolute;
left:10%;
top:70%;
transform:translateX(-50%) translateY(20px);
width:min(600px, calc(100vw - 120px));
max-height:75vh;
overflow:auto;
padding:20px;
border-radius:30px;
background:
radial-gradient(circle at 20% 20%, rgba(124,92,255,.18), transparent 40%),
linear-gradient(145deg,#0f1430,#070a18);
backdrop-filter:blur(25px);
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:60px;
box-shadow:
0 80px 140px rgba(0,0,0,.75),
0 0 0 1px rgba(255,255,255,.05) inset;
opacity:0;
visibility:hidden;
transition:.35s ease;
z-index:6001;
}
.mega-column h4{
font-size:13px;
margin-bottom:14px;
}
.mega-column a{
font-size:16px;
padding:10px 0;
color:#ffffff;
}
.mega-dropdown hr{
margin:18px 0;
}
@keyframes floatMenu{
from { transform:translateX(-50%) translateY(30px); opacity:0; }
to { transform:translateX(-50%) translateY(0); opacity:1; }
}
@media(min-width:1025px){
.mega-dropdown{
position:absolute;
top:100%;
left:50%;
transform:translateX(-50%) translateY(20px);
width:min(1100px, 90vw);
max-height:80vh;
padding:40px;
border-radius:30px;
}
.mega-menu:hover .mega-dropdown{
opacity:1;
visibility:visible;
transform:translateX(-50%) translateY(0);
}
.mega-dropdown{
overflow:visible;
}
.has-sub{
position:relative;
}
.mega-column > .has-sub > .submenu{
position:absolute;
top:100%;
left:0;
margin-top:10px;
min-width:260px;
padding:20px;
border-radius:14px;
background:linear-gradient(145deg,#11142b,#0c1024);
box-shadow:0 20px 60px rgba(0,0,0,.6);
opacity:0;
visibility:hidden;
transform:translateY(10px);
transition:.25s ease;
z-index:7000;
}
.mega-column > .has-sub:hover > .submenu{
opacity:1;
visibility:visible;
transform:translateY(0);
}
}
.elementor-location-header,
header {
position:relative;
z-index:10000;
overflow:visible !important;
}
.gd-header-search,
.aakd-search-wrapper {
position:relative;
z-index:10001;
}
.mega-dropdown {
z-index:10002;
}
.hero-wrapper,
section {
position:relative;
z-index:1;
}
html.menu-open{
overflow-x:hidden !important;
overflow-y:auto !important;
}
.menu-toggle{
display:none;
color:#fff !important;
}
@media(max-width:1024px){
.mobile-top{
position:sticky;
top:0;
display:flex;
justify-content:space-between;
align-items:center;
padding:10px 0 20px;
background:#0d1125;
z-index:10;
}
.mobile-top a{
flex:1;
text-align:center;
font-size:15px;
font-weight:600;
color:#fff;
text-decoration:none;
padding:12px;
border-radius:12px;
background:rgba(255,255,255,0.05);
transition:.25s ease;
}
.mobile-top a:hover{
background:rgba(124,92,255,0.25);
}
.mobile-top a + a{
margin-left:12px;
}
.mobile-divider{
height:1px;
background:rgba(255,255,255,0.08);
margin-bottom:20px;
}
.mobile-scroll{
overflow-y:auto;
max-height:calc(100vh - 110px);
padding-bottom:40px;
}
.header-nav{
justify-content:space-between;
}
.header-nav > a{
display:none;
}
.header-nav > form{
display:flex;
}
.header-nav > .mega-menu > a{
display:none;
}
.menu-toggle{
display:block;
font-size:28px;
cursor:pointer;
background:none;
border:none;
color:#fff;
z-index:100001;
}
.mega-dropdown{
position:fixed;
top:0;
right:-320px;
width:320px;
max-width:85vw;
height:100vh;
padding:110px 28px 60px;
background:#0d1125;
overflow-y:auto;
overflow-x:hidden;
border-radius:0;
transition:right .35s ease;
z-index:100000;
box-shadow:-20px 0 60px rgba(0,0,0,.6);
left:auto;
transform:none;
opacity:1;
visibility:visible;
}
.mega-dropdown.active{
right:0;
}
.mega-column{ margin-bottom:25px; }
.submenu{
position:static;
display:none;
opacity:1;
visibility:visible;
background:none;
padding-left:15px;
width:100%;
}
.has-sub.active .submenu{
display:block;
}
}
@media(max-width:1024px){
.gd-header-search{
flex:none;
margin:0;
}
.gd-header-search.active .aakd-search-wrapper{
max-width:100%;
opacity:1;
}
}
.menu-overlay{
position:fixed;
inset:0;
background:rgba(0,0,0,.55);
opacity:0;
visibility:hidden;
transition:.3s;
z-index:99999;
}
.menu-overlay.active{
opacity:1;
}
body.menu-open{
overflow-x:hidden !important;
overflow-y:auto !important;
height:auto !important;
position:static !important;
}
@media(max-width:1024px){
.elementor-location-header{
background:
radial-gradient(circle at 20% 20%, rgba(124,92,255,.18), transparent 40%),
linear-gradient(145deg,#0f1430,#070a18);
}
.header-nav{
background:transparent;
}
}
.gd-header-search{
display:flex;
align-items:center;
position:relative;
}
.search-toggle{
background:none;
border:none;
color:#fff;
font-size:18px;
cursor:pointer;
}
.gd-header-search.active .aakd-search-wrapper{
max-width:520px;
opacity:1;
padding:6px 12px;
}
.aakd-search-wrapper button{
background:none;
border:none;
cursor:pointer;
color:#fff;
}
@media(max-width:1024px){
.gd-header-search.active .aakd-search-wrapper{
max-width:100%;
}
#aakd-voice-btn{
display:block;
font-size:18px;
}
.mobile-top a{
display:block;
font-size:16px;
color:#ffffff !important;
text-decoration:none;
font-weight:600;
background:rgba(255,255,255,0.06);
padding:12px;
border-radius:12px;
}
.mega-dropdown .mega-column a{
display:block;
font-size:16px;
color:#ffffff;
text-decoration:none;
padding:10px 0;
font-weight:500;
border-bottom:1px solid rgba(255,255,255,0.05);
}
.mega-dropdown .mega-column a:hover{
color:#7C5CFF;
}
.mega-column h4{
font-size:15px;
color:#7C5CFF;
margin-top:20px;
margin-bottom:10px;
font-weight:600;
}
.submenu a{
font-size:15px;
padding:8px 0;
color:#d1d5db;
}
}
.gd-suggestion-dropdown{
max-width:520px;
border-radius:12px;
}
.aakd-search-wrapper{
position:relative;
}
.gd-suggestion-dropdown{
position:absolute !important;
top:100% !important;
left:0;
width:100%;
margin-top:8px;
max-width:520px;
border-radius:12px;
box-shadow:0 20px 60px rgba(0,0,0,.45);
z-index:999999;
overflow:hidden;
}
.gd-suggestion-dropdown li a[href*="my-location"]{
display:none !important;
}
.gd-suggestion-dropdown .near-location{
display:none !important;
}
@media(max-width:768px){
#hero-3d{
width:240px;
height:150px;
margin:auto;
}
#particle-canvas{
transform:scale(0.8);
}
}
@media(max-width:768px){
.hero-wrapper{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
gap:18px;
padding:10px;
min-height:160px;
margin:10px auto;
}
#hero-3d{
width:240px;
height:150px;
margin:auto;
border-width:3px;
}
#particle-canvas{
transform:scale(.85);
transform-origin:center;
}
.hero-text{
max-width:100%;
text-align:center;
}
.hero-text h1{
font-size:28px;
letter-spacing:2px;
line-height:1.2;
}
.hero-text p{
font-size:16px;
}
section{
margin:0;
padding:0;
}
}
@media(max-width:768px){
.hero-wrapper{
flex-direction:column;
align-items:center;
justify-content:center;
gap:20px;
padding:10px;
margin:10px auto;
min-height:160px;
}
#hero-3d{
width:260px;
height:140px;
margin:auto;
border-width:3px;
}
#particle-canvas{
position:absolute;
inset:0;
width:100%;
height:100%;
z-index:1;
pointer-events:none;
}
.hero-text{
max-width:100%;
text-align:center;
}
.hero-text h1{
font-size:28px;
letter-spacing:2px;
line-height:1.2;
}
.hero-text p{
font-size:16px;
}
}
@media (max-width:768px){
#hero-3d{
height:180px;
width:240px;
margin:auto;
}
}
#hero-3d{
display:flex;
align-items:center;
justify-content:center;
}
@media (min-width:1025px){
#hero-3d{
margin-top:100px;
}
}
@media (max-width:768px){
#hero-3d::before,
#hero-3d::after{
display:none;
}
}
header,
.elementor-location-header,
.elementor-section,
.elementor-container,
.elementor-widget-wrap {
overflow:visible !important;
transform:none !important;
}
#megaMenu{
position:fixed !important;
top:90px;
left:50%;
transform:translateX(-50%) !important;
width:min(1100px, 92vw);
max-height:80vh;
z-index:9999999 !important;
opacity:0;
visibility:hidden;
}
.mega-menu:hover #megaMenu,
#megaMenu.active{
opacity:1;
visibility:visible;
}
.hero-wrapper,
#hero-3d,
#particle-canvas{
z-index:1 !important;
position:relative;
}
body{
overflow-x:hidden;
}
.elementor-11959 .elementor-element.elementor-element-d1d4771 > .elementor-element-populated{
z-index:1 !important;
}
#megaMenu,
.mega-dropdown {
z-index:99999999 !important;
pointer-events:auto !important;
}
.menu-overlay {
pointer-events:none;
}
.menu-overlay.active {
pointer-events:auto;
}
@media(min-width:1025px){
.mega-menu{
position:relative;
z-index:99999;
}
}
@media(max-width:1024px){
.gd-header-search{
justify-content:flex-end;
}
.aakd-search-wrapper button{
font-size:14px;
padding:4px;
width:28px;
height:28px;
display:flex;
align-items:center;
justify-content:center;
}
.geodir_submit_search{
width:28px !important;
height:28px !important;
}
.search-toggle{
font-size:20px;
padding:4px 8px;
}
.gd-header-search{
display:flex;
align-items:center;
justify-content:flex-start;
width:100%;
gap:8px;
}
.aakd-search-wrapper{
order:2;
flex:1;
width:auto;
max-width:none;
margin:0;
}
.search-toggle{
order:3;
flex-shrink:0;
margin-left:6px;
}
#aakd-city-input{
flex:1;
width:100%;
min-width:0;
font-size:16px;
padding:12px 10px;
}
.aakd-search-wrapper button{
width:32px;
height:32px;
}
}
@media(max-width:1024px){
.search-toggle{
display:none;
}
}
.geodir_submit_search2{
width:28px !important;
height:28px !important;
display:flex;
align-items:center;
justify-content:center;
padding:0 !important;
margin:0 !important;
font-size:14px !important;
line-height:1;
border:0 !important;
background:transparent !important;
flex-shrink:0;
}
/* ================= PARTICULES ================= */
#particle-canvas{
position:absolute;
top:0;
left:0;
width:100%;
height:55vh;
z-index:1;
pointer-events:none;
}
@media(max-width:768px){
#particle-canvas{
height:32vh;
transform:translateY(-20px) scale(0.85);
transform-origin:center;
}
}
.hero-wrapper{
position:relative;
z-index:2;
display:flex;
align-items:center;
justify-content:center;
gap:60px;
max-width:1200px;
margin:60px auto 40px;
padding:20px;
}
@media(max-width:768px){
.hero-wrapper{
flex-direction:column;
text-align:center;
gap:20px;
margin:10px auto;
padding:10px;
}
}
#hero-3d{
position:relative;
z-index:2;
width:420px;
height:220px;
border-radius:14px;
overflow:hidden;
border:3px solid #0a0f2a;
box-shadow:0 25px 70px rgba(0,0,0,.55);
}
@media(max-width:768px){
#hero-3d{
width:240px;
height:140px;
margin:auto;
}
}
.hero-text{
position:relative;
z-index:2;
max-width:420px;
}
.hero-text h1{
font-size:52px;
line-height:1.1;
letter-spacing:3px;
margin-bottom:10px;
}
.hero-text p{
font-size:18px;
color:#cbd5e1;
}
@media(max-width:768px){
.hero-text h1{
font-size:28px;
letter-spacing:2px;
}
.hero-text p{
font-size:16px;
}
}
/* =========================================================
AAKD — REDUCTION HAUTEUR ZONE NOIRE FINAL
========================================================= */
.elementor-location-header,
header{
min-height:0 !important;
}
.header-nav{
min-height:56px !important;
padding:4px 24px !important;
gap:16px !important;
align-items:center !important;
}
.header-nav > a{
padding-top:0 !important;
padding-bottom:0 !important;
}
.site-title{
min-width:340px !important;
max-width:380px !important;
display:flex !important;
align-items:center !important;
}
.site-title h5{
margin:0 !important;
font-size:13px !important;
line-height:1.05 !important;
}
.aakd-search-wrapper{
padding:4px 10px !important;
border-radius:14px !important;
gap:8px !important;
}
#aakd-city-input{
padding:7px 10px !important;
font-size:15px !important;
}
#aakd-voice-btn,
.geodir_submit_search2{
width:26px !important;
height:26px !important;
min-width:26px !important;
min-height:26px !important;
font-size:13px !important;
}
/* ===== ZONE HERO / NOIR DESKTOP ===== */
/* 🔥 FIX SPHERE : valeur positive */
#particle-canvas{
height:55vh !important;
transform:translateY(-30px) !important;
}
.hero-wrapper{
margin:18px auto 18px !important;
padding:8px 20px !important;
min-height:150px !important;
gap:36px !important;
}
#hero-3d{
margin-top:0 !important;
width:360px !important;
height:170px !important;
}
.hero-text h1{
font-size:42px !important;
margin-bottom:6px !important;
}
.hero-text p{
font-size:16px !important;
margin:0 !important;
}
@media(max-width:1024px){
.elementor-location-header{
padding:3px 8px !important;
min-height:0 !important;
}
.header-nav{
min-height:48px !important;
padding:2px 8px !important;
gap:8px !important;
}
.site-title{
min-width:150px !important;
max-width:175px !important;
}
.site-title h5{
font-size:10.5px !important;
line-height:1.05 !important;
margin:0 !important;
}
.gd-header-search{
margin:0 !important;
}
.aakd-search-wrapper{
padding:3px 7px !important;
gap:5px !important;
border-radius:12px !important;
}
#aakd-city-input{
padding:6px 7px !important;
font-size:14px !important;
}
#aakd-voice-btn,
.geodir_submit_search2,
.aakd-search-wrapper button{
width:24px !important;
height:24px !important;
min-width:24px !important;
min-height:24px !important;
font-size:12px !important;
}
.menu-toggle{
font-size:22px !important;
line-height:1 !important;
}
#particle-canvas{
height:22vh !important;
transform:translateY(-12px) scale(.85) !important;
}
.hero-wrapper{
margin:4px auto 6px !important;
padding:4px 8px !important;
min-height:100px !important;
gap:8px !important;
}
#hero-3d{
width:210px !important;
height:105px !important;
margin-top:0 !important;
}
.hero-text h1{
font-size:23px !important;
line-height:1.1 !important;
margin-bottom:4px !important;
}
.hero-text p{
font-size:13px !important;
margin:0 !important;
}
}
@media(max-width:768px){
.header-nav{
min-height:44px !important;
}
.site-title{
min-width:135px !important;
max-width:155px !important;
}
.site-title h5{
font-size:9.5px !important;
}
#particle-canvas{
height:18vh !important;
}
.hero-wrapper{
min-height:88px !important;
}
#hero-3d{
width:190px !important;
height:92px !important;
}
}
.header-nav > a[href="/blog/"],
.header-nav > a[href="/login/"],
.header-nav > a[href="/faire-son-projet/"]{
display:inline-flex;
align-items:center;
justify-content:center;
height:34px;
padding:0 12px !important;
border-radius:999px;
text-decoration:none !important;
font-size:13px !important;
font-weight:600 !important;
line-height:1 !important;
white-space:nowrap;
transition:.22s ease;
}
.header-nav > a[href="/blog/"],
.header-nav > a[href="/login/"]{
color:#dbeafe !important;
background:rgba(255,255,255,.06);
border:1px solid rgba(255,255,255,.09);
}
.header-nav > a[href="/blog/"]:hover,
.header-nav > a[href="/login/"]:hover{
color:#ffffff !important;
background:rgba(255,255,255,.12);
transform:translateY(-1px);
}
.header-nav > a[href="/faire-son-projet/"]{
color:#0b1024 !important;
background:linear-gradient(135deg,#FFD84A,#FFB800);
border:1px solid rgba(255,216,74,.65);
box-shadow:0 8px 24px rgba(255,216,74,.22);
}
.header-nav > a[href="/faire-son-projet/"]:hover{
color:#0b1024 !important;
transform:translateY(-1px);
box-shadow:0 12px 32px rgba(255,216,74,.34);
}
@media(max-width:1024px){
.header-nav > a[href="/blog/"],
.header-nav > a[href="/login/"],
.header-nav > a[href="/faire-son-projet/"]{
display:none !important;
}
}
#menuBtn{
display:inline-flex !important;
align-items:center;
justify-content:center;
gap:7px;
height:34px;
padding:0 12px !important;
border-radius:999px;
text-decoration:none !important;
font-size:13px !important;
font-weight:600 !important;
line-height:1 !important;
color:#dbeafe !important;
background:rgba(255,255,255,.06);
border:1px solid rgba(255,255,255,.09);
white-space:nowrap;
transition:.22s ease;
}
#menuBtn:hover{
color:#ffffff !important;
background:rgba(255,255,255,.12);
transform:translateY(-1px);
}
#menuBtn::before{
content:"☰";
font-size:14px;
line-height:1;
opacity:.9;
}
@media(max-width:1024px){
#menuBtn{
display:none !important;
}
}
@media(max-width:1024px){
.header-nav{
display:flex !important;
align-items:center !important;
gap:6px !important;
padding:4px 8px !important;
}
.site-title{
flex:0 0 auto !important;
min-width:92px !important;
max-width:115px !important;
}
.site-title h5{
font-size:10px !important;
line-height:1.05 !important;
margin:0 !important;
}
.gd-header-search{
flex:1 1 auto !important;
min-width:0 !important;
width:auto !important;
margin:0 !important;
gap:5px !important;
}
.aakd-search-wrapper{
flex:1 1 auto !important;
min-width:0 !important;
width:auto !important;
max-width:calc(100vw - 190px) !important;
padding:4px 6px !important;
gap:4px !important;
border-radius:14px !important;
}
#aakd-city-input{
flex:1 1 auto !important;
min-width:0 !important;
width:100% !important;
font-size:13px !important;
padding:7px 4px !important;
}
#aakd-voice-btn,
.geodir_submit_search2{
width:26px !important;
height:26px !important;
min-width:26px !important;
padding:0 !important;
font-size:13px !important;
}
.menu-toggle{
flex:0 0 30px !important;
width:30px !important;
min-width:30px !important;
height:30px !important;
font-size:24px !important;
padding:0 !important;
margin:0 !important;
}
}
@media(max-width:1024px){
.gdlm-location-suggestions,
.gd-suggestion-dropdown{
position:fixed !important;
z-index:2147483647 !important;
background:#ffffff !important;
color:#111111 !important;
-webkit-text-fill-color:#111111 !important;
border-radius:12px !important;
border:1px solid rgba(0,0,0,.12) !important;
box-shadow:0 18px 50px rgba(0,0,0,.45) !important;
max-height:230px !important;
overflow-y:auto !important;
overflow-x:hidden !important;
margin:0 !important;
}
.gdlm-location-suggestions *,
.gd-suggestion-dropdown *{
color:#111111 !important;
-webkit-text-fill-color:#111111 !important;
text-shadow:none !important;
}
.gdlm-location-suggestions li,
.gd-suggestion-dropdown li{
background:#ffffff !important;
padding:9px 12px !important;
font-size:14px !important;
line-height:1.25 !important;
}
.gdlm-location-suggestions li:hover,
.gd-suggestion-dropdown li:hover{
background:#f3f4f6 !important;
}
.gdlmls-near li,
.gd-suggestion-dropdown li a[href*="my-location"],
.gd-suggestion-dropdown .near-location{
display:none !important;
}
}
.gdlm-location-suggestions,
.gd-suggestion-dropdown {
position:fixed !important;
z-index:2147483647 !important;
background:#ffffff !important;
color:#111111 !important;
-webkit-text-fill-color:#111111 !important;
border-radius:12px !important;
border:1px solid rgba(0,0,0,0.12) !important;
box-shadow:0 20px 60px rgba(0,0,0,.45) !important;
overflow:hidden !important;
max-height:320px !important;
overflow-y:auto !important;
font-family:inherit !important;
}
.gdlm-location-suggestions *,
.gd-suggestion-dropdown * {
color:#111111 !important;
-webkit-text-fill-color:#111111 !important;
text-shadow:none !important;
}
.gdlm-location-suggestions li,
.gd-suggestion-dropdown li {
background:#ffffff !important;
color:#111111 !important;
-webkit-text-fill-color:#111111 !important;
padding:10px 14px !important;
font-size:15px !important;
line-height:1.35 !important;
cursor:pointer !important;
border-bottom:1px solid rgba(0,0,0,0.06) !important;
}
.gdlm-location-suggestions li a,
.gd-suggestion-dropdown li a {
display:block !important;
color:#111111 !important;
-webkit-text-fill-color:#111111 !important;
text-decoration:none !important;
}
.gdlm-location-suggestions li:last-child,
.gd-suggestion-dropdown li:last-child {
border-bottom:none !important;
}
.gdlm-location-suggestions li:hover,
.gd-suggestion-dropdown li:hover,
.gdlm-location-suggestions li:hover a,
.gd-suggestion-dropdown li:hover a {
background:#f3f4f6 !important;
color:#000000 !important;
-webkit-text-fill-color:#000000 !important;
}
.gdlm-location-suggestions i,
.gd-suggestion-dropdown i {
color:#555555 !important;
-webkit-text-fill-color:#555555 !important;
margin-right:6px !important;
opacity:.75 !important;
}
.gdlmls-near li,
.gd-suggestion-dropdown li a[href*="my-location"],
.gd-suggestion-dropdown .near-location {
display:none !important;
}
.elementor-location-header,
header { overflow:visible !important; }
@media (max-width:768px) {
.gdlm-location-suggestions { font-size:16px; max-height:260px; }
}
/* =========================================================
FIX MOBILE SCROLL ELEMENTOR / MENU AAKD
========================================================= */
@media(max-width:1024px){
html,
body{
overflow-x:hidden !important;
overflow-y:auto !important;
height:auto !important;
min-height:100% !important;
position:static !important;
}
html.menu-open,
body.menu-open{
overflow-x:hidden !important;
overflow-y:auto !important;
height:auto !important;
position:static !important;
}
#megaMenu,
.mega-dropdown{
position:fixed !important;
top:0 !important;
right:-88vw !important;
left:auto !important;
width:88vw !important;
max-width:88vw !important;
height:100dvh !important;
max-height:100dvh !important;
overflow-y:auto !important;
overflow-x:hidden !important;
-webkit-overflow-scrolling:touch !important;
transform:none !important;
}
#megaMenu.active,
.mega-dropdown.active{
right:0 !important;
}
.mobile-scroll{
max-height:none !important;
overflow:visible !important;
padding-bottom:120px !important;
}
.menu-overlay{
position:fixed !important;
inset:0 !important;
height:100dvh !important;
}
}
/* FIL D'ARIANE COMPACT OUVRIR / FERMER */
.aakd-breadcrumb-toggle{
margin:0 !important;
padding:0 !important;
font-size:11px;
line-height:1.2;
color:#B9AFFF;
}
.aakd-breadcrumb-toggle summary{
display:inline-flex;
align-items:center;
cursor:pointer;
margin:0 0 4px !important;
padding:3px 8px;
border-radius:999px;
background:rgba(255,255,255,.05);
border:1px solid rgba(124,92,255,.35);
color:#EDEBFF;
font-size:10.5px;
font-weight:700;
list-style:none;
}
.aakd-breadcrumb-toggle summary::-webkit-details-marker{
display:none;
}
.aakd-breadcrumb-toggle summary::after{
content:" ▾";
font-size:10px;
opacity:.8;
}
.aakd-breadcrumb-toggle[open] summary::after{
content:" ▴";
}
.aakd-breadcrumb-inner{
margin:0 0 6px !important;
padding:4px 8px !important;
border-radius:10px;
background:rgba(255,255,255,.035);
font-size:11px;
line-height:1.35;
color:#EDEBFF;
}
.aakd-breadcrumb-inner .rank-math-breadcrumb,
.aakd-breadcrumb-inner .rank-math-breadcrumb p{
margin:0 !important;
padding:0 !important;
}
.aakd-breadcrumb-inner a{
color:#B9AFFF;
text-decoration:none;
}
.aakd-breadcrumb-inner a:hover{
color:#fff;
}
/* FORCE LISTES SEO FERMEES PAR DEFAUT */
.aakd-region-cities-wrap,
.aakd-footer-seo,
.aakd-footer-cities,
.seo-footer-department{
display:none !important;
}
/* quand shortcode header ouvre */
.aakd-region-cities-wrap[style*="display: block"]{
display:block !important;
}
Pour page pays : régions fermées aussi
.aakd-case-country .aakd-region-nav{
display:none !important;
}
.aakd-case-country .aakd-region-nav[style*="display: flex"]{
display:flex !important;
}
Pour éviter les bulles énormes ouvertes
.aakd-cities-top,
.aakd-region-nav{
gap:4px !important;
margin:4px 0 !important;
padding:0 !important;
}
.aakd-cities-top a,
.aakd-region-nav a,
.seo-footer-department a,
.aakd-footer-cities a{
padding:4px 8px !important;
font-size:10.5px !important;
line-height:1.1 !important;
}
document.addEventListener("DOMContentLoaded", function () {
if (window.AAKD_GD_AUTOCOMPLETE_MOBILE_ONLY) return;
window.AAKD_GD_AUTOCOMPLETE_MOBILE_ONLY = true;
const input = document.getElementById("aakd-city-input");
const wrapper = document.querySelector(".aakd-search-wrapper");
if (!input || !wrapper) return;
function isMobile() { return window.innerWidth <= 1024; }
function getDropdowns() {
return document.querySelectorAll(".gdlm-location-suggestions, .gd-suggestion-dropdown");
}
function resetDesktop() {
getDropdowns().forEach(function (dd) {
dd.style.removeProperty("position");
dd.style.removeProperty("left");
dd.style.removeProperty("top");
dd.style.removeProperty("width");
dd.style.removeProperty("max-width");
dd.style.removeProperty("z-index");
});
}
function positionMobileDropdown() {
if (!isMobile()) { resetDesktop(); return; }
const rect = wrapper.getBoundingClientRect();
getDropdowns().forEach(function (dd) {
dd.style.setProperty("position", "fixed", "important");
dd.style.setProperty("left", rect.left + "px", "important");
dd.style.setProperty("top", (rect.bottom + 6) + "px", "important");
dd.style.setProperty("width", rect.width + "px", "important");
dd.style.setProperty("max-width", rect.width + "px", "important");
dd.style.setProperty("z-index", "2147483647", "important");
});
}
input.addEventListener("focus", function () {
setTimeout(positionMobileDropdown, 40);
setTimeout(positionMobileDropdown, 180);
});
input.addEventListener("input", function () {
setTimeout(positionMobileDropdown, 40);
setTimeout(positionMobileDropdown, 180);
});
window.addEventListener("resize", positionMobileDropdown);
window.addEventListener("scroll", positionMobileDropdown, true);
const observer = new MutationObserver(function () { positionMobileDropdown(); });
observer.observe(document.body, {
childList:true, subtree:true, attributes:true,
attributeFilter:["class","style"]
});
});
document.addEventListener("DOMContentLoaded", function () {
/* ================= BURGER ================= */
const toggle = document.getElementById('menuToggle');
const menu = document.getElementById('megaMenu');
const overlay = document.getElementById('overlay');
if (toggle && menu && overlay) {
toggle.addEventListener('click', function (e) {
e.stopPropagation();
e.preventDefault();
const isOpen = menu.classList.contains("active");
if (isOpen) {
menu.classList.remove("active");
overlay.classList.remove("active");
document.body.classList.remove("menu-open");
toggle.textContent = "☰";
} else {
menu.classList.add("active");
overlay.classList.add("active");
document.body.classList.add("menu-open");
toggle.textContent = "✕";
}
}, { passive: false });
overlay.addEventListener('click', function () {
menu.classList.remove('active');
overlay.classList.remove('active');
document.body.classList.remove('menu-open');
toggle.textContent = "☰";
});
document.querySelectorAll('.has-sub > a').forEach(function (link) {
link.addEventListener('click', function (e) {
if (window.innerWidth cityInput && cityInput.focus(), 200);
}
});
document.addEventListener("click", function (e) {
if (window.innerWidth > 1024) return;
const isSearch = searchForm.contains(e.target);
const isToggle = searchToggle.contains(e.target);
const isMenu = menu && menu.contains(e.target);
const isBurger = toggle && toggle.contains(e.target);
if (isSearch || isToggle) return;
if (isMenu || isBurger) return;
searchForm.classList.remove("active");
if (menu) {
menu.classList.remove("active");
overlay.classList.remove("active");
document.body.classList.remove("menu-open");
if (toggle) toggle.textContent = "☰";
}
});
}
function handleSearchState() {
if (!searchForm) return;
if (window.innerWidth > 1024) {
searchForm.classList.add("active");
} else {
searchForm.classList.remove("active");
}
}
handleSearchState();
window.addEventListener("resize", handleSearchState);
});
/* ================= DÉTECTION VILLE EXISTANTE EN BDD ================= */
document.addEventListener("DOMContentLoaded", function () {
if (window.AAKD_NEAREST_EXISTING_CITY_V4) return;
window.AAKD_NEAREST_EXISTING_CITY_V4 = true;
const STORAGE_KEY = "aakd_detected_existing_city_v4";
const STORAGE_TTL = 7 * 24 * 3600 * 1000;
const input = document.getElementById("aakd-city-input");
const form = document.getElementById("aakd-search-form");
if (!input || !form) return;
const latInput = form.querySelector(".sgeo_lat");
const lonInput = form.querySelector(".sgeo_lon");
const labelInput = form.querySelector(".aakd-city-label");
let userHasTyped = false;
input.addEventListener("input", function () { userHasTyped = true; });
try {
localStorage.removeItem("aakd_detected_city");
localStorage.removeItem("aakd_detected_existing_city");
localStorage.removeItem("aakd_detected_existing_city_v3");
} catch(e) {}
function clean(value) {
return String(value || "").replace(/-/g, " ").replace(/\s+/g, " ").trim();
}
function applyCity(data, source) {
if (!data || !data.city) return;
if (userHasTyped) return;
const city = clean(data.city);
input.value = city;
input.placeholder = city;
input.dataset.detectedSource = source;
if (latInput && data.lat) latInput.value = data.lat;
if (lonInput && data.lon) lonInput.value = data.lon;
if (labelInput) labelInput.value = city;
try {
localStorage.setItem(STORAGE_KEY, JSON.stringify({
city: city, lat: data.lat || "", lon: data.lon || "",
ts: Date.now(), src: source
}));
} catch(e) {}
}
function tryCache() {
try {
const raw = localStorage.getItem(STORAGE_KEY);
if (!raw) return false;
const data = JSON.parse(raw);
if (!data.city || Date.now() - data.ts > STORAGE_TTL) {
localStorage.removeItem(STORAGE_KEY); return false;
}
applyCity(data, "cache"); return true;
} catch(e) { return false; }
}
function nearestExistingCity(lat, lon) {
const ajaxUrl = window.AAKD_AJAX_URL || window.ajaxurl || "/wp-admin/admin-ajax.php";
return fetch(ajaxUrl, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({ action: "aakd_get_nearest_existing_city", lat, lon })
})
.then(r => r.json())
.then(res => {
if (!res || !res.success || !res.data || !res.data.city) return null;
return res.data;
})
.catch(() => null);
}
function tryGPS() {
return new Promise(function(resolve) {
if (!navigator.geolocation) { resolve(null); return; }
navigator.geolocation.getCurrentPosition(
async pos => resolve(await nearestExistingCity(pos.coords.latitude, pos.coords.longitude)),
() => resolve(null),
{ timeout: 6000, maximumAge: 3600000 }
);
});
}
function tryIP() {
return fetch("https://ipapi.co/json/")
.then(r => r.json())
.then(async d => {
const lat = d.latitude || d.lat || null;
const lon = d.longitude || d.lon || null;
if (!lat || !lon) return null;
return await nearestExistingCity(lat, lon);
})
.catch(() => null);
}
async function run() {
if (tryCache()) return;
const gpsData = await tryGPS();
if (gpsData) { applyCity(gpsData, "gps_nearest_db"); return; }
const ipData = await tryIP();
if (ipData) { applyCity(ipData, "ip_nearest_db"); return; }
if (!input.value.trim()) input.placeholder = "Votre ville…";
}
run();
});
/* ================= SEARCH URL ================= */
document.addEventListener("DOMContentLoaded", function () {
if (window.AAKD_FINAL_SEARCH_URL_INIT) return;
window.AAKD_FINAL_SEARCH_URL_INIT = true;
const form = document.getElementById("aakd-search-form");
const input = document.getElementById("aakd-city-input");
const btn = document.getElementById("aakd-force-search-btn");
if (!form || !input || !btn) return;
const latInput = form.querySelector(".sgeo_lat");
const lonInput = form.querySelector(".sgeo_lon");
const voiceBtn = document.getElementById("aakd-voice-btn");
function clean(v) { return String(v||"").replace(/-/g," ").replace(/\s+/g," ").trim(); }
function encodePlus(v) { return encodeURIComponent(v).replace(/%20/g,"+"); }
function finalUrl(city, lat, lon) {
return "/search-page/"
+ "?geodir_search=1&saz=1&stype=gd_place"
+ "&sgeo_lat=" + encodeURIComponent(lat)
+ "&sgeo_lon=" + encodeURIComponent(lon)
+ "&aakd_city_label=" + encodePlus(city) + "&s";
}
function resolveCity(city) {
const ajaxUrl = window.AAKD_AJAX_URL || window.ajaxurl || "/wp-admin/admin-ajax.php";
fetch(ajaxUrl, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({ action: "aakd_get_city_coords", city })
})
.then(r => r.json())
.then(res => {
if (!res || !res.success || !res.data) { input.focus(); return; }
const c = clean(res.data.city || city);
const lat = res.data.lat || res.data.latitude || "";
const lon = res.data.lon || res.data.lng || res.data.longitude || "";
if (!lat || !lon) { input.focus(); return; }
window.location.href = finalUrl(c, lat, lon);
})
.catch(() => input.focus());
}
function go(city, lat, lon) {
city = clean(city);
if (!city) { input.focus(); return; }
if (!lat || !lon) { resolveCity(city); return; }
window.location.href = finalUrl(city, lat, lon);
}
function submitForced(e) {
if (e) { e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); }
go(clean(input.value),
latInput ? latInput.value.trim() : "",
lonInput ? lonInput.value.trim() : "");
}
form.addEventListener("submit", submitForced, true);
btn.addEventListener("click", submitForced, true);
input.addEventListener("keydown", e => { if (e.key === "Enter") submitForced(e); }, true);
if (voiceBtn && (window.SpeechRecognition || window.webkitSpeechRecognition)) {
const SR = window.SpeechRecognition || window.webkitSpeechRecognition;
const rec = new SR();
rec.lang = "fr-FR";
voiceBtn.addEventListener("click", e => { e.preventDefault(); e.stopPropagation(); rec.start(); }, true);
rec.onresult = e => { const city = e.results[0][0].transcript; input.value = city; resolveCity(city); };
}
});
document.addEventListener("DOMContentLoaded", function () {
if (window.AAKD_GD_AUTOCOMPLETE_CLICK_URL_FIX_V2) return;
window.AAKD_GD_AUTOCOMPLETE_CLICK_URL_FIX_V2 = true;
const input = document.getElementById("aakd-city-input");
const form = document.getElementById("aakd-search-form");
if (!input || !form) return;
const latInput = form.querySelector(".sgeo_lat");
const lonInput = form.querySelector(".sgeo_lon");
const labelInput = form.querySelector(".aakd-city-label");
function cleanSuggestionText(value) {
let text = String(value||"").replace(/\s+/g," ").trim();
text = text
.replace(/^in\s*:\s*/i,"")
.replace(/^dans\s*:\s*/i,"")
.replace(/\((city|ville|location|region|région|country|pays)\)/ig,"")
.trim();
if (text.includes(",")) text = text.split(",")[0].trim();
return text.replace(/-/g," ").replace(/\s+/g," ").trim();
}
function encodePlus(v) { return encodeURIComponent(v).replace(/%20/g,"+"); }
function finalUrl(city, lat, lon) {
return "/search-page/"
+ "?geodir_search=1&saz=1&stype=gd_place"
+ "&sgeo_lat=" + encodeURIComponent(lat)
+ "&sgeo_lon=" + encodeURIComponent(lon)
+ "&aakd_city_label=" + encodePlus(city) + "&s";
}
function resolveAndGo(rawCity) {
const city = cleanSuggestionText(rawCity);
if (!city) { input.focus(); return; }
input.value = city;
if (labelInput) labelInput.value = city;
const ajaxUrl = window.AAKD_AJAX_URL || window.ajaxurl || "/wp-admin/admin-ajax.php";
fetch(ajaxUrl, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({ action: "aakd_get_city_coords", city })
})
.then(r => r.json())
.then(res => {
if (!res || !res.success || !res.data) { input.focus(); return; }
const c = cleanSuggestionText(res.data.city || city);
const lat = res.data.lat || res.data.latitude || "";
const lon = res.data.lon || res.data.lng || res.data.longitude || "";
if (!lat || !lon) { input.focus(); return; }
if (latInput) latInput.value = lat;
if (lonInput) lonInput.value = lon;
if (labelInput) labelInput.value = c;
window.location.href = finalUrl(c, lat, lon);
})
.catch(() => input.focus());
}
function findSuggestionTarget(target) {
if (!target) return null;
return target.closest(
".gdlm-location-suggestions li,.gdlm-location-suggestions a," +
".gd-suggestion-dropdown li,.gd-suggestion-dropdown a," +
".geodir-location-suggestions li,.geodir-location-suggestions a," +
".geodir-suggestions li,.geodir-suggestions a," +
"[class*='suggestion'] li,[class*='suggestion'] a,[class*='suggestion'] div"
);
}
function handleSuggestionEvent(e) {
const suggestion = findSuggestionTarget(e.target);
if (!suggestion) return;
const text = suggestion.textContent || "";
if (!/^\s*(in|dans)\s*:/i.test(text) && !/\(city\)/i.test(text)) return;
const city = cleanSuggestionText(text);
if (!city) return;
e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation();
resolveAndGo(city);
}
document.addEventListener("pointerdown", handleSuggestionEvent, true);
document.addEventListener("mousedown", handleSuggestionEvent, true);
document.addEventListener("touchstart", handleSuggestionEvent, true);
document.addEventListener("click", handleSuggestionEvent, true);
});
Voir le département Aisne
Vous êtes ici
Cuisiniste près de Septmonts : cuisine équipée sur mesure
Département : Aisne
Sécurité & confiance : notre sélection vous donne de la visibilité sur les cuisinistes proches de Septmonts, avec élargissement au département si nécessaire.
