/* --- tailwind.css --- */
.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-4{inset:-1rem}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.right-0{right:0}.top-6{top:1.5rem}.top-full{top:100%}.z-10{z-index:10}.z-\[1200\]{z-index:1200}.order-first{order:-9999}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-auto{margin-top:auto;margin-bottom:auto}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.mr-2{margin-right:.5rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-auto{margin-inline-start:auto}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.list-item{display:list-item}.\!hidden{display:none!important}.hidden{display:none}.h-10{height:2.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-px{height:1px}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-80{width:20rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-7xl{max-width:80rem}.max-w-\[92\%\]{max-width:92%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xl{max-width:36rem}.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1{--tw-translate-y:0.25rem}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-emerald-400\/40{border-color:rgba(52,211,153,.4)}.border-rose-400\/40{border-color:rgba(251,113,133,.4)}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-white\/5{border-color:hsla(0,0%,100%,.05)}.border-yellow-400\/40{border-color:rgba(250,204,21,.4)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-emerald-400\/10{background-color:rgba(52,211,153,.1)}.bg-rose-400\/10{background-color:rgba(251,113,133,.1)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-yellow-400\/10{background-color:rgba(250,204,21,.1)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-14{padding-bottom:3.5rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pl-5{padding-left:1.25rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-end{text-align:end}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.05\]{line-height:1.05}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.text-\[var\(--fg\)\]{color:var(--fg)}.text-\[var\(--muted\)\]{color:var(--muted)}.text-emerald-100{--tw-text-opacity:1;color:rgb(209 250 229/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-rose-100{color:rgb(255 228 230/var(--tw-text-opacity,1))}.text-rose-100,.text-white{--tw-text-opacity:1}.text-white{color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-100{--tw-text-opacity:1;color:rgb(254 249 195/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.blur-2xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-2xl{--tw-blur:blur(40px)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.\!invert{--tw-invert:invert(100%)!important;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.invert{--tw-invert:invert(100%)}.invert,.sepia{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia:sepia(100%)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.will-change-transform{will-change:transform}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem}.hover\:-translate-y-0\.5:hover,.hover\:-translate-y-1:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:bg-white\/5:hover{background-color:hsla(0,0%,100%,.05)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (min-width:640px){.sm\:block{display:block}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:justify-self-end{justify-self:end}.lg\:px-8{padding-left:2rem;padding-right:2rem}}

/* --- echodev.css --- */
:root{
  --brand-1:#0ea5e9;
  --brand-2:#7c3aed;
  --bg:#0c1222;
  --fg:#eaedf5;
  --muted:#99a1b3;
  --card:#11172a;
  --ring:rgba(126,58,237,.45);
}
.hero-gradient{position:relative;background:none}
.hero-gradient::before{
  content:'';position:absolute;top:-10%;left:-10%;
  width:60vmax;height:30vmax;border-radius:9999px;
  background:radial-gradient(closest-side,rgba(14,165,233,.25),transparent);
  filter:blur(40px);opacity:.8;pointer-events:none
}
.hero-gradient::after{
  content:'';position:absolute;top:-15%;right:-10%;
  width:50vmax;height:28vmax;border-radius:9999px;
  background:radial-gradient(closest-side,rgba(124,58,237,.25),transparent);
  filter:blur(40px);opacity:.7;pointer-events:none
}
.brand-text{background:linear-gradient(90deg,var(--brand-1),var(--brand-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-ring{box-shadow:0 0 0 4px var(--ring)}
.glass{background:rgba(255,255,255,.04);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08)}
.card{background:var(--card);border:1px solid rgba(255,255,255,.06)}
.shadow-soft{box-shadow:0 10px 35px rgba(0,0,0,.25)}
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.85rem 1.15rem;border-radius:9999px;font-weight:600}
.btn-primary{background:linear-gradient(90deg,var(--brand-1),var(--brand-2));color:#fff}
.btn-outline{border:1px solid rgba(255,255,255,.2)}
.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border-radius:9999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);font-size:.78rem;color:#cfd6e6}
.kpi{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.06)}
.divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent)}
/* Stickybar : cachée au départ */
.stickybar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 50;
  background: rgba(15,23,42,.96);            /* fond sombre translucide */
  border-top: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 -10px 30px rgba(0,0,0,.25);

  transform: translateY(120%);
  opacity: 0;
  pointer-events: none;

  transition: transform .28s ease, opacity .28s ease;
  overflow-x: clip; /* jamais de scroll horizontal */
}

/* Visible après scroll */
.stickybar.is-visible{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

/* Accessibilité : pas d’animations si l’utilisateur les coupe */
@media (prefers-reduced-motion: reduce){
  .stickybar{ transition: none; }
}.icon{width:1.1em;height:1.1em;display:inline-block}

/* COMPACT MOBILE BUTTONS (44px tap target, smaller visual weight) */
.btn-mob{padding:.3rem .5rem;font-size:.9rem;min-height:44px;border-radius:12px}

/* Optional: shrink even more on very small screens */
@media (max-width:400px){
  .btn-mob{padding:.25rem .45rem;font-size:.85rem;min-height:42px}
}

@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-6px)}100%{transform:translateY(0)}}
.float{animation:float 4s ease-in-out infinite}

/* Helpers */
.glow{
  mask-image:radial-gradient(closest-side,#000 70%,transparent);
  -webkit-mask-image:radial-gradient(closest-side,#000 70%,transparent);
}
/* Panel + pont anti-décrochage (pas de fermeture pendant la descente) */
.dropdown-panel{
  min-width:16rem;
  transition:opacity .18s ease, transform .18s ease;
  z-index:999; position:absolute;
}
.dropdown-open [data-dropdown-panel]{
  opacity:1 !important;
  transform:translateY(0) !important;
  pointer-events:auto !important;
}
.dropdown-open [data-dropdown-panel]::before{
  pointer-events: none; /* au lieu de content:none */
}

/* Items */
.dropdown-item{
  display:block; padding:.55rem .9rem; border-radius:.6rem;
  color:#e5e7eb; text-decoration:none;
}
.dropdown-item:hover{ background:rgba(255,255,255,.06); }
/* 1) Rendez le panel cliquable & visible quand .dropdown-open est posé */
.dropdown-open [data-dropdown-panel]{
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
  z-index: 1000; /* par sécurité */
}

/* 2) SUPPRIMEZ le “pont” qui bloquait les premiers liens */
.dropdown-open [data-dropdown-panel]::before{
  content: none !important;
}

/* 3) (Optionnel) Ajoutez un léger offset visuel au panel */
[data-dropdown-panel]{ margin-top: 8px; }

/* 4) Hover bien visible */
.dropdown-item:hover{ background: rgba(255,255,255,.08); }
:root{
  --z-overlay:   2000;  /* backdrops, modales */
  --z-dropdown:  1200;  /* sous-menus, tooltips */
  --z-mobileNav: 1100;  /* panneau off-canvas */
  --z-header:    1000;  /* navbar collante */
  --z-stickybar:  900;  /* bandeau sticky bas */
  --z-section:      1;  /* contenu par défaut */
}

/* Base layering */
header, .site-header{ position: relative; z-index: var(--z-header); }
[data-dropdown-panel]{ position: absolute; z-index: var(--z-dropdown); }
#mobileNavOverlay{ position: fixed; z-index: var(--z-overlay); }
#mobileNav{ position: fixed; z-index: var(--z-mobileNav); }
section, .section{ position: relative; z-index: var(--z-section); }

/* À éviter sur les conteneurs près des menus */
.has-dropdown-parent{ overflow: visible; }
/* ===== NAV Echo Dev — hardening ===== */
.edv-nav{ position:relative; z-index:var(--z-header,1000); }

/* Liens du nav */
.edv-nav a{
  color:#c7d2fe; /* lavande lisible sur fond sombre */
  text-decoration:none;
  transition:opacity .15s ease, color .15s ease;
}
.edv-nav a:hover{ color:#ffffff; opacity:.9; }

/* Bouton déclencheur du sous-menu (Blog) : reset UA */
.edv-nav [data-dropdown-trigger]{
  appearance:none; -webkit-appearance:none;
  background:transparent; border:0; padding:0; margin:0;
  color:#c7d2fe; font:inherit; line-height:inherit; cursor:pointer;
}
.edv-nav [data-dropdown-trigger]:focus{ outline:none; }

/* Dropdown panel + items (si pas déjà défini) */
.edv-nav .dropdown-panel{
  min-width:16rem; margin-top:8px;
  border-radius:12px;
  background:rgba(15,23,42,.95);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 20px 50px rgba(0,0,0,.35);
  z-index:1200;
}
.edv-nav .dropdown-item{
  display:block; padding:.55rem .9rem; border-radius:.6rem;
  color:#e5e7eb; text-decoration:none;
}
.edv-nav .dropdown-item:hover{ background:rgba(255,255,255,.06); }

/* Désactive l’ancien “pont” qui pouvait bloquer des clics */
.edv-nav .dropdown-panel::before{ content:none !important; }

/* CTA header (si besoin de le raviver) */
.edv-nav .btn.btn-primary{
  background:linear-gradient(90deg,#38bdf8,#8b5cf6);
  color:#fff; border:0;
  box-shadow:0 10px 30px rgba(139,92,246,.35);
}
.edv-nav .btn.btn-primary:hover{ filter:brightness(1.05); }

/* Évite qu’une section passe au-dessus du nav */
section, .section{ position:relative; z-index:1; }


/* --- echodev-fixes.css --- */
/* === Echodev — overrides typographie & boutons === */
/* Palette liens */
:root{
    --link: #93c5fd;       /* bleu clair thème */
    --link-hover: #bfdbfe; /* plus lumineux au hover */
}

/* Dans le contenu Tiny uniquement */
.prose a:link,
.prose a:visited{
    color: var(--link);
    text-decoration: none;
    border-bottom: 1px solid rgba(147,197,253,.35); /* soulignement propre */
}
.prose a:hover{
    color: var(--link-hover);
    border-bottom-color: rgba(191,219,254,.8);
}

/* Si un lien est un vrai bouton, on ne le souligne pas */
.prose a.btn{ border-bottom: none !important; }
/* Base lisible et cohérente */
:root{
    --font-body: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    --font-display: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

    /* Échelle de titres calibrée au design */
    --fs-h1: clamp(2.6rem, 5.2vw, 3.8rem);  /* ~42–60px */
    --fs-h2: clamp(1.75rem, 3.2vw, 2.25rem);/* ~28–36px */
    --fs-h3: clamp(1.25rem, 2.2vw, 1.5rem); /* ~20–24px */
}

html{ font-size:16px; }
body{ font-family: var(--font-body); }

/* Hero H1 (home) — taille “whaou” + tracking serré */
.edv-hero h1,
h1.hero-title{
    font-family: var(--font-display);
    font-size: var(--fs-h1) !important;
    line-height: 1.08;
    letter-spacing: -0.015em;
}

/* Titres globaux si besoin */
h2{ font-size: var(--fs-h2); line-height:1.15; }
h3{ font-size: var(--fs-h3); line-height:1.2; }

/* Accent dégradé */
.brand-text{
    background: linear-gradient(90deg,#60a5fa,#a78bfa);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* Badges */
.badge{
    display:inline-flex; align-items:center; gap:.4rem;
    font-size:.9rem; padding:.38rem .65rem; border-radius:1rem;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.10);
}

/* Cartes */
.card{
    background: rgba(12,17,28,.45);
    border:1px solid rgba(255,255,255,.08);
    box-shadow: 0 10px 30px rgba(2,6,23,.25) inset;
}

/* Boutons */
.btn{
    display:inline-flex; align-items:center; justify-content:center;
    font-weight:600; line-height:1;
    padding:.78rem 1.1rem; border-radius:14px;
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}

.btn-primary{
    background: linear-gradient(90deg,#38bdf8,#8b5cf6);
    color:#fff; border:0;
    box-shadow: 0 10px 28px rgba(139,92,246,.35), 0 0 1px rgba(255,255,255,.2) inset;
}
.btn-primary:hover{ filter:brightness(1.05); transform: translateY(-1px); }

.btn-outline{
    background: rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.22);
    color:#e5e7eb;
}
.btn-outline:hover{
    background: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.35);
}

/* “Stats” sous le hero */
.text-3xl.font-black{ letter-spacing: -0.01em; }

/* Sécurité z-index (nav > sections) */
header,.site-header{ position:relative; z-index:1000; }
section,.section{ position:relative; z-index:1; }
/* ===== Buttons: neutraliser totalement le style <a> et unifier la taille ===== */

/* Reset complet du comportement "lien" sur les boutons ancre */
a.btn,
a.btn:link,
a.btn:visited,
a.btn:hover,
a.btn:focus,
a.btn:active,
.btn,
.btn:link,
.btn:visited,
.btn:hover,
.btn:focus,
.btn:active{
    text-decoration: none !important;
    color: inherit !important;
}

/* Gabarit commun (taille identique partout) */
.btn{
    display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
    box-sizing:border-box;
    font-size: 1rem;          /* 16px fixes */
    line-height: 1;           /* pas de reflow vertical */
    font-weight: 600;
    padding: .78rem 1.1rem;   /* même “grosseur” */
    border-radius: 14px;
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}

/* Variantes */
.btn-primary{
    background: linear-gradient(90deg,#38bdf8,#8b5cf6);
    border:0;
    color:#fff !important;               /* pas de violet “visited” */
    box-shadow: 0 10px 28px rgba(139,92,246,.35), 0 0 1px rgba(255,255,255,.2) inset;
}
.btn-primary:hover{ filter:brightness(1.05); transform: translateY(-1px); }

.btn-outline{
    background: rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.22);
    color:#e5e7eb !important;
}
.btn-outline:hover{
    background: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.35);
}

/* Focus accessible (sans soulignement) */
.btn:focus,
.btn:focus-visible{
    outline: 2px solid rgba(56,189,248,.7);
    outline-offset: 2px;
    text-decoration: none !important;
}

/* Dans le header, on interdit aussi tout soulignement de liens */
.edv-nav a,
.edv-nav a:hover,
.edv-nav a:focus{
    text-decoration: none !important;
}
/* ==== Cartes blog : titre cliquable sans soulignement + stretched link ==== */

/* Le conteneur doit être positionné pour étirer le lien */
.card{ position: relative; }

/* Titre : couleur stable, pas de soulignement ni violet "visited" */
.card h3 a,
.card h3 a:link,
.card h3 a:visited,
.card h3 a:hover,
.card h3 a:focus{
    color:#e5e7eb !important;
    text-decoration: none !important;
}
.card h3 a:hover{ color:#ffffff !important; }

/* Étendre le lien sur toute la carte (façon Bootstrap) */
.card .stretched-link{ position: static; }            /* laisse le flux normal */
.card .stretched-link::after{
    content:"";
    position:absolute; inset:0;                         /* couvre toute la carte */
    z-index:0;                                          /* sous les vrais contenus */
    background:transparent;
}

/* Option : adoucir l’extrait sur les cartes */
.card .excerpt{ color: var(--muted); }
/* ===== Footer Echodev ===== */
.edv-footer{ color: var(--muted); }
.edv-footer .divider{
    height:1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
}

/* Liens du footer : pas de violet visited, jamais soulignés */
.edv-footer a,
.edv-footer a:link,
.edv-footer a:visited,
.edv-footer a:hover,
.edv-footer a:focus{
    color:#c7d2fe !important;
    text-decoration:none !important;
}
.edv-footer a:hover{ color:#ffffff !important; opacity:.9; }

/* Focus visible accessible (sans soulignement) */
.edv-footer a:focus,
.edv-footer a:focus-visible{
    outline: 2px solid rgba(56,189,248,.7);
    outline-offset: 2px;
    border-radius: 6px;
}

/* Option: taille texto un poil plus lisible */
.edv-footer{ font-size: .95rem; }
/* ===== Page Contact (scope) ===== */
.edv-contact a,
.edv-contact a:link,
.edv-contact a:visited,
.edv-contact a:hover,
.edv-contact a:focus{
    color:#c7d2fe !important;       /* lavande lisible sur fond sombre */
    text-decoration:none !important;/* jamais souligné */
}
.edv-contact a:hover{ color:#ffffff !important; opacity:.9; }

/* liste coordonnées propre (avec tes icônes) */
.edv-contact ul{ list-style:none; padding-left:0; margin:0; }
.edv-contact li{ display:flex; align-items:center; gap:.5rem; }

/* bouton “Prendre un rendez-vous” pleine largeur déjà OK via .btn */
.edv-contact .btn{ width:100%; }
/* ===== Contact form spacing & inputs ===== */
.edv-contact form.grid > *{ min-width: 0; } /* évite tout débordement de colonne */

.edv-contact input[type="text"],
.edv-contact input[type="email"],
.edv-contact textarea{
    width:100%;
    box-sizing: border-box;
    border:1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.06);
    border-radius: 12px;
    padding: .8rem .9rem;
    color: var(--fg, #e5e7eb);
}

.edv-contact input:focus,
.edv-contact textarea:focus{
    outline: none;
    border-color: rgba(56,189,248,.6);
    box-shadow: 0 0 0 3px rgba(56,189,248,.15);
}

/* Labels compacts et lisibles */
.edv-contact label{ display:block; font-size:.9rem; margin-bottom:.35rem; color:#cbd5e1; }
/* ===== Contact: micro-jour entre les 2 inputs ===== */
.edv-contact form.grid{
    column-gap: 2px;           /* ← le “1–2 px” demandé */
}

@media (min-width:768px){
  .edv-contact form.grid{ column-gap: 4px; }
}

/* ——— Off-canvas mobile ——— */
#mobileNav { transform: translateX(100%); }
html.nav-open #mobileNav { transform: translateX(0); }

#mobileNavOverlay { opacity:0; pointer-events:none; }
html.nav-open #mobileNavOverlay { opacity:1; pointer-events:auto; }

html.nav-open body { overflow:hidden; }  /* pas de scroll de fond */

/* Accordéon icône rotation */
html.nav-open [data-acc="blog"][aria-expanded="true"] svg { transform: rotate(180deg); }
/* ===== Mobile nav (off-canvas) : liens propres, jamais soulignés ===== */
#mobileNav nav { color:#e5e7eb; }

#mobileNav a,
#mobileNav a:link,
#mobileNav a:visited,
#mobileNav a:hover,
#mobileNav a:focus{
    color:#e5e7eb !important;          /* pas de violet “visited” */
    text-decoration:none !important;   /* jamais souligné */
}

#mobileNav a{
    display:block;
    padding:.65rem .8rem;
    border-radius:.6rem;
}
#mobileNav a:hover{
    background:rgba(255,255,255,.06);
    color:#ffffff !important;
}

/* Bouton d’ouverture d’accordéon “Blog” dans le panneau */
#mobileNav [data-acc="blog"]{
    color:#e5e7eb;
    text-decoration:none;
}
#mobileNav [data-acc="blog"]:hover{
    background:rgba(255,255,255,.06);
}

/* CTA dans le menu — s’assure qu’il ne soit jamais souligné */
#mobileNav .btn,
#mobileNav .btn:link,
#mobileNav .btn:visited,
#mobileNav .btn:hover,
#mobileNav .btn:focus{
    text-decoration:none !important;
    color:inherit !important;
}
/* ===== Mobile nav (off-canvas) : liens propres, jamais soulignés ===== */
#mobileNav nav { color:#e5e7eb; }

#mobileNav a,
#mobileNav a:link,
#mobileNav a:visited,
#mobileNav a:hover,
#mobileNav a:focus{
    color:#e5e7eb !important;          /* pas de violet “visited” */
    text-decoration:none !important;   /* jamais souligné */
}

#mobileNav a{
    display:block;
    padding:.65rem .8rem;
    border-radius:.6rem;
}
#mobileNav a:hover{
    background:rgba(255,255,255,.06);
    color:#ffffff !important;
}

/* Bouton d’ouverture d’accordéon “Blog” dans le panneau */
#mobileNav [data-acc="blog"]{
    color:#e5e7eb;
    text-decoration:none;
}
#mobileNav [data-acc="blog"]:hover{
    background:rgba(255,255,255,.06);
}

/* CTA dans le menu — s’assure qu’il ne soit jamais souligné */
#mobileNav .btn,
#mobileNav .btn:link,
#mobileNav .btn:visited,
#mobileNav .btn:hover,
#mobileNav .btn:focus{
    text-decoration:none !important;
    color:inherit !important;
}
/* ===== Mobile nav (off-canvas) : liens propres, jamais soulignés ===== */
#mobileNav nav { color:#e5e7eb; }

#mobileNav a,
#mobileNav a:link,
#mobileNav a:visited,
#mobileNav a:hover,
#mobileNav a:focus{
    color:#e5e7eb !important;          /* pas de violet “visited” */
    text-decoration:none !important;   /* jamais souligné */
}

#mobileNav a{
    display:block;
    padding:.65rem .8rem;
    border-radius:.6rem;
}
#mobileNav a:hover{
    background:rgba(255,255,255,.06);
    color:#ffffff !important;
}

/* Bouton d’ouverture d’accordéon “Blog” dans le panneau */
#mobileNav [data-acc="blog"]{
    color:#e5e7eb;
    text-decoration:none;
}
#mobileNav [data-acc="blog"]:hover{
    background:rgba(255,255,255,.06);
}

/* CTA dans le menu — s’assure qu’il ne soit jamais souligné */
#mobileNav .btn,
#mobileNav .btn:link,
#mobileNav .btn:visited,
#mobileNav .btn:hover,
#mobileNav .btn:focus{
    text-decoration:none !important;
    color:inherit !important;
}
/* ===== Mobile nav (off-canvas) : liens propres, jamais soulignés ===== */
#mobileNav nav { color:#e5e7eb; }

