/*
 * Résidu CSS chrome Theme Builder (header + footer) : filet footer, remaps
 * balises non-atomiques, LARGEUR (.e-con=100% par défaut -> auto), header mist-ds
 * re-scopé .elementor .site-header (0,3,0), masques d'icônes.
 */
.mist-v4-footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.12); }

/* Remaps balises méga (strong/small -> classes atomiques) */
.mega-txt .mega-t { display:block;font-weight:800;font-size:14.5px;color:var(--ink);line-height:1.2 }
.mega-txt .mega-d { display:block;font-family:var(--body);font-weight:500;font-size:12.5px;color:var(--ink-muted);margin-top:3px;line-height:1.34 }
.mega-feat .mega-feat-t { display:block;font-weight:800;font-size:18px;line-height:1.18;margin:9px 0 7px }
.mega-feat .mega-feat-d { display:block;font-family:var(--body);font-weight:500;font-size:13px;color:#e9eafb;line-height:1.45 }

/* Largeur : conteneurs atomiques du chrome en largeur de contenu, sauf .container */
.elementor .topbar .e-con,
.elementor .site-header .e-con { width: auto; }
.elementor .topbar > .container,
.elementor .site-header > .container { width: 100%; max-width: 1360px; margin-left: auto; margin-right: auto; }

/* Burger : 3 barres en <div>. ⚠️ base atomique = min-width:30px -> forcer min-width:24px
   sinon les barres font 30px de large (bug remonté). align-self:center (flex column). */
.elementor .site-header .nav-burger > div {
	width: 24px; min-width: 24px; height: 2.5px; min-height: 2.5px; padding: 0;
	background: var(--blue); border-radius: 2px; transition: .2s;
	flex: 0 0 auto; align-self: center;
}
.elementor .site-header .nav-burger.open > div:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.elementor .site-header .nav-burger.open > div:nth-child(2) { opacity: 0; }
.elementor .site-header .nav-burger.open > div:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
.elementor .site-header .nav-item.open .nav-toggle::before { transform: rotate(180deg); }
.elementor .site-header .nav-toggle::before { transition: transform .25s; }

/* Resets padding (base .e-div-block-base = 10px) */
.elementor .topbar .topbar-right,
.elementor .site-header .nav-links,
.elementor .site-header .nav-item,
.elementor .site-header .nav-right,
.elementor .site-header .logo-lockup,
.elementor .site-header .mega-inner,
.elementor .site-header .mega-cols,
.elementor .site-header .mega-txt,
.elementor .site-header .mega-ico,
.elementor .topbar .dot,
.elementor .site-header .mega-feat-go { padding: 0; }
.elementor .topbar .topbar-right { display:flex; flex-direction:row; align-items:center; gap:18px; }

/* ==== HEADER scopé (0,3,0), mega-* inclus ==== */
.elementor .site-header .site-logo { height:52px;width:auto;display:block }
.elementor .site-header .logo-lockup { display:inline-flex;align-items:center;gap:12px;flex-shrink:0 }
.elementor .site-header .logo-lockup .txt { font-family:var(--display);font-weight:900;font-size:19px;color:var(--blue);letter-spacing:-.02em;line-height:1.05;white-space:nowrap }
.elementor .site-header .logo-lockup .txt small { display:block;font-family:var(--body);font-weight:600;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-top:3px }
/* ⚠️ base atomique = padding:10px sur CHAQUE div -> empilement topbar (root+container+left) = +60px.
   Neutraliser le padding vertical partout, garder 30px horizontal sur .container. */
.elementor .topbar { background:var(--blue-deep);color:#dfe1f3;font-size:13px;padding:0 }
.elementor .topbar .container { display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;flex-wrap:wrap;max-width:1360px;padding:0 30px }
.elementor .topbar a { color:#cfd1e8;padding:0 }
.elementor .topbar a:hover { color:#fff }
/* dot : base atomique min-width:30px -> le forcer à 7px sinon ellipse 30x7 (bug remonté) */
.elementor .topbar .dot { width:7px;min-width:7px;height:7px;min-height:7px;flex:0 0 7px;border-radius:50%;background:var(--green);display:inline-block;margin-right:7px }
.elementor .site-header { position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--line);padding:0 }
.elementor .site-header .container { display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:78px;max-width:1360px;padding:0 30px }
.elementor .site-header .nav-links { display:flex;align-items:center;gap:2px;font-family:var(--display);font-weight:700;font-size:15.5px }
.elementor .site-header .nav-item { position:relative;display:flex;align-items:center }
.elementor .site-header .nav-top { position:relative;display:inline-flex;align-items:center;gap:4px;color:var(--ink);padding:9px 13px;border-radius:var(--r-pill);white-space:nowrap;transition:color .16s,background .16s }
.elementor .site-header .nav-top:hover { color:var(--blue);background:var(--blue-mist) }
.elementor .site-header .nav-top .caret { display:none }
.elementor .site-header .nav-item:hover .nav-top .caret, .elementor .site-header .nav-item:focus-within .nav-top .caret { transform:rotate(180deg);opacity:.9 }
.elementor .site-header .nav-top[aria-current] { color:var(--blue) }
.elementor .site-header .nav-top[aria-current]::after { content:"";position:absolute;left:15px;right:15px;bottom:5px;height:2.5px;background:var(--orange);border-radius:2px }
.elementor .site-header .nav-toggle, .elementor .site-header .nav-cta-mobile { display:none }
.elementor .site-header .nav-right { display:flex;align-items:center;gap:12px }
.elementor .site-header .mega { position:absolute;top:calc(100% + 16px);left:0;width:max-content;background:#fff;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:0 26px 64px -20px rgba(35,40,80,.34),0 8px 24px -14px rgba(35,40,80,.22);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .22s cubic-bezier(.2,.7,.3,1),visibility .2s;z-index:60 }
.elementor .site-header .mega.mega-right { left:auto;right:0 }
.elementor .site-header .mega::before { content:"";position:absolute;top:-16px;left:0;right:0;height:16px }
.elementor .site-header .mega::after { content:"";position:absolute;top:-6px;left:var(--mega-fleche,36px);width:12px;height:12px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg) }
/* `mega-right` n'est plus pose par placeMega() (borne aux deux bords depuis
   le 29/07). Conserve pour le repli sans JS uniquement : ne doit PAS ecraser
   --mega-fleche, sinon la fleche reste collee au bord du panneau. */
.elementor .site-header .mega.mega-right:not([style*="--mega-fleche"])::after { left:auto;right:36px }
.elementor .site-header .nav-item:hover .mega, .elementor .site-header .nav-item:focus-within .mega { opacity:1;visibility:visible;transform:translateY(0) }
.elementor .site-header .mega-inner { display:flex;gap:16px;padding:16px }
.elementor .site-header .mega-cols { display:grid;grid-template-columns:repeat(2,minmax(216px,1fr));gap:3px;align-content:start }
.elementor .site-header .mega-link { display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:14px;transition:background .15s }
.elementor .site-header .mega-link:hover { background:var(--blue-mist) }
.elementor .site-header .mega-ico { flex-shrink:0;width:38px;height:38px;border-radius:11px;background:var(--blue-mist);color:var(--blue);display:flex;align-items:center;justify-content:center;transition:.16s }
.elementor .site-header .mega-ico svg { width:19px;height:19px;color:inherit }
.elementor .site-header .mega-link:hover .mega-ico { background:var(--blue);color:#fff;transform:translateY(-1px) }
.elementor .site-header .mega-txt { min-width:0 }
.elementor .site-header .mega-txt strong { display:block;font-weight:800;font-size:14.5px;color:var(--ink);line-height:1.2 }
.elementor .site-header .mega-txt small { display:block;font-family:var(--body);font-weight:500;font-size:12.5px;color:var(--ink-muted);margin-top:3px;line-height:1.34 }
.elementor .site-header .mega-feat { display:flex;flex-direction:column;width:214px;flex-shrink:0;padding:20px;border-radius:16px;background:var(--grad-brand);color:#fff;overflow:hidden;position:relative }
.elementor .site-header .mega-feat::after { content:"";position:absolute;right:-34px;bottom:-34px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.10) }
.elementor .site-header .mega-feat-eye { font-family:var(--body);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#ffd9b0 }
.elementor .site-header .mega-feat strong { font-size:18px;line-height:1.18;margin:9px 0 7px }
.elementor .site-header .mega-feat small { font-family:var(--body);font-weight:500;font-size:13px;color:#e9eafb;flex-grow:1;line-height:1.45 }
.elementor .site-header .mega-feat-go { margin-top:16px;font-weight:800;font-size:13.5px;color:#fff;display:inline-flex;gap:6px;align-items:center }
.elementor .site-header .mega-feat-go span { transition:transform .18s }
.elementor .site-header .mega-feat:hover .mega-feat-go span { transform:translateX(4px) }
.elementor .site-header .nav-burger { display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer }
.elementor .site-header .nav-burger i { width:24px;height:2.5px;background:var(--blue);border-radius:2px;transition:.2s }
.elementor .site-header .nav-search-btn { display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--r-pill);background:var(--blue-mist);color:var(--blue);border:1.5px solid transparent;cursor:pointer;transition:background .16s,color .16s,border-color .16s,transform .16s;flex-shrink:0 }
.elementor .site-header .nav-search-btn:hover { background:#fff;border-color:var(--blue-pale);color:var(--orange);transform:translateY(-1px) }
.elementor .site-header .nav-search-btn svg { width:19px;height:19px }
.elementor .site-header .btn { align-items:center;justify-content:center;gap:8px;font-family:var(--display);font-weight:800;font-size:15px;padding:13px 24px;border-radius:var(--r-pill);line-height:1;transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .25s,background .2s,filter .2s }
.elementor .site-header .btn:hover { transform:translateY(-2px) }
@media (max-width:1199px){
  .elementor .site-header .nav-burger { display:flex }
  .elementor .site-header .nav-right .btn-primary { display:none }
  .elementor .site-header .nav-links { position:fixed;left:0;right:0;top:74px;flex-direction:column;align-items:stretch;gap:0;background:#fff;padding:8px 20px 24px;box-shadow:var(--shadow-med);border-bottom:1px solid var(--line);overflow-y:auto;-webkit-overflow-scrolling:touch;display:none }
  .elementor .site-header .nav-links.open { display:flex }
  .elementor .site-header .nav-item { position:relative;display:block;width:100%;border-bottom:1px solid var(--line) }
  .elementor .site-header .nav-top { display:block;padding:15px 54px 15px 6px;font-size:16.5px;border-radius:0 }
  .elementor .site-header .nav-top:hover { background:none }
  .elementor .site-header .nav-top .caret { display:none }
  .elementor .site-header .nav-top[aria-current]::after { left:6px;right:auto;width:22px;bottom:9px }
  .elementor .site-header .nav-toggle { position:absolute;top:6px;right:0;display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:none;border:none;color:var(--ink-soft);cursor:pointer;border-radius:10px }
  .elementor .site-header .nav-toggle:hover { background:var(--blue-mist);color:var(--blue) }
  .elementor .site-header .nav-toggle svg { width:20px;height:20px;transition:transform .25s }
  .elementor .site-header .nav-item.open .nav-toggle svg { transform:rotate(180deg) }
  .elementor .site-header .mega { position:static;width:auto;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;border-radius:0;background:none;max-height:0;overflow:hidden;transition:max-height .32s ease;z-index:auto }
  .elementor .site-header .mega::before, .elementor .site-header .mega::after { display:none }
  .elementor .site-header .nav-item.open .mega { max-height:1600px }
  .elementor .site-header .mega-inner { flex-direction:column;gap:8px;padding:2px 0 14px }
  .elementor .site-header .mega-cols { grid-template-columns:1fr;gap:2px }
  .elementor .site-header .mega-link { padding:10px }
  .elementor .site-header .mega-ico { width:34px;height:34px }
  .elementor .site-header .mega-feat { width:100% }
  .elementor .site-header .nav-cta-mobile { display:block;width:100%;text-align:center;margin-top:18px }
  body.nav-open { overflow:hidden }
  .elementor .site-header .nav-burger.open i:nth-child(1) { transform:translateY(7.5px) rotate(45deg) }
  .elementor .site-header .nav-burger.open i:nth-child(2) { opacity:0 }
  .elementor .site-header .nav-burger.open i:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg) }
}
@media(max-width:1199px){
  .elementor .site-header .nav-right .nav-search-btn { display:inline-flex }
}
@media(max-width:600px){
  .elementor .site-header .nav-search-btn { width:40px;height:40px }
}

/* ---- Chevron (caret nav-top desktop + nav-toggle mobile) + loupe recherche ---- */
.mist-caret::before,.nav-toggle::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E");mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='m6%209%206%206%206-6'/%3E%3C/svg%3E");display:inline-block}
.nav-search-btn::before{content:"";width:19px;height:19px;background:currentColor;-webkit-mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='11'%20cy='11'%20r='7'/%3E%3Cpath%20d='m21%2021-4.3-4.3'/%3E%3C/svg%3E");mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='11'%20cy='11'%20r='7'/%3E%3Cpath%20d='m21%2021-4.3-4.3'/%3E%3C/svg%3E");display:inline-block}

@media (min-width:1200px){
  .elementor .topbar > .container,
  .elementor .site-header > .container { flex-wrap: nowrap; }
  .elementor .site-header .nav-links { min-width: 0; flex-shrink: 1; }
  .elementor .site-header .nav-right,
  .elementor .topbar .topbar-right { flex-shrink: 0; }
}

/* ==== Fixes annotés Daniel : glyphes ::before centrés + point topbar en ligne ==== */
.elementor .site-header .nav-search-btn::before,
.elementor .site-header .nav-toggle::before { position: static; }
.elementor .topbar .topbar-left { display: flex; align-items: center; padding: 0; }
/* Liens topbar de droite : une seule ligne (pas de wrap par lien) — cf. réf mobile */
.elementor .topbar .topbar-right > a { flex: 0 0 auto; white-space: nowrap; }

/* ==== Footer : correctifs QA (padding base 10px, ancre logo, adresse, grille mobile) ==== */
/* Liens footer : base atomique padding:10px -> rythme 50px au lieu de 30px. */
.elementor .mist-v4-site-footer .mist-v4-footer-link { padding: 0; }
/* Ancre du logo (sans classe) : padding:10px -> logo décalé +10/+11. */
.elementor .mist-v4-site-footer .mist-v4-footer-col > a:not(.mist-v4-footer-link) { display: block; width: auto; padding: 0; }
/* Adresse (2e paragraphe .desc) : pas de max-width 30ch -> tient sur une ligne en desktop. */
.elementor .mist-v4-site-footer .mist-v4-footer-desc + .mist-v4-footer-desc { max-width: none; margin-top: 12px; }
/* Grille mobile : la réf reste en 2 colonnes (<=880px). Elementor la force en 1fr <=767px. */
@media (max-width: 767px) {
	.elementor .mist-v4-site-footer .mist-v4-footer-cols { grid-template-columns: 1fr 1fr !important; gap: 40px !important; }
}
