/* ============================================================
   CPAS Shared CSS — used by all pages via @import
   Wrap each page section in <div class='wolufacilities-home'> for scoping.
   ============================================================ */

:root{
  /* WoluFacilities — Primaire Bleu Turquoise (logo) */
  --primary:#0099CC;--primary-dark:#007AA3;--primary-light:#33BBEE;--primary-pale:#D4F0FA;--primary-muted:#A3D9ED;--primary-warm:#0088B5;
  /* Violet — conservé pour compat (sit-card 3, aide-hero-blob-2, .text-violet) */
  --violet:#7B2D8B;--violet-dark:#3A1A5C;--violet-light:#B36AC0;--violet-pale:#F4ECF7;
  /* CTA Orange (charte WoluFacilities) */
  --orange:#F47B20;--orange-dark:#C85E0A;--orange-pale:#FEF3E8;--orange-muted:#FAC79A;
  /* Accent Vert (logo). --green/--green-pale conservés en alias rétro-compat */
  --accent:#66CC33;--accent-dark:#4DA626;--accent-light:#88DD55;--accent-pale:#E3F5D9;
  --green:#66CC33;--green-pale:#E3F5D9;--red:#C0392B;--red-dark:#96281B;--red-pale:#FDEDEC;
  --navy:#1C2833;--navy-light:#2C3E50;--white:#ffffff;
  --bg:#ffffff;--bg-soft:#F3F8FB;--bg-warm:#FAFCFE;--bg-cream:#F5FAFD;
  --text:#1A2E35;--text-soft:#4A6670;--text-muted:#6B8F98;--border:#DAE6EC;--border-strong:#B5CFD8;
  --font-display:'Montserrat',sans-serif;--font-editorial:'Playfair Display',Georgia,serif;--font-accent:'Caveat',cursive;--font-body:'Montserrat',sans-serif;
  --radius:14px;--radius-lg:22px;--radius-xl:36px;--radius-pill:100px;
  --shadow-sm:0 1px 3px rgba(0,100,160,.05),0 4px 12px rgba(0,100,160,.05);
  --shadow:0 4px 20px rgba(0,100,160,.08),0 1px 4px rgba(0,100,160,.04);
  --shadow-lg:0 12px 48px rgba(0,100,160,.12),0 4px 12px rgba(0,100,160,.06);
  --shadow-warm:0 4px 20px rgba(180,120,60,.08);
  --shadow-primary:0 8px 32px rgba(0,153,204,.28);--shadow-orange:0 8px 32px rgba(244,123,32,.28);
  --transition:cubic-bezier(.16,1,.3,1);--spring:cubic-bezier(.34,1.56,.64,1);
}

/* Base reset scoped */
.wolufacilities-home,.wolufacilities-home *,.wolufacilities-home *::before,.wolufacilities-home *::after{margin:0;padding:0;box-sizing:border-box}
.wolufacilities-home{font-family:var(--font-body);color:var(--text);line-height:1.75;-webkit-font-smoothing:antialiased;display:block}
.wolufacilities-home a{color:inherit;text-decoration:none}
.wolufacilities-home img{max-width:100%;display:block}
.wolufacilities-home button{cursor:pointer;border:none;font-family:inherit}
.wolufacilities-home ul{list-style:none}

/* Scroll progress + wave separators + focus */
.wolufacilities-home .scroll-progress{position:fixed;top:0;left:0;height:3px;z-index:10000;background:linear-gradient(90deg,var(--primary-dark),var(--primary-light),var(--orange));width:0%;transition:width .1s linear;box-shadow:0 0 8px rgba(0,153,204,.4)}
.wolufacilities-home .wave-sep{position:relative;width:100%;overflow:hidden;line-height:0;margin-top:-1px}
.wolufacilities-home .wave-sep svg{display:block;width:100%;height:60px}
.wolufacilities-home .wave-sep-flip{transform:scaleY(-1);margin-top:0;margin-bottom:-1px}
.wolufacilities-home :focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:4px}

/* Navbar */
.wolufacilities-home .hdr-wrap{position:fixed;top:12px;left:0;right:0;z-index:8000;padding:0 20px;pointer-events:none}
.wolufacilities-home .hdr{pointer-events:all;max-width:1200px;margin:0 auto;background:#fff;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(0,122,163,.08);border-radius:var(--radius-xl);box-shadow:0 8px 32px rgba(0,122,163,.12),0 1px 0 rgba(255,255,255,.5) inset;transition:background .4s,box-shadow .4s,border-color .4s}
.wolufacilities-home .hdr.scrolled{background:rgba(250,254,254,.95);border-color:rgba(212,240,250,.8);box-shadow:0 12px 48px rgba(0,122,163,.12),0 1px 0 rgba(255,255,255,.9) inset}
.wolufacilities-home .hdr-in{padding:0 22px;display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.wolufacilities-home .logo{display:flex;align-items:center;gap:11px;flex-shrink:0}
.wolufacilities-home .logo-icon{width:44px;height:44px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:transform .4s var(--spring);box-shadow:0 4px 14px rgba(0,153,204,.35)}
.wolufacilities-home .logo:hover .logo-icon{transform:scale(1.06)}
.wolufacilities-home .logo-icon::after{content:'';position:absolute;width:14px;height:14px;background:var(--orange);border-radius:50%;top:-2px;right:-2px}
.wolufacilities-home .logo-icon svg{position:relative;z-index:1}
.wolufacilities-home .logo-t strong{font-size:1.05rem;color:var(--navy);display:block;font-weight:800;letter-spacing:-.5px}
.wolufacilities-home .logo-t span{font-size:.66rem;color:var(--text-soft);font-weight:500;text-transform:uppercase;letter-spacing:.6px}
.wolufacilities-home .nav-d{display:flex;align-items:center;gap:2px}
.wolufacilities-home .nav-d a{padding:7px 14px;font-size:.86rem;font-weight:500;color:rgba(26,46,53,.8);border-radius:var(--radius-pill);transition:all .25s}
.wolufacilities-home .nav-d a:hover{background:rgba(0,153,204,.09);color:var(--primary)}
.wolufacilities-home .nav-d a.on{background:rgba(0,153,204,.12);color:var(--primary);font-weight:700}
.wolufacilities-home .hdr-search{background:rgba(0,153,204,.07);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--navy);border:1px solid rgba(255,255,255,.4);cursor:pointer;transition:all .25s}
.wolufacilities-home .hamburger{display:none;width:44px;height:44px;background:rgba(0,153,204,.07);border-radius:50%;border:1px solid rgba(255,255,255,.4);flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}
.wolufacilities-home .hamburger span{display:block;width:20px;height:2px;background:var(--navy);border-radius:2px}

/* Buttons */
.wolufacilities-home .btn-primary{display:inline-flex;align-items:center;gap:10px;background:var(--primary);color:#fff;padding:14px 30px;border:2px solid var(--primary);border-radius:var(--radius-pill);font-weight:700;font-size:.95rem;transition:all .35s var(--transition);box-shadow:var(--shadow-primary)}
.wolufacilities-home .btn-primary:hover,
.wolufacilities-home .btn-primary:focus-visible{
  background:#fff !important;
  color:var(--orange-dark, #C85E0A) !important;
  border-color:var(--orange, #F47B20) !important;
  transform:translateY(-3px);
  box-shadow:0 14px 42px rgba(244,123,32,.30);
}
.wolufacilities-home .btn-primary:hover .arr,
.wolufacilities-home .btn-primary:focus-visible .arr{
  color:var(--orange, #F47B20) !important;
}
.wolufacilities-home .btn-primary .arr{transition:transform .3s var(--transition)}
.wolufacilities-home .btn-primary:hover .arr{transform:translateX(5px)}
.wolufacilities-home .btn-outline{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.7);backdrop-filter:blur(8px);border:1.5px solid var(--border-strong);color:var(--navy);padding:13px 28px;border-radius:var(--radius-pill);font-weight:600;font-size:.95rem;transition:all .35s var(--transition)}
.wolufacilities-home .btn-outline:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px);background:#fff;box-shadow:var(--shadow-sm)}
.wolufacilities-home .btn-white{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--primary-dark);padding:14px 32px;border:2px solid #fff;border-radius:var(--radius-pill);font-weight:700;font-size:.95rem;transition:all .35s var(--transition);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.wolufacilities-home .btn-white:hover,
.wolufacilities-home .btn-white:focus-visible{
  background:#fff !important;
  color:var(--orange-dark, #C85E0A) !important;
  border-color:var(--orange, #F47B20) !important;
  transform:translateY(-3px);
  box-shadow:0 14px 42px rgba(244,123,32,.30);
}
.wolufacilities-home .btn-white span{ transition:transform .3s var(--transition); }
.wolufacilities-home .btn-white:hover span,
.wolufacilities-home .btn-white:focus-visible span{
  color:var(--orange, #F47B20) !important;
  transform:translateX(4px);
}

/* Eyebrow + section base */
.wolufacilities-home .eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--primary-pale);border:1px solid var(--primary-muted);border-radius:var(--radius-pill);padding:7px 18px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:18px}
.wolufacilities-home .eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);flex-shrink:0}
.wolufacilities-home .sec{padding:80px 24px}
.wolufacilities-home .sec-in{max-width:1200px;margin:0 auto}
.wolufacilities-home .sec-hdr{margin-bottom:48px}
.wolufacilities-home .sec-title{font-family:var(--font-editorial);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:900;color:var(--navy);line-height:1.15;letter-spacing:-.5px;margin-bottom:14px}
.wolufacilities-home .sec-desc{font-size:1.02rem;color:var(--text-soft);max-width:580px;line-height:1.75}

/* aide-hero shared (used by aide, qui-sommes-nous, documents, signaler, le-wolufacilities-et-vous, etc.) */
.wolufacilities-home .aide-hero{position:relative;background:var(--bg-cream);padding:140px 24px 100px;overflow:hidden;text-align:center}
.wolufacilities-home .aide-hero-blob{position:absolute;border-radius:50%;pointer-events:none}
.wolufacilities-home .aide-hero-blob-1{top:-12%;right:-6%;width:450px;height:450px;background:radial-gradient(circle at 40% 40%,var(--primary-pale),rgba(168,221,229,.25));opacity:.65;animation:aideBlobFloat1 14s ease-in-out infinite}
.wolufacilities-home .aide-hero-blob-2{bottom:-15%;left:-8%;width:380px;height:380px;background:radial-gradient(circle at 60% 60%,var(--violet-pale),rgba(179,106,192,.12));opacity:.5;animation:aideBlobFloat2 16s ease-in-out infinite}
.wolufacilities-home .aide-hero-blob-3{top:40%;right:15%;width:200px;height:200px;background:radial-gradient(circle,var(--orange-pale),rgba(250,199,154,.15));opacity:.5;animation:aideBlobFloat1 10s ease-in-out infinite}
@keyframes aideBlobFloat1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(18px,-20px) scale(1.04)}}
@keyframes aideBlobFloat2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-12px,16px) scale(1.03)}}
.wolufacilities-home .aide-hero-in{max-width:700px;margin:0 auto;position:relative;z-index:2}
.wolufacilities-home .aide-hero .breadcrumb{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.82rem;color:var(--text-muted);margin-bottom:20px}
.wolufacilities-home .aide-hero .breadcrumb a{color:var(--text-soft);transition:color .2s}
.wolufacilities-home .aide-hero .breadcrumb a:hover{color:var(--primary)}
.wolufacilities-home .aide-hero .breadcrumb svg{width:12px;height:12px;flex-shrink:0}
.wolufacilities-home .aide-hero-icon{font-size:3rem;margin-bottom:14px;display:block}
.wolufacilities-home .aide-hero h1{font-family:var(--font-editorial);font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:900;color:var(--navy);line-height:1.1;letter-spacing:-.5px;margin-bottom:16px}
.wolufacilities-home .aide-hero h1 .hl{color:var(--primary);font-style:italic}
.wolufacilities-home .aide-hero-sub{font-size:1.05rem;color:var(--text-soft);max-width:520px;margin:0 auto;line-height:1.8}