#mobileNav a,
#mobileNav a:link,
#mobileNav a:visited,
#mobileNav a:hover,
#mobileNav a:focus{
    color:#e5e7eb !important;          /* pas de violet “visited” */
    text-decoration:none !important;   /* jamais souligné */
}

#mobileNav a{
    display:block;
    padding:.65rem .8rem;
    border-radius:.6rem;
}
#mobileNav a:hover{
    background:rgba(255,255,255,.06);
    color:#ffffff !important;
}

/* Bouton d’ouverture d’accordéon “Blog” dans le panneau */
#mobileNav [data-acc="blog"]{
    color:#e5e7eb;
    text-decoration:none;
}
#mobileNav [data-acc="blog"]:hover{
    background:rgba(255,255,255,.06);
}

/* CTA dans le menu — s’assure qu’il ne soit jamais souligné */
#mobileNav .btn,
#mobileNav .btn:link,
#mobileNav .btn:visited,
#mobileNav .btn:hover,
#mobileNav .btn:focus{
    text-decoration:none !important;
    color:inherit !important;
}
/* ===== Mobile nav (off-canvas) : liens propres, jamais soulignés ===== */
#mobileNav nav { color:#e5e7eb; }

#mobileNav a,
#mobileNav a:link,
#mobileNav a:visited,
#mobileNav a:hover,
#mobileNav a:focus{
    color:#e5e7eb !important;          /* pas de violet “visited” */
    text-decoration:none !important;   /* jamais souligné */
}

