:root{
  /* ===== gbinnovation charte graphique ===== */
  --primary:#0891B2; --primary-dark:#0369A1; --primary-light:#22D3EE;
  --dark:#0C1A2E; --dark-2:#164E63;
  --accent:#C9A84C; --accent-light:#E8C76B;
  /* legacy variable names remapped onto the new palette so every existing component recolors automatically */
  --navy:#0C1A2E; --navy-2:#164E63; --navy-3:#081225;
  --gold:#0891B2; --gold-2:#0369A1; --gold-light:#22D3EE; --gold-soft:#E0F7FA;
  --bg:#F0FAFB; --surface:#fff; --line:#E2EEF1; --line-2:#CFE7EC;
  --text:#0C1A2E; --muted:#0E7490; --muted-2:#7C9BA6;
  --radius:14px; --radius-lg:18px;
  --r-sm:10px; --r-md:16px; --r-lg:22px; --r-xl:32px;
  --shadow-sm:0 4px 20px rgba(12,26,46,.08);
  --shadow-md:0 14px 44px rgba(12,26,46,.14);
  --shadow-lg:0 28px 80px rgba(12,26,46,.22);
  --sh-teal:0 8px 32px rgba(8,145,178,.32);
  --maxw:1240px;
  --green:#16a34a; --red:#dc2626;
  /* Hauteur du bandeau défilant fixé en haut. Le menu mobile démarre juste
     en dessous : sans ça le bandeau recouvre son bouton de fermeture. */
  --ticker-h:36px;
  --font:'Inter',system-ui,sans-serif; --font-d:'Playfair Display',serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}
/* elegant serif display headings (gbinnovation look) */
.section-title,.hero h1,.biz-head h1,.dash-head h1,.svc-body h3,.activity-title,.sh-title,.pkg-name,.circuit-name,.hotel-name,.auth-head h1{font-family:var(--font-d);letter-spacing:-.5px}
a{text-decoration:none;color:inherit}
ul{list-style:none}
img{display:block;max-width:100%}
button{font-family:inherit;cursor:pointer;border:none;background:none}
[hidden]{display:none!important}
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:28px}