/* aide-sec + hub-card (used by aide.html and similar hub pages) */
.wolufacilities-home .aide-sec{padding:80px 24px 100px;background:var(--bg)}
.wolufacilities-home .aide-sec-in{max-width:1100px;margin:0 auto}
.wolufacilities-home .aide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.wolufacilities-home .hub-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all .4s var(--transition);position:relative;display:block;text-decoration:none;color:inherit}
.wolufacilities-home .hub-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--hub-color,var(--primary));transform:scaleX(0);transform-origin:left;transition:transform .45s var(--transition)}
.wolufacilities-home .hub-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,122,163,.12);border-color:transparent}
.wolufacilities-home .hub-card:hover::after{transform:scaleX(1)}
.wolufacilities-home .hub-card-img{height:180px;overflow:hidden;position:relative}
.wolufacilities-home .hub-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--transition)}
.wolufacilities-home .hub-card:hover .hub-card-img img{transform:scale(1.04)}
.wolufacilities-home .hub-card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,50,60,.25) 0%,transparent 50%)}
.wolufacilities-home .hub-tag{position:absolute;top:14px;left:14px;color:#fff;font-size:.7rem;font-weight:700;padding:4px 14px;border-radius:var(--radius-pill);letter-spacing:.3px;z-index:2;background:var(--hub-color,var(--primary));display:inline-block;width:auto;white-space:nowrap}
.wolufacilities-home .hub-card-body{padding:22px 24px 26px}
.wolufacilities-home .hub-card-body h3{font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:8px;transition:color .3s}
.wolufacilities-home .hub-card:hover .hub-card-body h3{color:var(--hub-color,var(--primary))}
.wolufacilities-home .hub-card-body p{font-size:.85rem;color:var(--text-soft);line-height:1.6;margin-bottom:16px}
.wolufacilities-home .hub-card-link{font-size:.82rem;font-weight:700;color:var(--hub-color,var(--primary));display:inline-flex;align-items:center;gap:5px;transition:gap .3s var(--transition)}
.wolufacilities-home .hub-card-link span{transition:transform .3s var(--transition)}
.wolufacilities-home .hub-card:hover .hub-card-link{gap:10px}
.wolufacilities-home .hub-card:hover .hub-card-link span{transform:translateX(4px)}
.wolufacilities-home .hub-card:nth-child(1){--hub-color:#0099CC}
.wolufacilities-home .hub-card:nth-child(2){--hub-color:#F47B20}
.wolufacilities-home .hub-card:nth-child(3){--hub-color:#7B2D8B}
.wolufacilities-home .hub-card:nth-child(4){--hub-color:#33BBEE}
.wolufacilities-home .hub-card:nth-child(5){--hub-color:#52B043}
.wolufacilities-home .hub-card:nth-child(6){--hub-color:#C0392B}
.wolufacilities-home .hub-card:nth-child(7){--hub-color:#007AA3}
.wolufacilities-home .hub-card:nth-child(8){--hub-color:#B36AC0}

/* Section background utility classes (match the wave fill colors so the section reads as a single tinted band, not a white strip + colored content). */
.wolufacilities-home .sit-bg-soft,
.wolufacilities-home .sec-on-soft{background:var(--bg-soft)}
.wolufacilities-home .sec-cta-cream,
.wolufacilities-home .sec-on-cream{background:var(--bg-cream)}

/* "Notre cuisine" sur /home-saint-lambert/ — 2 cards label avec logo grand */
.wolufacilities-home .cuisine-grid.e-con{
  --display:flex !important; --flex-direction:row !important;
  flex-direction:row !important;
  --flex-wrap:nowrap !important;
  --gap:24px !important; gap:24px !important;
  --align-items:stretch !important; align-items:stretch !important;
  margin-top:40px;
}
.wolufacilities-home .cuisine-grid.e-con > .cuisine-card.e-con{
  --width:calc((100% - 24px) / 2) !important;
  width:calc((100% - 24px) / 2) !important;
  flex:0 0 calc((100% - 24px) / 2) !important;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  --padding-top:32px !important; --padding-right:32px !important;
  --padding-bottom:32px !important; --padding-left:32px !important;
  padding:32px !important;
  --justify-content:center !important; justify-content:center !important;
  text-align:center;
  transition:transform .3s var(--transition),box-shadow .3s var(--transition);
}
.wolufacilities-home .cuisine-card.e-con:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.wolufacilities-home .cuisine-card .elementor-widget-image{margin-bottom:18px !important}
.wolufacilities-home .cuisine-card .elementor-widget-image img{max-height:140px;width:auto;margin:0 auto;display:block}
.wolufacilities-home .cuisine-card .elementor-widget-heading{margin:0 0 8px !important;padding:0 !important}
.wolufacilities-home .cuisine-card h3.elementor-heading-title{font-family:var(--font-editorial);font-size:1.15rem;font-weight:800;color:var(--navy);text-align:center;margin:0;line-height:1.3}
.wolufacilities-home .cuisine-card .elementor-widget-text-editor{margin:0 !important;padding:0 !important}
.wolufacilities-home .cuisine-card .elementor-widget-text-editor p{font-size:.92rem;color:var(--text-soft);line-height:1.6;margin:0;text-align:center}
@media(max-width:768px){
  .wolufacilities-home .cuisine-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .wolufacilities-home .cuisine-grid.e-con > .cuisine-card.e-con{
    --width:100% !important; width:100% !important; flex:0 0 100% !important;
  }
}

/* "Vous arrivez en Belgique ?" sur /aide-financiere/ — grille 2 colonnes
   avec vidéo à gauche + Icon-list de langues à droite. Réutilise styles
   .video-card et .liens-group existants. */
.wolufacilities-home .primo-grid.e-con{
  --display:flex !important; --flex-direction:row !important;
  flex-direction:row !important;
  --flex-wrap:nowrap !important;
  --gap:24px !important; gap:24px !important;
  --align-items:flex-start !important; align-items:flex-start !important;
  margin-top:40px;
}
.wolufacilities-home .primo-grid.e-con > .e-con{
  --width:calc((100% - 24px) / 2) !important;
  width:calc((100% - 24px) / 2) !important;
  flex:0 0 calc((100% - 24px) / 2) !important;
}
@media(max-width:768px){
  .wolufacilities-home .primo-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .wolufacilities-home .primo-grid.e-con > .e-con{
    --width:100% !important; width:100% !important; flex:0 0 100% !important;
  }
}

/* "Astuces énergie" — 3 colonnes de cards vidéo. Cible la grille flex
   d'Elementor en utilisant la classe .video-grid sur le container parent
   (e-flex e-con) et la classe .video-card sur chaque container enfant. */
.wolufacilities-home .video-grid.e-con{
  --display:flex !important;
  --flex-direction:row !important;
  flex-direction:row !important;
  --flex-wrap:nowrap !important;
  --gap:24px !important;
  gap:24px !important;
  margin-top:40px;
}
.wolufacilities-home .video-grid.e-con > .video-card.e-con{
  --width:calc((100% - 48px) / 3) !important;
  width:calc((100% - 48px) / 3) !important;
  flex:0 0 calc((100% - 48px) / 3) !important;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  --padding-top:0 !important; --padding-right:0 !important;
  --padding-bottom:0 !important; --padding-left:0 !important;
  padding:0 !important;
  transition:transform .3s var(--transition),box-shadow .3s var(--transition);
}
.wolufacilities-home .video-card.e-con:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.wolufacilities-home .video-card .elementor-widget-video,
.wolufacilities-home .video-card .elementor-widget-video .elementor-widget-container,
.wolufacilities-home .video-card .elementor-wrapper{margin:0 !important;padding:0 !important}
.wolufacilities-home .video-card .elementor-widget-heading{padding:18px 22px !important;margin:0 !important}
.wolufacilities-home .video-card .elementor-widget-heading .elementor-widget-container{padding:0 !important;margin:0 !important}
.wolufacilities-home .video-card h4.elementor-heading-title{font-family:var(--font-editorial);font-size:1.05rem;font-weight:700;color:var(--navy);margin:0;line-height:1.3}
@media(max-width:1024px){
  .wolufacilities-home .video-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .wolufacilities-home .video-grid.e-con > .video-card.e-con{
    --width:calc((100% - 24px) / 2) !important;
    width:calc((100% - 24px) / 2) !important;
    flex:0 0 calc((100% - 24px) / 2) !important;
  }
}
@media(max-width:640px){
  .wolufacilities-home .video-grid.e-con > .video-card.e-con{
    --width:100% !important; width:100% !important; flex:0 0 100% !important;
  }
}

/* "Modern accordion" — refonte du widget Accordion natif Elementor.
   Cible une classe utilitaire .wolufacilities-acc-modern (à mettre dans css_classes du widget).
   Look : items légers, bordure unique top, +/- discret, active state coloré gauche. */
.wolufacilities-home .wolufacilities-acc-modern .elementor-accordion{border:none !important;background:transparent;margin-top:32px}
.wolufacilities-home .wolufacilities-acc-modern .elementor-accordion-item{
  border:none !important;
  border-top:1px solid var(--border) !important;
  background:transparent !important;
  margin:0 !important;
  transition:background .25s var(--transition);
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-accordion-item:last-child{border-bottom:1px solid var(--border) !important}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title{
  display:flex !important;
  align-items:center !important;
  gap:14px;
  padding:22px 28px !important;
  background:transparent !important;
  border:none !important;
  font-family:var(--font-body, system-ui, sans-serif) !important;
  font-size:1rem !important;
  font-weight:600 !important;
  color:var(--navy) !important;
  cursor:pointer;
  transition:color .25s var(--transition), padding-left .25s var(--transition);
  position:relative;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title:hover{
  color:var(--primary, #1a8a8a) !important;
  padding-left:32px !important;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title.elementor-active{
  color:var(--primary-dark, #0d6e6e) !important;
  background:rgba(26,138,138,.04) !important;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title.elementor-active::before{
  content:'';
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:var(--primary, #1a8a8a);
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title h3,
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title .elementor-accordion-title{
  font-family:inherit !important;
  font-size:inherit !important;
  font-weight:inherit !important;
  color:inherit !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
  flex:1;
  letter-spacing:0 !important;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-accordion-icon{
  flex:0 0 auto !important;
  width:28px !important; height:28px !important;
  display:inline-flex !important;
  align-items:center; justify-content:center;
  border-radius:50%;
  background:#f1f3f5;
  color:var(--text-soft) !important;
  margin:0 !important;
  font-size:.75rem !important;
  transition:background .25s var(--transition), color .25s var(--transition), transform .35s var(--transition);
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title:hover .elementor-accordion-icon{
  background:rgba(26,138,138,.10);
  color:var(--primary, #1a8a8a) !important;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title.elementor-active .elementor-accordion-icon{
  background:var(--primary, #1a8a8a);
  color:#fff !important;
  transform:rotate(180deg);
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-accordion-icon i,
.wolufacilities-home .wolufacilities-acc-modern .elementor-accordion-icon svg{
  font-size:.75rem !important;
  width:12px !important; height:12px !important;
  color:inherit !important; fill:currentColor;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content{
  padding:8px 32px 28px 32px !important;
  background:transparent !important;
  border:none !important;
  font-size:.95rem;
  color:var(--text-soft);
  line-height:1.7;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content p{margin:0 0 12px}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content ul{margin:8px 0 16px;padding:0;list-style:none}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content ul li{
  position:relative;
  padding:6px 0 6px 20px;
  border-bottom:1px dashed rgba(0,0,0,.06);
  font-size:.92rem;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content ul li:last-child{border-bottom:none}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content ul li::before{
  content:'';
  position:absolute; left:0; top:14px;
  width:6px; height:6px; border-radius:50%;
  background:var(--primary, #1a8a8a);
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content a{
  color:var(--primary-dark, #0d6e6e);
  text-decoration:none;
  border-bottom:1px solid rgba(26,138,138,.25);
  transition:color .2s, border-color .2s;
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content a:hover{
  color:var(--primary, #1a8a8a);
  border-bottom-color:var(--primary, #1a8a8a);
}
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content strong{color:var(--navy)}
@media(max-width:640px){
  .wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title{padding:18px 16px !important;font-size:.95rem !important;gap:10px}
  .wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title:hover{padding-left:18px !important}
  .wolufacilities-home .wolufacilities-acc-modern .elementor-tab-content{padding:4px 16px 22px 16px !important}
}

/* "Steps grid" — process en 3 étapes (signaler) — gros numéro + carte. */
.wolufacilities-home .steps-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-top:48px;
  position:relative;
}
.wolufacilities-home .step-card{
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  padding:36px 28px 28px;
  position:relative;
  transition:transform .3s var(--transition), box-shadow .3s var(--transition), border-color .3s var(--transition);
}
.wolufacilities-home .step-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
  border-color:var(--primary-muted);
}
.wolufacilities-home .step-num{
  position:absolute;
  top:-22px; left:24px;
  width:46px; height:46px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--primary,#1a8a8a),var(--primary-dark,#0d6e6e));
  color:#fff;
  font-family:var(--font-editorial);
  font-size:1.25rem;
  font-weight:800;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 16px rgba(26,138,138,.25);
  letter-spacing:0;
}
.wolufacilities-home .step-card h3{
  font-family:var(--font-editorial);
  font-size:1.15rem;
  font-weight:800;
  color:var(--navy);
  margin:8px 0 10px;
  line-height:1.3;
}
.wolufacilities-home .step-card p{
  font-size:.92rem;
  color:var(--text-soft);
  line-height:1.6;
  margin:0;
}
/* Connector line between cards on desktop */
@media(min-width:1025px){
  .wolufacilities-home .step-card:not(:last-child)::after{
    content:'→';
    position:absolute;
    top:50%;
    right:-22px;
    transform:translateY(-50%);
    color:var(--primary-muted, rgba(26,138,138,.35));
    font-size:1.6rem;
    font-weight:300;
    z-index:2;
    pointer-events:none;
  }
}
@media(max-width:1024px){
  .wolufacilities-home .steps-grid{grid-template-columns:1fr;gap:36px}
}

/* "Timeline grid" — 3 étapes du processus de réponse (signaler). */
.wolufacilities-home .timeline-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-top:48px;
  position:relative;
}
.wolufacilities-home .timeline-card{
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  text-align:left;
  position:relative;
  transition:transform .3s var(--transition), box-shadow .3s var(--transition), border-color .3s var(--transition);
}
.wolufacilities-home .timeline-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
  border-color:var(--primary-muted);
}
.wolufacilities-home .timeline-emoji{
  display:inline-flex;
  align-items:center; justify-content:center;
  width:56px; height:56px;
  border-radius:14px;
  background:linear-gradient(135deg, rgba(26,138,138,.12), rgba(26,138,138,.04));
  font-size:1.6rem;
  margin-bottom:18px;
  line-height:1;
}
.wolufacilities-home .timeline-card h3{
  font-family:var(--font-editorial);
  font-size:1.1rem;
  font-weight:800;
  color:var(--navy);
  margin:0 0 8px;
  line-height:1.3;
}
.wolufacilities-home .timeline-card p{
  font-size:.92rem;
  color:var(--text-soft);
  line-height:1.6;
  margin:0;
}
.wolufacilities-home .timeline-card p strong{
  color:var(--primary-dark, #0d6e6e);
  font-weight:700;
}
/* Connector dots between timeline cards */
@media(min-width:1025px){
  .wolufacilities-home .timeline-card:not(:last-child)::after{
    content:'';
    position:absolute;
    top:54px; /* aligned to mid of emoji badge */
    right:-18px;
    width:12px; height:12px;
    border-top:2px dashed var(--primary-muted, rgba(26,138,138,.35));
    border-right:2px dashed var(--primary-muted, rgba(26,138,138,.35));
    transform:rotate(45deg);
    z-index:2;
    pointer-events:none;
  }
}
@media(max-width:1024px){
  .wolufacilities-home .timeline-grid{grid-template-columns:1fr;gap:20px}
}

/* "Types list" — 2 colonnes de motifs acceptés (signaler). */
.wolufacilities-home .types-list{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
  margin-top:32px;
}
.wolufacilities-home .type-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-md, 12px);
  padding:18px 20px;
  font-size:.95rem;
  color:var(--text-soft);
  line-height:1.5;
  transition:border-color .25s var(--transition), transform .25s var(--transition), box-shadow .25s var(--transition);
}
.wolufacilities-home .type-item:hover{
  border-color:var(--primary-muted);
  transform:translateX(3px);
  box-shadow:var(--shadow-sm, 0 4px 14px rgba(0,0,0,.05));
}
.wolufacilities-home .type-item .type-emoji{
  flex:0 0 auto;
  width:36px; height:36px;
  display:inline-flex;
  align-items:center; justify-content:center;
  border-radius:10px;
  background:rgba(26,138,138,.08);
  font-size:1.15rem;
  line-height:1;
}
.wolufacilities-home .type-item strong{color:var(--navy);font-weight:700}
@media(max-width:768px){
  .wolufacilities-home .types-list{grid-template-columns:1fr}
}

/* "Values grid" — 3 cards "Ce qui nous guide" (qui-sommes-nous). */
.wolufacilities-home .values-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;
}
.wolufacilities-home .value-card{
  background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);
  padding:32px 28px;text-align:left;
  transition:transform .3s var(--transition), box-shadow .3s var(--transition), border-color .3s var(--transition);
}
.wolufacilities-home .value-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--primary-muted)}
.wolufacilities-home .value-emoji{font-size:2.4rem;margin-bottom:14px;display:block;line-height:1}
.wolufacilities-home .value-card h3{font-family:var(--font-editorial);font-size:1.15rem;font-weight:800;color:var(--navy);margin:0 0 10px;line-height:1.3}
.wolufacilities-home .value-card p{font-size:.92rem;color:var(--text-soft);line-height:1.6;margin:0}
@media(max-width:1024px){.wolufacilities-home .values-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.wolufacilities-home .values-grid{grid-template-columns:1fr}}

/* "Transparence grid" — liens vers documents PDF (organigramme, budgets, etc.)
   Grille 4 colonnes desktop / 2 tablette / 1 mobile. */
.wolufacilities-home .transp-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
  margin-top:32px;
}
.wolufacilities-home .transp-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 20px;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-md, 12px);
  text-decoration:none;
  color:var(--navy);
  font-weight:600;
  font-size:.95rem;
  transition:transform .25s var(--transition), box-shadow .25s var(--transition), border-color .25s var(--transition);
}
.wolufacilities-home .transp-item:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow);
  border-color:var(--teal, #1a8a8a);
}
.wolufacilities-home .transp-ico{
  flex:0 0 auto;
  width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:8px;
  background:rgba(26,138,138,.10);
  color:var(--teal, #1a8a8a);
}
.wolufacilities-home .transp-ico svg{width:20px;height:20px;display:block}
.wolufacilities-home .transp-item span{flex:1;line-height:1.3}
@media(max-width:1024px){
  .wolufacilities-home .transp-grid{grid-template-columns:repeat(2, 1fr)}
}
@media(max-width:560px){
  .wolufacilities-home .transp-grid{grid-template-columns:1fr}
}

/* "Video grid 2 cols" — variante du video-grid pour 2 vidéos côte à côte. */
.wolufacilities-home .video-grid-2.e-con{
  --display:flex !important;
  --flex-direction:row !important;
  flex-direction:row !important;
  --flex-wrap:nowrap !important;
  --gap:24px !important; gap:24px !important;
  --align-items:stretch !important; align-items:stretch !important;
  margin-top:40px;
}
.wolufacilities-home .video-grid-2.e-con > .video-card.e-con{
  --width:calc((100% - 24px) / 2) !important;
  width:calc((100% - 24px) / 2) !important;
  flex:0 0 calc((100% - 24px) / 2) !important;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  --padding-top:0 !important; --padding-right:0 !important;
  --padding-bottom:0 !important; --padding-left:0 !important;
  padding:0 !important;
  overflow:hidden;
  transition:transform .3s var(--transition),box-shadow .3s var(--transition);
}
.wolufacilities-home .video-grid-2.e-con > .video-card.e-con:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
@media(max-width:768px){
  .wolufacilities-home .video-grid-2.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .wolufacilities-home .video-grid-2.e-con > .video-card.e-con{
    --width:100% !important; width:100% !important; flex:0 0 100% !important;
  }
}

/* "Video feature" — une seule vidéo, centrée, max-width contenue.
   Wrapper container + widget Video natif Elementor (image overlay + lightbox). */
.wolufacilities-home .video-feature.e-con{
  --display:flex !important;
  --flex-direction:column !important;
  flex-direction:column !important;
  --align-items:center !important; align-items:center !important;
  --width:min(100%, 920px) !important;
  width:min(100%, 920px) !important;
  margin:40px auto 0 !important;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.wolufacilities-home .video-feature .elementor-widget-video{width:100% !important}
.wolufacilities-home .video-feature .elementor-widget-video,
.wolufacilities-home .video-feature .elementor-widget-video .elementor-widget-container,
.wolufacilities-home .video-feature .elementor-wrapper{margin:0 !important;padding:0 !important}

/* "Liens utiles" — 2 colonnes de groupes thématiques (Énergie / Logement)
   Cible le container Elementor parent + Icon-list natif Elementor. */
.wolufacilities-home .liens-grid.e-con{
  --display:flex !important;
  --flex-direction:row !important;
  flex-direction:row !important;
  --flex-wrap:nowrap !important;
  --gap:24px !important;
  gap:24px !important;
  margin-top:40px;
}
.wolufacilities-home .liens-grid.e-con > .liens-group.e-con{
  --width:calc((100% - 24px) / 2) !important;
  width:calc((100% - 24px) / 2) !important;
  flex:0 0 calc((100% - 24px) / 2) !important;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:var(--radius-lg);
  --padding-top:28px !important; --padding-right:30px !important;
  --padding-bottom:28px !important; --padding-left:30px !important;
  padding:28px 30px !important;
}
/* Heading "Côté énergie / logement" — bordure basse séparatrice */
.wolufacilities-home .liens-group .elementor-widget-heading{margin:0 0 18px !important;padding:0 0 14px !important;border-bottom:1.5px solid var(--border)}
.wolufacilities-home .liens-group .elementor-widget-heading .elementor-widget-container{padding:0 !important}
.wolufacilities-home .liens-group h3.elementor-heading-title{font-family:var(--font-editorial);font-size:1.2rem;font-weight:800;color:var(--navy);line-height:1.3;margin:0}
/* Icon-list natif → flèche orange + texte primary */
.wolufacilities-home .liens-group .elementor-icon-list-items{padding:0 !important;margin:0 !important;display:flex;flex-direction:column;gap:10px}
.wolufacilities-home .liens-group .elementor-icon-list-item{padding:0 !important;margin:0 !important;line-height:1.5}
.wolufacilities-home .liens-group .elementor-icon-list-item a{color:var(--primary) !important;font-weight:600;font-size:.92rem;text-decoration:none;display:inline-flex;align-items:flex-start;gap:8px;transition:color .2s}
.wolufacilities-home .liens-group .elementor-icon-list-item a:hover{color:var(--primary-dark) !important;text-decoration:underline}
.wolufacilities-home .liens-group .elementor-icon-list-icon{flex-shrink:0;display:inline-flex;align-items:center}
.wolufacilities-home .liens-group .elementor-icon-list-icon i,
.wolufacilities-home .liens-group .elementor-icon-list-icon svg{color:var(--primary) !important;font-size:.85rem;width:14px;height:14px}
.wolufacilities-home .liens-group .elementor-icon-list-text{color:var(--primary) !important;font-weight:600;font-size:.92rem}
@media(max-width:768px){
  .wolufacilities-home .liens-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .wolufacilities-home .liens-grid.e-con > .liens-group.e-con{
    --width:100% !important; width:100% !important; flex:0 0 100% !important;
    --padding-top:22px !important; --padding-right:24px !important;
    --padding-bottom:22px !important; --padding-left:24px !important;
    padding:22px 24px !important;
  }
}

/* "Vos droits" — 3x2 grid of soft cards (réutilise .eng-card pour cohérence
   visuelle). Variante 3 colonnes pour 6 items courts. */
.wolufacilities-home .droits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
@media(max-width:1024px){.wolufacilities-home .droits-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:640px){.wolufacilities-home .droits-grid{grid-template-columns:1fr;gap:12px}}

/* "Vos engagements" / "On avance ensemble" — 2x2 grid of soft cards
   (used on /le-wolufacilities-et-vous/ to présent les obligations dans un ton positif). */
.wolufacilities-home .eng-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}
.wolufacilities-home .eng-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:24px 26px;display:flex;align-items:flex-start;gap:16px;transition:transform .3s var(--transition),box-shadow .3s var(--transition),border-color .3s}
.wolufacilities-home .eng-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--primary-muted)}
.wolufacilities-home .eng-ico{width:44px;height:44px;border-radius:12px;background:var(--primary-pale);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}
.wolufacilities-home .eng-content{flex:1;min-width:0}
.wolufacilities-home .eng-content strong{display:block;font-size:1rem;color:var(--navy);margin-bottom:6px;font-weight:700;line-height:1.3}
.wolufacilities-home .eng-content p{font-size:.88rem;color:var(--text-soft);line-height:1.6;margin:0}
@media(max-width:640px){.wolufacilities-home .eng-grid{grid-template-columns:1fr;gap:14px}}

/* /actualites/ — index page: grid of post cards. */
.wolufacilities-home .actualites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.wolufacilities-home .act-card{position:relative;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s var(--transition),box-shadow .35s var(--transition),border-color .35s}
.wolufacilities-home .act-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary-muted)}
.wolufacilities-home .act-card .stretched-link{position:absolute;inset:0;z-index:5;text-indent:-9999px;overflow:hidden;background:transparent}
.wolufacilities-home .act-card-img{aspect-ratio:16/9;overflow:hidden;background:var(--bg-soft)}
.wolufacilities-home .act-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--transition)}
.wolufacilities-home .act-card:hover .act-card-img img{transform:scale(1.04)}
.wolufacilities-home .act-card-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.wolufacilities-home .act-card-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.05em}
.wolufacilities-home .act-card-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);flex-shrink:0}
.wolufacilities-home .act-card-title{font-family:var(--font-editorial);font-size:1.15rem;font-weight:800;color:var(--navy);line-height:1.3;letter-spacing:-.2px;margin:0}
.wolufacilities-home .act-card-excerpt{font-size:.9rem;color:var(--text-soft);line-height:1.6;margin:0;flex:1}
.wolufacilities-home .act-card-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:var(--primary);margin-top:auto}
.wolufacilities-home .act-card-link svg{width:14px;height:14px;flex-shrink:0;transition:transform .3s var(--transition)}
.wolufacilities-home .act-card:hover .act-card-link svg{transform:translateX(4px)}
@media(max-width:1024px){.wolufacilities-home .actualites-grid{grid-template-columns:repeat(2,1fr);gap:20px}}
@media(max-width:640px){.wolufacilities-home .actualites-grid{grid-template-columns:1fr;gap:16px}}
.wolufacilities-home .actualites-sec{padding-top:80px;padding-bottom:80px}

/* mission-grid + cta-banner + sit-card + acc-card + qt-grid (service-habitat shared patterns) */
.wolufacilities-home .mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:40px}
.wolufacilities-home .mission-text{font-size:1rem;color:var(--text-soft);line-height:1.85}
.wolufacilities-home .mission-text p+p{margin-top:16px}
.wolufacilities-home .mission-text strong{color:var(--navy);font-weight:700}
.wolufacilities-home .mission-visual{position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg)}
.wolufacilities-home .mission-visual img{width:100%;height:100%;object-fit:cover;min-height:360px}
/* mission-badge is rendered inline inside the same HTML widget as the image —
   keep it visible. (Older rules that hid the widget wrapper are removed —
   they were collapsing the whole .mission-visual including the image.) */
.wolufacilities-home .mission-badge-ico{width:40px;height:40px;border-radius:10px;background:var(--primary-pale);display:flex;align-items:center;justify-content:center}
.wolufacilities-home .mission-badge-ico svg{width:20px;height:20px;color:var(--primary)}
.wolufacilities-home .mission-badge strong{font-size:.85rem;color:var(--navy);display:block}
.wolufacilities-home .mission-badge span{font-size:.72rem;color:var(--text-muted)}
.wolufacilities-home .sit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.wolufacilities-home .sit-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:28px 24px;position:relative;overflow:hidden;transition:all .35s var(--transition)}
.wolufacilities-home .sit-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--sit-color,var(--primary));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--transition)}
.wolufacilities-home .sit-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary-muted)}
.wolufacilities-home .sit-card:hover::after{transform:scaleX(1)}
.wolufacilities-home .sit-card:nth-child(1){--sit-color:var(--primary)}
.wolufacilities-home .sit-card:nth-child(2){--sit-color:var(--orange)}
.wolufacilities-home .sit-card:nth-child(3){--sit-color:var(--violet)}
.wolufacilities-home .sit-card:nth-child(4){--sit-color:var(--green)}
.wolufacilities-home .sit-card:nth-child(5){--sit-color:var(--primary-light)}
.wolufacilities-home .sit-card:nth-child(6){--sit-color:var(--orange-dark)}
.wolufacilities-home .sit-emoji{font-size:2rem;margin-bottom:14px;display:block;line-height:1}
.wolufacilities-home .sit-card h3{font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.wolufacilities-home .sit-card p{font-size:.82rem;color:var(--text-muted);line-height:1.55}
.wolufacilities-home .acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
.wolufacilities-home .acc-card{border-radius:var(--radius-xl);padding:36px 32px;position:relative;overflow:hidden}
.wolufacilities-home .acc-card-prev{background:linear-gradient(135deg,var(--primary-pale),#E8F6F8);border:1.5px solid var(--primary-muted)}
.wolufacilities-home .acc-card-cur{background:linear-gradient(135deg,var(--orange-pale),#FFF4E8);border:1.5px solid var(--orange-muted)}
.wolufacilities-home .acc-card h3{font-size:1.15rem;font-weight:800;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.wolufacilities-home .acc-card-prev h3{color:var(--primary-dark)}
.wolufacilities-home .acc-card-cur h3{color:var(--orange-dark)}
.wolufacilities-home .acc-card .acc-sub{font-size:.85rem;color:var(--text-soft);margin-bottom:20px}
.wolufacilities-home .acc-list{display:flex;flex-direction:column;gap:12px}
.wolufacilities-home .acc-item{display:flex;align-items:flex-start;gap:12px;font-size:.9rem;color:var(--text-soft);line-height:1.6}
.wolufacilities-home .acc-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:8px}
.wolufacilities-home .acc-card-prev .acc-item-dot{background:var(--primary)}
.wolufacilities-home .acc-card-cur .acc-item-dot{background:var(--orange)}
.wolufacilities-home .qt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:40px}
.wolufacilities-home .qt-item{display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);padding:18px 20px;transition:all .3s var(--transition)}
.wolufacilities-home .qt-item:hover{border-color:var(--primary-muted);transform:translateX(4px);box-shadow:var(--shadow-sm)}
.wolufacilities-home .qt-ico{width:40px;height:40px;border-radius:10px;background:var(--primary-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.wolufacilities-home .qt-ico svg{width:18px;height:18px;color:var(--primary)}
.wolufacilities-home .qt-item span{font-size:.9rem;font-weight:600;color:var(--navy)}
.wolufacilities-home .cta-banner{background:linear-gradient(135deg,var(--primary),var(--primary-dark)) !important;border-radius:var(--radius-xl);padding:48px;text-align:center;color:#fff;position:relative;overflow:hidden;margin-top:48px}
.wolufacilities-home .cta-banner::before{content:'';position:absolute;top:-40px;right:-40px;left:auto;width:200px;height:200px;background:rgba(255,255,255,.05);border-radius:50%;pointer-events:none}
.wolufacilities-home .cta-banner h3{font-family:var(--font-editorial);font-size:1.6rem;font-weight:800;margin-bottom:10px}
.wolufacilities-home .cta-banner p{font-size:.95rem;color:rgba(255,255,255,.7);margin-bottom:24px;max-width:480px;margin-left:auto;margin-right:auto}
/* CTA banner heading: force white + centered (Elementor widget H3 inherits its own teal color and start-align by default). */
.wolufacilities-home .cta-banner h3,
.wolufacilities-home .cta-banner .elementor-heading-title{color:#fff !important;text-align:center}
/* When .btn-white is applied to an Elementor BUTTON WIDGET wrapper (instead of an <a>), the whole widget container becomes a white bar. Reset the wrapper and apply the pill style to the inner <a.elementor-button>. */
.wolufacilities-home .elementor-widget-button.btn-white{background:transparent !important;padding:0 !important;display:flex;justify-content:center;box-shadow:none !important;border:0 !important;border-radius:0 !important}
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button{background:#fff !important;color:var(--primary-dark) !important;border:2px solid #fff !important;border-radius:var(--radius-pill);padding:14px 32px;font-family:var(--font-body, 'Montserrat', sans-serif) !important;font-weight:700;font-size:.95rem;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);transition:all .35s var(--transition)}
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button .elementor-button-text{font-family:var(--font-body, 'Montserrat', sans-serif) !important}
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button:hover,
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button:focus-visible{
  color:var(--orange-dark, #C85E0A) !important;
  border-color:var(--orange, #F47B20) !important;
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(244,123,32,.30);
}
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button-icon,
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button-icon svg{color:var(--primary-dark) !important;fill:currentColor;transition:color .35s var(--transition)}
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button:hover .elementor-button-icon,
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button:hover .elementor-button-icon svg,
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button:focus-visible .elementor-button-icon,
.wolufacilities-home .elementor-widget-button.btn-white .elementor-button:focus-visible .elementor-button-icon svg{color:var(--orange, #F47B20) !important}

/* page-hero (dark variant for some inner pages) */
.wolufacilities-home .page-hero{background:linear-gradient(145deg,var(--primary-dark),var(--primary),var(--primary-warm));padding:140px 24px 120px;position:relative;overflow:hidden;text-align:center}
.wolufacilities-home .page-hero::before{content:'';position:absolute;top:-100px;right:-80px;left:auto;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.06),transparent 65%);pointer-events:none}
.wolufacilities-home .page-hero::after{content:'';position:absolute;bottom:-60px;left:-60px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,168,198,.12),transparent 65%);pointer-events:none}
.wolufacilities-home .page-hero-in{max-width:800px;margin:0 auto;position:relative;z-index:2}
.wolufacilities-home .page-hero h1{font-family:var(--font-editorial);font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800;color:#fff;line-height:1.1;margin-bottom:18px;letter-spacing:-.5px;text-align:center}
/* Per-page hero color overrides (page-hero default = teal gradient). */
.wolufacilities-home .elementor-element-hsl_hero.page-hero,
.wolufacilities-home .elementor-element-lc_hero.page-hero,
.wolufacilities-home .elementor-element-and_hero.page-hero,
.wolufacilities-home .elementor-element-lt_hero.page-hero{background:linear-gradient(145deg,#3140c0,#5615a7,#1f5bb5)}
.wolufacilities-home .page-hero-sub{font-size:1.08rem;color:rgba(255,255,255,.7);max-width:560px;margin:0 auto;line-height:1.8;text-align:center}
/* Force center on the Elementor text-editor widget WRAPPER itself (not just inner <p>).
   Required because Elementor widget div is auto-width inside flex parent and aligns left by default. */
.wolufacilities-home .page-hero .elementor-widget-text-editor{
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.wolufacilities-home .page-hero .elementor-widget-text-editor .elementor-widget-container{
  text-align: center !important;
}
.wolufacilities-home .page-hero-icon{font-size:3rem;margin-bottom:16px;display:block}
.wolufacilities-home .page-hero .breadcrumb{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.82rem;color:rgba(255,255,255,.55);margin-bottom:20px}
.wolufacilities-home .page-hero .breadcrumb a{color:rgba(255,255,255,.7);transition:color .2s}
.wolufacilities-home .page-hero .breadcrumb a:hover{color:#fff}
.wolufacilities-home .page-hero .breadcrumb svg{width:12px;height:12px;flex-shrink:0}

/* Footer */
/* ── FOOTER : typography + contrast cohérent avec la marque ── */
.wolufacilities-home .footer{
  background:var(--navy);
  color:rgba(255,255,255,.85);
  padding:76px 24px 36px;
  font-family:var(--font-body),'Montserrat',sans-serif;
  font-feature-settings:"kern" 1,"liga" 1;
}
.wolufacilities-home .footer *{font-family:inherit;}
.wolufacilities-home .footer-in{max-width:1200px;margin:0 auto}
.wolufacilities-home .footer-grid{
  display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:48px;margin-bottom:52px;
}
.wolufacilities-home .footer h4{
  color:#fff;
  font-family:var(--font-body),'Montserrat',sans-serif;
  font-size:.95rem;font-weight:800;
  letter-spacing:.6px;text-transform:uppercase;
  margin-bottom:18px;
  position:relative;padding-bottom:10px;
}
.wolufacilities-home .footer h4::after{
  content:'';position:absolute;left:0;bottom:0;
  width:32px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--primary-light),var(--orange));
}
.wolufacilities-home .footer p{
  font-size:.9rem;line-height:1.75;color:rgba(255,255,255,.78);
}
.wolufacilities-home .footer-links{ list-style:none; padding:0; margin:0; }
.wolufacilities-home .footer-links li{margin-bottom:10px;list-style:none}
.wolufacilities-home .footer-links a{
  font-size:.9rem;color:rgba(255,255,255,.85);
  transition:color .2s,padding-left .3s;
  display:inline-block;
}
.wolufacilities-home .footer-links a:hover{color:var(--orange);padding-left:4px}
.wolufacilities-home .footer-bot{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:.77rem}
.wolufacilities-home .footer-social{display:flex;gap:9px}
.wolufacilities-home .footer-social a{width:40px;height:40px;background:rgba(255,255,255,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s}
.wolufacilities-home .footer-social a:hover{background:var(--orange);color:#fff;transform:translateY(-3px)}
.wolufacilities-home .a11y-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary-light);font-size:.78rem;font-weight:600}
.wolufacilities-home .a11y-link:hover{color:var(--orange)}
.wolufacilities-home .btt{position:fixed;bottom:80px;right:24px;width:44px;height:44px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-primary);opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s;z-index:8500;pointer-events:none;border:none}
.wolufacilities-home .btt.show{opacity:1;transform:none;pointer-events:all}
.wolufacilities-home .btt:hover{background:var(--primary-dark);transform:translateY(-2px)}

/* Responsive shared */
@media(max-width:1024px){
  .wolufacilities-home .nav-d{display:none}
  .wolufacilities-home .hamburger{display:flex}
  .wolufacilities-home .footer-grid{grid-template-columns:repeat(2,1fr)}
  .wolufacilities-home .aide-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .wolufacilities-home .mission-grid{grid-template-columns:1fr;gap:32px}
  .wolufacilities-home .sit-grid{grid-template-columns:repeat(2,1fr)}
  .wolufacilities-home .acc-grid{grid-template-columns:1fr}
  .wolufacilities-home .qt-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .wolufacilities-home .hdr-in{height:60px}
  .wolufacilities-home .footer-grid{grid-template-columns:1fr;gap:24px}
  .wolufacilities-home .aide-hero{padding:120px 20px 80px}
  .wolufacilities-home .aide-grid{grid-template-columns:1fr;gap:16px}
  .wolufacilities-home .aide-sec{padding:56px 20px 80px}
  .wolufacilities-home .sit-grid{grid-template-columns:1fr}
  .wolufacilities-home .cta-banner{padding:32px 24px}
  .wolufacilities-home .page-hero{padding:120px 20px 56px}
}

/* ============================================================
   Contact section (used by le-wolufacilities-et-vous, aide-financiere, etc.)
   ============================================================ */
.wolufacilities-home .contact-sec{padding:80px 24px}
.wolufacilities-home .contact-sec-in{max-width:1200px;margin:0 auto}
.wolufacilities-home .contact-wrap{background:linear-gradient(145deg,#007AA3 0%,#0088B5 40%,#007AA3 100%);border-radius:28px;padding:56px;position:relative;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.25)}
.wolufacilities-home .contact-wrap::before{content:'';position:absolute;top:-100px;right:-100px;left:auto;width:300px;height:300px;background:radial-gradient(circle,rgba(0,153,204,.08),transparent 70%);pointer-events:none}
.wolufacilities-home .contact-wrap::after{content:'';position:absolute;bottom:-80px;left:-80px;width:250px;height:250px;background:radial-gradient(circle,rgba(123,45,139,.06),transparent 70%);pointer-events:none}
.wolufacilities-home .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;position:relative;z-index:1}
.wolufacilities-home .contact-info{color:#fff;padding:8px 0}
.wolufacilities-home .contact-info h3{font-size:1.65rem;font-weight:800;margin-bottom:8px;color:#fff;display:flex;align-items:center;gap:10px}
.wolufacilities-home .contact-info .c-sub{font-size:.9rem;color:rgba(255,255,255,.5);margin-bottom:36px;line-height:1.6}
.wolufacilities-home .c-row{display:flex;align-items:center;gap:16px;padding:16px 0}
.wolufacilities-home .c-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s var(--transition)}
.wolufacilities-home .c-ico-orange{background:rgba(244,123,32,.18)}
.wolufacilities-home .c-ico-green{background:rgba(82,176,67,.18)}
.wolufacilities-home .c-ico-blue{background:rgba(0,168,198,.18)}
.wolufacilities-home .c-ico-purple{background:rgba(123,45,139,.18)}
.wolufacilities-home .c-txt strong{display:block;font-size:.9rem;margin-bottom:2px;color:#fff;font-weight:700}
.wolufacilities-home .c-txt span{font-size:.82rem;color:rgba(255,255,255,.45)}
.wolufacilities-home .c-txt a{color:var(--primary-light);font-weight:600;transition:color .2s}
.wolufacilities-home .c-txt a:hover{color:var(--orange)}
.wolufacilities-home .contact-form{padding:4px 0}
.wolufacilities-home .contact-form h3{font-size:1.35rem;font-weight:800;color:#fff;margin-bottom:28px}
.wolufacilities-home .fg{margin-bottom:14px}
.wolufacilities-home .fg label{display:block;font-size:.72rem;font-weight:700;color:rgba(255,255,255,.5);margin-bottom:4px;text-transform:uppercase;letter-spacing:.1em}
.wolufacilities-home .fg input,.wolufacilities-home .fg select,.wolufacilities-home .fg textarea{width:100%;padding:11px 16px;border:1.5px solid rgba(255,255,255,.08);border-radius:10px;font-family:var(--font-body);font-size:.9rem;color:#fff;background:rgba(255,255,255,.04);outline:none;-webkit-appearance:none;transition:all .3s}
.wolufacilities-home .fg input::placeholder,.wolufacilities-home .fg textarea::placeholder{color:rgba(255,255,255,.25)}
.wolufacilities-home .fg select{color:rgba(255,255,255,.45);padding-right:40px}
.wolufacilities-home .fg select option{background:#007AA3;color:#fff}
.wolufacilities-home .fg input:focus,.wolufacilities-home .fg select:focus,.wolufacilities-home .fg textarea:focus{border-color:var(--primary-light);background:rgba(255,255,255,.07);box-shadow:0 0 0 3px rgba(0,153,204,.15)}
.wolufacilities-home .fg textarea{resize:vertical;min-height:80px}
.wolufacilities-home .f-submit{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;padding:16px 34px;border-radius:var(--radius-pill);font-weight:700;font-size:.95rem;width:100%;transition:all .35s var(--transition);box-shadow:0 6px 24px rgba(0,153,204,.35);border:none;margin-top:6px}
.wolufacilities-home .f-submit:hover{transform:translateY(-2px);box-shadow:0 10px 36px rgba(0,153,204,.5)}
.wolufacilities-home .hdr-cta{background:var(--orange);color:#fff;padding:11px 24px;border-radius:var(--radius-pill);font-weight:700;font-size:.86rem;transition:all .35s var(--transition);box-shadow:var(--shadow-orange);display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.wolufacilities-home .hdr-cta:hover{background:var(--orange-dark);transform:translateY(-2px)}
@media(max-width:1024px){.wolufacilities-home .contact-grid{grid-template-columns:1fr}.wolufacilities-home .contact-wrap{padding:36px 24px}}
@media(max-width:640px){.wolufacilities-home .contact-sec{padding:56px 20px}}

/* ============================================================
   Native Elementor Button overrides inside .nav-d
   So Elementor Button widgets render as compact menu links.
   ============================================================ */
.wolufacilities-home .nav-d { padding: 0; gap: 2px; align-items: center; }
.wolufacilities-home .nav-d > .elementor-element { width: auto !important; flex: 0 0 auto; }
.wolufacilities-home .nav-d .elementor-widget-container { padding: 0 !important; }
.wolufacilities-home .nav-d .elementor-button-wrapper { display: inline-block; }
.wolufacilities-home .nav-d a.elementor-button,
.wolufacilities-home .nav-d .elementor-button-link {
  background: transparent !important;
  background-color: transparent !important;
  padding: 7px 14px !important;
  font-family: var(--font-body, 'Montserrat', sans-serif) !important;
  font-size: .86rem !important;
  font-weight: 500 !important;
  color: rgba(26, 46, 53, .8) !important;
  border-radius: var(--radius-pill) !important;
  transition: all .25s !important;
  text-decoration: none !important;
  border: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
  fill: none;
  line-height: 1.4;
}
.wolufacilities-home .nav-d a.elementor-button .elementor-button-text,
.wolufacilities-home .nav-d .elementor-button-link .elementor-button-text {
  font-family: var(--font-body, 'Montserrat', sans-serif) !important;
}
.wolufacilities-home .nav-d a.elementor-button .elementor-button-text {
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: 0 !important;
}
.wolufacilities-home .nav-d a.elementor-button:hover,
.wolufacilities-home .nav-d .elementor-button-link:hover {
  background: rgba(0, 110, 120, .09) !important;
  color: var(--primary) !important;
}
.wolufacilities-home .nav-d a.elementor-button.on,
.wolufacilities-home .nav-d .elementor-button-link.on {
  background: rgba(0, 110, 120, .12) !important;
  color: var(--primary) !important;
  font-weight: 700 !important;
}

/* ============================================================
   Native widget overrides for fully-Elementor header + footer
   (Icon, Heading, Icon-list, Social-icons, Button hamburger, BTT)
   ============================================================ */

/* Logo: Icon widget styled as circular CPAS bubble with orange ::after dot */
.wolufacilities-home .logo-icon { width: 44px; height: 44px; background: var(--primary); border-radius: 50%; display: flex !important; align-items: center; justify-content: center; position: relative; overflow: hidden; transition: transform .4s var(--spring); box-shadow: 0 4px 14px rgba(0,153,204,.35); flex-shrink: 0; }
.wolufacilities-home .logo-icon::after { content: ''; position: absolute; width: 14px; height: 14px; background: var(--orange); border-radius: 50%; top: -2px; right: -2px; z-index: 2; }
.wolufacilities-home .logo-icon .elementor-widget-container { padding: 0 !important; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.wolufacilities-home .logo-icon .elementor-icon-wrapper { display: flex; align-items: center; justify-content: center; }
.wolufacilities-home .logo-icon .elementor-icon { color: #fff !important; font-size: 18px !important; line-height: 1 !important; padding: 0 !important; }
.wolufacilities-home .logo-icon .elementor-icon i { color: #fff !important; font-size: 18px !important; }
.wolufacilities-home .logo-icon .elementor-icon svg { fill: #fff !important; width: 18px !important; height: 18px !important; }
.wolufacilities-home .logo:hover .logo-icon { transform: scale(1.06); }

/* Logo text via Heading widgets */
.wolufacilities-home .logo-strong .elementor-heading-title { font-size: 1.05rem !important; color: var(--navy) !important; font-weight: 800 !important; letter-spacing: -.5px !important; line-height: 1.2 !important; margin: 0 !important; }
.wolufacilities-home .logo-sub .elementor-heading-title { font-size: .66rem !important; color: var(--text-soft) !important; font-weight: 500 !important; text-transform: uppercase; letter-spacing: .6px !important; line-height: 1.2 !important; margin: 0 !important; }
.wolufacilities-home .logo-t { gap: 0 !important; }
.wolufacilities-home .logo-t > .elementor-element { width: auto !important; }

/* Logo container as link (Elementor wraps in <a>) */
.wolufacilities-home .logo { gap: 11px; align-items: center; flex-shrink: 0; cursor: pointer; }
.wolufacilities-home .logo > .elementor-element { width: auto !important; flex: 0 0 auto; }

/* Hamburger as Button widget styled like the original 3-bar menu trigger.
   Replaces the 3-span animation with a simple bars↔X icon swap (FA). */
.wolufacilities-home .hamburger-btn .elementor-button { width: 44px !important; height: 44px !important; padding: 0 !important; background: rgba(0,153,204,.07) !important; border-radius: 50% !important; border: 1px solid rgba(255,255,255,.4) !important; color: var(--navy) !important; display: flex !important; align-items: center; justify-content: center; box-shadow: none !important; }
.wolufacilities-home .hamburger-btn .elementor-button:hover { background: rgba(0,153,204,.12) !important; }
.wolufacilities-home .hamburger-btn .elementor-button .elementor-button-text { display: none !important; }
.wolufacilities-home .hamburger-btn .elementor-button-icon { margin: 0 !important; }
.wolufacilities-home .hamburger-btn .elementor-button-icon i,
.wolufacilities-home .hamburger-btn .elementor-button-icon svg { font-size: 18px !important; }
@media(min-width:1025px){ .wolufacilities-home .hamburger-btn { display: none; } }

/* Footer column heading + icon-list overrides */
.wolufacilities-home .footer-col-h .elementor-heading-title { color: #fff !important; font-size: .9rem !important; font-weight: 700 !important; margin-bottom: 16px !important; line-height: 1.3 !important; }
/* ── HFE footer icon-list widgets (Diensten, Nuttige linken, Contact) ──
   The widget uses Elementor's icon-list. Class is `footer-links` (proto naming).
   Hide the default checkmark icons and apply brand-cohérent typography. */
.wolufacilities-home .footer-links.elementor-widget-icon-list .elementor-icon-list-items,
.wolufacilities-home .footer-links .elementor-icon-list-items{
  padding:0!important; margin:0!important; gap:10px!important;
  display:flex!important; flex-direction:column!important;
}
.wolufacilities-home .footer-links .elementor-icon-list-item{
  padding:0!important; margin:0!important;
}
.wolufacilities-home .footer-links .elementor-icon-list-item:not(:last-child){
  border:none!important; padding-bottom:0!important; margin-bottom:0!important;
}
.wolufacilities-home .footer-links .elementor-icon-list-item a{
  padding:0!important; gap:0!important; align-items:center;
  transition:color .2s,padding-left .3s;
  font-family:var(--font-body),'Montserrat',sans-serif;
}
.wolufacilities-home .footer-links .elementor-icon-list-item a:hover{
  color:var(--orange)!important; padding-left:4px!important;
}
/* Hide the default checkmark icon — text is enough */
.wolufacilities-home .footer-links .elementor-icon-list-icon{ display:none!important; }
.wolufacilities-home .footer-links .elementor-icon-list-text{
  font-size:.9rem!important;
  color:rgba(255,255,255,.85)!important;
  font-weight:500!important;
  font-family:var(--font-body),'Montserrat',sans-serif!important;
  transition:color .2s;
  line-height:1.5!important;
}
.wolufacilities-home .footer-links .elementor-icon-list-item:hover .elementor-icon-list-text{
  color:var(--orange)!important;
}
.wolufacilities-home .footer-links .elementor-icon-list-item.cur a .elementor-icon-list-text,
.wolufacilities-home .footer-links .elementor-icon-list-item.on a .elementor-icon-list-text{
  color:var(--orange)!important; font-weight:700!important;
}

/* Heading widget for footer h4 (rendered as Elementor heading widget) */
.wolufacilities-home .footer h4,
.wolufacilities-home .footer .elementor-widget-heading .elementor-heading-title{
  color:#fff!important;
  font-family:var(--font-body),'Montserrat',sans-serif!important;
  font-size:.95rem!important; font-weight:800!important;
  letter-spacing:.6px!important; text-transform:uppercase!important;
  margin:0 0 18px 0!important;
}

/* Footer brand "Wolu-Facilities" + "ASSOCIATION/VERENIGING HOOFDSTUK XII" */
.wolufacilities-home .footer .logo-t strong{
  color:#fff!important; font-size:1.05rem; font-weight:800;
  letter-spacing:-.3px; font-family:var(--font-body),'Montserrat',sans-serif;
}
.wolufacilities-home .footer .logo-t span{
  color:rgba(255,255,255,.55)!important;
  font-size:.7rem; text-transform:uppercase; letter-spacing:.6px;
  font-family:var(--font-body),'Montserrat',sans-serif;
}

/* Footer bottom bar (copyright + social) */
.wolufacilities-home .footer-bot{
  border-top:1px solid rgba(255,255,255,.1);
  padding-top:24px;
  font-size:.82rem; color:rgba(255,255,255,.6);
  font-family:var(--font-body),'Montserrat',sans-serif;
}
.wolufacilities-home .footer-bot a{
  color:rgba(255,255,255,.7); transition:color .2s;
}
.wolufacilities-home .footer-bot a:hover{ color:var(--orange); }
.wolufacilities-home .footer-social a{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.08);
  margin-left:8px; transition:all .2s;
}
.wolufacilities-home .footer-social a:hover{
  background:var(--orange); transform:translateY(-2px);
}
.wolufacilities-home .footer-social a svg{ fill:#fff; width:14px; height:14px; }

/* Footer logo descriptive text (Text-editor) */
.wolufacilities-home .footer-desc .elementor-widget-container { padding: 0 !important; }
.wolufacilities-home .footer-desc p { font-size: .83rem !important; line-height: 1.7 !important; color: rgba(255,255,255,.65) !important; margin: 0 0 18px 0 !important; }

/* a11y-link in footer (Heading or text-editor with link) */
.wolufacilities-home .footer-a11y .elementor-heading-title,
.wolufacilities-home .footer-a11y a { color: var(--primary-light) !important; font-size: .78rem !important; font-weight: 600 !important; transition: color .2s; }
.wolufacilities-home .footer-a11y a:hover { color: var(--orange) !important; }

/* Copyright Heading in footer-bot */
.wolufacilities-home .footer-bot .footer-copyright .elementor-heading-title { color: rgba(255,255,255,.65) !important; font-size: .77rem !important; font-weight: 400 !important; margin: 0 !important; }

/* Social-icons widget styling to match original .footer-social */
.wolufacilities-home .footer-social .elementor-social-icons-wrapper { gap: 9px !important; }
.wolufacilities-home .footer-social .elementor-social-icon { width: 40px !important; height: 40px !important; background: rgba(255,255,255,.08) !important; border-radius: 50% !important; padding: 0 !important; transition: all .3s !important; }
.wolufacilities-home .footer-social .elementor-social-icon:hover { background: var(--orange) !important; transform: translateY(-3px); }
.wolufacilities-home .footer-social .elementor-social-icon i { font-size: 15px !important; color: rgba(255,255,255,.65); }
.wolufacilities-home .footer-social .elementor-social-icon:hover i { color: #fff; }

/* Back-to-top Icon widget styled as floating circular button */
.wolufacilities-home .btt-icon { position: fixed; bottom: 80px; right: 24px; z-index: 8500; opacity: 0; transform: translateY(10px); transition: opacity .3s, transform .3s; pointer-events: none; }
.wolufacilities-home .btt-icon.show { opacity: 1; transform: none; pointer-events: all; }
.wolufacilities-home .btt-icon .elementor-icon { width: 44px !important; height: 44px !important; background: var(--primary); color: #fff !important; border-radius: 50%; display: flex !important; align-items: center; justify-content: center; box-shadow: var(--shadow-primary); cursor: pointer; transition: background .3s, transform .3s; }
.wolufacilities-home .btt-icon .elementor-icon:hover { background: var(--primary-dark); transform: translateY(-2px); }
.wolufacilities-home .btt-icon .elementor-icon i,
.wolufacilities-home .btt-icon .elementor-icon svg { font-size: 18px !important; color: #fff !important; }

/* ============================================================
   FIX: force flex-direction:row + width:auto on Elementor
   containers used as flex rows. Elementor's e-flex class
   defaults to column with --width:100% on children.
   ============================================================ */

/* Force horizontal layout on flex-row containers */
.wolufacilities-home.e-con.e-flex,
.wolufacilities-home .hdr-wrap.e-con.e-flex,
.wolufacilities-home .hdr.e-con.e-flex,
.wolufacilities-home .footer.e-con.e-flex,
.wolufacilities-home .footer-in.e-con.e-flex,
.wolufacilities-home .ftr_col1.e-con.e-flex,
.wolufacilities-home .footer-grid > .e-con.e-flex {
  --flex-direction: column;
  flex-direction: column;
}

.wolufacilities-home .hdr-in.e-con,
.wolufacilities-home .hdr-in.e-flex,
.wolufacilities-home .nav-d.e-con,
.wolufacilities-home .nav-d.e-flex,
.wolufacilities-home .logo.e-con,
.wolufacilities-home .logo.e-flex,
.wolufacilities-home .footer-grid.e-con,
.wolufacilities-home .footer-grid.e-flex,
.wolufacilities-home .footer-bot.e-con,
.wolufacilities-home .footer-bot.e-flex {
  --flex-direction: row !important;
  flex-direction: row !important;
}

/* hdr-in: justify space-between + center, fixed height */
.wolufacilities-home .hdr-in.e-con {
  --justify-content: space-between !important;
  --align-items: center !important;
  justify-content: space-between !important;
  align-items: center !important;
  --gap: 16px;
  gap: 16px !important;
  min-height: 68px;
}

/* nav-d: row, gap 2px, center vertical */
.wolufacilities-home .nav-d.e-con {
  --align-items: center !important;
  align-items: center !important;
  --gap: 2px;
  gap: 2px !important;
}

/* logo container: row, gap 11px, center */
.wolufacilities-home .logo.e-con {
  --align-items: center !important;
  align-items: center !important;
  --gap: 11px;
  gap: 11px !important;
}

/* logo-t: column, no gap (heading + heading stacked tight) */
.wolufacilities-home .logo-t.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  --gap: 0;
  gap: 0 !important;
}

/* footer-grid: 4 columns row */
.wolufacilities-home .footer-grid.e-con {
  --gap: 48px;
  gap: 48px !important;
}
.wolufacilities-home .footer-grid.e-con > .e-con {
  --width: 100% !important;
  flex: 1 1 0 !important;
}

/* footer-bot: row, justify-between */
.wolufacilities-home .footer-bot.e-con {
  --justify-content: space-between !important;
  --align-items: center !important;
  justify-content: space-between !important;
  align-items: center !important;
  --gap: 16px;
  gap: 16px !important;
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 24px !important;
}

/* Force children of horizontal containers to be auto-width (not 100%) */
.wolufacilities-home .hdr-in.e-con > .elementor-element,
.wolufacilities-home .nav-d.e-con > .elementor-element,
.wolufacilities-home .logo.e-con > .elementor-element,
.wolufacilities-home .logo-t.e-con > .elementor-element,
.wolufacilities-home .footer-bot.e-con > .elementor-element {
  --width: auto !important;
  width: auto !important;
  flex: 0 0 auto !important;
  max-width: none !important;
}

/* Logo icon: must keep 44×44, no stretching */
.wolufacilities-home .h_logo_ico.elementor-widget,
.wolufacilities-home .ftr_logo_ico.elementor-widget,
.wolufacilities-home .logo-icon.elementor-widget-icon {
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px !important;
}

/* Nav buttons keep their content-size width */
.wolufacilities-home .nav-d.e-con > .elementor-widget-button {
  --width: auto !important;
  width: auto !important;
  flex: 0 0 auto !important;
}

/* Hamburger button hidden on desktop, shown ≤1024px */
@media(min-width:1025px){
  .wolufacilities-home .hamburger-btn { display: none !important; }
}
@media(max-width:1024px){
  .wolufacilities-home .nav-d.e-con { display: none !important; }
}

/* hdr-wrap: actually fixed positioning + full-width transparent wrapper */
.wolufacilities-home .hdr-wrap.e-con {
  --width: 100% !important;
  position: fixed !important;
  top: 12px;
  left: 0;
  right: 0;
  z-index: 8000;
  pointer-events: none;
  --padding-block-start: 0;
  --padding-block-end: 0;
  --padding-inline-start: 20px;
  --padding-inline-end: 20px;
}

/* hdr: max 1200, glassmorphic, pointer-events:all */
.wolufacilities-home .hdr.e-con {
  pointer-events: all;
  max-width: 1200px;
  margin: 0 auto !important;
  background: #fff;
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid rgba(0,122,163,.08);
  border-radius: var(--radius-xl);
  box-shadow: 0 8px 32px rgba(0,122,163,.12), 0 1px 0 rgba(255,255,255,.5) inset;
  --padding-block-start: 0;
  --padding-block-end: 0;
  --padding-inline-start: 22px;
  --padding-inline-end: 22px;
}

.wolufacilities-home .hdr.scrolled.e-con {
  background: rgba(250,254,254,.95);
  border-color: rgba(212,240,250,.8);
}

/* ============================================================
   FIX v2: vertical centering + logo icon proper sizing
   ============================================================ */

/* Force header inner row to fixed height + perfect vertical centering */
.wolufacilities-home .hdr-in.e-con {
  height: 68px !important;
  min-height: 68px;
  --align-items: center !important;
  --justify-content: space-between !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.wolufacilities-home .hdr-in.e-con > .elementor-element {
  align-self: center !important;
}

/* Logo icon: fix the squished heart by forcing square dimensions
   on the SVG (Elementor sets only height, width:auto causes stretch). */
.wolufacilities-home .logo-icon .elementor-icon svg,
.wolufacilities-home .logo-icon .elementor-icon i {
  width: 18px !important;
  height: 18px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  display: block !important;
}

.wolufacilities-home .logo-icon .elementor-icon-wrapper {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.wolufacilities-home .logo-icon .elementor-icon {
  width: auto !important;
  height: auto !important;
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Logo wrapper itself: fix to 44×44 and prevent any aspect distortion */
.wolufacilities-home .logo-icon.elementor-widget-icon {
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  flex: 0 0 44px !important;
  align-self: center !important;
}

.wolufacilities-home .logo-icon .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Logo container: align-items center + the children (icon + logo-t) centered */
.wolufacilities-home .logo.e-con {
  --align-items: center !important;
  align-items: center !important;
  align-self: center !important;
  height: auto !important;
}

.wolufacilities-home .logo.e-con > .elementor-element {
  align-self: center !important;
}

/* Logo-t: ensure column with no extra spacing */
.wolufacilities-home .logo-t.e-con {
  --align-items: flex-start !important;
  align-items: flex-start !important;
  --justify-content: center !important;
  justify-content: center !important;
}

.wolufacilities-home .logo-t.e-con > .elementor-element {
  width: auto !important;
  align-self: flex-start !important;
}

/* Nav: center all buttons vertically */
.wolufacilities-home .nav-d.e-con > .elementor-element {
  align-self: center !important;
}

/* ============================================================
   FIX v3: truly center nav menu in the navbar (regardless of
   logo width). Take nav-d out of flex flow with absolute
   positioning at 50%.
   ============================================================ */

.wolufacilities-home .hdr-in.e-con {
  position: relative !important;
}

.wolufacilities-home .nav-d.e-con {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
}

/* On mobile (≤1024) nav is hidden anyway and hamburger appears */
@media(max-width:1024px){
  .wolufacilities-home .nav-d.e-con { display: none !important; }
  .wolufacilities-home .hamburger-btn { display: flex !important; margin-left: auto; }
}

/* ============================================================
   FIX v4: Footer native widget layout + styling
   ============================================================ */

/* footer-grid: 4 equal columns row */
.wolufacilities-home .footer-grid.e-con {
  --flex-direction: row !important;
  flex-direction: row !important;
  --gap: 48px;
  gap: 48px !important;
  flex-wrap: wrap;
}
.wolufacilities-home .footer-grid.e-con > .e-con {
  --width: 0 !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
  align-self: flex-start !important;
}

/* Footer logo: row + center alignment */
.wolufacilities-home .footer .logo.e-con {
  --align-items: center !important;
  align-items: center !important;
  margin-bottom: 18px;
}

/* Footer logo white text override */
.wolufacilities-home .footer .logo-strong .elementor-heading-title {
  color: #fff !important;
}
.wolufacilities-home .footer .logo-sub .elementor-heading-title {
  color: rgba(255,255,255,.4) !important;
}

/* Footer logo icon SVG must stay white on dark bg */
.wolufacilities-home .footer .logo-icon .elementor-icon svg,
.wolufacilities-home .footer .logo-icon .elementor-icon i {
  fill: #fff !important;
  color: #fff !important;
}

/* Footer column heading: white smaller compact */
.wolufacilities-home .footer-col-h .elementor-heading-title {
  color: #fff !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  margin: 0 0 16px 0 !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

/* Footer descriptive paragraph */
.wolufacilities-home .footer-desc .elementor-widget-container > * {
  font-size: .83rem !important;
  line-height: 1.7 !important;
  color: rgba(255,255,255,.65) !important;
}
.wolufacilities-home .footer-desc p {
  margin: 0 0 18px 0 !important;
}

/* Engagement accessibilite Heading */
.wolufacilities-home .footer-a11y .elementor-heading-title {
  color: var(--primary-light) !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}

/* Icon-list compact link styling */
.wolufacilities-home .footer-links-list .elementor-icon-list-items {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}
.wolufacilities-home .footer-links-list .elementor-icon-list-item {
  border: none !important;
  padding: 0 0 7px 0 !important;
  margin: 0 !important;
}
.wolufacilities-home .footer-links-list .elementor-icon-list-item:last-child {
  padding-bottom: 0 !important;
}
.wolufacilities-home .footer-links-list .elementor-icon-list-icon {
  display: none !important;
}
.wolufacilities-home .footer-links-list .elementor-icon-list-text {
  font-size: .83rem !important;
  color: rgba(255,255,255,.65) !important;
  font-weight: 400 !important;
  transition: color .2s, padding-left .3s !important;
  padding: 0 !important;
}
.wolufacilities-home .footer-links-list .elementor-icon-list-item a {
  padding: 0 !important;
  display: inline-block !important;
  transition: padding-left .3s !important;
}
.wolufacilities-home .footer-links-list .elementor-icon-list-item a:hover {
  padding-left: 4px !important;
}
.wolufacilities-home .footer-links-list .elementor-icon-list-item a:hover .elementor-icon-list-text {
  color: var(--orange) !important;
}

/* footer-bot: row layout */
.wolufacilities-home .footer-bot.e-con {
  --flex-direction: row !important;
  flex-direction: row !important;
  --justify-content: space-between !important;
  justify-content: space-between !important;
  --align-items: center !important;
  align-items: center !important;
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 24px !important;
  margin-top: 30px !important;
  --gap: 16px;
  gap: 16px !important;
  flex-wrap: wrap;
}
.wolufacilities-home .footer-bot.e-con > .elementor-element {
  flex: 0 0 auto !important;
  width: auto !important;
  --width: auto !important;
  align-self: center !important;
}

/* Copyright */
.wolufacilities-home .footer-copyright .elementor-heading-title {
  color: rgba(255,255,255,.65) !important;
  font-size: .77rem !important;
  font-weight: 400 !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}

/* Social-icons */
.wolufacilities-home .footer-social .elementor-social-icons-wrapper {
  display: flex !important;
  gap: 9px !important;
  justify-content: flex-end !important;
}
.wolufacilities-home .footer-social .elementor-grid-item {
  padding: 0 !important;
  margin: 0 !important;
}
.wolufacilities-home .footer-social .elementor-social-icon {
  width: 40px !important;
  height: 40px !important;
  background: rgba(255,255,255,.08) !important;
  background-color: rgba(255,255,255,.08) !important;
  border-radius: 50% !important;
  padding: 0 !important;
  transition: all .3s !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.wolufacilities-home .footer-social .elementor-social-icon i,
.wolufacilities-home .footer-social .elementor-social-icon svg {
  font-size: 15px !important;
  color: rgba(255,255,255,.65) !important;
  fill: rgba(255,255,255,.65) !important;
}
.wolufacilities-home .footer-social .elementor-social-icon:hover {
  background: var(--orange) !important;
  background-color: var(--orange) !important;
  transform: translateY(-3px);
}
.wolufacilities-home .footer-social .elementor-social-icon:hover i,
.wolufacilities-home .footer-social .elementor-social-icon:hover svg {
  color: #fff !important;
  fill: #fff !important;
}

/* footer outer container */
.wolufacilities-home .footer.e-con {
  --width: 100% !important;
  width: 100% !important;
  background: var(--primary-dark);
  color: rgba(255,255,255,.65);
  padding: 76px 24px 36px !important;
  --padding-block-start: 76px;
  --padding-block-end: 36px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
}
.wolufacilities-home .footer-in.e-con {
  max-width: 1200px;
  margin: 0 auto !important;
  width: 100%;
}

/* Back-to-top Icon widget */
.wolufacilities-home .btt-icon {
  position: fixed !important;
  bottom: 80px !important;
  right: 24px !important;
  z-index: 8500;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .3s, transform .3s;
  pointer-events: none;
  width: auto !important;
  cursor: pointer;
}
.wolufacilities-home .btt-icon.show {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: all !important;
}
.wolufacilities-home .btt-icon .elementor-widget-container {
  padding: 0 !important;
}
.wolufacilities-home .btt-icon .elementor-icon-wrapper {
  width: 44px !important;
  height: 44px !important;
}
.wolufacilities-home .btt-icon .elementor-icon {
  width: 44px !important;
  height: 44px !important;
  background: var(--primary) !important;
  color: #fff !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-primary);
  cursor: pointer;
  transition: background .3s, transform .3s;
}
.wolufacilities-home .btt-icon:hover .elementor-icon {
  background: var(--primary-dark) !important;
  transform: translateY(-2px);
}
.wolufacilities-home .btt-icon .elementor-icon i,
.wolufacilities-home .btt-icon .elementor-icon svg {
  font-size: 18px !important;
  color: #fff !important;
  fill: #fff !important;
  width: 18px !important;
  height: 18px !important;
}

/* Responsive footer */
@media(max-width:1024px){
  .wolufacilities-home .footer-grid.e-con > .e-con {
    flex: 0 0 calc(50% - 24px) !important;
    min-width: calc(50% - 24px) !important;
  }
}
@media(max-width:640px){
  .wolufacilities-home .footer-grid.e-con > .e-con {
    flex: 0 0 100% !important;
    min-width: 100% !important;
  }
  .wolufacilities-home .footer-bot.e-con {
    flex-direction: column !important;
    --flex-direction: column !important;
    align-items: flex-start !important;
    --align-items: flex-start !important;
  }
  .wolufacilities-home .footer-social .elementor-social-icons-wrapper {
    justify-content: flex-start !important;
  }
}

/* ============================================================
   FIX v5: Footer-grid with explicit CSS grid (1.2fr 1fr 1fr 1fr)
   replacing the broken flex flex-basis:0 approach.
   ============================================================ */

/* Override the e-flex flex layout with CSS grid for predictable 4 columns */
.wolufacilities-home .footer-grid.e-con {
  display: grid !important;
  grid-template-columns: 1.2fr 1fr 1fr 1fr !important;
  gap: 48px !important;
  --gap: 48px;
  /* keep flex-direction var so Elementor doesn't fight back too hard */
  --flex-direction: row;
  --display: grid;
  width: 100%;
  --width: 100% !important;
}

/* Each column: no flex, just be a normal grid cell. Reset width vars. */
.wolufacilities-home .footer-grid.e-con > .e-con {
  --width: 100% !important;
  width: auto !important;
  flex: initial !important;
  min-width: 0 !important;  /* allow content to wrap naturally inside cell */
  align-self: flex-start !important;
}

/* Each column container: vertical stacking of its own children */
.wolufacilities-home .footer-grid.e-con > .e-con.e-flex {
  display: flex !important;
  flex-direction: column !important;
  --flex-direction: column !important;
  --align-items: stretch;
  align-items: stretch;
}

/* Widgets inside columns: full width of their column cell, normal text flow */
.wolufacilities-home .footer-grid.e-con > .e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
  flex: initial !important;
  align-self: stretch !important;
}

/* Force normal text rendering inside footer-desc paragraph + column items */
.wolufacilities-home .footer-desc,
.wolufacilities-home .footer-desc *,
.wolufacilities-home .footer-links-list,
.wolufacilities-home .footer-links-list * {
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Responsive: 2 cols at <=1024, 1 col at <=640 */
@media(max-width:1024px){
  .wolufacilities-home .footer-grid.e-con {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media(max-width:640px){
  .wolufacilities-home .footer-grid.e-con {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* ============================================================
   PHASE 3 — wolufacilities-home native widget layout overrides
   ============================================================ */

/* ===== HERO ===== */
.wolufacilities-home .hero.e-con {
  --width: 100% !important;
  width: 100% !important;
  --padding-block-start: 110px;
  --padding-block-end: 80px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
  display: flex !important;
  align-items: center !important;
  min-height: 88vh;
  position: relative !important;
}

.wolufacilities-home .hero-in.e-con {
  display: grid !important;
  grid-template-columns: 55% 1fr !important;
  align-items: center !important;
  gap: 0 !important;
  --gap: 0;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto !important;
  position: relative;
  z-index: 2;
}

.wolufacilities-home .hero-content.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  padding-right: 40px !important;
  --padding-inline-end: 40px;
}
.wolufacilities-home .hero-content.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
  align-self: stretch !important;
}

/* hero label override (Text-editor) */
.wolufacilities-home .hero-content .elementor-widget-text-editor:first-child .hero-label {
  margin-bottom: 18px;
}

/* hero h1 (Heading widget) */
.wolufacilities-home .hero-content .elementor-widget-heading:first-of-type .elementor-heading-title {
  font-family: var(--font-editorial) !important;
  font-size: clamp(2.8rem, 5vw, 4.8rem) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  color: var(--navy) !important;
  letter-spacing: -.5px !important;
  margin: 0 0 26px 0 !important;
  text-align: left !important;
}

/* hero-actions row */
.wolufacilities-home .hero-actions.e-con {
  --flex-direction: row !important;
  flex-direction: row !important;
  --gap: 12px;
  gap: 12px !important;
  flex-wrap: wrap;
  margin-bottom: 44px;
}
.wolufacilities-home .hero-actions.e-con > .elementor-element {
  width: auto !important;
  --width: auto !important;
  flex: 0 0 auto !important;
}

/* Buttons styling matches the original .btn-primary / .btn-outline. Use _css_classes. */
.wolufacilities-home .hero-actions .btn-primary .elementor-button,
.wolufacilities-home .hero-actions .btn-outline .elementor-button {
  font-size: .95rem !important;
  font-weight: 700 !important;
  border-radius: var(--radius-pill) !important;
  padding: 14px 30px !important;
  transition: all .35s var(--transition) !important;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.wolufacilities-home .hero-actions .btn-primary .elementor-button {
  background: var(--primary) !important;
  background-color: var(--primary) !important;
  color: #fff !important;
  box-shadow: var(--shadow-primary) !important;
  border: none !important;
}
.wolufacilities-home .hero-actions .btn-primary .elementor-button:hover {
  background: var(--primary-dark) !important;
  transform: translateY(-3px);
}
.wolufacilities-home .hero-actions .btn-outline .elementor-button {
  background: rgba(255,255,255,.7) !important;
  background-color: rgba(255,255,255,.7) !important;
  border: 1.5px solid var(--border-strong) !important;
  color: var(--navy) !important;
  font-weight: 600 !important;
  padding: 13px 28px !important;
  box-shadow: none !important;
}
.wolufacilities-home .hero-actions .btn-outline .elementor-button:hover {
  border-color: var(--primary) !important;
  color: var(--primary) !important;
  transform: translateY(-2px);
  background: #fff !important;
}

/* hero-visual right column */
.wolufacilities-home .hero-visual.e-con {
  position: relative !important;
  height: 680px;
  margin-right: -60px;
  --width: auto;
  width: auto !important;
}

/* hero-img-main: organic blob shape */
.wolufacilities-home .hero-img-main.elementor-widget-image {
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  top: 0;
  right: 0;
}
.wolufacilities-home .hero-img-main .elementor-widget-container,
.wolufacilities-home .hero-img-main img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 40% 60% 65% 35% / 35% 45% 55% 45%;
  overflow: hidden;
  object-fit: cover;
  box-shadow: var(--shadow-lg);
}

/* hero-mobile-img hidden on desktop */
@media(min-width:1025px){
  .wolufacilities-home .hero-mobile-img.elementor-widget-image { display: none !important; }
}
@media(max-width:1024px){
  .wolufacilities-home .hero-in.e-con { grid-template-columns: 1fr !important; }
  .wolufacilities-home .hero-visual.e-con { display: none !important; }
  .wolufacilities-home .hero-mobile-img.elementor-widget-image { display: block !important; }
  .wolufacilities-home .hero-mobile-img img {
    width: 100% !important;
    height: 220px !important;
    border-radius: var(--radius-xl);
    object-fit: cover;
    object-position: center 30%;
    margin-bottom: 28px;
  }
  .wolufacilities-home .hero.e-con { padding-bottom: 56px !important; min-height: auto; }
  .wolufacilities-home .hero-content.e-con { padding-right: 0 !important; --padding-inline-end: 0; }
}

/* ===== INTEREST ===== */
.wolufacilities-home .interest.e-con {
  --width: 100% !important;
  width: 100% !important;
  background: var(--bg);
  --padding-block-start: 88px;
  --padding-block-end: 88px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
  position: relative;
  overflow: hidden;
}

.wolufacilities-home .interest-in.e-con {
  max-width: 1200px !important;
  margin: 0 auto !important;
  position: relative;
  z-index: 1;
}

.wolufacilities-home .interest-hdr.e-con {
  margin-bottom: 52px;
  --flex-direction: column;
  flex-direction: column;
}

.wolufacilities-home .interest-grid.e-con {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
  --gap: 18px;
  --display: grid;
}

/* .icard becomes a Container with link */
.wolufacilities-home .icard.e-con {
  --display: flex;
  display: flex !important;
  --flex-direction: column !important;
  flex-direction: column !important;
  background: #fff !important;
  border: 1.5px solid var(--border) !important;
  border-radius: var(--radius-lg) !important;
  padding: 28px 24px 24px !important;
  --padding-block-start: 28px;
  --padding-block-end: 24px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform .4s var(--transition), box-shadow .4s var(--transition), border-color .4s;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 2px rgba(0,122,163,.04), 0 4px 8px rgba(0,122,163,.05);
}
.wolufacilities-home .icard.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.wolufacilities-home .icard.e-con:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 2px 4px rgba(0,122,163,.06), 0 12px 32px rgba(0,122,163,.12);
  border-color: transparent !important;
}
/* Header heading (.icard-title) override */
.wolufacilities-home .icard .elementor-heading-title {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: var(--navy) !important;
  margin: 0 0 4px 0 !important;
  text-align: left !important;
  font-family: var(--font-display);
  transition: color .3s;
}
.wolufacilities-home .icard:hover .elementor-heading-title {
  color: var(--ic-color, var(--primary)) !important;
}
.wolufacilities-home .icard:nth-child(1){--ic-color:#0099CC}
.wolufacilities-home .icard:nth-child(2){--ic-color:#7B2D8B}
.wolufacilities-home .icard:nth-child(3){--ic-color:#F47B20}
.wolufacilities-home .icard:nth-child(4){--ic-color:#C0392B}
.wolufacilities-home .icard:nth-child(5){--ic-color:#007AA3}
.wolufacilities-home .icard:nth-child(6){--ic-color:#B36AC0}
.wolufacilities-home .icard:nth-child(7){--ic-color:#33BBEE}
.wolufacilities-home .icard:nth-child(8){--ic-color:#52B043}

@media(max-width:1024px){
  .wolufacilities-home .interest-grid.e-con { grid-template-columns: repeat(2,1fr) !important; gap: 14px !important; }
}
@media(max-width:640px){
  .wolufacilities-home .interest-grid.e-con { grid-template-columns: repeat(2,1fr) !important; gap: 10px !important; }
}

/* ===== DARK BAND ===== */
.wolufacilities-home .dark-band.e-con {
  --width: 100% !important;
  width: 100% !important;
  background: linear-gradient(160deg, var(--primary-dark) 0%, #003840 100%);
  --padding-block-start: 80px;
  --padding-block-end: 80px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
  position: relative;
  overflow: hidden;
}

.wolufacilities-home .dark-band-in.e-con {
  max-width: 1200px !important;
  margin: 0 auto !important;
  position: relative;
  z-index: 2;
}

.wolufacilities-home .dark-etab-hdr.e-con {
  margin-bottom: 32px;
  --flex-direction: column;
}
.wolufacilities-home .dark-etab-hdr .elementor-heading-title {
  font-family: var(--font-editorial) !important;
  font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
  font-weight: 900 !important;
  color: #fff !important;
  margin: 0 0 14px 0 !important;
}
.wolufacilities-home .dark-etab-hdr .elementor-widget-text-editor p {
  font-size: .95rem !important;
  color: rgba(255,255,255,.5) !important;
  max-width: 500px;
  line-height: 1.75;
}

.wolufacilities-home .etab-grid.e-con {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
  --gap: 16px;
}

.wolufacilities-home .etab-card.e-con {
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  transition: all .35s var(--transition);
  --display: flex;
  --flex-direction: column !important;
  flex-direction: column !important;
  padding: 0 !important;
}
.wolufacilities-home .etab-card.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.wolufacilities-home .etab-card.e-con:hover {
  background: rgba(255,255,255,.1) !important;
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,.25);
}

/* etab-card-img: image widget */
.wolufacilities-home .etab-card-img.elementor-widget-image {
  width: 100% !important;
}
.wolufacilities-home .etab-card-img .elementor-widget-container,
.wolufacilities-home .etab-card-img img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover;
}

.wolufacilities-home .etab-card-body.e-con {
  --padding-block-start: 20px;
  --padding-block-end: 20px;
  --padding-inline-start: 20px;
  --padding-inline-end: 20px;
  padding: 20px !important;
  --flex-direction: column !important;
  flex-direction: column !important;
}
.wolufacilities-home .etab-card-body .elementor-heading-title {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  margin: 0 0 6px 0 !important;
}
.wolufacilities-home .etab-card-body .elementor-widget-text-editor p {
  font-size: .82rem !important;
  color: rgba(255,255,255,.55) !important;
  line-height: 1.55;
  margin: 0 0 14px 0 !important;
}

@media(max-width:1024px){
  .wolufacilities-home .etab-grid.e-con { grid-template-columns: repeat(2,1fr) !important; }
}
@media(max-width:640px){
  .wolufacilities-home .etab-grid.e-con { grid-template-columns: 1fr !important; }
  .wolufacilities-home .dark-band.e-con { --padding-block-start: 56px; --padding-block-end: 56px; --padding-inline-start: 20px; --padding-inline-end: 20px; }
}

/* ===== NEWS ===== */
.wolufacilities-home .sec-hdr.news-hdr-row {
  --flex-direction: row !important;
  flex-direction: row !important;
  --justify-content: space-between !important;
  justify-content: space-between !important;
  --align-items: flex-end !important;
  align-items: flex-end !important;
  flex-wrap: wrap;
  --gap: 16px;
  gap: 16px !important;
}

.wolufacilities-home .news-grid.e-con {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr !important;
  gap: 22px !important;
  --gap: 22px;
}

.wolufacilities-home .news-feat.e-con {
  background: #fff !important;
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  border: 1.5px solid var(--border) !important;
  transition: all .35s var(--transition);
  --display: flex;
  --flex-direction: column;
  flex-direction: column !important;
  padding: 0 !important;
}
.wolufacilities-home .news-feat.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.wolufacilities-home .news-feat.e-con:hover {
  box-shadow: var(--shadow);
  transform: translateY(-4px);
  border-color: var(--primary-muted) !important;
}

.wolufacilities-home .news-feat-img.elementor-widget-image {
  width: 100% !important;
}
.wolufacilities-home .news-feat-img .elementor-widget-container,
.wolufacilities-home .news-feat-img img {
  width: 100% !important;
  height: 260px !important;
  object-fit: cover;
}

.wolufacilities-home .news-feat-body.e-con {
  padding: 26px !important;
  --padding-block-start: 26px;
  --padding-block-end: 26px;
  --padding-inline-start: 26px;
  --padding-inline-end: 26px;
}
.wolufacilities-home .news-feat-body .elementor-heading-title {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  color: var(--navy) !important;
  margin: 0 0 10px 0 !important;
  line-height: 1.3 !important;
}
.wolufacilities-home .news-feat-body .elementor-widget-text-editor p {
  color: var(--text-soft) !important;
  font-size: .9rem !important;
  line-height: 1.65 !important;
}

.wolufacilities-home .news-list.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  --gap: 14px;
  gap: 14px !important;
}

.wolufacilities-home .news-item.e-con {
  background: #fff !important;
  border-radius: var(--radius) !important;
  padding: 20px !important;
  --padding-block-start: 20px;
  --padding-block-end: 20px;
  --padding-inline-start: 20px;
  --padding-inline-end: 20px;
  border: 1.5px solid var(--border) !important;
  transition: all .3s var(--transition);
  --flex-direction: column !important;
  flex-direction: column !important;
}
.wolufacilities-home .news-item.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.wolufacilities-home .news-item.e-con:hover {
  border-color: var(--primary-muted) !important;
  transform: translateX(4px);
  box-shadow: var(--shadow-sm);
}
.wolufacilities-home .news-item .elementor-heading-title {
  font-size: .93rem !important;
  font-weight: 700 !important;
  color: var(--navy) !important;
  margin: 0 0 5px 0 !important;
  line-height: 1.35 !important;
}
.wolufacilities-home .news-item .elementor-widget-text-editor p {
  font-size: .8rem !important;
  color: var(--text-muted) !important;
  line-height: 1.5;
  margin: 0 !important;
}

@media(max-width:1024px){
  .wolufacilities-home .news-grid.e-con { grid-template-columns: 1fr !important; }
}

/* ===== FAQ ===== */
.wolufacilities-home .sec.faq-bg.e-con {
  background: var(--bg-cream);
  --padding-block-start: 80px;
  --padding-block-end: 80px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
}
.wolufacilities-home .faq-list-native .elementor-accordion {
  max-width: 780px;
}
.wolufacilities-home .faq-list-native .elementor-accordion-item {
  background: rgba(255,255,255,.9) !important;
  backdrop-filter: blur(8px);
  border-radius: var(--radius-lg) !important;
  margin-bottom: 10px !important;
  overflow: hidden !important;
  border: 1.5px solid var(--border) !important;
  transition: border-color .3s, box-shadow .3s;
}
.wolufacilities-home .faq-list-native .elementor-accordion-item.elementor-active {
  border-color: var(--primary-muted) !important;
  box-shadow: 0 6px 24px rgba(0,153,204,.08);
}
.wolufacilities-home .faq-list-native .elementor-tab-title {
  background: none !important;
  background-color: transparent !important;
  padding: 20px 22px !important;
  font-size: .97rem !important;
  font-weight: 600 !important;
  color: var(--navy) !important;
  border: none !important;
  font-family: var(--font-display) !important;
}
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--primary-pale);
  color: var(--primary) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all .35s;
  margin-left: 16px;
}
.wolufacilities-home .faq-list-native .elementor-active .elementor-tab-title .elementor-accordion-icon {
  background: var(--primary) !important;
  color: #fff !important;
}
.wolufacilities-home .faq-list-native .elementor-accordion-icon svg {
  width: 16px;
  height: 16px;
  fill: currentColor !important;
}
.wolufacilities-home .faq-list-native .elementor-tab-content {
  padding: 0 22px 20px !important;
  border: none !important;
  background: transparent !important;
  font-size: .9rem !important;
  color: var(--text-soft) !important;
  line-height: 1.75 !important;
}

/* ===== CONTACT ===== */
.wolufacilities-home .contact-sec.e-con {
  --width: 100% !important;
  width: 100% !important;
  --padding-block-start: 80px;
  --padding-block-end: 80px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
}

.wolufacilities-home .contact-sec-in.e-con {
  max-width: 1200px !important;
  margin: 0 auto !important;
}

.wolufacilities-home .contact-wrap.e-con {
  background: linear-gradient(145deg, #007AA3 0%, #0088B5 40%, #007AA3 100%);
  border-radius: 28px !important;
  padding: 56px !important;
  --padding-block-start: 56px;
  --padding-block-end: 56px;
  --padding-inline-start: 56px;
  --padding-inline-end: 56px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(0,0,0,.25);
}

.wolufacilities-home .contact-grid.e-con {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 48px !important;
  --gap: 48px;
  align-items: start !important;
  --align-items: flex-start;
  position: relative;
  z-index: 1;
}

.wolufacilities-home .contact-info.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  color: #fff !important;
  padding: 8px 0 !important;
}
.wolufacilities-home .contact-info > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.wolufacilities-home .contact-info .elementor-heading-title {
  font-size: 1.65rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  margin-bottom: 8px !important;
  display: flex;
  align-items: center;
  gap: 10px;
}
.wolufacilities-home .contact-info .elementor-widget-text-editor p {
  font-size: .9rem !important;
  color: rgba(255,255,255,.5) !important;
  margin-bottom: 36px !important;
  line-height: 1.6 !important;
}

.wolufacilities-home .c-row.e-con {
  --flex-direction: row !important;
  flex-direction: row !important;
  --align-items: center !important;
  align-items: center !important;
  --gap: 16px;
  gap: 16px !important;
  padding: 16px 0 !important;
  --padding-block-start: 16px;
  --padding-block-end: 16px;
}
.wolufacilities-home .c-row.e-con > .elementor-element {
  flex: 0 0 auto !important;
  --width: auto !important;
  width: auto !important;
}
.wolufacilities-home .c-txt.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  --align-items: flex-start;
  align-items: flex-start !important;
  flex: 1 1 auto !important;
}
.wolufacilities-home .c-txt > .elementor-element { width: auto !important; --width: auto !important; }
.wolufacilities-home .c-row-title .elementor-heading-title {
  display: block !important;
  font-size: .9rem !important;
  margin: 0 0 2px 0 !important;
  color: #fff !important;
  font-weight: 700 !important;
}
.wolufacilities-home .c-txt .elementor-widget-text-editor span,
.wolufacilities-home .c-txt .elementor-widget-text-editor p {
  font-size: .82rem !important;
  color: rgba(255,255,255,.45) !important;
  margin: 0 !important;
}
.wolufacilities-home .c-txt .elementor-widget-text-editor a {
  color: var(--primary-light) !important;
  font-weight: 600;
}
.wolufacilities-home .c-txt .elementor-widget-text-editor a:hover {
  color: var(--orange) !important;
}

/* Contact-form (CF7) wrapper styling */
.wolufacilities-home .contact-form.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  padding: 4px 0 !important;
}
.wolufacilities-home .contact-form .elementor-heading-title {
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  margin: 0 0 28px 0 !important;
}
/* CF7 inside Shortcode widget — inherits .fg styling from earlier in shared.css */
.wolufacilities-home .contact-form .elementor-widget-shortcode {
  width: 100%;
}

@media(max-width:1024px){
  .wolufacilities-home .contact-grid.e-con { grid-template-columns: 1fr !important; }
  .wolufacilities-home .contact-wrap.e-con {
    --padding-block-start: 36px;
    --padding-block-end: 36px;
    --padding-inline-start: 24px;
    --padding-inline-end: 24px;
    padding: 36px 24px !important;
  }
}
@media(max-width:640px){
  .wolufacilities-home .contact-sec.e-con { --padding-inline-start: 20px; --padding-inline-end: 20px; }
}

/* ===== SEC base for native sec-in / sec-hdr / sec-title (news + faq) ===== */
.wolufacilities-home .sec.e-con {
  --width: 100% !important;
  width: 100% !important;
  --padding-block-start: 80px;
  --padding-block-end: 80px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
}
.wolufacilities-home .sec-in.e-con {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wolufacilities-home .sec-hdr.e-con {
  margin-bottom: 48px;
}
.wolufacilities-home .sec-title .elementor-heading-title,
.wolufacilities-home .interest-title .elementor-heading-title,
.wolufacilities-home .sec-hdr .elementor-heading-title {
  font-family: var(--font-editorial) !important;
  font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
  font-weight: 900 !important;
  color: var(--navy) !important;
  line-height: 1.15 !important;
  letter-spacing: -.5px !important;
  margin: 0 0 14px 0 !important;
}

/* eyebrow Text-editor wrapper (don't add extra padding) */
.wolufacilities-home .sec-hdr .elementor-widget-text-editor p,
.wolufacilities-home .interest-hdr .elementor-widget-text-editor p {
  margin: 0 !important;
}

/* ============================================================
   FIX v6: Hero decorations (blobs + 1200) positioning
   The HTML widget that contains hero-blob/hero-bg-num divs creates
   a position:relative context (default for Elementor widgets) but
   collapses to ~0 height since all children are position:absolute.
   Force the widget + container to be position:static so absolute
   children resolve to the .hero ancestor (which IS positioned).
   ============================================================ */

.wolufacilities-home .hero.e-con {
  background: var(--bg-cream) !important;
  overflow: hidden !important;
  position: relative !important;
}

.wolufacilities-home .hero > .elementor-element.elementor-widget-html,
.wolufacilities-home .hero > .elementor-widget-html,
.wolufacilities-home .hero > .elementor-element.elementor-widget-html > .elementor-widget-container,
.wolufacilities-home .hero .elementor-element-hero_decor,
.wolufacilities-home .hero .elementor-element-hero_decor > .elementor-widget-container {
  position: static !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

/* Same fix for the hero-dots inside hero-visual (also absolute) */
.wolufacilities-home .hero-visual .elementor-element-hero_dots_w,
.wolufacilities-home .hero-visual .elementor-element-hero_dots_w > .elementor-widget-container {
  position: static !important;
  width: 0 !important;
  height: 0 !important;
}

/* Make sure hero-visual is positioned for hero-dots reference */
.wolufacilities-home .hero-visual.e-con {
  position: relative !important;
  overflow: visible !important;
}

/* Make sure interest section's ::before decoration via .interest is also clipped */
.wolufacilities-home .interest.e-con {
  position: relative !important;
  overflow: hidden !important;
}

/* Dark band ::before/::after for radial gradients should also be clipped */
.wolufacilities-home .dark-band.e-con {
  position: relative !important;
  overflow: hidden !important;
}

/* Contact-wrap ::before/::after */
.wolufacilities-home .contact-wrap.e-con {
  position: relative !important;
  overflow: hidden !important;
}

/* ============================================================
   FIX v7: wave-sep-wrap top-level containers (outside sections)
   ============================================================ */

.wolufacilities-home .wave-sep-wrap.e-con {
  --width: 100% !important;
  width: 100% !important;
  --padding-block-start: 0 !important;
  --padding-block-end: 0 !important;
  --padding-inline-start: 0 !important;
  --padding-inline-end: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
  display: block !important;
  --display: block !important;
  overflow: hidden !important;
}

.wolufacilities-home .wave-sep-wrap.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.wolufacilities-home .wave-sep-wrap .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}

.wolufacilities-home .wave-sep {
  position: relative !important;
  width: 100% !important;
  height: 60px !important;
  overflow: hidden !important;
  line-height: 0 !important;
  margin: 0 !important;
  display: block !important;
}

.wolufacilities-home .wave-sep svg {
  display: block !important;
  width: 100% !important;
  height: 60px !important;
  vertical-align: top;
}

.wolufacilities-home .wave-sep-flip {
  transform: scaleY(-1);
}

/* ============================================================
   FIX v8: FAQ accordion icons - smaller, aligned, spaced from text
   ============================================================ */

/* Tab title row: flex with proper gap so icon doesn't touch the text */
.wolufacilities-home .faq-list-native .elementor-tab-title {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 20px 22px !important;
}

/* Accordion icon button: smaller, consistent size, no extra margins */
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  max-width: 28px !important;
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
  flex-basis: 28px !important;
  border-radius: 50% !important;
  background: var(--primary-pale) !important;
  color: var(--primary) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  order: 0 !important;
  align-self: center !important;
  transition: all .35s var(--transition);
}

/* Active state (open accordion item) - inverted colors */
.wolufacilities-home .faq-list-native .elementor-active .elementor-tab-title .elementor-accordion-icon {
  background: var(--primary) !important;
  color: #fff !important;
}

/* Inner icon SVG/font: small + centered.
   Use :not() to exclude opened-icon span (which we control separately by state).
   The closed-icon stays visible by default; opened gets shown only when active. */
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon > span.elementor-accordion-icon-closed,
.wolufacilities-home .faq-list-native .elementor-tab-title.elementor-active .elementor-accordion-icon > span.elementor-accordion-icon-opened {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon > span.elementor-accordion-icon-opened,
.wolufacilities-home .faq-list-native .elementor-tab-title.elementor-active .elementor-accordion-icon > span.elementor-accordion-icon-closed {
  display: none !important;
}

.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon svg,
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon i {
  width: 12px !important;
  height: 12px !important;
  font-size: 12px !important;
  fill: currentColor !important;
}

/* Title text takes remaining space */
.wolufacilities-home .faq-list-native .elementor-tab-title a,
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-title {
  flex: 1 1 auto !important;
  text-align: left !important;
}

/* ============================================================
   FIX v9: FAQ accordion +/- toggle
   Elementor renders TWO span children inside .elementor-accordion-icon:
     .elementor-accordion-icon-closed  (+)
     .elementor-accordion-icon-opened  (−)
   It toggles their display based on .elementor-active state.
   Our previous "display:flex on all spans" broke this — restore the toggle.
   ============================================================ */

/* Override the previous span rule with state-specific rules */
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon span {
  display: none;  /* default both hidden, then we explicitly enable one */
}

/* Closed state (default): show +, hide − */
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon-closed {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}
.wolufacilities-home .faq-list-native .elementor-tab-title .elementor-accordion-icon-opened {
  display: none !important;
}

/* Active state (open): show −, hide +
   IMPORTANT: .elementor-active is on .elementor-tab-title itself,
   not on a parent. Use compound selector .elementor-tab-title.elementor-active. */
.wolufacilities-home .faq-list-native .elementor-tab-title.elementor-active .elementor-accordion-icon-closed {
  display: none !important;
}
.wolufacilities-home .faq-list-native .elementor-tab-title.elementor-active .elementor-accordion-icon-opened {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}

/* ============================================================
   Native hub-card (Container with link wrap + image + body)
   Used by soins-logement, aide, etc.
   ============================================================ */

.wolufacilities-home .hub-card.e-con {
  --display: flex;
  display: flex !important;
  --flex-direction: column !important;
  flex-direction: column !important;
  background: #fff !important;
  border: 1.5px solid var(--border) !important;
  border-radius: var(--radius-lg) !important;
  overflow: hidden !important;
  padding: 0 !important;
  --padding-block-start: 0 !important;
  --padding-block-end: 0 !important;
  --padding-inline-start: 0 !important;
  --padding-inline-end: 0 !important;
  position: relative !important;
  text-decoration: none;
  color: inherit;
  transition: all .4s var(--transition);
  cursor: pointer;
}
.wolufacilities-home .hub-card.e-con::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--hub-color, var(--primary));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s var(--transition);
  pointer-events: none;
}
.wolufacilities-home .hub-card.e-con:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 40px rgba(0,122,163,.12);
  border-color: transparent !important;
}
.wolufacilities-home .hub-card.e-con:hover::after { transform: scaleX(1); }
.wolufacilities-home .hub-card.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}

.wolufacilities-home .hub-card-img-wrap.e-con {
  position: relative !important;
  height: 180px;
  overflow: hidden !important;
  --display: block;
  display: block !important;
  padding: 0 !important;
}
.wolufacilities-home .hub-card-img-wrap.e-con > .elementor-widget-image {
  width: 100% !important;
  height: 100% !important;
}
.wolufacilities-home .hub-card-img-wrap.e-con > .elementor-widget-image .elementor-widget-container,
.wolufacilities-home .hub-card-img-wrap.e-con > .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .5s var(--transition);
}
.wolufacilities-home .hub-card.e-con:hover .hub-card-img-wrap img {
  transform: scale(1.04);
}
.wolufacilities-home .hub-card-img-wrap.e-con::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,50,60,.25) 0%, transparent 50%);
  pointer-events: none;
  z-index: 1;
}

.wolufacilities-home .hub-card-img-wrap .elementor-widget-text-editor {
  position: absolute !important;
  top: 14px;
  left: 14px;
  z-index: 2;
  width: auto !important;
}
.wolufacilities-home .hub-card-img-wrap .hub-tag {
  display: inline-block;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: var(--radius-pill);
  letter-spacing: .3px;
  background: var(--hub-color, var(--primary));
}

.wolufacilities-home .hub-card-body.e-con {
  padding: 22px 24px 26px !important;
  --padding-block-start: 22px !important;
  --padding-block-end: 26px !important;
  --padding-inline-start: 24px !important;
  --padding-inline-end: 24px !important;
  --display: flex;
  display: flex !important;
  --flex-direction: column !important;
  flex-direction: column !important;
}
.wolufacilities-home .hub-card-body .elementor-heading-title {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: var(--navy) !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.3 !important;
  text-align: left !important;
  transition: color .3s;
}
.wolufacilities-home .hub-card.e-con:hover .hub-card-body .elementor-heading-title {
  color: var(--hub-color, var(--primary)) !important;
}
.wolufacilities-home .hub-card-body .elementor-widget-text-editor p {
  font-size: .85rem !important;
  color: var(--text-soft) !important;
  line-height: 1.6 !important;
  margin: 0 0 16px 0 !important;
}
.wolufacilities-home .hub-card-body .hub-card-link {
  font-size: .82rem;
  font-weight: 700;
  color: var(--hub-color, var(--primary));
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: gap .3s var(--transition);
}
.wolufacilities-home .hub-card.e-con:hover .hub-card-link {
  gap: 10px;
}
.wolufacilities-home .hub-card.e-con:hover .hub-card-link span {
  transform: translateX(4px);
}
.wolufacilities-home .hub-card-body .hub-card-link span {
  transition: transform .3s var(--transition);
}

.wolufacilities-home .aide-grid.e-con {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  --gap: 24px;
}
@media(max-width:1024px){
  .wolufacilities-home .aide-grid.e-con { grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; }
}
@media(max-width:640px){
  .wolufacilities-home .aide-grid.e-con { grid-template-columns: 1fr !important; gap: 16px !important; }
}

/* 2-column override for /soins-logement/ — must come AFTER `.aide-grid.e-con` rule
   (same specificity, later rule wins) AND must include `.e-con` so the
   per-card grid generated by Elementor doesn't override it. */
.wolufacilities-home .aide-grid.soins-grid-2col.e-con,
.wolufacilities-home .soins-grid-2col.e-con {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 24px !important;
}
@media(max-width:640px){
  .wolufacilities-home .soins-grid-2col.e-con {
    grid-template-columns: 1fr !important;
  }
}

.wolufacilities-home .aide-sec.e-con {
  --width: 100% !important;
  width: 100% !important;
  --padding-block-start: 80px;
  --padding-block-end: 100px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
  background: var(--bg);
}
.wolufacilities-home .aide-sec-in.e-con {
  max-width: 1100px !important;
  margin: 0 auto !important;
}

.wolufacilities-home .aide-hero.e-con {
  position: relative !important;
  background: var(--bg-cream);
  --padding-block-start: 140px;
  --padding-block-end: 100px;
  --padding-inline-start: 24px;
  --padding-inline-end: 24px;
  overflow: hidden !important;
  text-align: center;
  --display: flex;
  display: flex !important;
  --flex-direction: column;
  flex-direction: column !important;
  --align-items: center;
  align-items: center !important;
}
.wolufacilities-home .aide-hero-in.e-con {
  max-width: 700px;
  margin: 0 auto !important;
  width: 100%;
  position: relative;
  z-index: 2;
  --display: flex;
  display: flex !important;
  --flex-direction: column;
  flex-direction: column !important;
  --align-items: center;
  align-items: center !important;
  text-align: center;
}
.wolufacilities-home .aide-hero-in.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
  text-align: center;
}
.wolufacilities-home .aide-hero .elementor-heading-title {
  font-family: var(--font-editorial) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.4rem) !important;
  font-weight: 900 !important;
  color: var(--navy) !important;
  line-height: 1.1 !important;
  letter-spacing: -.5px !important;
  margin: 0 0 16px 0 !important;
  text-align: center !important;
}
.wolufacilities-home .aide-hero .elementor-heading-title .hl {
  color: var(--primary) !important;
  font-style: italic;
}
.wolufacilities-home .aide-hero .breadcrumb {
  margin-bottom: 20px;
}

.wolufacilities-home .aide-hero > .elementor-widget-html.elementor-element-hero_decor,
.wolufacilities-home .aide-hero > .elementor-widget-html.elementor-element-hero_decor > .elementor-widget-container,
.wolufacilities-home .aide-hero .elementor-element-hero_decor,
.wolufacilities-home .aide-hero .elementor-element-hero_decor > .elementor-widget-container {
  position: static !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

/* Per-card hub-card colors for aide.html */
.wolufacilities-home .hub-card-c0 { --hub-color: #0099CC; }
.wolufacilities-home .hub-card-c1 { --hub-color: #F47B20; }
.wolufacilities-home .hub-card-c2 { --hub-color: #7B2D8B; }
.wolufacilities-home .hub-card-c3 { --hub-color: #33BBEE; }
.wolufacilities-home .hub-card-c4 { --hub-color: #52B043; }
.wolufacilities-home .hub-card-c5 { --hub-color: #C0392B; }
.wolufacilities-home .hub-card-c6 { --hub-color: #007AA3; }
.wolufacilities-home .hub-card-c7 { --hub-color: #B36AC0; }

/* ============================================================
   FIX v10: wave-sep-wrap container needs overflow:visible
   to allow inner wave-sep with margin-top:-60px to overlap
   the previous section. SVG height should respect inline style.
   ============================================================ */

/* Override the previous overflow:hidden on wave-sep-wrap */
.wolufacilities-home .wave-sep-wrap.e-con {
  overflow: visible !important;
}

/* Allow inline style="height:80px" on aide-style waves to win.
   The wave-sep div sizes naturally to its SVG content. */
.wolufacilities-home .wave-sep {
  height: auto !important;
  min-height: 60px;
}
.wolufacilities-home .wave-sep svg {
  /* drop !important so inline style="height:80px" can apply */
  height: 60px;
}
/* When inline style on SVG sets a specific height, respect it */
.wolufacilities-home .wave-sep svg[style*="height:80"] {
  height: 80px;
}

/* ============================================================
   FIX v11: allow inline margin-top:-60px on aide-style waves
   to overlap into the previous section (hero). Without the
   negative margin, the SVG transparent area shows body bg
   (white) instead of the hero (cream) and the wave is invisible.
   ============================================================ */

/* Remove the blanket margin:0 !important from earlier rules.
   Use specific overrides: kill margin-top default via base CSS,
   but DON'T use !important on margin so inline style can win. */
.wolufacilities-home .wave-sep {
  margin: 0;  /* base, no !important */
}
.wolufacilities-home .wave-sep[style*="margin-top"] {
  /* let inline style win */
}

/* Make sure wave-sep-wrap has no padding/margin that forces a fixed height */
.wolufacilities-home .wave-sep-wrap.e-con {
  overflow: visible !important;
  min-height: 0 !important;
  height: auto !important;
}

/* ============================================================
   FIX v12: force wave-sep negative margin from inline style
   to win over earlier margin:0 !important rules.
   Selector specificity: .wolufacilities-home .wave-sep[style*="..."] beats
   .wolufacilities-home .wave-sep on attribute-presence + same class count.
   ============================================================ */
.wolufacilities-home .wave-sep[style*="margin-top:-60px"] {
  margin-top: -60px !important;
}
.wolufacilities-home .wave-sep[style*="margin-top:-80px"] {
  margin-top: -80px !important;
  height: auto !important;
  min-height: 80px;
  overflow: hidden !important;
}
.wolufacilities-home .wave-sep[style*="margin-top:-80px"] svg {
  height: 80px !important;
}

/* Also strip any height constraint so the inline style="height:80px" on
   the SVG can render its full 80px. */
.wolufacilities-home .wave-sep[style*="margin-top:-60px"] {
  height: auto !important;
  min-height: 80px;
  overflow: hidden !important;
}

/* ============================================================
   Stretched link pattern: makes containers fully clickable
   when Container.link.url didn't wrap in <a> at render.
   ============================================================ */

.wolufacilities-home .icard,
.wolufacilities-home .hub-card,
.wolufacilities-home .news-feat,
.wolufacilities-home .news-item,
.wolufacilities-home .etab-card,
.wolufacilities-home .sit-card,
.wolufacilities-home .acc-card,
.wolufacilities-home .doc-card {
  position: relative !important;
}

.wolufacilities-home a.stretched-link {
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;
  display: block !important;
  text-indent: -9999px;
  overflow: hidden;
  background: transparent;
  cursor: pointer;
  /* Don't interfere with text selection */
  pointer-events: auto;
}

/* Take the stretched-link widget OUT of flex flow so the parent card's
   `gap` (e.g. 20px on .hub-card) doesn't reserve a slot above the image.
   `position:absolute; inset:0` also makes the widget the positioning context
   for the inner `<a class="stretched-link">` so the link still covers the
   entire card. `pointer-events:none` on the wrapper + `auto` on the link
   keeps the rest of the card's interactive widgets clickable. */
.wolufacilities-home .stretched-link-widget {
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none;
  z-index: 1;
}
.wolufacilities-home .stretched-link-widget .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none;
}
.wolufacilities-home .stretched-link-widget .stretched-link {
  pointer-events: auto;
}

/* Make sure inner widgets stay below the stretched link clickable area
   but actual <a> and <button> inside cards (e.g., footer-link arrows)
   stay above so they remain clickable. */
.wolufacilities-home .icard > .elementor-element,
.wolufacilities-home .hub-card > .elementor-element,
.wolufacilities-home .news-item > .elementor-element,
.wolufacilities-home .news-feat > .elementor-element,
.wolufacilities-home .etab-card > .elementor-element,
.wolufacilities-home .sit-card > .elementor-element {
  position: relative;
  z-index: 1;
  pointer-events: none;  /* let clicks bubble to stretched-link */
}
.wolufacilities-home .icard a,
.wolufacilities-home .hub-card a,
.wolufacilities-home .news-item a,
.wolufacilities-home .news-feat a,
.wolufacilities-home .etab-card a,
.wolufacilities-home .sit-card a,
.wolufacilities-home .icard button,
.wolufacilities-home .hub-card button {
  pointer-events: auto;
  position: relative;
  z-index: 6;  /* above stretched-link */
}

/* ============================================================ */
/* WCAG 2.1 AA — Accessibility contrast fixes (2026-04)         */
/* Bumps insufficient contrast ratios above 4.5:1 (normal text). */
/* ============================================================ */

/* 1. --text-muted historiquement override AA → maintenant définit AAA (7:1) en variable :13.
       Override conservé en sécurité au cas où la variable principale est patchée par un thème. */
.wolufacilities-home{--text-muted:#3A565D}

/* 2. --orange-dark: #C85E0A (3.79:1 on #fef3e8) → darken text use. */
.wolufacilities-home .orange-dark-text,
.wolufacilities-home a.orange-dark-text{color:#9A4607}

/* 3. Footer & dark hero — boost transparent whites to ≥85% alpha
      (rgba(255,255,255,.5/.55/.65/.7) → solid colors or .92). */
.wolufacilities-home .footer{color:rgba(255,255,255,.92)}
.wolufacilities-home .footer-bot{color:rgba(255,255,255,.85)}
.wolufacilities-home .page-hero-sub{color:rgba(255,255,255,.92)}
.wolufacilities-home .page-hero .breadcrumb{color:rgba(255,255,255,.85)}
.wolufacilities-home .page-hero .breadcrumb a{color:rgba(255,255,255,.92)}
.wolufacilities-home .aide-hero .breadcrumb{color:#54737B}
.wolufacilities-home .aide-hero .breadcrumb a{color:#3a5860}
.wolufacilities-home .cta-banner p{color:rgba(255,255,255,.92)}
.wolufacilities-home .contact-info .c-sub{color:rgba(255,255,255,.85)}
.wolufacilities-home .c-txt span{color:rgba(255,255,255,.85)}
.wolufacilities-home .fg label{color:rgba(255,255,255,.92)}
.wolufacilities-home .fg input::placeholder,
.wolufacilities-home .fg textarea::placeholder{color:rgba(255,255,255,.65)}

/* 4. Footer links: boost contrast. */
.wolufacilities-home .footer-links a,
.wolufacilities-home .footer p{color:rgba(255,255,255,.92)}

/* 5. .text-muted utility class (if used directly) */
.wolufacilities-home .text-muted{color:#3A565D !important}

/* 6. Footer logo subtitle: was rgba(255,255,255,.4) ratio 2.8 → boost to .85 */
.wolufacilities-home .footer .logo-sub .elementor-heading-title{color:rgba(255,255,255,.85) !important}

/* 7. News tags (home page) — orange variant on white needs darker text */
.wolufacilities-home .news-tag-orange{color:#9A4607 !important}
.wolufacilities-home .news-tag{font-weight:700}

/* 8. Default Elementor accordion title (NON-modern) — was --orange (#F47B20) on white = 2.7 ratio.
      Force navy/primary-dark for accessible default. */
.wolufacilities-home .elementor-accordion-title,
.wolufacilities-home .elementor-tab-title:not(.elementor-active) .elementor-accordion-title{
  color:var(--navy, #1C2833) !important;
}
.wolufacilities-home .elementor-tab-title.elementor-active .elementor-accordion-title{
  color:var(--primary-dark, #007AA3) !important;
}

/* 9. acc-card-cur (orange-pale bg) — h3 used --orange-dark on cream bg ratio 3.79.
      Darken text to pass 4.5:1. */
.wolufacilities-home .acc-card-cur h3{color:#9A4607 !important}

/* 10. eng-card with orange emoji — h3 color in --orange-dark. */
.wolufacilities-home .eng-card h3,
.wolufacilities-home .eng-card .elementor-heading-title{color:var(--navy) !important}

/* 11. Footer "Engagement accessibilité" h4 — Elementor inline style sets primary-light (#33BBEE).
       On dark-teal footer bg ratio 3.28. Force white. */
.wolufacilities-home .footer .elementor-heading-title,
.wolufacilities-home .elementor-element-ftr_a11y .elementor-heading-title{
  color:#fff !important;
}
.wolufacilities-home .footer .logo-sub .elementor-heading-title{color:rgba(255,255,255,.85) !important}

/* 12. Contact section dark bg — override original !important rules at line 2227.
       Lift transparent whites to 0.92 for AA contrast. */
.wolufacilities-home .contact-info .elementor-widget-text-editor p,
.wolufacilities-home .contact-info p,
.wolufacilities-home .contact-info .c-sub{color:rgba(255,255,255,.92) !important}
.wolufacilities-home .contact-info .c-txt span,
.wolufacilities-home .c-row .c-txt span{color:rgba(255,255,255,.92) !important}
.wolufacilities-home .c-txt a{color:rgba(255,255,255,.95) !important;text-decoration:underline}
.wolufacilities-home .c-txt a:hover{color:#fff !important}

/* 13. Footer column h4 (now h3 via JS) — bump contrast. */
.wolufacilities-home .footer h4,
.wolufacilities-home .footer h3{color:#fff !important;font-weight:700}

/* 14. Page hero subtitles in non-cream pages, ensure ≥4.5:1. */
.wolufacilities-home .page-hero-sub,
.wolufacilities-home .page-hero p{color:rgba(255,255,255,.95) !important}

/* 15. Default global brand colors used as text on white — must pass AA */
.wolufacilities-home a{color:var(--primary-dark, #007AA3)}
.wolufacilities-home a:hover{color:var(--primary, #0099CC)}

/* 16. Form field borders (was #19666E on #00555E ratio 1.3:1) — increase. */
.wolufacilities-home .fg input,
.wolufacilities-home .fg select,
.wolufacilities-home .fg textarea{border-color:rgba(255,255,255,.4) !important}
.wolufacilities-home .fg input:focus,
.wolufacilities-home .fg select:focus,
.wolufacilities-home .fg textarea:focus{border-color:#7DD8E8 !important;box-shadow:0 0 0 3px rgba(125,216,232,.25) !important}


/* ============================================================ */
/* WCAG 2.2 AA — AnySurfer report follow-up fixes               */
/* ============================================================ */

/* 17. FAQ accordion: display:none au lieu d'opacity:0 (4.1.2)
       Garantit que les réponses fermées sont aussi cachées aux lecteurs d'écran. */
.wolufacilities-home .elementor-tab-content[aria-hidden="true"]{display:none !important}
.wolufacilities-home .elementor-tab-content[aria-hidden="false"]{display:block !important}

/* 18. Focus visible — outline net sur tous les éléments interactifs (2.4.7).
       Override Elementor outline-offset qui peut masquer le focus. */
.wolufacilities-home a:focus-visible,
.wolufacilities-home button:focus-visible,
.wolufacilities-home [role="button"]:focus-visible,
.wolufacilities-home input:focus-visible,
.wolufacilities-home select:focus-visible,
.wolufacilities-home textarea:focus-visible,
.wolufacilities-home .elementor-tab-title:focus-visible{
  outline:3px solid var(--primary, #0099CC) !important;
  outline-offset:2px !important;
  border-radius:4px;
  z-index:5;
}
/* FAQ + accordion focus visible — explicit */
.wolufacilities-home .wolufacilities-acc-modern .elementor-tab-title:focus-visible{
  outline:3px solid var(--primary, #0099CC) !important;
  outline-offset:-3px !important;
  background:rgba(26,138,138,.08) !important;
}

/* 19. Brand colors used as TEXT on white — must hit 4.5:1 (1.4.3).
       Override only when used as foreground text (not bg). */
.wolufacilities-home .text-orange,
.wolufacilities-home a.text-orange{color:#9A4607 !important}     /* orange-dark text */
.wolufacilities-home .text-primary-light{color:#005F70 !important}  /* darken cyan */
.wolufacilities-home .text-green{color:#3A7C2A !important}          /* green darken */
.wolufacilities-home .text-violet{color:#7E4587 !important}         /* violet darken */

/* 20. Zoom 400% / window 1280px — disable sticky header/footer (1.4.10).
       Avoid header eating up viewport when zoomed in. */
@media (max-width: 1280px) and (max-height: 384px) {
  /* min-height < 384px @ 1280px = roughly 400% zoom on a 1280×1024 base */
  .wolufacilities-home .header-fixed,
  .wolufacilities-home .ehf-header.sticky,
  .wolufacilities-home header.sticky,
  .wolufacilities-home .hdr.sticky{position:static !important}
  .wolufacilities-home .footer.sticky{position:static !important}
}

/* 21. Reduced motion — respect user preference. */
@media (prefers-reduced-motion: reduce) {
  .wolufacilities-home *,
  .wolufacilities-home *::before,
  .wolufacilities-home *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ============================================================ */
/* FAQ accordion icon toggle (closed/opened SVGs)               */
/* Elementor outputs both SVG icons in same span — show only    */
/* the one matching current state (closed by default, opened    */
/* when .elementor-active).                                     */
/* ============================================================ */
.wolufacilities-home .elementor-accordion-icon-opened{display:none !important}
.wolufacilities-home .elementor-accordion-icon-closed{display:inline-block !important}
.wolufacilities-home .elementor-tab-title.elementor-active .elementor-accordion-icon-closed{display:none !important}
.wolufacilities-home .elementor-tab-title.elementor-active .elementor-accordion-icon-opened{display:inline-block !important}
.wolufacilities-home .elementor-accordion-icon svg{width:14px;height:14px}

/* Stretched-link widgets : display:contents pour que le wrapper Elementor
   ne soit PAS un flex item (pas de gap ajouté par le container parent),
   tout en gardant le <a> stretched-link absolute sur le parent .news_feat /
   .news_item — qui reste cliquable plein cadre. */
.wolufacilities-home .elementor-element-slnews_feat,
.wolufacilities-home [class*="elementor-element-slnews_item"]{
  display:contents !important;
}
.wolufacilities-home .elementor-element-slnews_feat > .elementor-widget-container,
.wolufacilities-home [class*="elementor-element-slnews_item"] > .elementor-widget-container{
  display:contents !important;
}

/* ============================================================ */
/* SINGLE POST — typographic identity for blog articles          */
/* Targets body.single-post (wolufacilities-home is on body too).          */
/* Uses Playfair Display for H2, Montserrat for H3 with accent.  */
/* ============================================================ */

/* H2 in article body : editorial serif, navy, with teal accent bar below */
body.single-post.wolufacilities-home main .elementor-widget-heading h2.elementor-heading-title{
  font-family: var(--font-editorial, "Playfair Display", Georgia, serif) !important;
  font-weight: 700 !important;
  color: var(--navy, #1C2833) !important;
  font-size: clamp(1.6rem, 2.4vw, 2rem) !important;
  line-height: 1.25 !important;
  letter-spacing: -0.5px;
  margin-top: 56px !important;
  margin-bottom: 16px !important;
  padding-bottom: 14px;
  position: relative;
}
body.single-post.wolufacilities-home main .elementor-widget-heading h2.elementor-heading-title::after{
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, var(--primary, #0099CC), var(--primary-light, #33BBEE));
  border-radius: 2px;
  position: absolute;
  bottom: 0;
  left: 0;
}

/* H3 in article body : Montserrat, weight 700, navy-dark, smaller, eyebrow-style */
body.single-post.wolufacilities-home main .elementor-widget-heading h3.elementor-heading-title{
  font-family: var(--font-body, Montserrat, sans-serif) !important;
  font-weight: 700 !important;
  color: var(--navy, #1C2833) !important;
  font-size: 1.18rem !important;
  line-height: 1.3 !important;
  letter-spacing: -0.2px;
  margin-top: 32px !important;
  margin-bottom: 12px !important;
  padding-left: 14px;
  border-left: 3px solid var(--primary, #0099CC);
}

/* Body paragraphs — better readability */
body.single-post.wolufacilities-home main .elementor-widget-text-editor p{
  font-family: var(--font-body) !important;
  font-size: 1.02rem;
  line-height: 1.78;
  color: var(--text, #1A2E35);
  margin-bottom: 16px;
}
body.single-post.wolufacilities-home main .elementor-widget-text-editor p strong{
  color: var(--navy, #1C2833);
  font-weight: 700;
}

/* Ordered & unordered lists — modern custom counter / bullet */
body.single-post.wolufacilities-home main .elementor-widget-text-editor ol,
body.single-post.wolufacilities-home main .elementor-widget-text-editor ul{
  margin: 8px 0 24px;
  padding: 0;
  list-style: none;
  counter-reset: art-counter;
}
body.single-post.wolufacilities-home main .elementor-widget-text-editor ol > li,
body.single-post.wolufacilities-home main .elementor-widget-text-editor ul > li{
  position: relative;
  padding: 6px 0 6px 36px;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-soft, #4A6670);
}
/* OL with custom counter pill */
body.single-post.wolufacilities-home main .elementor-widget-text-editor ol{
  counter-reset: art-counter;
}
body.single-post.wolufacilities-home main .elementor-widget-text-editor ol > li{
  counter-increment: art-counter;
}
body.single-post.wolufacilities-home main .elementor-widget-text-editor ol > li::before{
  content: counter(art-counter);
  position: absolute;
  left: 0; top: 6px;
  width: 24px; height: 24px;
  background: var(--primary, #0099CC);
  color: #fff;
  border-radius: 50%;
  font-size: .78rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body);
  line-height: 1;
}
/* UL with teal dot bullet */
body.single-post.wolufacilities-home main .elementor-widget-text-editor ul > li::before{
  content: "";
  position: absolute;
  left: 8px; top: 16px;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--primary, #0099CC);
}

/* "Schedule" paragraphs — Lundi/Mardi/etc — definition-style */
body.single-post.wolufacilities-home main .elementor-widget-text-editor p strong:first-child{
  color: var(--primary-dark, #007AA3);
  font-weight: 700;
  display: inline-block;
  min-width: 80px;
}

/* Subtle paragraph emphasis — first paragraph after H1 (intro) */
body.single-post.wolufacilities-home main .page-hero-sub{
  font-size: 1.15rem;
  line-height: 1.6;
  color: rgba(255,255,255, .92) !important;
}

/* Better spacing between text-editor widgets */
body.single-post.wolufacilities-home main .elementor-widget-text-editor{
  margin-bottom: 12px !important;
}

/* Constrain reading width on desktop */
@media (min-width: 1024px){
  body.single-post.wolufacilities-home main .elementor-widget-text-editor:not(.news-feat-body *){
    /* Already constrained by container; no global max-width */
  }
}

/* ============================================================ */
/* SINGLE POST — featured & body images : uniform aspect + radius */
/* All images in the article body get the same look : 16:9 ratio,*/
/* max-height 480px, rounded corners, subtle shadow.             */
/* ============================================================ */
body.single-post.wolufacilities-home main .elementor-widget-image{
  width: 100% !important;
  max-width: 920px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 8px !important;
  margin-bottom: 32px !important;
}
body.single-post.wolufacilities-home main .elementor-widget-image .elementor-widget-container{
  width: 100% !important;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(0, 80, 90, 0.10), 0 2px 8px rgba(0, 80, 90, 0.06);
  background: var(--primary-pale, #D4F0F5);
}
body.single-post.wolufacilities-home main .elementor-widget-image img{
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 16 / 9 !important;
  max-height: 480px !important;
  min-height: 280px !important;
  object-fit: cover !important;
  display: block;
  border-radius: 16px;
  transition: transform .6s ease;
}
body.single-post.wolufacilities-home main .elementor-widget-image:hover img{
  transform: scale(1.02);
}
@media (max-width: 768px){
  body.single-post.wolufacilities-home main .elementor-widget-image img{
    aspect-ratio: 4 / 3 !important;
    min-height: 220px !important;
    max-height: 360px !important;
  }
}

/* ============================================================ */
/* /nouvelle-demande/ — Timeline 8 étapes (modernisée)            */
/* ============================================================ */
.wolufacilities-home .timeline{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 28px;
  margin-top: 48px;
  padding-left: 30px; /* room for the vertical line */
}
/* Vertical line connecting all steps */
.wolufacilities-home .timeline::before{
  content: "";
  position: absolute;
  left: 53px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: linear-gradient(180deg, var(--primary, #0099CC) 0%, var(--primary-light, #33BBEE) 50%, rgba(0,168,198,.15) 100%);
  border-radius: 2px;
  z-index: 0;
}
/* Each step row : number on left, content card on right */
.wolufacilities-home .timeline .t-step,
.wolufacilities-home .timeline .t-step.e-con{
  --display: flex !important;
  --flex-direction: row !important;
  flex-direction: row !important;
  --align-items: flex-start !important;
  align-items: flex-start !important;
  --gap: 24px !important;
  gap: 24px !important;
  position: relative;
}
.wolufacilities-home .timeline .t-step > .elementor-element-populated{
  width: auto;
}
/* Number badge — gradient circle */
.wolufacilities-home .timeline .t-num{
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary, #0099CC), var(--primary-dark, #007AA3));
  color: #fff;
  font-family: var(--font-editorial, "Playfair Display", Georgia, serif);
  font-size: 1.25rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0, 110, 120, 0.30);
  position: relative;
  z-index: 2;
  letter-spacing: 0;
}
/* Wrapper container around the .t-num text-editor widget — make it inline-flex */
.wolufacilities-home .timeline .t-step > .elementor-widget:has(.t-num){
  flex: 0 0 auto;
  width: 48px;
}
/* The widget container around .t-num should be transparent */
.wolufacilities-home .timeline .t-step .elementor-widget:has(.t-num) .elementor-widget-container{
  padding: 0 !important;
  margin: 0 !important;
}
/* Content card — flex: 1 to take rest of the row */
.wolufacilities-home .timeline .t-content,
.wolufacilities-home .timeline .t-content.e-con{
  flex: 1 1 auto !important;
  --flex-direction: column !important;
  flex-direction: column !important;
  --gap: 10px !important;
  gap: 10px !important;
  background: #fff;
  border: 1.5px solid var(--border, #DDE8EA);
  border-radius: var(--radius-lg, 16px);
  --padding-top: 24px !important;
  --padding-right: 28px !important;
  --padding-bottom: 24px !important;
  --padding-left: 28px !important;
  padding: 24px 28px !important;
  transition: transform .25s var(--transition), box-shadow .25s var(--transition), border-color .25s var(--transition);
}
.wolufacilities-home .timeline .t-step:hover .t-content{
  transform: translateY(-2px);
  box-shadow: var(--shadow, 0 12px 32px rgba(0,122,163,.10));
  border-color: var(--primary-muted, #A8DDE5);
}
/* Step heading */
.wolufacilities-home .timeline .t-content h3.elementor-heading-title{
  font-family: var(--font-editorial, "Playfair Display", Georgia, serif) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: var(--navy, #1C2833) !important;
  margin: 0 0 4px !important;
  line-height: 1.3 !important;
  display: flex;
  align-items: center;
  gap: 10px;
}
.wolufacilities-home .timeline .t-emoji{
  font-size: 1.4rem;
  line-height: 1;
}
/* Step description */
.wolufacilities-home .timeline .t-content .elementor-widget-text-editor p{
  font-size: .98rem;
  color: var(--text-soft, #4A6670);
  line-height: 1.7;
  margin: 0;
}
.wolufacilities-home .timeline .t-content .elementor-widget-text-editor p strong{
  color: var(--navy, #1C2833);
  font-weight: 700;
}
/* Tip callout — info icon + text in pale teal box */
.wolufacilities-home .timeline .t-tip{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: var(--primary-pale, #D4F0F5);
  border-left: 3px solid var(--primary, #0099CC);
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 8px;
  font-size: .9rem;
  color: var(--primary-dark, #007AA3);
  line-height: 1.6;
}
.wolufacilities-home .timeline .t-tip svg{
  flex: 0 0 auto;
  color: var(--primary, #0099CC);
  margin-top: 2px;
}
.wolufacilities-home .timeline .t-tip a{
  color: var(--primary-dark, #007AA3);
  font-weight: 700;
  text-decoration: underline;
}
@media (max-width: 768px){
  .wolufacilities-home .timeline{padding-left: 0}
  .wolufacilities-home .timeline::before{left: 23px}
  .wolufacilities-home .timeline .t-step,
  .wolufacilities-home .timeline .t-step.e-con{ gap: 16px !important }
  .wolufacilities-home .timeline .t-num{width: 40px; height: 40px; font-size: 1rem}
  .wolufacilities-home .timeline .t-content,
  .wolufacilities-home .timeline .t-content.e-con{padding: 18px 20px !important}
  .wolufacilities-home .timeline .t-content h3.elementor-heading-title{font-size: 1.1rem !important}
}

/* ============================================================ */
/* WCAG 2.1 AAA — 1.4.8 Présentation visuelle                  */
/* Cible le contenu éditorial uniquement (pas les UI cards).    */
/* - line-height ≥ 1.6                                          */
/* - max-width: 70ch sur paragraphes de "lecture longue"        */
/* - paragraph spacing ≥ 1em                                    */
/* - text-align: left (pas justify)                             */
/* ============================================================ */

/* Base : ligne aérée sur TOUS les paragraphes éditoriaux (AAA 1.4.8 : ≥ 1.5) */
.wolufacilities-home .elementor-widget-text-editor p,
.wolufacilities-home .elementor-tab-content p,
.wolufacilities-home .elementor-tab-content li,
.wolufacilities-home main p,
.wolufacilities-home main li{
  line-height: 1.6 !important;
  text-align: left;
}

/* Largeur de lecture limitée à 70ch — UNIQUEMENT sur les zones
   de lecture longue, pas sur les cards/widgets compacts. */
.wolufacilities-home .page-hero-sub,
.wolufacilities-home .sec-desc,
.wolufacilities-home .mission-text p,
.wolufacilities-home .sec-hdr > .elementor-widget-text-editor p,
.wolufacilities-home main .elementor-tab-content,
.wolufacilities-home main .elementor-tab-content p,
.wolufacilities-home main .elementor-tab-content li,
.wolufacilities-home .liens-group p,
.wolufacilities-home .liens-group li,
.wolufacilities-home .news-feat-body p,
.wolufacilities-home .news-item p,
body.single-post.wolufacilities-home main .elementor-widget-text-editor p,
body.single-post.wolufacilities-home main .elementor-widget-text-editor li{
  max-width: 36rem !important;  /* ~70 caractères français à 16px */
}
/* Garder l'alignement à gauche dans les zones avec contenu structuré */
.wolufacilities-home .sec-desc,
.wolufacilities-home .mission-text p{
  margin-left: 0;
  margin-right: auto;
}

/* Paragraph spacing : margin-bottom ≥ 1.5× font-size (AAA 1.4.8) sur paragraphes
   non-finaux. Le `:not(:last-child)` évite d'ajouter un trailing margin inutile. */
.wolufacilities-home main p:not(:last-child),
.wolufacilities-home main li:not(:last-child),
.wolufacilities-home .elementor-widget-text-editor p:not(:last-child),
.wolufacilities-home .elementor-tab-content p:not(:last-child),
.wolufacilities-home .elementor-tab-content li:not(:last-child){
  margin-bottom: 1.5em;
}

/* Listes : line-height + spacing dans le contenu de lecture */
.wolufacilities-home main .elementor-tab-content ul li,
.wolufacilities-home main .elementor-tab-content ol li,
body.single-post.wolufacilities-home main .elementor-widget-text-editor ul li,
body.single-post.wolufacilities-home main .elementor-widget-text-editor ol li{
  line-height: 1.6;
  margin-bottom: 0.5em;
}

/* Empêcher justify où qu'il soit (déjà OK mais on garantit) */
.wolufacilities-home main p,
.wolufacilities-home main li{
  text-align-last: auto;
}
.wolufacilities-home main p{
  hyphens: auto;
}

/* Switcher de langue dans header — intégré au nav-d */
.hdr .nav-d .wolufacilities-lang-switcher-widget{
  margin-left: 12px;
  padding-left: 14px;
  border-left: 1.5px solid var(--border, #DDE8EA);
  display: flex;
  align-items: center;
}
.hdr .nav-d .wolufacilities-lang-switcher-widget .elementor-widget-container{
  display: flex;
  align-items: center;
}
.wolufacilities-lang-switcher{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size:.86rem;
  font-weight:600;
  letter-spacing:0;
}
.wolufacilities-lang-switcher .wolufacilities-lang-current{
  color: var(--primary, #0099CC);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
}
.wolufacilities-lang-switcher .wolufacilities-lang-link{
  color: var(--text-soft, #3A565D);
  text-decoration: none;
  transition: color .2s;
}
.wolufacilities-lang-switcher .wolufacilities-lang-link:hover,
.wolufacilities-lang-switcher .wolufacilities-lang-link:focus-visible{
  color: var(--primary, #0099CC);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
}
.wolufacilities-lang-switcher .wolufacilities-lang-sep{
  color: var(--border-strong, #B8CFD3);
}

/* Eng-card buttons — texte plus petit pour 3 boutons cohérents */
.wolufacilities-home .eng-card .btn-primary{
  font-size: .82rem !important;
  padding: 11px 22px !important;
  gap: 6px !important;
}

/* Supprimer l'espace entre home_engagement (sec-on-soft) et sec_faq.
   Cause : wave-sep cwave4 ajoute 60px (moitié transparente sur bg-soft, moitié cream).
   Solution : masquer cwave4, transition directe sec-on-soft → cream. */
.wolufacilities-home .sec.sec-on-soft.e-con.elementor-element-home_engagement{
  --padding-block-end: 32px !important;
  padding-block-end: 32px !important;
  padding-bottom: 32px !important;
}
.wolufacilities-home .sec.faq-bg.e-con.elementor-element-sec_faq{
  --padding-block-start: 32px !important;
  padding-block-start: 32px !important;
  padding-top: 32px !important;
}
/* Masquer complètement le wave4 — transition directe entre sections */
.wolufacilities-home .wave-sep-wrap.e-con.elementor-element-cwave4{
  display: none !important;
}

/* ════════════════════════════════════════════════════════════
   ELEMENTOR NATIVE WIDGET OVERRIDES
   Elementor 4+ Containers default to flex column with --width:100%
   on children. Force grid/row layouts via !important overrides.
   Pieges 1, 2, 9 from .claude/skills/proto-to-elementor.md.
   ════════════════════════════════════════════════════════════ */

/* ── HEADER: glass pill, position fixed ── */
.wolufacilities-home .hdr-wrap.e-con,
.wolufacilities-home .hdr-wrap{
  position:fixed!important; top:12px!important; left:0!important; right:0!important;
  z-index:8000!important; padding:0 20px!important; pointer-events:none!important;
  width:100%!important; display:block!important;
}
.wolufacilities-home .hdr.e-con,
.wolufacilities-home .hdr{
  pointer-events:all!important; max-width:1200px!important; margin:0 auto!important;
  background:#fff!important; border-radius:var(--radius-xl)!important;
  border:1px solid rgba(0,122,163,.08)!important;
  box-shadow:0 8px 32px rgba(0,122,163,.12),0 1px 0 rgba(255,255,255,.5) inset!important;
  display:block!important; padding:0!important;
}
.wolufacilities-home .hdr-in.e-con,
.wolufacilities-home .hdr-in{
  display:flex!important; flex-direction:row!important;
  justify-content:space-between!important; align-items:center!important;
  height:68px!important; padding:0 22px!important; gap:16px!important;
}
.wolufacilities-home .hdr-in.e-con > .elementor-element,
.wolufacilities-home .nav-d.e-con > .elementor-element{
  width:auto!important; flex:0 0 auto!important;
}
/* Desktop nav : forcer flex row uniquement sur >=1025px (mobile = hamburger) */
@media (min-width: 1025px) {
  .wolufacilities-home .nav-d.e-con,
  .wolufacilities-home .nav-d {
    display:flex!important; flex-direction:row!important; align-items:center!important;
    gap:2px!important; padding:0!important; width:auto!important;
  }
}
/* Mobile/tablet : navbar horizontale cachée, hamburger visible (winning over Elementor inline styles) */
@media (max-width: 1024px) {
  .wolufacilities-home .nav-d,
  .wolufacilities-home .nav-d.e-con,
  .wolufacilities-home .hdr-in .elementor-widget-html:has(.nav-d){
    display:none!important;
  }
  .wolufacilities-home .hamburger{
    display:flex!important;
  }
}

/* Mobile menu wrap + scroll progress wrap should not affect layout */
.wolufacilities-home .mob-menu-wrap.e-con,
.wolufacilities-home .scroll-progress-wrap.e-con,
.wolufacilities-home .btt-wrap.e-con{
  position:static!important; width:0!important; height:0!important;
  padding:0!important; margin:0!important; overflow:visible!important;
}

/* ── HERO: grid 55%/1fr, full bleed ── */
.wolufacilities-home .hero.e-con{
  padding:110px 24px 80px!important; min-height:88vh!important;
  background:var(--bg-cream)!important; overflow:hidden!important;
  display:flex!important; align-items:center!important; position:relative!important;
}
.wolufacilities-home .hero-in.e-con{
  display:grid!important; grid-template-columns:55% 1fr!important;
  align-items:center!important; gap:0!important;
  max-width:1280px!important; margin:0 auto!important; width:100%!important;
  position:relative!important; z-index:2!important;
}
.wolufacilities-home .hero-content.e-con{
  display:block!important; padding-right:40px!important; width:100%!important;
}
.wolufacilities-home .hero-visual.e-con{
  display:block!important; position:relative!important; height:680px!important;
  margin-right:-60px!important; width:100%!important;
}
.wolufacilities-home .hero-actions.e-con{
  display:flex!important; flex-direction:row!important; flex-wrap:wrap!important;
  gap:12px!important; margin-bottom:44px!important; width:auto!important;
}

/* ── ABOUT: text + visual columns ── */
.wolufacilities-home .about.e-con{
  padding:88px 24px!important; background:var(--bg)!important;
  position:relative!important; overflow:hidden!important; display:block!important;
}
.wolufacilities-home .about-in.e-con{
  max-width:1200px!important; margin:0 auto!important; width:100%!important;
  display:block!important; position:relative!important; z-index:1!important;
}
.wolufacilities-home .about-grid.e-con{
  display:grid!important; grid-template-columns:1fr 1fr!important;
  gap:48px!important; align-items:center!important; margin-top:40px!important;
  width:100%!important;
}
.wolufacilities-home .about-text.e-con,
.wolufacilities-home .about-visual.e-con{
  display:block!important; width:100%!important;
}
.wolufacilities-home .about-actions.e-con{
  display:flex!important; flex-direction:row!important; flex-wrap:wrap!important;
  gap:12px!important; margin-top:28px!important; width:auto!important;
}

/* ── SERVICES PREVIEW ── */
.wolufacilities-home .svc-preview.e-con{
  padding:88px 24px!important; background:var(--bg-soft)!important;
  position:relative!important; overflow:hidden!important; display:block!important;
}
.wolufacilities-home .svc-preview-in.e-con{
  max-width:1200px!important; margin:0 auto!important; width:100%!important;
  display:block!important; position:relative!important; z-index:1!important;
}
.wolufacilities-home .svc-preview-grid.e-con{
  display:grid!important; grid-template-columns:repeat(3,1fr)!important;
  gap:18px!important; width:100%!important;
}
.wolufacilities-home .svc-pcard.e-con{
  display:block!important; background:#fff!important;
  border:1.5px solid var(--border)!important; border-radius:var(--radius-lg)!important;
  padding:32px 26px 28px!important; position:relative!important; overflow:hidden!important;
  box-shadow:0 1px 2px rgba(0,100,160,.04),0 4px 8px rgba(0,100,160,.05)!important;
  transition:transform .4s var(--transition),box-shadow .4s var(--transition),border-color .4s!important;
  cursor:pointer!important; text-decoration:none!important; color:inherit!important;
  width:100%!important;
}
.wolufacilities-home .svc-pcard.e-con:hover{
  transform:translateY(-6px) scale(1.01)!important;
  box-shadow:0 2px 4px rgba(0,100,160,.06),0 12px 32px rgba(0,100,160,.12)!important;
  border-color:transparent!important;
}
.wolufacilities-home .svc-preview-more.e-con{
  display:block!important; text-align:center!important; margin-top:36px!important;
  width:100%!important;
}

/* ── STATS: dark gradient ── */
.wolufacilities-home .stats.e-con{
  background:linear-gradient(160deg,var(--primary-dark) 0%,#005C7A 100%)!important;
  padding:80px 24px!important; position:relative!important; overflow:hidden!important;
  display:block!important;
}
.wolufacilities-home .stats-in.e-con{
  max-width:1200px!important; margin:0 auto!important; width:100%!important;
  display:block!important; position:relative!important; z-index:2!important;
}
.wolufacilities-home .stats-hdr.e-con{
  text-align:center!important; margin-bottom:48px!important; display:block!important;
  width:100%!important;
}
.wolufacilities-home .stats-hdr.e-con h2{ color:#fff!important; }
.wolufacilities-home .stats-hdr.e-con p{ color:rgba(255,255,255,.5)!important; }
.wolufacilities-home .stats-row.e-con{
  display:grid!important; grid-template-columns:repeat(4,1fr)!important;
  gap:18px!important; width:100%!important;
}
.wolufacilities-home .stat-glass.e-con{
  display:block!important; text-align:center!important;
  background:rgba(255,255,255,.08)!important; backdrop-filter:blur(16px)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:var(--radius-xl)!important; padding:30px 20px!important;
  width:100%!important;
}

/* ── FOOTER ── */
.wolufacilities-home .footer.e-con{
  background:var(--navy)!important; color:rgba(255,255,255,.7)!important;
  padding:80px 24px 40px!important; display:block!important; width:100%!important;
}
.wolufacilities-home .footer-in.e-con{
  max-width:1200px!important; margin:0 auto!important; width:100%!important;
  display:block!important;
}
.wolufacilities-home .footer-grid.e-con{
  display:grid!important; grid-template-columns:repeat(4,1fr)!important;
  gap:32px!important; width:100%!important; margin-bottom:48px!important;
}
.wolufacilities-home .footer-bot.e-con{
  display:flex!important; flex-direction:row!important;
  justify-content:space-between!important; align-items:center!important;
  padding-top:32px!important; border-top:1px solid rgba(255,255,255,.1)!important;
  width:100%!important;
}
.wolufacilities-home .footer h4{ color:#fff!important; font-size:.95rem!important; margin-bottom:18px!important; }
.wolufacilities-home .footer-bot a{ color:rgba(255,255,255,.5)!important; }

/* ── WAVE SEPARATOR ── */
.wolufacilities-home .wave-sep-wrap.e-con{
  display:block!important; padding:0!important; margin:0!important;
  width:100%!important;
}

/* ── RESPONSIVE OVERRIDES ── */
@media (max-width: 1024px){
  .wolufacilities-home .hero-in.e-con{ grid-template-columns:1fr!important; }
  .wolufacilities-home .hero-visual.e-con{ display:none!important; }
  .wolufacilities-home .hero.e-con{ padding-bottom:56px!important; min-height:auto!important; }
  .wolufacilities-home .about-grid.e-con{ grid-template-columns:1fr!important; gap:32px!important; }
  .wolufacilities-home .svc-preview-grid.e-con{ grid-template-columns:repeat(2,1fr)!important; }
  .wolufacilities-home .stats-row.e-con{ grid-template-columns:repeat(2,1fr)!important; }
  .wolufacilities-home .footer-grid.e-con{ grid-template-columns:repeat(2,1fr)!important; }
  .wolufacilities-home .nav-d.e-con{ display:none!important; }
  .wolufacilities-home .hamburger{ display:flex!important; }
}
@media (max-width: 640px){
  .wolufacilities-home .hero.e-con{ padding-top:90px!important; }
  .wolufacilities-home .svc-preview-grid.e-con{ grid-template-columns:1fr!important; }
  .wolufacilities-home .stats.e-con{ padding:56px 20px!important; }
  .wolufacilities-home .footer-grid.e-con{ grid-template-columns:1fr!important; }
  .wolufacilities-home .footer-bot.e-con{ flex-direction:column!important; gap:16px!important; }
}

/* ════════════════════════════════════════════════════════════
   PIEGE 7b FIXES — HTML widget collapse for absolute-positioned
   children. Force widget wrappers to fill their containers when
   the inner content uses position:absolute (.hero-img-main,
   .hero-blob, .hero-dots, .about-badge, .hero-bg-num).
   ════════════════════════════════════════════════════════════ */

/* Hero blobs: HTML widget wrapper inside .hero must be absolutely positioned
   so .hero-blob children find .hero (position:relative) as the positioning ancestor. */
.wolufacilities-home .hero.e-con > .elementor-widget-html,
.wolufacilities-home .hero.e-con > .elementor-widget-html > .elementor-widget-container{
  position:static!important; width:0!important; height:0!important;
  padding:0!important; margin:0!important;
}

/* Hero-visual: the HTML widget wraps .hero-dots + .hero-img-main, both absolute.
   Make the widget wrapper fill the visual container. */
.wolufacilities-home .hero-visual.e-con > .elementor-widget-html,
.wolufacilities-home .hero-visual.e-con > .elementor-widget-html > .elementor-widget-container{
  position:absolute!important; inset:0!important; width:100%!important; height:100%!important;
  display:block!important; padding:0!important; margin:0!important;
}

/* About-visual: native Image widget needs explicit sizing for the .about-visual
   "image fills card" effect. */
.wolufacilities-home .about-visual.e-con{ min-height:380px!important; }
.wolufacilities-home .about-visual.e-con > .elementor-widget-image,
.wolufacilities-home .about-visual.e-con > .elementor-widget-image > .elementor-widget-container{
  display:block!important; width:100%!important; height:100%!important;
  position:absolute!important; inset:0!important;
}
.wolufacilities-home .about-visual.e-con img{
  width:100%!important; height:100%!important; min-height:380px!important;
  object-fit:cover!important; display:block!important;
}
/* About-badge: keep widget wrapper static so .about-badge (position:absolute)
   resolves against .about-visual (position:relative), not the widget wrapper. */
.wolufacilities-home .about-visual.e-con > .elementor-widget-html,
.wolufacilities-home .about-visual.e-con > .elementor-widget-html > .elementor-widget-container{
  position:static!important; display:block!important; width:auto!important;
  z-index:2!important;
}

/* Stat glass: HTML widgets inside need to render visibly (not collapse).
   Each stat-glass has 3 HTML widgets: icon, num, label. */
.wolufacilities-home .stat-glass.e-con > .elementor-widget-html,
.wolufacilities-home .stat-glass.e-con > .elementor-widget-html > .elementor-widget-container{
  display:block!important; width:100%!important;
}
.wolufacilities-home .stat-glass .stat-icon{ margin:0 auto 14px!important; }
.wolufacilities-home .stat-glass .stat-num{
  font-size:clamp(1.4rem, 5vw, 2.6rem)!important;  /* fluid : ~22px sur mobile, ~42px sur desktop */
  font-weight:900!important; color:#fff!important;
  line-height:1!important; display:block!important;
  letter-spacing:-0.5px!important;
  word-break:keep-all!important;          /* ne pas couper "20.000+" en deux lignes */
  overflow-wrap:normal!important;
  hyphens:none!important;
  white-space:nowrap!important;            /* garde "20.000+" sur 1 ligne */
}
/* Sur très petit écran, padding card réduit pour donner de la place aux stats */
@media (max-width: 480px) {
  .wolufacilities-home .stat-glass.e-con {
    padding: 18px 10px !important;
  }
  .wolufacilities-home .stat-glass .stat-num {
    font-size: 1.55rem !important;        /* ~25px : tient confortablement */
    letter-spacing: -0.3px !important;
  }
  .wolufacilities-home .stat-glass .stat-label {
    font-size: 0.65rem !important;
    margin-top: 6px !important;
  }
}
.wolufacilities-home .stat-glass .stat-label{
  font-size:.76rem!important; color:rgba(255,255,255,.5)!important;
  font-weight:500!important; margin-top:8px!important; text-transform:uppercase!important;
  letter-spacing:.5px!important; display:block!important;
}

/* Svc-pcard internals: icons + arrow + link span */
.wolufacilities-home .svc-pcard.e-con > .elementor-widget-html,
.wolufacilities-home .svc-pcard.e-con > .elementor-widget-html > .elementor-widget-container{
  display:block!important; width:100%!important;
}
/* svc-pcard ::after color bar — already handled by proto CSS */

/* Hero buttons rendered via raw HTML (.btn-primary, .btn-outline) — let
   them keep their proto styling. The HTML widget wrappers must be inline-block
   so they sit side-by-side. */
.wolufacilities-home .hero-actions.e-con > .elementor-widget-html,
.wolufacilities-home .hero-actions.e-con > .elementor-widget-html > .elementor-widget-container,
.wolufacilities-home .about-actions.e-con > .elementor-widget-html,
.wolufacilities-home .about-actions.e-con > .elementor-widget-html > .elementor-widget-container{
  display:inline-block!important; width:auto!important;
}

/* Sec-hdr eyebrow + title + desc visibility */
.wolufacilities-home .sec-hdr.e-con > .elementor-widget-html,
.wolufacilities-home .sec-hdr.e-con > .elementor-widget-html > .elementor-widget-container,
.wolufacilities-home .svc-preview-hdr.e-con > .elementor-widget-html,
.wolufacilities-home .svc-preview-hdr.e-con > .elementor-widget-html > .elementor-widget-container{
  display:block!important; width:auto!important;
}

/* Hero-content children: keep block flow */
.wolufacilities-home .hero-content.e-con > .elementor-widget-html,
.wolufacilities-home .hero-content.e-con > .elementor-widget-html > .elementor-widget-container{
  display:block!important; width:100%!important;
}

/* Header logo HTML widget should display inline-flex like .logo */
.wolufacilities-home .hdr-in.e-con > .elementor-widget-html > .elementor-widget-container{
  display:inline-block!important; width:auto!important;
}

/* Force the body to clear the fixed header height */
body.wolufacilities-home > main,
body.wolufacilities-home .elementor{ padding-top:0!important; }


/* ════════════════════════════════════════════════════════════
   CARD CLICKABILITY — overlay link pattern.
   Elementor Free containers can't be wrapped in <a>; instead,
   add a transparent absolute-positioned link as last child.
   The widget wrapper of that link must NOT collapse and must
   sit above content but below interactive children (form fields,
   nested links).
   ════════════════════════════════════════════════════════════ */
.wolufacilities-home .card-overlay-link{
  position:absolute!important; inset:0!important; z-index:5!important;
  text-indent:-9999px!important; overflow:hidden!important;
  background:transparent!important; display:block!important;
}
/* The HTML widget wrapper for the overlay link must take 0×0 space and not
   block other children's hover (svc-pcard ::after, hub-card-img:hover img). */
.wolufacilities-home .svc-pcard.e-con > .elementor-widget-html:has(.card-overlay-link),
.wolufacilities-home .svc-pcard.e-con > .elementor-widget-html:has(.card-overlay-link) > .elementor-widget-container,
.wolufacilities-home .hub-card.e-con > .elementor-widget-html:has(.card-overlay-link),
.wolufacilities-home .hub-card.e-con > .elementor-widget-html:has(.card-overlay-link) > .elementor-widget-container{
  position:static!important; width:0!important; height:0!important;
  padding:0!important; margin:0!important; overflow:visible!important;
}
/* Ensure parent cards are positioning containers */
.wolufacilities-home .svc-pcard.e-con,
.wolufacilities-home .hub-card.e-con{ position:relative!important; }


/* ════════════════════════════════════════════════════════════
   LANGUAGE SWITCHER — populated by shared.js from <link rel=alternate>
   ════════════════════════════════════════════════════════════ */
.wolufacilities-home .lang-switch{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px; background:rgba(0,153,204,.07);
  border:1px solid rgba(0,153,204,.15);
  border-radius:var(--radius-pill); font-weight:700; flex-shrink:0;
}
.wolufacilities-home .lang-switch .lang-link{
  display:inline-block; padding:2px 8px; font-size:.78rem;
  color:var(--text-soft); text-decoration:none; letter-spacing:.5px;
  border-radius:var(--radius-pill); transition:all .2s var(--transition);
}
.wolufacilities-home .lang-switch .lang-link:hover{
  color:var(--primary); background:rgba(0,153,204,.08);
}
.wolufacilities-home .lang-switch .lang-link.on{
  color:var(--primary); background:rgba(0,153,204,.15); cursor:default;
}
.wolufacilities-home .lang-switch .lang-sep{
  color:var(--text-muted); font-size:.7rem; user-select:none;
}

/* HFE wrapper + mu-plugin enqueue : the lang-switch sits inside an
   .elementor-widget-html container — make sure it doesn't collapse. */
.wolufacilities-home .hdr-in.e-con > .elementor-widget-html:has(.lang-switch),
.wolufacilities-home .hdr-in.e-con > .elementor-widget-html:has(.lang-switch) > .elementor-widget-container{
  width:auto!important; flex:0 0 auto!important; display:inline-block!important;
}

/* Mobile menu variant */
.wolufacilities-home .mob-menu .lang-switch-mob{
  margin-top:24px; align-self:center;
  padding:10px 18px; font-size:1rem;
}
.wolufacilities-home .mob-menu .lang-switch-mob .lang-link{
  font-size:1rem; padding:4px 12px;
}

/* Hide on very small viewports if it overflows the nav (will appear in mob-menu) */
@media (max-width: 1024px){
  .wolufacilities-home .hdr-in .lang-switch:not(.lang-switch-mob){ display:none!important; }
}

/* ════════════════════════════════════════════════════════════
   FIX svc-pcard-arrow positioning : its widget wrapper must be
   static + 0×0 so the absolute child resolves against .svc-pcard
   (same pattern as card-overlay-link).
   ════════════════════════════════════════════════════════════ */
.wolufacilities-home .svc-pcard.e-con > .elementor-widget-html:has(.svc-pcard-arrow),
.wolufacilities-home .svc-pcard.e-con > .elementor-widget-html:has(.svc-pcard-arrow) > .elementor-widget-container{
  position:static!important; width:0!important; height:0!important;
  padding:0!important; margin:0!important; overflow:visible!important;
  display:block!important;
}

/* Wave separator wrapper : ensure no extra height/padding from Elementor's e-con
   defaults so only the SVG (60px) takes vertical space. */
.wolufacilities-home .wave-sep-wrap.e-con,
.wolufacilities-home .wave-sep-wrap.e-con > .elementor-widget-html,
.wolufacilities-home .wave-sep-wrap.e-con > .elementor-widget-html > .elementor-widget-container{
  display:block!important; padding:0!important; margin:0!important;
  min-height:0!important; height:auto!important; line-height:0!important;
}
.wolufacilities-home .wave-sep-wrap.e-con .wave-sep{
  margin:0!important;
}

/* ════════════════════════════════════════════════════════════
   TRANSPARENCE — Publications légales (downloadable PDF list)
   ════════════════════════════════════════════════════════════ */
.wolufacilities-home .legal-pubs{ display:block; }
.wolufacilities-home .legal-pubs-year{
  margin-bottom:48px; padding:32px; background:#fff;
  border-radius:var(--radius-lg); border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.wolufacilities-home .legal-pubs-year h3{
  font-family:var(--font-editorial); font-size:1.6rem; color:var(--navy);
  margin-bottom:24px; padding-bottom:14px;
  border-bottom:2px solid var(--primary-pale); font-weight:800;
}
.wolufacilities-home .legal-pubs-cat{ margin-bottom:24px; }
.wolufacilities-home .legal-pubs-cat:last-child{ margin-bottom:0; }
.wolufacilities-home .legal-pubs-cat h4{
  font-size:.85rem; text-transform:uppercase; letter-spacing:.6px;
  color:var(--primary-dark); margin-bottom:12px; font-weight:700;
}
.wolufacilities-home .doc-list{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:1fr; gap:6px;
}
.wolufacilities-home .doc-list li{ margin:0; }
.wolufacilities-home .doc-link{
  display:flex; align-items:center; gap:12px;
  padding:12px 16px; border-radius:var(--radius);
  background:var(--bg-soft); color:var(--navy);
  text-decoration:none; transition:all .25s var(--transition);
  border:1px solid transparent;
}
.wolufacilities-home .doc-link:hover{
  background:#fff; border-color:var(--primary-muted);
  color:var(--primary-dark); transform:translateX(3px);
  box-shadow:var(--shadow-sm);
}
.wolufacilities-home .doc-link .doc-icon{
  font-size:1.1rem; flex-shrink:0;
}
.wolufacilities-home .doc-link .doc-name{
  flex:1 1 auto; font-size:.92rem; font-weight:500; line-height:1.4;
}
.wolufacilities-home .doc-link .doc-ext{
  flex-shrink:0; font-size:.7rem; font-weight:700; letter-spacing:.5px;
  padding:3px 8px; background:var(--primary); color:#fff;
  border-radius:var(--radius-pill); text-transform:uppercase;
}
.wolufacilities-home .doc-link:hover .doc-ext{ background:var(--orange); }

@media (min-width: 768px){
  .wolufacilities-home .doc-list{ grid-template-columns:repeat(2,1fr); gap:8px; }
}
@media (max-width: 640px){
  .wolufacilities-home .legal-pubs-year{ padding:20px; }
  .wolufacilities-home .legal-pubs-year h3{ font-size:1.3rem; }
  .wolufacilities-home .doc-link{ padding:10px 12px; }
  .wolufacilities-home .doc-link .doc-name{ font-size:.85rem; }
}

/* ════════════════════════════════════════════════════════════
   SERVICE-DETAIL : mission-grid (text + visual) layout grid
   Override Elementor's default flex on .mission-grid container.
   ════════════════════════════════════════════════════════════ */
.wolufacilities-home .mission-grid.e-con{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:48px!important;
  align-items:center!important;
  width:100%!important;
}
.wolufacilities-home .mission-grid.e-con > .elementor-element{
  width:100%!important; flex:initial!important;
}

/* Mission-visual is inside an HTML widget. The widget wrapper must allow
   the inner .mission-visual div (position:relative, overflow:hidden, border-radius)
   to render with its image at min-height 380px. */
.wolufacilities-home .mission-grid.e-con > .elementor-widget-html,
.wolufacilities-home .mission-grid.e-con > .elementor-widget-html > .elementor-widget-container{
  display:block!important; width:100%!important; height:auto!important;
}
.wolufacilities-home .mission-visual{
  display:block!important;
  position:relative!important;
  border-radius:var(--radius-xl)!important;
  overflow:hidden!important;
  box-shadow:var(--shadow-lg);
  min-height:380px;
  /* Kill the Elementor default container padding (10px) that left a white
     "mat" ring around the photo — the image must fill the rounded card
     edge-to-edge. Affects all service pages (mission-visual). */
  padding:0!important;
}
/* The image lives inside an HTML widget; make that wrapper fill the card
   so the photo reaches every edge with no white gap. */
.wolufacilities-home .mission-visual.e-con > .elementor-widget-html,
.wolufacilities-home .mission-visual.e-con > .elementor-widget-html > .elementor-widget-container{
  display:block!important; width:100%!important; height:100%!important;
}
.wolufacilities-home .mission-visual img{
  display:block!important;
  width:100%!important;
  height:380px!important;
  min-height:380px!important;
  object-fit:cover!important;
  transition:transform .5s var(--transition);
}
.wolufacilities-home .mission-visual:hover img{ transform:scale(1.03); }
.wolufacilities-home .mission-badge{
  position:absolute!important; bottom:20px; left:20px;
  background:rgba(255,255,255,.92); backdrop-filter:blur(12px);
  border-radius:var(--radius-lg); padding:14px 20px;
  display:flex; align-items:center; gap:10px;
  box-shadow:var(--shadow); z-index:2;
}
.wolufacilities-home .mission-badge-ico{
  width:40px; height:40px; border-radius:10px;
  background:var(--accent-pale); display:flex;
  align-items:center; justify-content:center;
}
.wolufacilities-home .mission-badge-ico svg{ width:20px; height:20px; color:var(--accent); }
.wolufacilities-home .mission-badge strong{ font-size:.85rem; color:var(--navy); display:block; }
.wolufacilities-home .mission-badge span{ font-size:.72rem; color:var(--text-muted); }

/* ════════════════════════════════════════════════════════════
   LOGO IMG MODE — replaces the old icon+text DOM with a single
   <img> sourced from /wp-content/uploads/wolufacilities-proto/img/logo-wf{,-compact}.png
   These rules win over the older .logo-icon/.logo-t styles via
   .logo-img specificity + img element selector.
   ════════════════════════════════════════════════════════════ */
.wolufacilities-home .logo.logo-img{
  display:inline-flex!important; align-items:center;
  text-decoration:none; flex-shrink:0;
  /* Cancel the old gap that was sized for icon+text layout */
  gap:0!important;
}
.wolufacilities-home .logo.logo-img img{
  display:block;
  height:58px!important; width:auto!important;
  max-width:none!important;
  /* Subtle hover lift — same spirit as the old .logo-icon scale */
  transition:transform .35s var(--spring,cubic-bezier(.34,1.56,.64,1));
}
.wolufacilities-home .logo.logo-img:hover img{ transform:scale(1.05); }

/* The HTML widget wrapper around the <a class="logo logo-img"> in the header
   must shrink-fit and not collapse. */
.wolufacilities-home .hdr-in.e-con > .elementor-widget-html:has(.logo-img),
.wolufacilities-home .hdr-in.e-con > .elementor-widget-html:has(.logo-img) > .elementor-widget-container{
  display:inline-flex!important; width:auto!important; flex:0 0 auto!important;
  padding:0!important;
}

/* Footer logo : compact version, slightly larger, optional brightening on dark navy bg.
   The PNG is already light blue/cyan, so it pops on navy without filter — but a light
   drop-shadow makes the edges crisp. */
.wolufacilities-home .footer .logo.logo-img img,
.wolufacilities-home .footer-logo img{
  height:68px!important;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));
}

/* On very small viewports, shrink the header logo a bit so the navbar pill
   doesn't overflow when nav links wrap. */
@media (max-width: 720px){
  .wolufacilities-home .logo.logo-img img{ height:46px!important; }
}

/* Defensive : neutralize the old .logo-icon::after orange dot
   (only relevant if any legacy markup with .logo-icon survived somewhere). */
.wolufacilities-home .logo.logo-img .logo-icon,
.wolufacilities-home .logo.logo-img .logo-t{ display:none!important; }


/* Responsive : mission-grid passe en 1 colonne sur tablette/mobile */
@media (max-width: 1024px){
  .wolufacilities-home .mission-grid.e-con{
    grid-template-columns:1fr!important; gap:32px!important;
  }
}


/* ════════════════════════════════════════════════════════════════════════════
   CERTIFICATIONS GRID (page Cuisine — logos Certisys, Good Food, …)
   ════════════════════════════════════════════════════════════════════════════ */
.wolufacilities-home .cert-sec.e-con{
  background:#FFFFFF;
}
.wolufacilities-home .cert-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:48px;
  margin:48px auto 0;
  max-width:880px;
}
.wolufacilities-home .cert-logo{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:28px 36px;
  background:#FFFFFF;
  border:1px solid var(--border-soft, #E5EEF2);
  border-radius:18px;
  text-decoration:none;
  transition:transform .25s var(--spring,cubic-bezier(.34,1.56,.64,1)),
             box-shadow .25s ease,
             border-color .2s ease;
  min-width:240px;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.wolufacilities-home .cert-logo:hover{
  transform:translateY(-4px);
  border-color:var(--primary,#0099CC);
  box-shadow:0 8px 24px rgba(0,153,204,.12);
}
.wolufacilities-home .cert-logo img{
  display:block;
  height:80px;          /* hauteur unifiée pour tous les logos */
  width:auto;
  max-width:240px;
  object-fit:contain;
}
.wolufacilities-home .cert-logo .cert-label{
  font-size:.85rem;
  font-weight:600;
  color:var(--text-soft,#566873);
  letter-spacing:.3px;
  text-align:center;
}

/* Responsive cert-grid : sous 700px → empile, padding réduit */
@media (max-width: 700px){
  .wolufacilities-home .cert-grid{
    gap:24px;
    margin-top:32px;
  }
  .wolufacilities-home .cert-logo{
    padding:20px 24px;
    min-width:0;
    width:100%;
    max-width:320px;
  }
  .wolufacilities-home .cert-logo img{
    height:64px;
  }
}


/* ════════════════════════════════════════════════════════════════════════════
   MOBILE MENU — Full-screen overlay blanc avec slide-down animation
   ════════════════════════════════════════════════════════════════════════════
   États (gérés par shared.js → toggleMenu) :
     #mobMenu.mob-menu                      → masqué (display:none)
     #mobMenu.mob-menu.open                 → display flex, mais opacity 0 + translateY -100%
     #mobMenu.mob-menu.open.show            → opacity 1 + translateY 0  (visible final)
   Le double délai .open puis .open.show permet la transition CSS depuis l'état initial.
   ════════════════════════════════════════════════════════════════════════════ */

.wolufacilities-home #mobMenu.mob-menu,
.wolufacilities-home .mob-menu {
  display: none;
  position: fixed !important;
  inset: 0 !important;                   /* top:0 right:0 bottom:0 left:0 */
  z-index: 7900 !important;              /* sous le header (.hdr-wrap = 8000) pour laisser le hamburger cliquable */
  background: #ffffff !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 18px !important;
  padding: 80px 24px 40px !important;
  opacity: 0 !important;
  transform: translateY(-100%) !important;
  transition: opacity .35s ease, transform .4s var(--spring, cubic-bezier(.34,1.56,.64,1)) !important;
  pointer-events: none !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

.wolufacilities-home #mobMenu.mob-menu.open,
.wolufacilities-home .mob-menu.open {
  display: flex !important;
  pointer-events: auto !important;
}

.wolufacilities-home #mobMenu.mob-menu.open.show,
.wolufacilities-home .mob-menu.open.show {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Liens du menu : gros, lisibles, centrés */
.wolufacilities-home .mob-menu a {
  display: block !important;
  width: 100% !important;
  max-width: 320px !important;
  text-align: center !important;
  font-size: 1.35rem !important;
  font-weight: 600 !important;
  color: var(--navy, #1C2833) !important;
  text-decoration: none !important;
  padding: 14px 20px !important;
  border-radius: var(--radius-pill, 999px) !important;
  transition: background .2s ease, color .2s ease !important;
}
.wolufacilities-home .mob-menu a:hover,
.wolufacilities-home .mob-menu a:focus-visible {
  background: rgba(0, 153, 204, 0.10) !important;
  color: var(--primary, #0099CC) !important;
}
.wolufacilities-home .mob-menu a.on,
.wolufacilities-home .mob-menu a[aria-current="page"] {
  background: rgba(0, 153, 204, 0.15) !important;
  color: var(--primary, #0099CC) !important;
  font-weight: 700 !important;
}

/* Hamburger animation : 3 traits → croix X quand .open */
.wolufacilities-home .hamburger.open {
  z-index: 8001 !important;              /* au-dessus du menu pour rester cliquable (close) */
  position: relative !important;
}
.wolufacilities-home .hamburger.open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg) !important;
}
.wolufacilities-home .hamburger.open span:nth-child(2) {
  opacity: 0 !important;
}
.wolufacilities-home .hamburger.open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg) !important;
}
.wolufacilities-home .hamburger span {
  transition: transform .3s ease, opacity .2s ease !important;
}


/* ════════════════════════════════════════════════════════════════════════════
   MOBILE — Tweaks divers pour les viewports < 480px
   ════════════════════════════════════════════════════════════════════════════ */

@media (max-width: 480px) {
  /* Banner cookies Complianz : réduire le padding qui prend trop de place */
  body.wolufacilities-home .cmplz-cookiebanner,
  body.wolufacilities-home #cmplz-cookiebanner-container .cmplz-cookiebanner {
    padding: 14px 16px !important;
    font-size: 13px !important;
    max-height: 60vh !important;
    overflow-y: auto !important;
  }
  body.wolufacilities-home .cmplz-cookiebanner .cmplz-buttons {
    flex-direction: column !important;
    gap: 8px !important;
  }
  body.wolufacilities-home .cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
    width: 100% !important;
  }
}


/* ════════════════════════════════════════════════════════════════════════════
   COMPLIANZ — Bannière cookies : repositionnement + visibilité (site entier)
   Problème client : la bannière (fond blanc, bordure 0px) était invisible sur les
   pages à fond blanc ET chevauchait le bouton du chatbot AI Engine (.mwai-trigger),
   tous deux ancrés en bas-droite. Solution : bannière en bas-GAUCHE + bordure/ombre.
   Règles NON préfixées (.wolufacilities-home) car la bannière vit hors du wrapper
   et doit s'appliquer sur TOUTES les pages.
   ════════════════════════════════════════════════════════════════════════════ */

/* 1. Repositionnement bas-gauche → fin du chevauchement avec le chatbot */
.cmplz-cookiebanner.cmplz-bottom-right,
#cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-bottom-right {
  right: auto !important;
  left: 24px !important;
  bottom: 24px !important;
}

/* 2. Visibilité sur fond blanc : bordure marquée + ombre profonde */
.cmplz-cookiebanner.banner-1,
#cmplz-cookiebanner-container .cmplz-cookiebanner {
  border: 2px solid var(--primary, #0099CC) !important;
  border-radius: 16px !important;
  box-shadow: 0 18px 50px rgba(0,80,90,.30), 0 6px 16px rgba(0,0,0,.16) !important;
}

/* 3. Onglet "Gérer le consentement" (revoke, post-acceptation) : à gauche + visible */
.cmplz-manage-consent.manage-consent-1,
#cmplz-manage-consent .cmplz-manage-consent,
.cmplz-manage-consent {
  right: auto !important;
  left: 24px !important;
  border: 1.5px solid var(--primary, #0099CC) !important;
  box-shadow: 0 -2px 12px rgba(0,80,90,.18) !important;
}

/* 4. Mobile : bannière pleine largeur en bas (z-index 99999 la garde au 1er plan) */
@media (max-width: 768px) {
  .cmplz-cookiebanner.cmplz-bottom-right,
  #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-bottom-right {
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;
    width: auto !important;
    max-width: none !important;
  }
  .cmplz-manage-consent.manage-consent-1,
  #cmplz-manage-consent .cmplz-manage-consent,
  .cmplz-manage-consent {
    left: 12px !important;
  }
}


/* ════════════════════════════════════════════════════════════════════════════
   CONVERSION NATIVE ELEMENTOR — overrides remplaçant les styles inline du proto
   Quand un widget HTML est décomposé en widgets natifs (heading/text-editor),
   les styles qui étaient inline (style="...") doivent être reportés en classes.
   Le widget text-editor enveloppe aussi le contenu dans un <p> → reset des marges.
   ════════════════════════════════════════════════════════════════════════════ */

/* Piège flex Elementor : les widgets enfants d'un conteneur flex reçoivent
   width:100% (--container-widget-width). Les pastilles inline doivent rester
   à la largeur de leur contenu. */
.wolufacilities-home .eyebrow,
.wolufacilities-home .feat-card .hub-tag{
  display:inline-flex !important; width:fit-content !important; max-width:fit-content !important;
  --container-widget-width:fit-content;
}
.wolufacilities-home .feat-card-link{
  width:fit-content !important; max-width:fit-content !important;
}

/* cert-grid est un flex centré : ses cartes (conteneurs natifs) ne doivent PAS
   prendre 100% (sinon elles s'empilent). Largeur = contenu, min-width géré par .cert-logo */
/* bloc d'en-tête centré (était style="max-width:880px;margin:0 auto;text-align:center") */
.wolufacilities-home .ta-center{
  max-width:880px; margin-left:auto !important; margin-right:auto !important;
  text-align:center; align-items:center !important; --align-items:center !important;
}

.wolufacilities-home .cert-grid{
  flex-direction:row !important; --flex-direction:row !important; flex-wrap:wrap !important;
}
.wolufacilities-home .cert-grid > .elementor-element{
  width:auto !important; --width:auto !important; flex:0 0 auto !important;
}

/* hub-tag dans une feat-card : était inline (position:static;display:inline-block) */
.wolufacilities-home .feat-card .hub-tag{position:static !important;display:inline-block;margin-bottom:14px}
.wolufacilities-home .feat-card .hub-tag p{margin:0}

/* "lien" bas de carte : remplace style="margin-top:18px;font-size:.85rem;color:var(--primary);font-weight:700" */
.wolufacilities-home .feat-card-link{margin-top:18px;font-size:.85rem;color:var(--primary);font-weight:700;display:inline-flex;align-items:center;gap:5px}
.wolufacilities-home .feat-card-link p{margin:0}

/* carte offre d'emploi : méta "Temps plein — CDI" + lien "Postuler" */
.wolufacilities-home .feat-meta{font-size:.85rem;color:var(--text-muted);font-weight:600;margin-top:14px}
.wolufacilities-home .feat-meta p{margin:0}
.wolufacilities-home .feat-card-linkwrap{margin-top:18px}
.wolufacilities-home .feat-card-linkwrap p{margin:0}

/* text-editor portant une classe pill/inline : neutraliser le <p> injecté */
.wolufacilities-home .eyebrow p{margin:0;display:inline}
.wolufacilities-home .page-hero-sub p{margin:0}
.wolufacilities-home .sec-desc p{margin:0}