#mobileNav a{
    display:block;
    padding:.65rem .8rem;
    border-radius:.6rem;
}
#mobileNav a:hover{
    background:rgba(255,255,255,.06);
    color:#ffffff !important;
}

/* Bouton d’ouverture d’accordéon “Blog” dans le panneau */
#mobileNav [data-acc="blog"]{
    color:#e5e7eb;
    text-decoration:none;
}
#mobileNav [data-acc="blog"]:hover{
    background:rgba(255,255,255,.06);
}
/* Off-canvas: z-index correct + clics */
#mobileNavOverlay{ z-index:1100; }
#mobileNav{ z-index:1200; pointer-events:auto; }  /* au-dessus de l’overlay */

/* CTA dans le menu — s’assure qu’il ne soit jamais souligné */
#mobileNav .btn,
#mobileNav .btn:link,
#mobileNav .btn:visited,
#mobileNav .btn:hover,
#mobileNav .btn:focus{
    text-decoration:none !important;
    color:inherit !important;
}
/* ====== NAV — Dropdown Blog (desktop) ====== */
.edv-nav [data-dropdown]{ position:relative; }

.edv-nav .dropdown-panel{
    background: rgba(12,17,28,.96);                    /* fond sombre */
    border: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(8px);
    box-shadow: 0 20px 50px rgba(0,0,0,.35);
    border-radius: 12px;
    opacity: 0; transform: translateY(6px);
    pointer-events: none;
    transition: opacity .15s ease, transform .15s ease;
    z-index: 1200;
}