/* ===== NAVBAR (gbinnovation: transparent over hero -> glassy on scroll) ===== */
body.has-solid-nav{padding-top:calc(36px + 68px)}
body.has-hero-nav{padding-top:36px}
@media(max-width:1024px){body.has-solid-nav{padding-top:calc(36px + 60px)}}
.navbar{position:fixed;top:36px;left:0;right:0;z-index:1000;padding:15px 7%;display:flex;align-items:center;justify-content:space-between;gap:24px;transition:background .35s,box-shadow .35s,padding .35s}
.navbar.solid,.navbar.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 1px 0 var(--line),var(--shadow-sm);padding:11px 7%}
.nav-logo{display:flex;align-items:center;gap:11px;flex-shrink:0}
.nav-logo-icon{width:42px;height:42px;background:var(--primary);border-radius:12px;display:grid;place-items:center;font-size:18px;color:#fff;flex-shrink:0;box-shadow:var(--sh-teal);transition:.35s}
.nav-logo:hover .nav-logo-icon{transform:rotate(-10deg) scale(1.05)}
.nav-logo-text{font-size:21px;font-weight:900;letter-spacing:.4px;color:#fff;transition:.3s;text-transform:uppercase;white-space:nowrap}
.nav-logo-text em{color:var(--primary-light);font-style:normal}
.navbar.solid .nav-logo-text,.navbar.scrolled .nav-logo-text{color:var(--dark)}
.navbar.solid .nav-logo-text em,.navbar.scrolled .nav-logo-text em{color:var(--primary)}
.nav-links{display:flex;align-items:center;gap:26px;list-style:none}
.menu-close-li{display:none}
.nav-links>li>a{color:rgba(255,255,255,.86);font-size:14px;font-weight:600;transition:.25s;position:relative;padding-bottom:3px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.navbar.solid .nav-links>li>a,.navbar.scrolled .nav-links>li>a{color:var(--text)}
.nav-links>li>a::after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--primary);transition:.3s;border-radius:2px}
.nav-links>li>a:hover::after,.nav-links>li>a.nl-active::after{width:100%}
.nav-links>li>a:hover,.nav-links>li>a.nl-active{color:var(--primary)}
.navbar.solid .nav-links>li>a:hover,.navbar.scrolled .nav-links>li>a:hover{color:var(--primary)}
.nav-chev{font-size:9px}
.has-dropdown{position:relative}
.dropdown-menu{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(-8px);background:#fff;border-radius:14px;box-shadow:var(--shadow-md);min-width:230px;list-style:none;padding:8px;opacity:0;visibility:hidden;transition:.3s;z-index:200;border:1px solid var(--line)}
.has-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dropdown-menu li a{display:flex;align-items:center;gap:10px;padding:10px 14px;color:var(--text);font-size:13.5px;font-weight:600;border-radius:10px;transition:.2s}
.dropdown-menu li a::after{display:none}
.dropdown-menu li a:hover{background:var(--gold-soft);color:var(--primary)}
.dropdown-menu li a i{width:16px;color:var(--primary);font-size:12px}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-cta-link{padding:10px 22px;background:var(--primary);color:#fff!important;border-radius:50px;font-weight:700;font-size:13.5px;box-shadow:var(--sh-teal);transition:.3s;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.nav-cta-link:hover{background:var(--primary-dark);transform:translateY(-2px)}
.nav-cta-li{display:none}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;padding:12px 10px;min-width:44px;min-height:42px;z-index:1002}
.hamburger span{width:24px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.navbar.solid .hamburger span,.navbar.scrolled .hamburger span{background:var(--dark)}
@media(max-width:1024px){
  .navbar{padding:13px 5%}
  .navbar.solid,.navbar.scrolled{padding:10px 5%}
  .hamburger{display:flex}
  .nav-right{display:none}
  .nav-links{display:none}
  /* Le tiroir démarre SOUS le bandeau : .navbar (z-index 1000) crée un
     contexte d'empilement, donc le z-index 1100 du tiroir reste enfermé
     dedans et le bandeau (z-index 1001, frère de .navbar) passait par-dessus
     — il masquait le bouton de fermeture placé en haut à droite.
     justify-content:flex-start (et non center) : sinon le menu est centré
     verticalement et laisse un grand vide sous le bouton de fermeture. */
  .nav-links.open{display:flex;flex-direction:column;position:fixed;
    top:var(--ticker-h);left:0;right:0;bottom:0;
    background:var(--dark);justify-content:flex-start;align-items:stretch;gap:0;
    z-index:1100;overflow-y:auto;padding-top:52px;
    /* Encoches / barre système sur mobile. */
    padding-bottom:env(safe-area-inset-bottom,0)}
  /* IMPORTANT — backdrop-filter sur .navbar.solid/.scrolled en fait un BLOC
     CONTENEUR pour ses descendants en position:fixed. Le tiroir était alors
     dimensionné par rapport à la barre (~56px de haut) et non au viewport :
     il se réduisait à un mince bandeau ne montrant que le bouton fermer,
     dès que la page était défilée. On neutralise le flou pendant l'ouverture
     (la barre est de toute façon recouverte par le tiroir). */
  body.menu-open .navbar.solid,
  body.menu-open .navbar.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav-links.open>li{border-bottom:1px solid rgba(255,255,255,.07)}
  .nav-links.open>li>a{color:#fff!important;font-size:19px;font-weight:700;padding:20px 32px;display:block}
  /* Positionné dans le tiroir (qui commence déjà sous le bandeau) : le bouton
     est donc entièrement visible et cliquable. */
  .nav-links.open .menu-close-li{display:flex;justify-content:flex-end;padding:8px 14px;border-bottom:none;position:absolute;top:0;right:0;z-index:2}
  .menu-close-btn{color:#fff;font-size:26px;padding:8px;line-height:1;
    min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .has-dropdown .dropdown-menu{display:none!important}
  .nav-links.open .nav-cta-li{display:block}
  .nav-links.open .nav-cta-li a{background:transparent;color:var(--primary-light)!important;box-shadow:none}
  body.menu-open{overflow:hidden}
}

/* ===== TICKER ===== */
.ticker-strip{position:fixed;top:0;left:0;right:0;z-index:1001;background:var(--dark);overflow:hidden;display:flex;align-items:center;height:36px;border-bottom:1px solid rgba(8,145,178,.22)}
.ticker-inner{display:flex;animation:ticker 42s linear infinite;white-space:nowrap}
.ticker-item{padding:0 42px;font-size:11.5px;font-weight:700;color:rgba(255,255,255,.6);letter-spacing:1.1px;text-transform:uppercase;display:flex;align-items:center;gap:9px}
.ticker-item i{color:var(--primary-light);font-size:11px}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ===== HERO CAROUSEL ===== */
.hero{position:relative;height:clamp(460px,74vh,640px);overflow:hidden;isolation:isolate;background:var(--dark)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.slide.active{opacity:1}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.08);transition:transform 8s ease}
.slide.active .slide-bg{transform:scale(1)}
.hero-overlay{position:absolute;inset:0;z-index:2;background:linear-gradient(110deg,rgba(8,16,30,.95) 0%,rgba(8,16,30,.74) 42%,rgba(8,16,30,.36) 74%,rgba(8,16,30,.12) 100%)}
.hero-body{position:absolute;inset:0;z-index:10;display:flex;align-items:center;padding:0 7%}
.hero-content{max-width:640px}
.hero-eyebrow{display:inline-flex;align-items:center;gap:9px;background:rgba(8,145,178,.14);border:1px solid rgba(8,145,178,.3);color:var(--primary-light);padding:7px 16px;border-radius:50px;font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-bottom:18px;backdrop-filter:blur(8px)}
.hero-eyebrow .hb-dot{width:7px;height:7px;border-radius:50%;background:var(--primary-light);animation:blink 1.8s ease infinite}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}
.hero-cat{font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--primary-light);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.hero-cat i{font-size:12px}
.hero h1{font-size:clamp(30px,4.6vw,54px);font-weight:800;color:#fff;line-height:1.08;margin-bottom:14px}
.hero-desc{font-size:15px;color:rgba(255,255,255,.72);max-width:500px;line-height:1.7;margin-bottom:22px}
.hero-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:26px;color:rgba(255,255,255,.85);font-size:13.5px;font-weight:600}
.hero-meta span{display:inline-flex;align-items:center;gap:7px}
.hero-meta i{color:var(--primary-light)}
.hero-meta .hm-star{color:var(--accent-light)}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn-hero{display:inline-flex;align-items:center;gap:10px;background:var(--primary);color:#fff;padding:14px 30px;border-radius:50px;font-size:14px;font-weight:700;letter-spacing:.3px;transition:.35s;box-shadow:var(--sh-teal)}
.btn-hero:hover{background:var(--primary-dark);transform:translateY(-3px);box-shadow:0 16px 40px rgba(8,145,178,.45)}
.btn-hero-ghost{display:inline-flex;align-items:center;gap:10px;color:#fff;border:1.5px solid rgba(255,255,255,.34);padding:12px 26px;border-radius:50px;font-size:14px;font-weight:600;transition:.35s;backdrop-filter:blur(6px)}
.btn-hero-ghost:hover{background:#fff;color:var(--dark);border-color:#fff;transform:translateY(-3px)}
.hero-dots{position:absolute;bottom:26px;right:7%;z-index:12;display:flex;gap:8px}
.hdot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.32);border:none;cursor:pointer;transition:.35s;padding:0}
.hdot.active{width:30px;border-radius:50px;background:var(--primary)}
.hero-arrows{position:absolute;bottom:21px;right:calc(7% + 94px);z-index:12;display:flex;gap:8px}
.hero-arrows button{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;transition:.3s;backdrop-filter:blur(8px);display:grid;place-items:center;font-size:14px}
.hero-arrows button:hover{background:var(--primary);border-color:var(--primary);transform:translateY(-2px)}
@media(max-width:640px){.hero-arrows{display:none}.hero-dots{right:50%;transform:translateX(50%)}}

/* ===== SEARCH STRIP ===== */
.hero-search{background:var(--dark);padding:24px 7% 26px;box-shadow:0 12px 40px rgba(12,26,46,.3);position:relative;z-index:20}
.hs-fields{display:flex;align-items:stretch;background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(12,26,46,.18)}
.hs-field{flex:1;display:flex;align-items:center;gap:12px;padding:16px 20px;min-width:0;position:relative}
.hs-ficon{width:40px;height:40px;background:rgba(8,145,178,.1);border-radius:12px;display:grid;place-items:center;color:var(--primary);font-size:15px;flex-shrink:0}
.hs-field-text{min-width:0;flex:1}
.hs-lbl{font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:1.6px;margin-bottom:5px}
.hs-field input{width:100%;border:none;font-size:14px;font-weight:600;color:var(--dark);font-family:var(--font);outline:none;background:transparent}
.hs-field input::placeholder{color:#9fb4ba;font-weight:500}
.hs-div{width:1px;background:var(--line-2);align-self:center;height:38px;flex-shrink:0}
.hs-btn{flex-shrink:0;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;padding:0 32px;margin:12px 12px 12px 4px;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:10px;letter-spacing:.4px;transition:.35s;border-radius:50px;box-shadow:0 6px 24px rgba(8,145,178,.35);white-space:nowrap;font-family:var(--font)}
.hs-btn:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(8,145,178,.5)}
.hs-select{position:relative;width:100%}
.hs-sel-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;background:transparent;cursor:pointer;padding:0;font-family:var(--font);gap:6px;text-align:left}
.hs-sel-val{font-size:14px;font-weight:600;color:var(--dark);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-sel-val.placeholder{color:#9fb4ba;font-weight:500}
.hs-chev{font-size:10px;color:var(--muted);transition:transform .3s;flex-shrink:0}
.hs-select.open .hs-chev{transform:rotate(-180deg);color:var(--primary)}
.hs-sel-drop{position:absolute;top:calc(100% + 14px);left:0;min-width:240px;max-width:calc(100vw - 36px);max-height:300px;overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 16px 48px rgba(12,26,46,.2),0 0 0 1px rgba(12,26,46,.06);z-index:9999;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.22s}
.hs-select.open .hs-sel-drop{opacity:1;visibility:visible;transform:translateY(0)}
.hs-sel-opt{padding:11px 16px;font-size:13.5px;font-weight:500;color:var(--text);cursor:pointer;transition:.15s;display:flex;align-items:center;gap:9px;border-left:2px solid transparent}
.hs-sel-opt:hover{background:rgba(8,145,178,.07);color:var(--primary-dark);border-left-color:var(--primary)}
.hs-sel-opt.hs-sel-active{color:var(--primary-dark);font-weight:700;background:rgba(8,145,178,.06);border-left-color:var(--primary)}
.hs-sel-opt i{width:16px;color:var(--primary);font-size:13px}
@media(max-width:900px){.hs-fields{flex-wrap:wrap}.hs-div{display:none}.hs-field{flex:1 1 45%;border-bottom:1px solid var(--line)}.hs-btn{flex:1 1 100%;margin:12px;justify-content:center;padding:15px 32px}}
@media(max-width:600px){.hs-field{flex:1 1 100%}.hs-sel-drop{min-width:0;left:0;right:0;max-width:none}}
.select-wrap{position:relative}
.select-wrap.open .chev{transform:rotate(180deg)}
.select-menu{position:absolute;top:calc(100% + 10px);left:0;z-index:40;width:248px;max-height:320px;overflow-y:auto;
  background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border:1px solid rgba(13,29,64,.07);border-radius:16px;
  box-shadow:0 24px 60px rgba(8,16,36,.28),0 2px 8px rgba(8,16,36,.08);padding:8px;
  list-style:none;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.97);transform-origin:top left;
  transition:opacity .22s ease,transform .22s cubic-bezier(.21,1.02,.73,1),visibility .22s}
.select-menu::before{content:"";position:absolute;top:-6px;left:26px;width:12px;height:12px;background:inherit;
  border-inline-start:1px solid rgba(13,29,64,.07);border-block-start:1px solid rgba(13,29,64,.07);transform:rotate(45deg)}
.select-wrap.open .select-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.select-menu li{position:relative;list-style:none;display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:11px;
  cursor:pointer;color:#3a445c;font-weight:600;font-size:14.5px;transition:background .15s,color .15s,transform .12s}
.select-menu li .opt-ic{font-size:13px;color:#c2c9d6;transition:color .15s;width:16px;text-align:center;flex:none}
.select-menu li:hover{background:linear-gradient(90deg,rgba(197,147,58,.10),rgba(197,147,58,.03));color:var(--navy);transform:translateX(-2px)}
.select-menu li:hover .opt-ic{color:var(--gold)}
.select-menu li.is-active{background:linear-gradient(90deg,rgba(197,147,58,.18),rgba(197,147,58,.06));color:var(--gold)}
.select-menu li.is-active .opt-ic{color:var(--gold)}
.select-menu li.is-active::after{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;font-size:11px;color:var(--gold);margin-inline-start:auto}
.select-menu::-webkit-scrollbar{width:8px}
.select-menu::-webkit-scrollbar-track{background:transparent;margin:8px 0}
.select-menu::-webkit-scrollbar-thumb{background:rgba(13,29,64,.16);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
.select-menu::-webkit-scrollbar-thumb:hover{background:rgba(13,29,64,.3);background-clip:padding-box}
/* ===== SECTIONS ===== */
section.block{padding:64px 0}
[id]{scroll-margin-top:118px}
.section-header{text-align:center;max-width:700px;margin:0 auto 44px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px;gap:18px;flex-wrap:wrap}
.sh-tag,.section-eyebrow{display:inline-block;font-size:11px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--primary);margin-bottom:14px;background:rgba(8,145,178,.08);padding:6px 16px;border-radius:50px}
.sh-title{font-size:clamp(27px,3.6vw,44px);font-weight:700;color:var(--dark);line-height:1.12;margin-bottom:14px;font-family:var(--font-d)}
.sh-title span,.sh-title em{color:var(--primary);font-style:italic}
.sh-desc{font-size:15.5px;color:var(--muted);line-height:1.7}
.section-title{font-size:26px;font-weight:800;color:var(--navy);position:relative;padding-bottom:8px}
.section-title::after{content:"";position:absolute;bottom:0;left:0;width:48px;height:3px;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:3px}
.see-all{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-weight:700;font-size:14px;padding-bottom:8px}
.see-all:hover{gap:9px;transition:gap .2s}

/* ===== CATEGORIES ===== */
.cat-wrap{position:relative}
.cat-track{display:flex;gap:18px;overflow-x:auto;scroll-behavior:smooth;padding:8px 2px 16px;scrollbar-width:none}
.cat-track::-webkit-scrollbar{display:none}
.cat-card{flex:0 0 auto;width:242px;height:304px;position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .4s;cursor:pointer}
.cat-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.cat-card>img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.cat-card:hover>img{transform:scale(1.09)}
.cat-card-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(6,12,24,.93) 0%,rgba(6,12,24,.5) 42%,rgba(6,12,24,.12) 72%,transparent 100%)}
.cat-card-body{position:absolute;left:0;right:0;bottom:0;padding:20px;z-index:2}
.cat-card-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:17px;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);margin-bottom:12px;transition:.3s}
.cat-card:hover .cat-card-ic{background:var(--primary);border-color:var(--primary)}
.cat-card-name{font-size:17.5px;font-weight:800;color:#fff;font-family:var(--font-d);line-height:1.18;margin-bottom:6px}
.cat-card-count{font-size:12px;color:rgba(255,255,255,.72);font-weight:600;display:inline-flex;align-items:center;gap:6px}
.cat-card-count i{color:var(--primary-light);font-size:11px}
.cat-icon{width:60px;height:60px;border-radius:16px;margin:0 auto 14px;display:grid;place-items:center;font-size:24px;background:rgba(13,29,64,.07);color:var(--navy)}
.cat-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--line-2);display:grid;place-items:center;color:var(--navy);font-size:14px;box-shadow:var(--shadow-sm);z-index:5;transition:.2s}
.cat-arrow:hover{background:var(--gold);color:#fff;border-color:var(--gold);transform:translateY(-50%) scale(1.05)}

/* ===== FEATURED — pkg-card grid (gbinnovation style) ===== */
.pkg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media(max-width:880px){.pkg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.pkg-grid{grid-template-columns:1fr}}
.pkg-card{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;height:360px;box-shadow:var(--shadow-md);transition:transform .45s cubic-bezier(.34,1.56,.64,1),box-shadow .45s,opacity .6s}
.pkg-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-lg)}
.pkg-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .7s ease}
.pkg-card:hover .pkg-img{transform:scale(1.08)}
.pkg-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(6,12,24,.95) 0%,rgba(6,12,24,.55) 38%,rgba(6,12,24,.14) 64%,transparent 86%)}
.pkg-card::before{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.08) 50%,transparent 60%);transition:left .65s ease;z-index:3;pointer-events:none}
.pkg-card:hover::before{left:160%}
.pkg-badge{position:absolute;top:14px;left:14px;z-index:2;padding:6px 13px;border-radius:50px;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#fff;display:inline-flex;align-items:center;gap:6px}
.pkg-badge.promo{background:linear-gradient(135deg,#14532d,#16a34a)}
.pkg-badge.hot{background:linear-gradient(135deg,#991b1b,#dc2626)}
.pkg-badge.luxury{background:linear-gradient(135deg,#92400e,var(--accent))}
.pkg-badge.new{background:linear-gradient(135deg,var(--dark),var(--dark-2))}
.pkg-badge.muted{background:#64748b}
.pkg-badge.warn{background:linear-gradient(135deg,#f59e0b,#d97706)}
.pkg-badge.danger{background:linear-gradient(135deg,#ef4444,#dc2626)}
.pkg-loc{position:absolute;top:14px;right:14px;z-index:2;background:rgba(0,0,0,.5);color:#fff;padding:6px 12px;border-radius:50px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:6px;backdrop-filter:blur(8px)}
.pkg-loc i{color:var(--primary-light)}
.pkg-content{position:absolute;left:0;right:0;bottom:0;padding:22px;z-index:2}
.pkg-cat{font-size:10px;color:var(--primary-light);font-weight:800;text-transform:uppercase;letter-spacing:2px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.pkg-cat::before{content:"";width:18px;height:1.5px;background:var(--primary);flex:none}
.pkg-name{font-size:20px;font-weight:700;color:#fff;line-height:1.18;margin-bottom:14px;font-family:var(--font-d)}
.pkg-footer{border-top:1px solid rgba(255,255,255,.14);padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.pkg-stars{font-size:12px;color:#fbbf24;display:flex;align-items:center;gap:2px}
.pkg-stars span{color:rgba(255,255,255,.6);font-size:11.5px;font-weight:600;margin-left:5px}
.pkg-unrated{color:rgba(255,255,255,.5)!important;font-weight:600}
.pkg-go{display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:12.5px;font-weight:700;white-space:nowrap;transition:gap .25s,color .25s}
.pkg-card:hover .pkg-go{color:var(--primary-light);gap:9px}

/* ===== TÉMOIGNAGES (gbinnovation style) ===== */
.testi-section{background:linear-gradient(180deg,var(--dark) 0%,#07112A 100%);padding:80px 7% 92px;position:relative}
@media(max-width:640px){.testi-section{padding:54px 5%}}
.testi-section .sh-tag{background:rgba(8,145,178,.14);color:var(--primary-light)}
.testi-section .sh-title{color:#fff}
.testi-section .sh-title span{color:var(--primary-light)}
.testi-section .sh-desc{color:rgba(255,255,255,.45)}
.testi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:var(--maxw);margin:0 auto}
@media(max-width:960px){.testi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.testi-grid{grid-template-columns:1fr}}
.testi-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:30px;transition:.4s;position:relative;overflow:hidden}
.testi-card::before{content:'\201C';position:absolute;top:-6px;right:20px;font-size:110px;font-family:var(--font-d);color:rgba(8,145,178,.13);line-height:1;pointer-events:none}
.testi-card:hover{transform:translateY(-6px);border-color:rgba(8,145,178,.25);background:rgba(8,145,178,.05)}
.testi-top{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.testi-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--dark-2));color:#fff;font-size:15px;font-weight:800;display:grid;place-items:center;flex-shrink:0;border:2px solid rgba(8,145,178,.3)}
.testi-name{font-size:15px;font-weight:800;color:#fff}
.testi-trip{font-size:11px;color:rgba(255,255,255,.4);font-weight:600;display:flex;align-items:center;gap:5px;margin-top:2px}
.testi-trip i{color:var(--primary-light);font-size:10px}
.testi-stars{margin-left:auto;color:#fbbf24;font-size:12px;display:flex;gap:2px;flex-shrink:0}
.testi-card p{font-size:14px;color:rgba(255,255,255,.6);line-height:1.8;font-style:italic;position:relative;z-index:1}
.cat-arrow.prev{left:-12px}.cat-arrow.next{right:-12px}

/* ===== FEATURED ===== */
.cards-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.activity-wrap{position:relative;padding-inline:30px}
/* keep the carousel arrows in the side gutter, not over the cards */
.activity-wrap .cat-arrow.prev{left:-18px}
.activity-wrap .cat-arrow.next{right:-18px}
.activity-track{display:flex;gap:20px;overflow-x:auto;scroll-behavior:smooth;padding:8px 2px 16px;scrollbar-width:none}
.activity-track::-webkit-scrollbar{display:none}
.activity-track .activity{flex:0 0 235px;width:235px}
.activity-track .empty-state{flex:1 1 100%}
@media(max-width:640px){.activity-wrap{padding-inline:0}.activity-wrap .cat-arrow{display:none}}
.activity{position:relative;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.activity-link{position:absolute;inset:0;z-index:1}
.activity .fav{z-index:3}
.activity:hover{transform:translateY(-7px);box-shadow:var(--shadow-lg)}
.activity-media{position:relative;aspect-ratio:1/0.82;overflow:hidden}
.activity-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.activity:hover .activity-media img{transform:scale(1.08)}
.media-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,16,36,.5),transparent 42%)}
.cat-pill{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.92);color:var(--navy);font-size:11.5px;font-weight:700;padding:5px 12px;border-radius:20px;backdrop-filter:blur(4px);box-shadow:0 3px 8px rgba(0,0,0,.12)}
.fav{position:absolute;top:12px;left:12px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:#36405c;font-size:15px;box-shadow:0 3px 8px rgba(0,0,0,.15);transition:.18s}
.fav:hover{transform:scale(1.1)}.fav.is-on{color:#e2475c}
.rating{position:absolute;bottom:12px;left:12px;background:rgba(13,29,64,.85);color:#fff;font-size:13px;font-weight:700;padding:5px 11px;border-radius:9px;display:inline-flex;align-items:center;gap:5px;backdrop-filter:blur(2px)}
.rating i{color:var(--gold);font-size:12px}
.rating.unrated{background:rgba(13,29,64,.62);font-weight:600;font-size:12px}
.rating.unrated i{color:#c4cbdb}
.verified{position:absolute;bottom:12px;right:12px;background:rgba(34,160,109,.95);color:#fff;font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:8px;display:inline-flex;align-items:center;gap:5px}
.activity-body{padding:15px 17px 18px;text-align:center;display:flex;flex-direction:column;gap:5px;flex:1}
.activity-cat{font-size:12.5px;color:var(--muted);font-weight:600}
.activity-title{font-size:16px;font-weight:700;color:var(--navy)}
.activity-loc{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13.5px;color:#6b7488;font-weight:600;margin-top:2px}
.activity-loc i{color:var(--gold);font-size:13px}
.empty-state{text-align:center;padding:50px 20px;color:var(--muted);grid-column:1/-1}
.empty-state i{font-size:40px;color:var(--line-2);margin-bottom:14px}

/* ===== BUSINESS DETAIL PAGE ===== */
.biz-hero{position:relative;color:#fff;isolation:isolate;overflow:hidden;
  background:linear-gradient(120deg,var(--navy-3) 18%,var(--navy) 60%,var(--navy-2))}
.biz-cover-grad{position:absolute;inset:0;z-index:-1;
  background:radial-gradient(72% 120% at 86% -6%,rgba(211,166,78,.16),transparent 55%),
             linear-gradient(to top,rgba(8,15,33,.32),transparent 66%)}
.biz-hero-inner{display:flex;align-items:flex-end;gap:22px;min-height:170px;padding:26px 28px 24px}
.biz-logo{width:108px;height:108px;border-radius:20px;background:#fff;flex-shrink:0;display:grid;place-items:center;
  box-shadow:var(--shadow-lg);overflow:hidden;font-size:46px}
.biz-logo img{width:100%;height:100%;object-fit:cover}
/* clean white tile + navy glyph (harmonized for all businesses) */
.biz-logo-ph{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(160deg,#ffffff,#f3f5f9)}
.biz-logo-ph i{font-size:46px;color:var(--navy)}
.biz-head{padding-bottom:4px}
.biz-cat{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:var(--gold-light);margin-bottom:8px}
.biz-head h1{font-size:32px;font-weight:800;display:flex;align-items:center;gap:14px;flex-wrap:wrap;text-shadow:0 4px 20px rgba(0,0,0,.4)}
.biz-verified{font-size:13px;font-weight:700;background:rgba(34,160,109,.95);color:#fff;padding:5px 12px;border-radius:20px;display:inline-flex;align-items:center;gap:6px}
.biz-meta{display:flex;gap:20px;margin-top:12px;font-size:15px;font-weight:600;color:#dbe2f0}
.biz-meta i{margin-inline-end:5px}

.biz-grid{display:grid;grid-template-columns:1fr 360px;gap:24px;align-items:start}
.biz-main{min-width:0}

.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:22px}
.biz-info-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;margin-top:22px;align-items:stretch}
.biz-info-grid .panel{margin-top:0}
.biz-info-col{display:flex;flex-direction:column;gap:22px}
/* quote form stretches to match the other column (kills the empty gap) */
#quote{display:flex;flex-direction:column}
#quote .lead-form{display:flex;flex-direction:column;flex:1}
#quote .lead-form .field:last-of-type{flex:1;display:flex;flex-direction:column;min-height:0}
#quote .lead-form .field:last-of-type textarea{flex:1;min-height:120px;min-width:0}
#quote .lead-form .field:last-of-type{min-width:0}
.svc-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(13,29,64,.04);
  transition:transform .28s,box-shadow .28s,border-color .28s}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.svc-img{position:relative;aspect-ratio:16/10;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.svc-card:hover .svc-img img{transform:scale(1.08)}
.svc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,16,36,.55),transparent 50%)}
.svc-price{position:absolute;bottom:12px;right:12px;z-index:2;display:inline-flex;align-items:center;gap:4px;
  background:linear-gradient(135deg,var(--gold-light),var(--gold-2));color:#fff;font-weight:800;font-size:14.5px;
  padding:6px 14px;border-radius:30px;box-shadow:0 6px 16px rgba(197,147,58,.45)}
.svc-price small{font-weight:600;font-size:11px;opacity:.92}
/* service / product type badge */
.svc-type{position:absolute;top:11px;right:11px;z-index:2;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 11px;border-radius:20px;box-shadow:0 3px 8px rgba(0,0,0,.16)}
.svc-type.service{background:rgba(255,255,255,.93);color:var(--navy)}
.svc-type.product{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff}
.type-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:20px}
.type-badge.service{background:#eaf1fd;color:#1f4fa3}
.type-badge.product{background:var(--gold-soft);color:var(--gold-2)}
.svc-body{padding:15px 18px 18px;display:flex;flex-direction:column;gap:7px;flex:1}
.svc-body h3{font-size:16.5px;font-weight:800;color:var(--navy);position:relative;padding-bottom:9px}
.svc-body h3::after{content:"";position:absolute;bottom:0;left:0;width:26px;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));transition:width .28s}
.svc-card:hover .svc-body h3::after{width:48px}
.svc-body p{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svc-card .svc-img{cursor:pointer}
.svc-desc{cursor:default}
.svc-actions{margin-top:auto;display:flex;align-items:stretch;gap:8px;flex-wrap:nowrap;padding-top:4px}
.svc-req{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;
  background:var(--navy);color:#fff;font-weight:700;font-size:13px;padding:9px 12px;border-radius:10px;transition:.18s}
.svc-req:hover{background:linear-gradient(135deg,var(--gold),var(--gold-2));transform:translateY(-2px);box-shadow:0 6px 14px rgba(197,147,58,.3)}
.svc-more{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;background:transparent;border:1.5px solid var(--line-2);
  color:var(--navy);font-weight:700;font-size:12.5px;padding:8px 10px;border-radius:10px;transition:.18s;cursor:pointer}
.svc-more:hover{border-color:var(--gold);color:var(--gold-2);background:var(--gold-soft)}
/* ----- details modal (quick view) ----- */
.modal-card.svc-details-card{background:var(--surface);max-width:560px;display:flex;flex-direction:column;max-height:92vh}
.svc-det-media{position:relative;flex:none;aspect-ratio:16/9;background:var(--navy);overflow:hidden}
.svc-det-media img{width:100%;height:100%;object-fit:cover;display:block}
.svc-det-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,16,36,.5),transparent 55%)}
/* ===== Galerie du détail service/produit ===== */
/* z-index:2 : le dégradé ::after est au-dessus de l'image, les flèches doivent passer devant. */
.svc-det-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:38px;height:38px;border-radius:50%;
  border:none;cursor:pointer;background:rgba(8,16,36,.55);color:#fff;font-size:15px;display:grid;place-items:center;transition:.2s}
.svc-det-nav:hover{background:rgba(8,16,36,.8)}
.svc-det-nav.prev{left:10px}
.svc-det-nav.next{right:10px}
.svc-det-thumbs{display:flex;gap:8px;padding:12px 18px 0;overflow-x:auto;flex:none;scrollbar-width:thin}
.svc-det-thumb{flex:none;width:56px;height:56px;padding:0;border-radius:10px;overflow:hidden;cursor:pointer;
  border:2px solid transparent;background:none;transition:border-color .2s,opacity .2s;opacity:.65}
.svc-det-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.svc-det-thumb.is-active,.svc-det-thumb:hover{opacity:1;border-color:var(--gold)}
.svc-det-type{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:5px 12px;border-radius:20px;box-shadow:0 3px 8px rgba(0,0,0,.16)}
.svc-det-type.service{background:rgba(255,255,255,.93);color:var(--navy)}
.svc-det-type.product{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff}
.svc-det-price{position:absolute;bottom:14px;right:14px;z-index:2;display:inline-flex;align-items:center;gap:4px;
  background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff;font-weight:800;font-size:16px;padding:7px 14px;border-radius:12px;box-shadow:0 4px 12px rgba(197,147,58,.4)}
.svc-det-price small{font-weight:600;font-size:12px;opacity:.92}
.svc-det-body{padding:20px 24px 24px;overflow-y:auto;min-height:0}
.svc-det-body h2{font-size:21px;font-weight:800;color:var(--navy);margin-bottom:12px}
.svc-det-body #svcDetDesc{font-size:14.5px;line-height:1.85;color:var(--text);white-space:pre-line;margin-bottom:20px}
.svc-det-body #svcDetDesc:empty{display:none}
.svc-det-req{width:auto!important}

.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:20px 22px}
.gallery-item{aspect-ratio:1/1;border-radius:12px;overflow:hidden;display:block}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery-item:hover img{transform:scale(1.08)}

.info-list{padding:8px 18px}
.info-list li{display:flex;gap:13px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line)}
.info-list li:last-child{border-bottom:none}
.info-list li>i{width:36px;height:36px;border-radius:10px;background:rgba(13,29,64,.06);color:var(--navy);display:grid;place-items:center;font-size:15px;flex:none}
.info-list li div{display:flex;flex-direction:column;gap:2px}
.info-list li span{font-size:12.5px;color:var(--muted);font-weight:600}
.info-list li a,.info-list li b{font-size:14.5px;color:var(--navy);font-weight:700}

.hours-list{padding:8px 18px 16px}
.hours-list li{display:flex;align-items:center;justify-content:space-between;padding:10px 8px;border-bottom:1px solid var(--line);font-size:14px}
.hours-list li:last-child{border-bottom:none}
.hours-list li.is-today{background:var(--gold-soft);border-radius:9px;padding-inline:12px}
.hours-list .day{font-weight:700;color:#34405c}
.hours-list .day small{color:var(--gold-2);font-weight:700}
.hours-list .time{color:#3a455f;font-weight:600}
.hours-list .closed{color:var(--red);font-weight:700;font-size:13px}


@media(max-width:1040px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:920px){
  .biz-grid{grid-template-columns:1fr}
  .biz-hero-inner{flex-direction:column;align-items:flex-start;gap:14px;min-height:auto}
  .biz-head h1{font-size:26px}
}
@media(max-width:640px){
  .svc-grid{grid-template-columns:1fr}
  .biz-info-grid{grid-template-columns:1fr}
}

/* ===== V2: TRUST & INTERACTION ===== */
/* Trust badges */
.biz-badge{font-size:13px;font-weight:700;padding:5px 13px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;color:#fff}
.badge-trusted{background:#2f6fed}
.badge-verified{background:var(--green)}
.badge-medium{background:linear-gradient(135deg,#f59e0b,#d97706);color:#3a2606}
.badge-unverified{background:#64748b}
.badge-unreliable{background:linear-gradient(135deg,#ef4444,#dc2626)}
.badge-none{background:#e2e8f0;color:#475569}
/* ----- Sélecteur visuel en pastilles (badges & rôles, admin) ----- */
.badge-dd,.role-dd{position:relative;display:inline-block}
.badge-dd-trigger,.role-dd-trigger{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1.5px solid var(--line-2);border-radius:50px;padding:4px 12px 4px 5px;cursor:pointer;transition:.18s;font-family:inherit}
.badge-dd-trigger:hover,.role-dd-trigger:hover{border-color:var(--primary);box-shadow:0 3px 10px rgba(8,145,178,.14)}
.badge-dd-chev,.role-dd-chev{font-size:10px;color:var(--muted);transition:transform .25s;flex-shrink:0}
.badge-dd.open .badge-dd-chev,.role-dd.open .role-dd-chev{transform:rotate(180deg);color:var(--primary)}
.badge-dd-menu,.role-dd-menu{position:fixed;z-index:1400;background:#fff;border-radius:15px;padding:8px;
  box-shadow:0 20px 54px rgba(12,26,46,.24),0 0 0 1px rgba(12,26,46,.05);
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .18s,transform .18s}
.badge-dd.open .badge-dd-menu,.role-dd.open .role-dd-menu{opacity:1;visibility:visible;transform:none}
.badge-dd-group{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted-2);padding:10px 10px 5px}
.badge-dd-opt,.role-dd-opt{display:flex;align-items:center;gap:10px;width:100%;padding:7px 9px;border-radius:10px;cursor:pointer;background:transparent;border:none;font-family:inherit;transition:.14s}
.badge-dd-opt:hover,.role-dd-opt:hover{background:#f1f5f9}
.badge-dd-opt.is-active,.role-dd-opt.is-active{background:rgba(8,145,178,.09)}
.badge-dd-tick,.role-dd-tick{margin-left:auto;color:var(--primary);font-size:12px}
/* Puces de rôle */
.role-chip{font-size:13px;font-weight:700;padding:5px 13px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;color:#fff;white-space:nowrap}
.role-owner{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.role-admin{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#3a2c08}
.role-static{cursor:not-allowed;opacity:.92}
.card-badge{position:absolute;top:12px;right:12px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;color:#fff;display:inline-flex;align-items:center;gap:5px;box-shadow:0 3px 8px rgba(0,0,0,.18);z-index:2}

/* WhatsApp button */
.btn-whatsapp{background:#25d366;color:#fff}
.btn-whatsapp:hover{background:#1eb858;color:#fff}

/* Reviews */
.rev-summary{display:flex;align-items:center;gap:8px}
.rev-summary strong{font-size:20px;color:var(--navy)}
.stars{color:var(--gold);font-size:14px;letter-spacing:1px;white-space:nowrap}
.stars.sm{font-size:12px}
.rev-count{color:var(--muted);font-size:13px;font-weight:600}
.rev-list{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}
.rev-item{display:flex;gap:13px}
.rev-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px;flex:none}
.rev-body{flex:1;min-width:0}
.rev-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rev-top strong{color:var(--navy)}
.rev-top time{color:var(--muted-2);font-size:12.5px}
.rev-body p{color:#3a455f;margin-top:4px;font-size:14.5px;line-height:1.6}
.rev-del{color:var(--muted-2);font-size:13px}
.rev-del:hover{color:var(--red)}
.rev-form-wrap summary{list-style:none;cursor:pointer}
.rev-form-wrap summary::-webkit-details-marker{display:none}
.rev-form{margin-top:16px;border-top:1px solid var(--line);padding-top:18px;max-width:480px}

/* Interactive star input (DOM order 5..1, fills from the right for RTL) */
.star-input{display:inline-flex;gap:5px;font-size:27px;margin-bottom:16px}
.star-input input{position:absolute;opacity:0;width:0;height:0}
.star-input label{color:#d6dae2;cursor:pointer;transition:color .12s,transform .12s}
.star-input label:hover{transform:scale(1.12)}
.star-input label:hover,.star-input label:hover ~ label,
.star-input input:checked + label,.star-input input:checked ~ label{color:var(--gold)}

/* Lead / contact form */
.lead-form{padding:18px 22px}
.lead-form .field{margin-bottom:14px}
.lead-form .field:last-of-type{margin-bottom:18px}

/* Honeypot (anti-spam) — clipped, NOT pushed off-screen (off-screen breaks RTL scroll) */
.hp{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:0;pointer-events:none}

/* Inbox / leads */
.count-badge{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:20px;background:var(--red);color:#fff;font-size:13px;font-weight:800;vertical-align:middle;margin-inline-start:6px}
.lead-card.is-unread{border-color:var(--gold);box-shadow:0 4px 18px rgba(211,166,78,.16)}
.lead-card.is-unread::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--gold),var(--gold-2))}
.lead-card{position:relative;overflow:hidden}
.lead-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.lead-type{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:20px}
.lead-type.quote{background:var(--gold-soft);color:var(--gold-2)}
.lead-type.message{background:#eaf1fd;color:#1f4fa3}
.lead-new{background:var(--red);color:#fff;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.lead-listing{font-size:13px;color:var(--muted);font-weight:600}
.lead-service{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;padding:4px 11px;border-radius:20px;background:var(--gold-soft);color:var(--gold-2)}
.lead-head time{margin-inline-start:auto;color:var(--muted-2);font-size:12.5px}
.lead-from{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:14px;margin-bottom:10px}
.lead-from strong{color:var(--navy)}
.lead-from a{color:var(--gold-2);font-weight:600}
.lead-from a:hover{text-decoration:underline}
.lead-msg{color:#3a455f;font-size:14.5px;line-height:1.65;background:#fafbfc;border:1px solid var(--line);border-radius:10px;padding:13px 15px;white-space:pre-line}

/* ===== STATS ===== */
.stats{background:linear-gradient(100deg,var(--navy-3),var(--navy) 52%,var(--navy-2));color:#fff;position:relative;overflow:hidden}
.stats::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 90% 0%,rgba(211,166,78,.16),transparent 60%)}
.stats-inner{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:42px 0;flex-wrap:wrap;position:relative}
.stat{display:flex;align-items:center;gap:14px}
.stat-ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:rgba(211,166,78,.14);border:1px solid rgba(211,166,78,.28);color:var(--gold);font-size:22px}
.stat-text{display:flex;flex-direction:column;line-height:1.2}
.stat-num{font-size:25px;font-weight:800;color:var(--gold-light)}
.stat-label{font-size:13px;color:#c4cbdb;font-weight:600}
.stats-cta{display:flex;align-items:center;gap:18px}
.cta-text strong{display:block;font-size:19px;font-weight:800}
.cta-text span{font-size:13.5px;color:#c4cbdb}
.cta-btn{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff;font-weight:800;font-size:15px;padding:13px 30px;border-radius:12px;white-space:nowrap;transition:.2s}
.cta-btn:hover{filter:brightness(1.07);transform:translateY(-2px)}

/* ===== FOOTER (gbinnovation style) ===== */
.footer{background:#04091A;border-top:1px solid rgba(8,145,178,.15);padding:64px 7% 28px}
@media(max-width:640px){.footer{padding:44px 5% 24px}}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:42px;margin:0 auto 44px;max-width:var(--maxw)}
@media(max-width:1200px){.footer-top{grid-template-columns:1.5fr 1fr 1fr 1fr}}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:560px){.footer-top{grid-template-columns:1fr}}
.footer-about p{font-size:14px;line-height:1.8;margin-bottom:22px;color:rgba(255,255,255,.4);max-width:360px}
.footer-logo{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.footer-logo-icon{width:42px;height:42px;background:var(--primary);border-radius:12px;display:grid;place-items:center;color:#fff;font-size:18px;box-shadow:var(--sh-teal)}
.footer-logo-text{font-size:23px;font-weight:900;color:#fff;letter-spacing:.5px;text-transform:uppercase}
.footer-logo-text span{color:var(--primary-light)}
.footer-socials{display:flex;gap:8px}
.footer-social{width:38px;height:38px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px;display:grid;place-items:center;color:rgba(255,255,255,.4);font-size:14px;transition:.3s}
.footer-social:hover{background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-4px)}
.footer-col h4{font-size:11px;font-weight:800;color:#fff;margin-bottom:20px;text-transform:uppercase;letter-spacing:2.2px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-col ul li{font-size:14px;color:rgba(255,255,255,.4)}
.footer-col ul a{color:rgba(255,255,255,.4);font-size:14px;transition:.3s;display:inline-flex;align-items:center}
.footer-col ul a::before{content:'';display:inline-block;width:0;height:1.5px;background:var(--primary);transition:.3s;vertical-align:middle}
.footer-col ul a:hover{color:var(--primary-light)}
.footer-col ul a:hover::before{width:12px;margin-right:7px}
.footer-wa{color:var(--primary-light)!important;font-weight:700}
.footer-wa i{margin-right:5px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.06);padding-top:22px;text-align:center;font-size:13px;color:rgba(255,255,255,.35);max-width:var(--maxw);margin:0 auto}
.footer-bottom b{color:#fff;font-weight:700}

/* ===== FLOATING SOCIAL BUTTONS ===== */
.social-fab{position:fixed;bottom:24px;right:24px;z-index:90;display:flex;flex-direction:column;gap:13px}
.social-fab a{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:21px;
  box-shadow:0 6px 18px rgba(0,0,0,.22);transition:transform .2s,box-shadow .2s}
.social-fab a:hover{transform:translateY(-3px) scale(1.07);box-shadow:0 12px 26px rgba(0,0,0,.3)}
.social-fab .wa{background:#25d366;animation:waPulse 2.4s ease-out infinite}
.social-fab .ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}
.social-fab .fb{background:#1877f2}
.social-fab .tk{background:#010101}
@keyframes waPulse{
  0%{box-shadow:0 6px 18px rgba(0,0,0,.22),0 0 0 0 rgba(37,211,102,.5)}
  70%{box-shadow:0 6px 18px rgba(0,0,0,.22),0 0 0 14px rgba(37,211,102,0)}
  100%{box-shadow:0 6px 18px rgba(0,0,0,.22),0 0 0 0 rgba(37,211,102,0)}
}
@media(max-width:680px){.social-fab{bottom:16px;right:16px;gap:11px}.social-fab a{width:46px;height:46px;font-size:19px}}
@media(prefers-reduced-motion:reduce){.social-fab .wa{animation:none}}

/* ===== REVEAL ANIM ===== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

/* ===== FLASH MESSAGES ===== */
/* Toast flottant : ne perturbe jamais la mise en page de l'en-tête (fixe, au-dessus du contenu). */
.flash-wrap{position:fixed;top:calc(36px + 68px + 14px);left:50%;transform:translateX(-50%);z-index:1500;
  width:min(560px,92vw);display:flex;flex-direction:column;gap:10px;pointer-events:none}
@media(max-width:1024px){.flash-wrap{top:calc(36px + 60px + 12px)}}
.flash-wrap .flash{pointer-events:auto;box-shadow:0 14px 40px rgba(12,26,46,.18);animation:flashIn .35s cubic-bezier(.21,1.02,.73,1)}
.flash-wrap .flash.hide{opacity:0;transform:translateY(-10px);transition:opacity .4s,transform .4s}
@keyframes flashIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.flash{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:12px;font-weight:600;font-size:14.5px;box-shadow:var(--shadow-sm)}
.flash i{font-size:18px}
.flash.success{background:#e7f7ef;color:#0f7a4f;border:1px solid #bce8d3}
.flash.error{background:#fdeaec;color:#bc2230;border:1px solid #f5c4cb}
.flash.info{background:#eaf1fd;color:#1f4fa3;border:1px solid #c4d6f5}

/* ===== AUTH PAGES ===== */
.auth-wrap{min-height:calc(100vh - 89px);display:grid;place-items:center;padding:50px 20px;
  background:radial-gradient(80% 120% at 80% 0%,rgba(211,166,78,.08),transparent 55%),var(--bg)}
.auth-card{width:100%;max-width:460px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  border:1px solid var(--line);overflow:hidden}
.auth-head{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;padding:30px 32px;text-align:center}
.auth-head .auth-logo{width:56px;height:56px;border-radius:15px;margin:0 auto 14px;display:grid;place-items:center;
  background:rgba(230,193,121,.15);border:1px solid rgba(230,193,121,.35);color:var(--gold);font-size:26px}
.auth-head h1{font-size:23px;font-weight:800}
.auth-head p{font-size:14px;color:#c4cbdb;margin-top:5px}
.auth-body{padding:30px 32px 34px}
.field{margin-bottom:18px}
.field label{display:block;font-size:14px;font-weight:700;color:#34405c;margin-bottom:7px}
.opt-tag{font-weight:600;font-size:12px;color:var(--muted)}
.field .input-ic{position:relative}
.field .input-ic i{position:absolute;top:50%;left:15px;transform:translateY(-50%);color:var(--muted-2);font-size:15px}
.field input,.field select,.field textarea{width:100%;font-family:inherit;font-size:15px;color:var(--text);
  background:#fff;border:1.5px solid var(--line-2);border-radius:11px;padding:13px 15px;transition:border-color .18s,box-shadow .18s}
.field .input-ic input{padding-left:42px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(211,166,78,.15)}
.field textarea{resize:vertical;min-height:110px}
/* Custom-styled select with a gold chevron */
.field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;font-weight:600;
  padding-right:44px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c5933a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center}
.field select:hover{border-color:var(--gold-light)}
.field select:focus{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c5933a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='18 15 12 9 6 15'/%3E%3C/svg%3E")}

/* Custom dropdown (like the homepage search selects) used inside form fields */
.form-select{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  background:#fff;border:1.5px solid var(--line-2);border-radius:11px;padding:13px 15px;
  font-family:inherit;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;
  transition:border-color .18s,box-shadow .18s}
.form-select:hover{border-color:var(--gold-light)}
.select-wrap.field-select.open .form-select{border-color:var(--gold);box-shadow:0 0 0 3px rgba(211,166,78,.15)}
.form-select .form-select-label{flex:1}
.form-select .chev{color:var(--gold-2);font-size:12px;transition:transform .22s}
.select-wrap.field-select.open .form-select .chev{transform:rotate(180deg)}
.field-select .select-menu{width:100%}
.field .hint{font-size:12.5px;color:var(--muted);margin-top:6px}
/* ===== Styled file upload (local only) ===== */
.file-up{display:inline-flex;align-items:center;gap:11px;flex-wrap:wrap;cursor:pointer;max-width:100%}
.file-up-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;margin:-1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}
.file-up-btn{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;font-weight:700;
  font-size:13.5px;padding:11px 17px;border-radius:11px;transition:.18s;white-space:nowrap}
.file-up:hover .file-up-btn{background:linear-gradient(135deg,var(--gold),var(--gold-2));transform:translateY(-1px);box-shadow:0 6px 14px rgba(197,147,58,.28)}
.file-up-thumb{width:42px;height:42px;border-radius:9px;object-fit:cover;border:1px solid var(--line-2);flex:none}
.file-up-name{font-size:13px;color:var(--muted);font-weight:600;word-break:break-all}
.file-up.has-file .file-up-name{color:var(--green)}
.file-up-multi .file-up-btn{background:var(--navy-3)}
.file-up-input:disabled+.file-up-btn{opacity:.55;cursor:not-allowed}

/* ===== Galerie d'un service (back-office) ===== */
.svc-gal-thumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.svc-gal-thumb{position:relative;display:inline-flex;flex:none}
.svc-gal-thumb img{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line-2);display:block}
.svc-gal-thumb form{position:absolute;top:-6px;right:-6px;margin:0;line-height:0}
.svc-gal-thumb button{width:20px;height:20px;border-radius:50%;border:none;cursor:pointer;
  background:var(--red);color:#fff;font-size:10px;display:grid;place-items:center;padding:0;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.svc-gal-thumb button:hover{filter:brightness(1.1)}
.svc-gal-count{font-size:11.5px;color:var(--muted);font-weight:600}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:inherit;font-weight:700;font-size:15.5px;
  padding:13px 24px;border-radius:12px;transition:.2s;cursor:pointer}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff;width:100%}
.btn-gold:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-2)}
.btn-ghost{background:#fff;color:var(--navy);border:1.5px solid var(--line-2)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-2)}
.btn-danger{background:#fdeaec;color:var(--red);border:1.5px solid #f5c4cb}
.btn-danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn-sm{padding:8px 14px;font-size:13.5px;border-radius:9px}
/* Cibles tactiles confortables sur tablette/mobile */
@media(max-width:1024px){.btn-sm{padding:11px 16px}}
.auth-foot{text-align:center;margin-top:20px;font-size:14px;color:var(--muted)}
.auth-foot a{color:var(--gold-2);font-weight:700}
.auth-foot a:hover{text-decoration:underline}
.field-error{color:var(--red);font-size:13px;margin-top:6px;display:flex;align-items:center;gap:6px}

/* ===== INVALID INPUT STATE (client-side validation) ===== */
.is-invalid{border-color:var(--red)!important;box-shadow:0 0 0 3px rgba(226,71,92,.13)!important}
.input-ic .is-invalid ~ i{color:var(--red)}
/* errors inside flex rows (admin / service / gallery) wrap to a new line */
.edit-row .js-error,.svc-add .js-error{flex:1 1 100%;margin-top:2px}
.star-input + .js-error{margin:-6px 0 14px}

/* ===== AUTH MODAL ===== */
.modal-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(8,16,36,.55);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .22s,visibility .22s}
.modal-overlay.open{opacity:1;visibility:visible}
.modal-card{width:100%;max-width:500px;background:transparent;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-lg);position:relative;max-height:92vh;
  transform:translateY(14px) scale(.97);transition:transform .26s cubic-bezier(.21,1.02,.73,1)}
.modal-view .auth-body{background:var(--surface)}
.modal-overlay.wide .modal-card{max-width:600px}
/* The shown view is a column: fixed header + scrolling body */
.modal-view{display:flex;flex-direction:column;max-height:92vh}
.modal-view .auth-head{flex:none}
.modal-view .auth-body{flex:1 1 auto;min-height:0;overflow-y:auto}
.modal-overlay.open .modal-card{transform:none}
/* ===== Confirm modal (remplace confirm() natif) ===== */
.modal-card.confirm-card{background:var(--surface);max-width:430px}
.confirm-body{padding:32px 30px 26px;text-align:center}
.confirm-icon{width:66px;height:66px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;
  font-size:27px;color:var(--red);background:#fdeaec;box-shadow:0 0 0 8px rgba(224,49,49,.07)}
.confirm-body h3{font-size:20px;font-weight:800;color:var(--navy);margin-bottom:9px;font-family:var(--font-d);letter-spacing:-.3px}
.confirm-body p{font-size:14.5px;color:var(--muted);line-height:1.6;margin-bottom:24px}
.confirm-actions{display:flex;gap:11px}
.confirm-actions .btn{flex:1;width:auto;justify-content:center}
.confirm-actions .confirm-ok{background:var(--red);color:#fff;border:1.5px solid var(--red)}
.confirm-actions .confirm-ok:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 8px 18px rgba(224,49,49,.32)}
/* Variante « action positive » (activer un compte, publier…) : vert, pas rouge. */
.confirm-icon.is-positive{color:var(--green);background:#e7f7ef;box-shadow:0 0 0 8px rgba(15,122,79,.07)}
.confirm-actions .confirm-ok.is-positive{background:var(--green);border-color:var(--green)}
.confirm-actions .confirm-ok.is-positive:hover{box-shadow:0 8px 18px rgba(15,122,79,.32)}
@media(max-width:420px){.confirm-actions{flex-direction:column-reverse}}
.modal-close{position:absolute;top:14px;right:14px;z-index:5;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;font-size:17px;display:grid;place-items:center;transition:.2s}
.modal-close:hover{background:rgba(255,255,255,.28);transform:rotate(90deg)}
.modal-view[hidden]{display:none}
body.modal-open{overflow:hidden}

/* Pretty modal scrollbar (gold, slim, rounded) — only on the body, floats inside */
.modal-view .auth-body{scrollbar-width:thin;scrollbar-color:var(--gold) transparent}
.modal-view .auth-body::-webkit-scrollbar{width:15px}
.modal-view .auth-body::-webkit-scrollbar-track{background:transparent;margin:6px 0}
.modal-view .auth-body::-webkit-scrollbar-thumb{border-radius:99px;border:5px solid transparent;background:linear-gradient(180deg,var(--gold-light),var(--gold-2));background-clip:padding-box}
.modal-view .auth-body::-webkit-scrollbar-thumb:hover{border-width:4px;background:linear-gradient(180deg,var(--gold),var(--gold-2));background-clip:padding-box}
.modal-view .auth-body::-webkit-scrollbar-thumb:active{background:var(--gold-2);background-clip:padding-box}

/* ===== DASHBOARD SHELL (sidebar layout) ===== */
.dash-body{background:var(--bg)}
.dash-layout{display:flex;min-height:100vh;align-items:flex-start}
.dash-sidebar{width:266px;flex:none;background:linear-gradient(185deg,var(--navy-3),var(--navy));color:#fff;
  display:flex;flex-direction:column;position:sticky;top:0;z-index:50;
  /* 100vh sur mobile = hauteur SANS la barre d'adresse : le bas de la barre
     latérale (« Retour au site », « Déconnexion ») tombait hors écran.
     100dvh suit la hauteur réellement visible ; 100vh reste en repli. */
  height:100vh;height:100dvh}
.dash-brand{display:flex;align-items:center;gap:12px;padding:20px 20px;border-bottom:1px solid rgba(255,255,255,.08);flex:none}
.dash-brand .logo{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex:none;
  background:radial-gradient(120% 120% at 30% 20%,rgba(230,193,121,.22),rgba(211,166,78,.06));border:1px solid rgba(230,193,121,.35);color:var(--gold);font-size:21px}
.dash-brand .txt b{font-size:17px;font-weight:800;display:block;line-height:1.25}
.dash-brand .txt small{font-size:11.5px;color:#aeb8cc}
.dash-nav{flex:1;padding:14px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.dash-nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;color:#cfd6e6;font-weight:600;font-size:14.5px;transition:background .18s,color .18s}
.dash-nav a i{width:20px;text-align:center;font-size:16px}
.dash-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.dash-nav a.active{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#fff;box-shadow:0 8px 18px rgba(197,147,58,.32)}
.dash-nav a.active i{color:#fff}
.dash-nav .side-badge{margin-inline-start:auto;background:var(--red);color:#fff;font-size:12px;font-weight:800;min-width:22px;height:22px;border-radius:20px;display:grid;place-items:center;padding:0 6px}
.dash-nav a.active .side-badge{background:rgba(255,255,255,.28)}
/* flex:none — sans ça le pied peut être comprimé par la nav sur écran court.
   safe-area : évite que « Déconnexion » passe sous la barre de gestes. */
.dash-side-foot{padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));
  border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:3px;flex:none}
.dash-side-foot a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:11px;color:#aeb8cc;font-weight:600;font-size:14px;transition:.18s}
.dash-side-foot a i{width:20px;text-align:center}
.dash-side-foot a:hover{background:rgba(255,255,255,.07);color:#fff}

.dash-content{flex:1;min-width:0;display:flex;flex-direction:column}
.dash-topbar{position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:16px;padding:0 26px;min-height:68px;box-shadow:var(--shadow-sm)}
.dash-topbar-title{font-size:19px;font-weight:800;color:var(--navy);flex:1;min-width:0}
.dash-burger{display:none;font-size:20px;color:var(--navy);padding:10px 14px;min-width:44px;min-height:42px}
.dash-user{display:flex;align-items:center;gap:11px}
.dash-user span{font-weight:700;color:#34405c;font-size:14.5px}
.dash-avatar{width:40px;height:40px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px}
.dash-main{flex:1;min-width:0;padding:26px}

.dash-overlay{position:fixed;inset:0;background:rgba(8,16,36,.5);z-index:49;opacity:0;visibility:hidden;transition:.2s}
.dash-overlay.show{opacity:1;visibility:visible}
@media(max-width:920px){
  .dash-sidebar{position:fixed;top:0;left:0;transform:translateX(-105%);transition:transform .26s cubic-bezier(.21,1.02,.73,1);box-shadow:12px 0 44px rgba(0,0,0,.35)}
  .dash-sidebar.open{transform:none}
  .dash-burger{display:block}
}
@media(max-width:560px){.dash-user span{display:none}.dash-main{padding:18px}.dash-topbar{padding:0 16px}}

/* ===== DASHBOARD ===== */
.dash{padding:36px 0 60px}
.dash-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:28px}
.dash-head h1{font-size:25px;font-weight:800;color:var(--navy)}
.dash-head p{color:var(--muted);font-size:14.5px;margin-top:3px}
.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}
.dash-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;align-items:center;gap:14px}
.dash-stat .ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:rgba(13,29,64,.06);color:var(--navy)}
.dash-stat .num{font-size:22px;font-weight:800;color:var(--navy)}
.dash-stat .lbl{font-size:13px;color:var(--muted);font-weight:600}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.panel-head h2{font-size:17px;font-weight:800;color:var(--navy)}
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{padding:14px 18px;text-align:left;font-size:14px;border-bottom:1px solid var(--line)}
.tbl th{background:#fafbfc;color:var(--muted);font-weight:700;font-size:13px}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:#fafbfc}
.tbl .thumb{width:48px;height:48px;border-radius:10px;object-fit:cover}
.row-actions{display:flex;gap:8px;justify-content:flex-start}
.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px}
.status-pill.published{background:#e7f7ef;color:#0f7a4f}
.status-pill.pending{background:#fff5e6;color:#b9791a}
.status-pill.hidden{background:#eef0f4;color:#6b7488}
.status-pill.rejected{background:#fdecec;color:#b42318}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
.form-grid .full{grid-column:1/-1}
.form-wrap{max-width:760px}
.checkbox-row{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.checkbox-row input{width:18px;height:18px;accent-color:var(--gold)}
.checkbox-row label{font-weight:600;color:#34405c;font-size:14.5px}

/* Working-hours editor */
.hours-edit{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.hours-edit-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.hours-edit-row:last-child{border-bottom:none}
.hours-edit-row .hday{font-weight:700;color:#34405c;width:78px;flex:none}
.hours-edit-row .hclosed{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);font-weight:600;width:78px;flex:none}
.hours-edit-row .hclosed input{width:16px;height:16px;accent-color:var(--gold)}
.hours-edit-row .htime{border:1.5px solid var(--line-2);border-radius:9px;padding:7px 10px;font-family:inherit;font-size:14px;color:var(--text)}
.hours-edit-row .htime:disabled{background:#f3f5f8;color:var(--muted-2)}
.hours-edit-row .hsep{color:var(--muted)}

/* Services & gallery add row */
.svc-add{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.svc-add input[type=text],.svc-add input[type=number]{flex:1;min-width:150px;border:1.5px solid var(--line-2);border-radius:10px;padding:10px 13px;font-family:inherit;font-size:14px}
.svc-add input:focus{border-color:var(--gold);outline:none}

.gallery-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:18px}
.gallery-admin-item{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.gallery-admin-item img{width:100%;height:100%;object-fit:cover}
.gallery-admin-item .img-del{position:absolute;top:6px;left:6px;width:28px;height:28px;border-radius:50%;background:rgba(226,71,92,.92);color:#fff;display:grid;place-items:center;font-size:13px;transition:.2s}
.gallery-admin-item .img-del:hover{background:var(--red);transform:scale(1.1)}

/* ===== ADMIN ===== */
.admin-nav{display:flex;gap:6px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px;margin-top:18px}
.admin-nav a{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:10px;font-weight:700;font-size:14.5px;color:#3a455f;transition:.18s}
.admin-nav a:hover{background:#f3f6fb;color:var(--navy)}
.admin-nav a.active{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff}
.admin-nav a.active i{color:var(--gold-light)}

.edit-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fafbfc;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.edit-row input[type=text],.edit-row input[type=number]{flex:1;min-width:120px;border:1.5px solid var(--line-2);border-radius:9px;padding:9px 12px;font-family:inherit;font-size:14px;background:#fff}
.edit-row input[type=text]:focus,.edit-row input[type=number]:focus{border-color:var(--gold);outline:none}
.edit-row input[type=color]{border:1.5px solid var(--line-2);border-radius:9px;cursor:pointer}
.edit-row .btn{width:auto;white-space:nowrap}
.edit-row-photo{flex:1 1 100%;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px;padding-top:10px;border-top:1px dashed var(--line-2)}
.edit-row-photo .file-up{flex:none}
/* ----- Sélecteur d'icône visuel ----- */
.icon-pick{position:relative;display:inline-flex;flex:none}
.icon-pick-btn{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line-2);border-radius:10px;padding:10px 14px;background:#fff;font-family:inherit;font-size:14px;font-weight:600;color:var(--navy);cursor:pointer;transition:.18s;white-space:nowrap}
.icon-pick-btn:hover{border-color:var(--primary);color:var(--primary)}
.icon-pick-btn .ip-preview{color:var(--primary);font-size:15px}
button.cat-icon.icon-pick-trigger{transition:.18s;position:relative}
button.cat-icon.icon-pick-trigger:hover{filter:brightness(.97)}
button.cat-icon.icon-pick-trigger::after{content:"\f304";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;right:-3px;bottom:-3px;font-size:9px;background:var(--primary);color:#fff;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 5px rgba(0,0,0,.2)}
.modal-card.icon-card{background:var(--surface);max-width:560px}
.icon-picker-body{padding:26px 26px 22px}
.icon-picker-body h3{font-size:19px;font-weight:800;color:var(--navy);font-family:var(--font-d);margin-bottom:16px}
.icon-search-wrap{position:relative;margin-bottom:16px}
.icon-search-wrap i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted-2);font-size:14px}
.icon-search{width:100%;border:1.5px solid var(--line-2);border-radius:11px;padding:12px 15px 12px 40px;font-family:inherit;font-size:14.5px;background:#fff}
.icon-search:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(8,145,178,.13)}
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:9px;max-height:340px;overflow-y:auto;padding:4px}
.icon-opt{aspect-ratio:1;display:grid;place-items:center;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-size:19px;cursor:pointer;transition:.15s}
.icon-opt:hover{border-color:var(--primary);color:var(--primary);background:rgba(8,145,178,.06);transform:translateY(-2px)}
.icon-opt.sel{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:var(--sh-teal)}
.icon-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:26px;font-size:14px}
.svc-add input[type=url]{border:1.5px solid var(--line-2);border-radius:10px;padding:10px 13px;font-family:inherit;font-size:14px}
.svc-add input[type=url]:focus{border-color:var(--gold);outline:none}
.badge-select{border:1.5px solid var(--line-2);border-radius:9px;padding:8px 10px;font-family:inherit;font-size:13px;background:#fff;cursor:pointer}
.badge-select:focus{border-color:var(--gold);outline:none}

/* ===== RESPONSIVE ===== */
@media(max-width:1080px){.cards-grid{grid-template-columns:repeat(3,1fr)}.dash-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:920px){
  .topbar-inner{flex-wrap:wrap;min-height:auto;padding:16px 0;gap:14px}
  .brand-sub{display:none}
  .nav-links{display:none;flex-direction:column;align-items:stretch;width:100%}
  .nav-links.open{display:flex}
  .nav-links a{padding:14px 4px}.nav-links .active a::after{display:none}
  .nav-toggle{display:block;margin-inline-start:auto}
  .nav-inner{flex-wrap:wrap}
  .search-pill{flex-wrap:wrap}
  .search-field{flex:1 1 100%;order:-1}
  .search-divider{display:none}
  .search-btn{flex:1;justify-content:center;padding:14px}
  .hero h1{font-size:31px}
  .form-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .cards-grid{grid-template-columns:repeat(2,1fr)}
  .container{padding-inline:18px}
  .topbar-utils{gap:13px;flex-wrap:wrap}
  .stats-inner{justify-content:center;text-align:center}
  .stats-cta{order:-1;flex:1 1 100%;justify-content:center}
  .dash-stats{grid-template-columns:1fr}
  .tbl thead{display:none}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tr{border-bottom:1px solid var(--line);padding:8px 0}
  .tbl td{border:none;padding:8px 18px}
}
@media(max-width:460px){.cards-grid{grid-template-columns:1fr}.hero h1{font-size:26px}}
:focus,:focus-visible{outline:none}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