/* Ouvre le panneau quand on survole le bloc ou quand JS pose .dropdown-open */
.edv-nav [data-dropdown]:hover .dropdown-panel,
.edv-nav .dropdown-open .dropdown-panel{
    opacity:1; transform: translateY(0); pointer-events:auto;
}

/* petit “pont” anti-décrochage */
.edv-nav [data-dropdown] .dropdown-panel::before{
    content:""; position:absolute; top:-8px; right:24px; width:16px; height:16px;
    background: inherit; transform: rotate(45deg);
    border-top: 1px solid rgba(255,255,255,.08);
    border-left: 1px solid rgba(255,255,255,.08);
}

/* Liens du dropdown : jamais violets/soulignés */
.edv-nav .dropdown-item,
.edv-nav .dropdown-item:link,
.edv-nav .dropdown-item:visited,
.edv-nav .dropdown-item:hover,
.edv-nav .dropdown-item:focus{
    display:block; padding:.55rem .85rem; border-radius:.6rem;
    color:#e5e7eb !important; text-decoration:none !important;
}
.edv-nav .dropdown-item:hover{ background: rgba(255,255,255,.06); color:#fff !important; }

/* ====== NAV — Panneau mobile : sous-menu Blog ====== */
#mobileNav [data-acc-panel="blog"]{
    background: transparent;                 /* surtout pas blanc */
    border-top: 1px solid rgba(255,255,255,.08);
    margin-top:.25rem; padding-top:.25rem;
}
#mobileNav [data-acc-panel="blog"] a{
    color:#e5e7eb !important; text-decoration:none !important;
}
#mobileNav [data-acc="blog"][aria-expanded="true"] svg{ transform:rotate(180deg); }

/* ===== Desktop dropdown "Blog" — fond sombre garanti ===== */
.edv-nav .dropdown-panel{
    background: rgba(12,17,28,.96) !important;   /* écrase les classes bg-* */
    border: 1px solid rgba(255,255,255,.08) !important;
    backdrop-filter: blur(8px);
    box-shadow: 0 20px 50px rgba(0,0,0,.35);
    border-radius: 12px;
    opacity: 0; transform: translateY(6px);
    pointer-events: none;
    transition: opacity .15s ease, transform .15s ease;
    z-index: 1200;
}

/* Ouvert (hover ou .dropdown-open posée par JS) */
.edv-nav [data-dropdown]:hover .dropdown-panel,
.edv-nav .dropdown-open .dropdown-panel{
    opacity: 1; transform: translateY(0); pointer-events: auto;
}

/* Liens dans le menu : jamais violet / jamais souligné */
.edv-nav .dropdown-item,
.edv-nav .dropdown-item:link,
.edv-nav .dropdown-item:visited,
.edv-nav .dropdown-item:hover,
.edv-nav .dropdown-item:focus{
    display:block; padding:.55rem .85rem; border-radius:.6rem;
    color:#e5e7eb !important;
    text-decoration:none !important;
}
.edv-nav .dropdown-item:hover{
    background: rgba(255,255,255,.06) !important;
    color:#fff !important;
}

/* Petit “pont” anti-décrochage sous le bouton */
.edv-nav [data-dropdown] .dropdown-panel::before{
    content:""; position:absolute; top:-8px; right:24px; width:16px; height:16px;
    background: rgba(12,17,28,.96) !important;
    transform: rotate(45deg);
    border-top: 1px solid rgba(255,255,255,.08);
    border-left: 1px solid rgba(255,255,255,.08);
}

/* ===== Mobile — sous-menu Blog (accordéon) : surtout pas blanc ===== */
#mobileNav [data-acc-panel="blog"]{
    background: transparent !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    margin-top:.25rem; padding-top:.25rem;
}
#mobileNav [data-acc-panel="blog"] a{
    color:#e5e7eb !important;
    text-decoration:none !important;
}
#mobileNav [data-acc="blog"][aria-expanded="true"] svg{ transform: rotate(180deg); }
/* Bouton "Blog" du menu mobile : pas d'apparence de champ natif */
#mobileNav [data-acc="blog"]{
    -webkit-appearance: none; appearance: none;
    background: transparent !important;
    color:#e5e7eb !important;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: .6rem;
}
#mobileNav [data-acc="blog"]:hover{ background: rgba(255,255,255,.06); }
#mobileNav [data-acc="blog"][aria-expanded="true"] svg{ transform: rotate(180deg); }

/* Sous-menu blog : thème sombre, jamais “violet visited” */
#mobileNav [data-acc-panel="blog"]{ background: transparent !important; }
#mobileNav [data-acc-panel="blog"] a{
    color:#e5e7eb !important; text-decoration:none !important;
}

/* Desktop dropdown blog (si pas déjà pris) */
.edv-nav .dropdown-panel{
    background: rgba(12,17,28,.96) !important;
    border:1px solid rgba(255,255,255,.08) !important;
    backdrop-filter: blur(8px);
}
.edv-nav .dropdown-item,
.edv-nav .dropdown-item:link,
.edv-nav .dropdown-item:visited,
.edv-nav .dropdown-item:hover,
.edv-nav .dropdown-item:focus{
    color:#c7d2fe !important; text-decoration:none !important;
}

/* ==== Echodev fixes — override Tailwind sm:text-5xl ==== */
/* À partir de 640px, on force 3.2rem au lieu de 3.1rem */
@media (min-width: 640px){
    .sm\:text-5xl{
        font-size: 3.2rem !important;
        line-height: 1 !important;
    }
}
/* ===== Fil d’Ariane (évite les numéros, ajoute le chevron) ===== */
.edv-breadcrumb ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
.edv-breadcrumb li{
    display: inline-flex;
    align-items: center;
}
.edv-breadcrumb li + li::before{
    content: "›";
    opacity: .6;
    margin: 0 .35rem;
}
/* Liens : pas de violet/souligné */
.edv-breadcrumb a,
.edv-breadcrumb a:link,
.edv-breadcrumb a:visited,
.edv-breadcrumb a:hover,
.edv-breadcrumb a:focus{
    color: #c7d2fe !important;
    text-decoration: none !important;
}
.edv-breadcrumb a:hover{ color:#fff !important; }

/* Empêche les champs de dépasser et colle bien au container */
.edv-contact input[type="text"],
.edv-contact input[type="email"],
.edv-contact input[type="tel"],
.edv-contact textarea,
.edv-contact select {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
}

/* Un peu plus d’air en mobile */
@media (max-width: 640px) {
    .edv-contact .card { padding-left: 1rem; padding-right: 1rem; }
    .edv-contact form { gap: .75rem; } /* réduit l’espace vertical si nécessaire */
}

/* Option : évite un style tiers trop agressif */
.prose input, .prose textarea, .prose select { font-size: 1rem; }

/* RDV/Contact: prevent right-edge overflow on mobile */
.edv-book input,
.edv-book textarea,
.edv-book select { box-sizing: border-box; width: 100%; max-width: 100%; }

/* Flatpickr sometimes overflows: clamp it too */
.edv-book .flatpickr-input { width: 100% !important; max-width: 100%; }

@media (max-width: 640px){
    .edv-book .card { padding-left: 1rem; padding-right: 1rem; }
}
.contact-chip,
.contact-chip:visited { color: var(--fg); text-decoration: none; }
.contact-chip:hover   { text-decoration: none; }
@media (max-width: 768px){
    .card .grid > * input,
    .card .grid > * textarea,
    .card .grid > * select {
        width: 100%;
    }
    .edv-contact input[type="text"],
    .edv-contact input[type="email"],
    .edv-contact textarea{
        max-width: 97%
    }
    .edv-book input[type="text"],
    .edv-book input[type="email"],
    .edv-book textarea{
        max-width: 97%
    }
}
.ml-3{
    margin-left: .75rem;
}
.avisgg
{
    max-height: 189px;
    overflow: hidden;
}
.text-3xl {
    font-size: 1.65rem!important;
}
.edv-book .card{ max-width: none; width: 100%; }
/* --- RDV : ajustements MOBILE uniquement --- */
@media (max-width: 640px) {
    /* Donne de l'air à la carte et aux champs */
    .edv-book .card{
        margin-left: 12px;
        margin-right: 12px;
        padding: 16px;
        padding-bottom: 76px; /* laisse de la place au badge reCAPTCHA */
    }
    .edv-book input[type="text"],
    .edv-book input[type="email"],
    .edv-book input[type="tel"],
    .edv-book textarea,
    .edv-book .flatpickr-input {
        padding-left: 14px;
        padding-right: 14px;
        border-radius: 12px;
    }
    .edv-book .btn-primary{ width:100%; }

    /* Badge reCAPTCHA : le décaler et le réduire un peu pour éviter le chevauchement */
    .grecaptcha-badge{
        right: 10px !important;
        bottom: 10px !important;
        transform: scale(.88);
        transform-origin: right bottom;
    }
    .text-3xl {
        font-size: 1.5rem!important;
    }

    .avisgg
    {
        max-height: 193px;
        overflow: hidden;
    }

}
.stickybar{
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    transition:transform .28s ease, opacity .28s ease;
    will-change:transform, opacity;
}
.stickybar.is-dismissed{
    transform: translateY(110%);
    opacity: 0;
    pointer-events: none;
}
/* petit “drag handle” en mobile (optionnel) */



.stickybar.is-dismissed{
    transform: translateY(120%);
    opacity: 0;
    pointer-events: none;
}
@media (max-width:640px){ .stickybar::before{
    content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);
    width:36px;height:4px;border-radius:999px;background:#fff;opacity:.35; } }

.stickybar [data-stickybar-close]:hover,
.stickybar [data-stickybar-close]:focus-visible{
    background:rgba(16,18,27,.80) !important;
    border-color:rgba(255,255,255,.85) !important;
    box-shadow:0 10px 36px rgba(0,0,0,.55), 0 0 0 3px rgba(147,197,253,.25) !important;
    outline:none;
}
/* rend la petite “barre” de prise plus visible en mobile */
.stickybar::before{ opacity:.6 !important; }
/* Stickybar : état visible / masqué (animée) */
.stickybar{
    position:fixed; left:0; right:0; bottom:0;
    z-index:9990;               /* reste au-dessus */
    transition: transform .28s ease, opacity .28s ease;
    will-change: transform, opacity;
    transform: translateY(0);   /* état initial explicite */
    opacity: 1;
}
.stickybar.is-dismissed{
    transform: translateY(120%);
    opacity: 0;
    pointer-events: none;
}

.stickybar [data-stickybar-close]{
    cursor:pointer;              /* main sur desktop */
    touch-action:manipulation;   /* supprime le délai tap */
    -webkit-tap-highlight-color: transparent;
}

/* --- wa-tab.css --- */
/* === WhatsApp side tab === */
#wa-tab.wa-tab{
    position: fixed;
    top: 50vh;                 /* milieu de l’écran */
    right: 14px;               /* bord droit */
    transform: translateY(-50%);
    z-index: 9999;             /* au-dessus du contenu, sous les modales si besoin */
}

#wa-tab .wa-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 9999px;
    background: #25D366;
    color: #fff;
    box-shadow: 0 10px 24px rgba(0,0,0,.18);
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, opacity .2s ease;
}
#wa-tab .wa-btn:hover{ transform: translateY(-2px) }
#wa-tab .wa-btn:active{ transform: translateY(0) }

/* Option: légère pulsation pour attirer l’œil (respecte prefers-reduced-motion) */
@media (prefers-reduced-motion: no-preference){
    #wa-tab .wa-btn{ animation: wa-pulse 2.8s ease-in-out infinite }
    @keyframes wa-pulse{
        0%,100%{ box-shadow: 0 10px 24px rgba(0,0,0,.18) }
        50%{    box-shadow: 0 12px 30px rgba(0,0,0,.26) }
    }
}

/* Mobile : on reste en latéral (évite les collisions avec footer/badges) */
@media (max-width: 768px){
    #wa-tab.wa-tab{ right: 10px; top: 45vh }
}


/* --- consent-manager.css --- */
/* Consent Manager CSS (minimal) */ 
.cm-banner, .cm-modal-backdrop { position: fixed; left: 0; right: 0; z-index: 9999; font-family: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; }
.cm-banner { bottom: 0; background: rgba(15,23,42,.96); color: #e5e7eb; border-top: 1px solid rgba(255,255,255,.06); box-shadow: 0 -10px 30px rgba(0,0,0,.25); padding: 16px; }
.cm-container { max-width: 1120px; margin: 0 auto; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.cm-actions { display: flex; gap: 8px; }
.cm-btn { border-radius: 999px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.06); color: #e5e7eb; cursor: pointer; }
.cm-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 16px rgba(0,0,0,.25); }
.cm-btn-primary { background: linear-gradient(135deg,#22c55e,#7c3aed); border-color: transparent; color: white; }
.cm-link { color: #a5b4fc; text-decoration: underline; cursor: pointer; }
.cm-modal-backdrop { top: 0; bottom: 0; background: rgba(0,0,0,.5); display: none; align-items: center; justify-content: center; }
.cm-modal { width: min(680px, 92vw); background: rgba(15,23,42,.98); color: #e5e7eb; border-radius: 18px; padding: 20px; border: 1px solid rgba(255,255,255,.08); }
.cm-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px dashed rgba(255,255,255,.08); }
.cm-row:last-child { border-bottom: 0; }
.cm-toggle { position: relative; width: 46px; height: 26px; background: rgba(255,255,255,.15); border-radius: 999px; cursor: pointer; flex: 0 0 auto; }
.cm-toggle[data-on="true"] { background: #22c55e; }
.cm-toggle::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: white; border-radius: 999px; transition: transform .2s; }
.cm-toggle[data-on="true"]::after { transform: translateX(20px); }
.cm-small { color: #a1a1aa; font-size: 12px; }

/* --- breadcrumb.css --- */
/* Base breadcrumb (déjà en place) – on l'affine */
.edv-breadcrumb{ font-size:.9rem; color:var(--muted); }
.edv-bc{
    display:flex; flex-wrap:wrap; align-items:center;
    gap:.35rem .5rem; padding:.3rem .5rem;
    border-radius:999px; background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08); backdrop-filter:blur(6px);
}
.edv-crumb{ display:flex; align-items:center; gap:.35rem; }
.edv-sep{ width:14px; height:14px; opacity:.35; transform:translateY(1px); }

.edv-breadcrumb a{ color:inherit; text-decoration:none; padding:.25rem .55rem; border-radius:.55rem; }
.edv-breadcrumb a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.edv-current{ opacity:.9; color:#e5e7eb;
    /*padding:.25rem .55rem;*/
    border-radius:.55rem; }

/* La “pill” (catégorie) seulement si demandée */
.edv-pill{
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.10);
}

/* Variante GHOST (plus de bulle globale) */
.edv-bc--ghost{
    background:transparent; border:0; padding:0;
}

/* Mobile : tronquer le titre */
@media (max-width: 520px){
    .edv-current{ max-width:62vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}
/* Kill any legacy separators */
.edv-crumb::before,
.edv-crumb::after{ content:none !important; }


/* --- overflow-fix.css --- */
/* Horizontal scroll guard */
html, body { max-width: 100%; overflow-x: clip; }
@supports not (overflow: clip) { html, body { overflow-x: hidden; } }
/* Prevent wide elements inside .prose from forcing width */
.prose table, .prose pre, .prose code { max-width: 100%; overflow-x: auto; display: block; }


