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

:root{
  --primary:#006E78;--primary-dark:#004F58;--primary-light:#00A8C6;--primary-pale:#D4F0F5;--primary-muted:#A8DDE5;--primary-warm:#008B8B;
  --violet:#7B2D8B;--violet-dark:#3A1A5C;--violet-light:#B36AC0;--violet-pale:#F4ECF7;
  --orange:#F47B20;--orange-dark:#C85E0A;--orange-pale:#FEF3E8;--orange-muted:#FAC79A;
  --green:#52B043;--green-pale:#D9F0D3;--red:#C0392B;--red-dark:#96281B;--red-pale:#FDEDEC;
  --navy:#1C2833;--navy-light:#2C3E50;
  --bg:#fff;--bg-soft:#F5F8F8;--bg-warm:#FEFCF8;--bg-cream:#FDF9F3;
  --text:#1A2E35;--text-soft:#3A565D;--text-muted:#3A565D;--border:#DDE8EA;--border-strong:#B8CFD3;
  --font-display:'Montserrat',sans-serif;--font-editorial:'Playfair Display',Georgia,serif;--font-accent:'Montserrat',sans-serif;--font-body:'Montserrat',sans-serif;
  --radius:14px;--radius-lg:22px;--radius-xl:36px;--radius-pill:100px;
  --shadow-sm:0 1px 3px rgba(0,80,90,.05),0 4px 12px rgba(0,80,90,.05);
  --shadow:0 4px 20px rgba(0,80,90,.08),0 1px 4px rgba(0,80,90,.04);
  --shadow-lg:0 12px 48px rgba(0,80,90,.12),0 4px 12px rgba(0,80,90,.06);
  --shadow-warm:0 4px 20px rgba(180,120,60,.08);
  --shadow-primary:0 8px 32px rgba(0,110,120,.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 */
.cpas-home,.cpas-home *,.cpas-home *::before,.cpas-home *::after{margin:0;padding:0;box-sizing:border-box}
.cpas-home{font-family:var(--font-body);color:var(--text);line-height:1.75;-webkit-font-smoothing:antialiased;display:block}
.cpas-home a{color:inherit;text-decoration:none}
.cpas-home img{max-width:100%;display:block}
.cpas-home button{cursor:pointer;border:none;font-family:inherit}
.cpas-home ul{list-style:none}

/* Scroll progress + wave separators + focus */
.cpas-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,110,120,.4)}
.cpas-home .wave-sep{position:relative;width:100%;overflow:hidden;line-height:0;margin-top:-1px}
.cpas-home .wave-sep svg{display:block;width:100%;height:60px}
.cpas-home .wave-sep-flip{transform:scaleY(-1);margin-top:0;margin-bottom:-1px}
.cpas-home :focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:4px}

/* Navbar */
.cpas-home .hdr-wrap{position:fixed;top:12px;left:0;right:0;z-index:8000;padding:0 20px;pointer-events:none}
.cpas-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,80,90,.08);border-radius:var(--radius-xl);box-shadow:0 8px 32px rgba(0,80,90,.12),0 1px 0 rgba(255,255,255,.5) inset;transition:background .4s,box-shadow .4s,border-color .4s}
.cpas-home .hdr.scrolled{background:rgba(250,254,254,.95);border-color:rgba(212,240,245,.8);box-shadow:0 12px 48px rgba(0,80,90,.12),0 1px 0 rgba(255,255,255,.9) inset}
.cpas-home .hdr-in{padding:0 22px;display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.cpas-home .logo{display:flex;align-items:center;gap:11px;flex-shrink:0}
.cpas-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,110,120,.35)}
.cpas-home .logo:hover .logo-icon{transform:scale(1.06)}
.cpas-home .logo-icon::after{content:'';position:absolute;width:14px;height:14px;background:var(--orange);border-radius:50%;top:-2px;right:-2px}
.cpas-home .logo-icon svg{position:relative;z-index:1}
.cpas-home .logo-t strong{font-size:1.05rem;color:var(--navy);display:block;font-weight:800;letter-spacing:-.5px}
.cpas-home .logo-t span{font-size:.66rem;color:var(--text-soft);font-weight:500;text-transform:uppercase;letter-spacing:.6px}
.cpas-home .nav-d{display:flex;align-items:center;gap:2px}
.cpas-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}
.cpas-home .nav-d a:hover{background:rgba(0,110,120,.09);color:var(--primary)}
.cpas-home .nav-d a.on{background:rgba(0,110,120,.12);color:var(--primary);font-weight:700}
.cpas-home .hdr-search{background:rgba(0,110,120,.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}
.cpas-home .hamburger{display:none;width:44px;height:44px;background:rgba(0,110,120,.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}
.cpas-home .hamburger span{display:block;width:20px;height:2px;background:var(--navy);border-radius:2px}

/* Buttons */
.cpas-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)}
.cpas-home .btn-primary:hover,
.cpas-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);
}
.cpas-home .btn-primary:hover .arr,
.cpas-home .btn-primary:focus-visible .arr{
  color:var(--orange, #F47B20) !important;
}
.cpas-home .btn-primary .arr{transition:transform .3s var(--transition)}
.cpas-home .btn-primary:hover .arr{transform:translateX(5px)}
.cpas-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)}
.cpas-home .btn-outline:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px);background:#fff;box-shadow:var(--shadow-sm)}
.cpas-home .btn-white{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--primary-dark);padding:14px 32px;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)}
.cpas-home .btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.15)}

/* Eyebrow + section base */
.cpas-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}
.cpas-home .eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);flex-shrink:0}
.cpas-home .sec{padding:80px 24px}
.cpas-home .sec-in{max-width:1200px;margin:0 auto}
.cpas-home .sec-hdr{margin-bottom:48px}
.cpas-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}
.cpas-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-cpas-et-vous, etc.) */
.cpas-home .aide-hero{position:relative;background:var(--bg-cream);padding:140px 24px 100px;overflow:hidden;text-align:center}
.cpas-home .aide-hero-blob{position:absolute;border-radius:50%;pointer-events:none}
.cpas-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}
.cpas-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}
.cpas-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)}}
.cpas-home .aide-hero-in{max-width:700px;margin:0 auto;position:relative;z-index:2}
.cpas-home .aide-hero .breadcrumb{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.82rem;color:var(--text-muted);margin-bottom:20px}
.cpas-home .aide-hero .breadcrumb a{color:var(--text-soft);transition:color .2s}
.cpas-home .aide-hero .breadcrumb a:hover{color:var(--primary)}
.cpas-home .aide-hero .breadcrumb svg{width:12px;height:12px;flex-shrink:0}
.cpas-home .aide-hero-icon{font-size:3rem;margin-bottom:14px;display:block}
.cpas-home .aide-hero h1{font-family:var(--font-editorial);font-size:clamp(2.2rem,4.5vw,3.8rem);font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:-.5px;margin-bottom:16px}
.cpas-home .aide-hero h1 .hl{color:var(--primary);font-style:italic}
.cpas-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) */
.cpas-home .aide-sec{padding:80px 24px 100px;background:var(--bg)}
.cpas-home .aide-sec-in{max-width:1100px;margin:0 auto}
.cpas-home .aide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cpas-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}
.cpas-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)}
.cpas-home .hub-card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,80,90,.12);border-color:transparent}
.cpas-home .hub-card:hover::after{transform:scaleX(1)}
.cpas-home .hub-card-img{height:180px;overflow:hidden;position:relative}
.cpas-home .hub-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--transition)}
.cpas-home .hub-card:hover .hub-card-img img{transform:scale(1.04)}
.cpas-home .hub-card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,50,60,.25) 0%,transparent 50%)}
.cpas-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}
.cpas-home .hub-card-body{padding:22px 24px 26px}
.cpas-home .hub-card-body h3{font-size:1.05rem;font-weight:800;color:var(--navy);margin-bottom:8px;transition:color .3s}
.cpas-home .hub-card:hover .hub-card-body h3{color:var(--hub-color,var(--primary))}
.cpas-home .hub-card-body p{font-size:.85rem;color:var(--text-soft);line-height:1.6;margin-bottom:16px}
.cpas-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)}
.cpas-home .hub-card-link span{transition:transform .3s var(--transition)}
.cpas-home .hub-card:hover .hub-card-link{gap:10px}
.cpas-home .hub-card:hover .hub-card-link span{transform:translateX(4px)}
.cpas-home .hub-card:nth-child(1){--hub-color:#006E78}
.cpas-home .hub-card:nth-child(2){--hub-color:#9A4607}
.cpas-home .hub-card:nth-child(3){--hub-color:#7B2D8B}
.cpas-home .hub-card:nth-child(4){--hub-color:#00738A}
.cpas-home .hub-card:nth-child(5){--hub-color:#357A1E}
.cpas-home .hub-card:nth-child(6){--hub-color:#C0392B}
.cpas-home .hub-card:nth-child(7){--hub-color:#004F58}
.cpas-home .hub-card:nth-child(8){--hub-color:#8E44AD}

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

/* "Notre cuisine" sur /home-saint-lambert/ — 2 cards label avec logo grand */
.cpas-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;
}
.cpas-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);
}
.cpas-home .cuisine-card.e-con:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.cpas-home .cuisine-card .elementor-widget-image{margin-bottom:18px !important}
.cpas-home .cuisine-card .elementor-widget-image img{max-height:140px;width:auto;margin:0 auto;display:block}
.cpas-home .cuisine-card .elementor-widget-heading{margin:0 0 8px !important;padding:0 !important}
.cpas-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}
.cpas-home .cuisine-card .elementor-widget-text-editor{margin:0 !important;padding:0 !important}
.cpas-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){
  .cpas-home .cuisine-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .cpas-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. */
.cpas-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;
}
.cpas-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){
  .cpas-home .primo-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .cpas-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. */
.cpas-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;
}
.cpas-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);
}
.cpas-home .video-card.e-con:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.cpas-home .video-card .elementor-widget-video,
.cpas-home .video-card .elementor-widget-video .elementor-widget-container,
.cpas-home .video-card .elementor-wrapper{margin:0 !important;padding:0 !important}
.cpas-home .video-card .elementor-widget-heading{padding:18px 22px !important;margin:0 !important}
.cpas-home .video-card .elementor-widget-heading .elementor-widget-container{padding:0 !important;margin:0 !important}
.cpas-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){
  .cpas-home .video-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .cpas-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){
  .cpas-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 .cpas-acc-modern (à mettre dans css_classes du widget).
   Look : items légers, bordure unique top, +/- discret, active state coloré gauche. */
.cpas-home .cpas-acc-modern .elementor-accordion{border:none !important;background:transparent;margin-top:32px}
.cpas-home .cpas-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);
}
.cpas-home .cpas-acc-modern .elementor-accordion-item:last-child{border-bottom:1px solid var(--border) !important}
.cpas-home .cpas-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;
}
.cpas-home .cpas-acc-modern .elementor-tab-title:hover{
  color:var(--primary, #1a8a8a) !important;
  padding-left:32px !important;
}
.cpas-home .cpas-acc-modern .elementor-tab-title.elementor-active{
  color:var(--primary-dark, #0d6e6e) !important;
  background:rgba(26,138,138,.04) !important;
}
.cpas-home .cpas-acc-modern .elementor-tab-title.elementor-active::before{
  content:'';
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:var(--primary, #1a8a8a);
}
.cpas-home .cpas-acc-modern .elementor-tab-title h3,
.cpas-home .cpas-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;
}
.cpas-home .cpas-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);
}
.cpas-home .cpas-acc-modern .elementor-tab-title:hover .elementor-accordion-icon{
  background:rgba(26,138,138,.10);
  color:var(--primary, #1a8a8a) !important;
}
.cpas-home .cpas-acc-modern .elementor-tab-title.elementor-active .elementor-accordion-icon{
  background:var(--primary, #1a8a8a);
  color:#fff !important;
  transform:rotate(180deg);
}
.cpas-home .cpas-acc-modern .elementor-accordion-icon i,
.cpas-home .cpas-acc-modern .elementor-accordion-icon svg{
  font-size:.75rem !important;
  width:12px !important; height:12px !important;
  color:inherit !important; fill:currentColor;
}
.cpas-home .cpas-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;
}
.cpas-home .cpas-acc-modern .elementor-tab-content p{margin:0 0 12px}
.cpas-home .cpas-acc-modern .elementor-tab-content ul{margin:8px 0 16px;padding:0;list-style:none}
.cpas-home .cpas-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;
}
.cpas-home .cpas-acc-modern .elementor-tab-content ul li:last-child{border-bottom:none}
.cpas-home .cpas-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);
}
.cpas-home .cpas-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;
}
.cpas-home .cpas-acc-modern .elementor-tab-content a:hover{
  color:var(--primary, #1a8a8a);
  border-bottom-color:var(--primary, #1a8a8a);
}
.cpas-home .cpas-acc-modern .elementor-tab-content strong{color:var(--navy)}
@media(max-width:640px){
  .cpas-home .cpas-acc-modern .elementor-tab-title{padding:18px 16px !important;font-size:.95rem !important;gap:10px}
  .cpas-home .cpas-acc-modern .elementor-tab-title:hover{padding-left:18px !important}
  .cpas-home .cpas-acc-modern .elementor-tab-content{padding:4px 16px 22px 16px !important}
}

/* "Steps grid" — process en 3 étapes (signaler) — gros numéro + carte. */
.cpas-home .steps-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-top:48px;
  position:relative;
}
.cpas-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);
}
.cpas-home .step-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
  border-color:var(--primary-muted);
}
.cpas-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;
}
.cpas-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;
}
.cpas-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){
  .cpas-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){
  .cpas-home .steps-grid{grid-template-columns:1fr;gap:36px}
}

/* "Timeline grid" — 3 étapes du processus de réponse (signaler). */
.cpas-home .timeline-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-top:48px;
  position:relative;
}
.cpas-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);
}
.cpas-home .timeline-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
  border-color:var(--primary-muted);
}
.cpas-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;
}
.cpas-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;
}
.cpas-home .timeline-card p{
  font-size:.92rem;
  color:var(--text-soft);
  line-height:1.6;
  margin:0;
}
.cpas-home .timeline-card p strong{
  color:var(--primary-dark, #0d6e6e);
  font-weight:700;
}
/* Connector dots between timeline cards */
@media(min-width:1025px){
  .cpas-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){
  .cpas-home .timeline-grid{grid-template-columns:1fr;gap:20px}
}

/* "Types list" — 2 colonnes de motifs acceptés (signaler). */
.cpas-home .types-list{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
  margin-top:32px;
}
.cpas-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);
}
.cpas-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));
}
.cpas-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;
}
.cpas-home .type-item strong{color:var(--navy);font-weight:700}
@media(max-width:768px){
  .cpas-home .types-list{grid-template-columns:1fr}
}

/* "Values grid" — 3 cards "Ce qui nous guide" (qui-sommes-nous). */
.cpas-home .values-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;
}
.cpas-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);
}
.cpas-home .value-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--primary-muted)}
.cpas-home .value-emoji{font-size:2.4rem;margin-bottom:14px;display:block;line-height:1}
.cpas-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}
.cpas-home .value-card p{font-size:.92rem;color:var(--text-soft);line-height:1.6;margin:0}
@media(max-width:1024px){.cpas-home .values-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.cpas-home .values-grid{grid-template-columns:1fr}}

/* "Transparence grid" — liens vers documents PDF (organigramme, budgets, etc.)
   Grille 4 colonnes desktop / 2 tablette / 1 mobile. */
.cpas-home .transp-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
  margin-top:32px;
}
.cpas-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);
}
.cpas-home .transp-item:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow);
  border-color:var(--teal, #1a8a8a);
}
.cpas-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);
}
.cpas-home .transp-ico svg{width:20px;height:20px;display:block}
.cpas-home .transp-item span{flex:1;line-height:1.3}
@media(max-width:1024px){
  .cpas-home .transp-grid{grid-template-columns:repeat(2, 1fr)}
}
@media(max-width:560px){
  .cpas-home .transp-grid{grid-template-columns:1fr}
}

/* "Video grid 2 cols" — variante du video-grid pour 2 vidéos côte à côte. */
.cpas-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;
}
.cpas-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);
}
.cpas-home .video-grid-2.e-con > .video-card.e-con:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
@media(max-width:768px){
  .cpas-home .video-grid-2.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .cpas-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). */
.cpas-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);
}
.cpas-home .video-feature .elementor-widget-video{width:100% !important}
.cpas-home .video-feature .elementor-widget-video,
.cpas-home .video-feature .elementor-widget-video .elementor-widget-container,
.cpas-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. */
.cpas-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;
}
.cpas-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 */
.cpas-home .liens-group .elementor-widget-heading{margin:0 0 18px !important;padding:0 0 14px !important;border-bottom:1.5px solid var(--border)}
.cpas-home .liens-group .elementor-widget-heading .elementor-widget-container{padding:0 !important}
.cpas-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 */
.cpas-home .liens-group .elementor-icon-list-items{padding:0 !important;margin:0 !important;display:flex;flex-direction:column;gap:10px}
.cpas-home .liens-group .elementor-icon-list-item{padding:0 !important;margin:0 !important;line-height:1.5}
.cpas-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}
.cpas-home .liens-group .elementor-icon-list-item a:hover{color:var(--primary-dark) !important;text-decoration:underline}
.cpas-home .liens-group .elementor-icon-list-icon{flex-shrink:0;display:inline-flex;align-items:center}
.cpas-home .liens-group .elementor-icon-list-icon i,
.cpas-home .liens-group .elementor-icon-list-icon svg{color:var(--primary) !important;font-size:.85rem;width:14px;height:14px}
.cpas-home .liens-group .elementor-icon-list-text{color:var(--primary) !important;font-weight:600;font-size:.92rem}
@media(max-width:768px){
  .cpas-home .liens-grid.e-con{--flex-wrap:wrap !important;flex-wrap:wrap !important}
  .cpas-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. */
.cpas-home .droits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
@media(max-width:1024px){.cpas-home .droits-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:640px){.cpas-home .droits-grid{grid-template-columns:1fr;gap:12px}}

/* "Vos engagements" / "On avance ensemble" — 2x2 grid of soft cards
   (used on /le-cpas-et-vous/ to présent les obligations dans un ton positif). */
.cpas-home .eng-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}
.cpas-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}
.cpas-home .eng-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--primary-muted)}
.cpas-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}
.cpas-home .eng-content{flex:1;min-width:0}
.cpas-home .eng-content strong{display:block;font-size:1rem;color:var(--navy);margin-bottom:6px;font-weight:700;line-height:1.3}
/* a11y 26017 : titre de carte = <h3> (apparence calquee sur l'ancien <strong>) */
.cpas-home .eng-content h3{display:block;font-size:1rem;color:var(--navy);margin:0 0 6px;font-weight:700;line-height:1.3}
.cpas-home .eng-card .eng-content h3{font-size:1.05rem;margin-bottom:8px}
.cpas-home .eng-content p{font-size:.88rem;color:var(--text-soft);line-height:1.6;margin:0}
@media(max-width:640px){.cpas-home .eng-grid{grid-template-columns:1fr;gap:14px}}

/* /actualites/ — index page: grid of post cards. */
.cpas-home .actualites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cpas-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}
.cpas-home .act-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary-muted)}
.cpas-home .act-card .stretched-link{position:absolute;inset:0;z-index:5;text-indent:-9999px;overflow:hidden;background:transparent}
.cpas-home .act-card-img{aspect-ratio:16/9;overflow:hidden;background:var(--bg-soft)}
.cpas-home .act-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--transition)}
.cpas-home .act-card:hover .act-card-img img{transform:scale(1.04)}
.cpas-home .act-card-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.cpas-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}
.cpas-home .act-card-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);flex-shrink:0}
.cpas-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}
.cpas-home .act-card-excerpt{font-size:.9rem;color:var(--text-soft);line-height:1.6;margin:0;flex:1}
.cpas-home .act-card-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:var(--primary);margin-top:auto}
.cpas-home .act-card-link svg{width:14px;height:14px;flex-shrink:0;transition:transform .3s var(--transition)}
.cpas-home .act-card:hover .act-card-link svg{transform:translateX(4px)}
@media(max-width:1024px){.cpas-home .actualites-grid{grid-template-columns:repeat(2,1fr);gap:20px}}
@media(max-width:640px){.cpas-home .actualites-grid{grid-template-columns:1fr;gap:16px}}
.cpas-home .actualites-sec{padding-top:80px;padding-bottom:80px}

/* mission-grid + cta-banner + sit-card + acc-card + qt-grid (service-habitat shared patterns) */
.cpas-home .mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-top:40px}
.cpas-home .mission-text{font-size:1rem;color:var(--text-soft);line-height:1.85}
.cpas-home .mission-text p+p{margin-top:16px}
.cpas-home .mission-text strong{color:var(--navy);font-weight:700}
.cpas-home .mission-visual{position:relative;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg)}
.cpas-home .mission-visual img{width:100%;height:100%;object-fit:cover;min-height:360px}
.cpas-home .mission-badge{display:none}
/* Also hide the Elementor HTML widget wrapper that contains the (hidden) .mission-badge, otherwise the parent flex `gap` leaves a 20px white strip below the photo. */
.cpas-home .elementor-widget-html:has(.mission-badge),.cpas-home .elementor-widget-text-editor:has(.mission-badge){display:none} /* 12/06: badge converti en text-editor */
.cpas-home .mission-badge-ico{width:40px;height:40px;border-radius:10px;background:var(--primary-pale);display:flex;align-items:center;justify-content:center}
.cpas-home .mission-badge-ico svg{width:20px;height:20px;color:var(--primary)}
.cpas-home .mission-badge strong{font-size:.85rem;color:var(--navy);display:block}
.cpas-home .mission-badge span{font-size:.72rem;color:var(--text-muted)}
.cpas-home .sit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.cpas-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)}
.cpas-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)}
.cpas-home .sit-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary-muted)}
.cpas-home .sit-card:hover::after{transform:scaleX(1)}
.cpas-home .sit-card:nth-child(1){--sit-color:var(--primary)}
.cpas-home .sit-card:nth-child(2){--sit-color:var(--orange)}
.cpas-home .sit-card:nth-child(3){--sit-color:var(--violet)}
.cpas-home .sit-card:nth-child(4){--sit-color:var(--green)}
.cpas-home .sit-card:nth-child(5){--sit-color:var(--primary-light)}
.cpas-home .sit-card:nth-child(6){--sit-color:var(--orange-dark)}
.cpas-home .sit-emoji{font-size:2rem;margin-bottom:14px;display:block;line-height:1}
.cpas-home .sit-card h3{font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.cpas-home .sit-card p{font-size:.82rem;color:var(--text-muted);line-height:1.55}
.cpas-home .acc-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
.cpas-home .acc-card{border-radius:var(--radius-xl);padding:36px 32px;position:relative;overflow:hidden}
.cpas-home .acc-card-prev{background:linear-gradient(135deg,var(--primary-pale),#E8F6F8);border:1.5px solid var(--primary-muted)}
.cpas-home .acc-card-cur{background:linear-gradient(135deg,var(--orange-pale),#FFF4E8);border:1.5px solid var(--orange-muted)}
.cpas-home .acc-card h3{font-size:1.15rem;font-weight:800;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.cpas-home .acc-card-prev h3{color:var(--primary-dark)}
.cpas-home .acc-card-cur h3{color:var(--orange-dark)}
.cpas-home .acc-card .acc-sub{font-size:.85rem;color:var(--text-soft);margin-bottom:20px}
.cpas-home .acc-list{display:flex;flex-direction:column;gap:12px}
.cpas-home .acc-item{display:flex;align-items:flex-start;gap:12px;font-size:.9rem;color:var(--text-soft);line-height:1.6}
.cpas-home .acc-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:8px}
.cpas-home .acc-card-prev .acc-item-dot{background:var(--primary)}
.cpas-home .acc-card-cur .acc-item-dot{background:var(--orange)}
.cpas-home .qt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:40px}
.cpas-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)}
.cpas-home .qt-item:hover{border-color:var(--primary-muted);transform:translateX(4px);box-shadow:var(--shadow-sm)}
.cpas-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}
.cpas-home .qt-ico svg{width:18px;height:18px;color:var(--primary)}
.cpas-home .qt-item span{font-size:.9rem;font-weight:600;color:var(--navy)}
.cpas-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}
.cpas-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}
.cpas-home .cta-banner h3{font-family:var(--font-editorial);font-size:1.6rem;font-weight:800;margin-bottom:10px}
.cpas-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). */
.cpas-home .cta-banner h3,
.cpas-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>. */
.cpas-home .elementor-widget-button.btn-white{background:transparent !important;padding:0 !important;display:flex;justify-content:center;box-shadow:none !important}
.cpas-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)}
.cpas-home .elementor-widget-button.btn-white .elementor-button .elementor-button-text{font-family:var(--font-body, 'Montserrat', sans-serif) !important}
.cpas-home .elementor-widget-button.btn-white .elementor-button:hover,
.cpas-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);
}
.cpas-home .elementor-widget-button.btn-white .elementor-button-icon,
.cpas-home .elementor-widget-button.btn-white .elementor-button-icon svg{color:var(--primary-dark) !important;fill:currentColor;transition:color .35s var(--transition)}
.cpas-home .elementor-widget-button.btn-white .elementor-button:hover .elementor-button-icon,
.cpas-home .elementor-widget-button.btn-white .elementor-button:hover .elementor-button-icon svg,
.cpas-home .elementor-widget-button.btn-white .elementor-button:focus-visible .elementor-button-icon,
.cpas-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) */
.cpas-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}
.cpas-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}
.cpas-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}
.cpas-home .page-hero-in{max-width:800px;margin:0 auto;position:relative;z-index:2}
.cpas-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). */
.cpas-home .elementor-element-hsl_hero.page-hero,
.cpas-home .elementor-element-lc_hero.page-hero,
.cpas-home .elementor-element-and_hero.page-hero,
.cpas-home .elementor-element-lt_hero.page-hero{background:linear-gradient(145deg,#3140c0,#5615a7,#1f5bb5)}
.cpas-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. */
.cpas-home .page-hero .elementor-widget-text-editor{
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.cpas-home .page-hero .elementor-widget-text-editor .elementor-widget-container{
  text-align: center !important;
}
.cpas-home .page-hero-icon{font-size:3rem;margin-bottom:16px;display:block}
.cpas-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}
.cpas-home .page-hero .breadcrumb a{color:rgba(255,255,255,.7);transition:color .2s}
.cpas-home .page-hero .breadcrumb a:hover{color:#fff}
.cpas-home .page-hero .breadcrumb svg{width:12px;height:12px;flex-shrink:0}

/* Footer */
.cpas-home .footer{background:var(--primary-dark);color:rgba(255,255,255,.65);padding:76px 24px 36px}
.cpas-home .footer-in{max-width:1200px;margin:0 auto}
.cpas-home .footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:36px;margin-bottom:52px}
@media(max-width:1280px){.cpas-home .footer-grid{grid-template-columns:1.2fr 1fr 1fr 1fr;gap:36px}.cpas-home .footer-col:nth-child(5){grid-column:1/-1}}
.cpas-home .footer h4{color:#fff;font-size:.9rem;font-weight:700;margin-bottom:16px}
.cpas-home .footer p{font-size:.83rem;line-height:1.7}
.cpas-home .footer-links li{margin-bottom:7px}
.cpas-home .footer-links a{font-size:.83rem;transition:color .2s,padding-left .3s}
.cpas-home .footer-links a:hover{color:var(--orange);padding-left:4px}
.cpas-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}
.cpas-home .footer-social{display:flex;gap:9px}
.cpas-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}
.cpas-home .footer-social a:hover{background:var(--orange);color:#fff;transform:translateY(-3px)}
.cpas-home .a11y-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary-light);font-size:.78rem;font-weight:600}
.cpas-home .a11y-link:hover{color:var(--orange)}
.cpas-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}
.cpas-home .btt.show{opacity:1;transform:none;pointer-events:all}
.cpas-home .btt:hover{background:var(--primary-dark);transform:translateY(-2px)}

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

/* ============================================================
   Contact section (used by le-cpas-et-vous, aide-financiere, etc.)
   ============================================================ */
.cpas-home .contact-sec{padding:80px 24px}
.cpas-home .contact-sec-in{max-width:1200px;margin:0 auto}
.cpas-home .contact-wrap{background:linear-gradient(145deg,#004f58 0%,#00565f 40%,#004f58 100%);border-radius:28px;padding:56px;position:relative;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.25)}
.cpas-home .contact-wrap::before{content:'';position:absolute;top:-100px;right:-100px;left:auto;width:300px;height:300px;background:radial-gradient(circle,rgba(0,110,120,.08),transparent 70%);pointer-events:none}
.cpas-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}
.cpas-home .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;position:relative;z-index:1}
.cpas-home .contact-info{color:#fff;padding:8px 0}
.cpas-home .contact-info h3{font-size:1.65rem;font-weight:800;margin-bottom:8px;color:#fff;display:flex;align-items:center;gap:10px}
.cpas-home .contact-info .c-sub{font-size:.9rem;color:rgba(255,255,255,.5);margin-bottom:36px;line-height:1.6}
.cpas-home .c-row{display:flex;align-items:center;gap:16px;padding:16px 0}
.cpas-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)}
.cpas-home .c-ico-orange{background:rgba(244,123,32,.18)}
.cpas-home .c-ico-green{background:rgba(82,176,67,.18)}
.cpas-home .c-ico-blue{background:rgba(0,168,198,.18)}
.cpas-home .c-ico-purple{background:rgba(123,45,139,.18)}
.cpas-home .c-txt strong{display:block;font-size:.9rem;margin-bottom:2px;color:#fff;font-weight:700}
.cpas-home .c-txt span{font-size:.82rem;color:rgba(255,255,255,.45)}
.cpas-home .c-txt a{color:var(--primary-light);font-weight:600;transition:color .2s}
.cpas-home .c-txt a:hover{color:var(--orange)}
.cpas-home .contact-form{padding:4px 0}
.cpas-home .contact-form h3{font-size:1.35rem;font-weight:800;color:#fff;margin-bottom:28px}
.cpas-home .fg{margin-bottom:14px}
.cpas-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}
.cpas-home .fg input,.cpas-home .fg select,.cpas-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}
.cpas-home .fg input::placeholder,.cpas-home .fg textarea::placeholder{color:rgba(255,255,255,.25)}
.cpas-home .fg select{color:rgba(255,255,255,.45);padding-right:40px}
.cpas-home .fg select option{background:#004F58;color:#fff}
.cpas-home .fg input:focus,.cpas-home .fg select:focus,.cpas-home .fg textarea:focus{border-color:var(--primary-light);background:rgba(255,255,255,.07);box-shadow:0 0 0 3px rgba(0,110,120,.15)}
.cpas-home .fg textarea{resize:vertical;min-height:80px}
.cpas-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,110,120,.35);border:none;margin-top:6px}
.cpas-home .f-submit:hover{transform:translateY(-2px);box-shadow:0 10px 36px rgba(0,110,120,.5)}
.cpas-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}
.cpas-home .hdr-cta:hover{background:var(--orange-dark);transform:translateY(-2px)}
@media(max-width:1024px){.cpas-home .contact-grid{grid-template-columns:1fr}.cpas-home .contact-wrap{padding:36px 24px}}
@media(max-width:640px){.cpas-home .contact-sec{padding:56px 20px}}

/* ============================================================
   Native Elementor Button overrides inside .nav-d
   So Elementor Button widgets render as compact menu links.
   ============================================================ */
.cpas-home .nav-d { padding: 0; gap: 2px; align-items: center; }
.cpas-home .nav-d > .elementor-element { width: auto !important; flex: 0 0 auto; }
.cpas-home .nav-d .elementor-widget-container { padding: 0 !important; }
.cpas-home .nav-d .elementor-button-wrapper { display: inline-block; }
.cpas-home .nav-d a.elementor-button,
.cpas-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;
}
.cpas-home .nav-d a.elementor-button .elementor-button-text,
.cpas-home .nav-d .elementor-button-link .elementor-button-text {
  font-family: var(--font-body, 'Montserrat', sans-serif) !important;
}
.cpas-home .nav-d a.elementor-button .elementor-button-text {
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: 0 !important;
}
.cpas-home .nav-d a.elementor-button:hover,
.cpas-home .nav-d .elementor-button-link:hover {
  background: rgba(0, 110, 120, .09) !important;
  color: var(--primary) !important;
}
.cpas-home .nav-d a.elementor-button.on,
.cpas-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 */
.cpas-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,110,120,.35); flex-shrink: 0; }
.cpas-home .logo-icon::after { content: ''; position: absolute; width: 14px; height: 14px; background: var(--orange); border-radius: 50%; top: -2px; right: -2px; z-index: 2; }
.cpas-home .logo-icon .elementor-widget-container { padding: 0 !important; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.cpas-home .logo-icon .elementor-icon-wrapper { display: flex; align-items: center; justify-content: center; }
.cpas-home .logo-icon .elementor-icon { color: #fff !important; font-size: 18px !important; line-height: 1 !important; padding: 0 !important; }
.cpas-home .logo-icon .elementor-icon i { color: #fff !important; font-size: 18px !important; }
.cpas-home .logo-icon .elementor-icon svg { fill: #fff !important; width: 18px !important; height: 18px !important; }
.cpas-home .logo:hover .logo-icon { transform: scale(1.06); }

/* Logo text via Heading widgets */
.cpas-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; }
.cpas-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; }
.cpas-home .logo-t { gap: 0 !important; }
.cpas-home .logo-t > .elementor-element { width: auto !important; }

/* Logo container as link (Elementor wraps in <a>) */
.cpas-home .logo { gap: 11px; align-items: center; flex-shrink: 0; cursor: pointer; }
.cpas-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). */
.cpas-home .hamburger-btn .elementor-button { width: 44px !important; height: 44px !important; padding: 0 !important; background: rgba(0,110,120,.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; }
.cpas-home .hamburger-btn .elementor-button:hover { background: rgba(0,110,120,.12) !important; }
.cpas-home .hamburger-btn .elementor-button .elementor-button-text { display: none !important; }
.cpas-home .hamburger-btn .elementor-button-icon { margin: 0 !important; }
.cpas-home .hamburger-btn .elementor-button-icon i,
.cpas-home .hamburger-btn .elementor-button-icon svg { font-size: 18px !important; }
@media(min-width:1025px){ .cpas-home .hamburger-btn { display: none; } }

/* Footer column heading + icon-list overrides */
.cpas-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; }
.cpas-home .footer-links-list .elementor-icon-list-items { padding: 0 !important; margin: 0 !important; gap: 7px !important; display: flex !important; flex-direction: column !important; }
.cpas-home .footer-links-list .elementor-icon-list-item { padding: 0 !important; margin: 0 !important; }
.cpas-home .footer-links-list .elementor-icon-list-item:not(:last-child) { border: none !important; padding-bottom: 0 !important; margin-bottom: 7px !important; }
.cpas-home .footer-links-list .elementor-icon-list-item a { padding: 0 !important; gap: 0 !important; align-items: center; transition: color .2s, padding-left .3s; }
.cpas-home .footer-links-list .elementor-icon-list-item a:hover { color: var(--orange) !important; padding-left: 4px !important; }
.cpas-home .footer-links-list .elementor-icon-list-icon { display: none !important; }
.cpas-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; }
.cpas-home .footer-links-list .elementor-icon-list-item:hover .elementor-icon-list-text { color: var(--orange) !important; }
.cpas-home .footer-links-list .elementor-icon-list-item.cur a .elementor-icon-list-text { color: var(--orange) !important; font-weight: 700 !important; }

/* Footer logo descriptive text (Text-editor) */
.cpas-home .footer-desc .elementor-widget-container { padding: 0 !important; }
.cpas-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) */
.cpas-home .footer-a11y .elementor-heading-title,
.cpas-home .footer-a11y a { color: var(--primary-light) !important; font-size: .78rem !important; font-weight: 600 !important; transition: color .2s; }
.cpas-home .footer-a11y a:hover { color: var(--orange) !important; }

/* Copyright Heading in footer-bot */
.cpas-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 */
.cpas-home .footer-social .elementor-social-icons-wrapper { gap: 9px !important; }
.cpas-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; }
.cpas-home .footer-social .elementor-social-icon:hover { background: var(--orange) !important; transform: translateY(-3px); }
.cpas-home .footer-social .elementor-social-icon i { font-size: 15px !important; color: rgba(255,255,255,.65); }
.cpas-home .footer-social .elementor-social-icon:hover i { color: #fff; }

/* Back-to-top Icon widget styled as floating circular button */
.cpas-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; }
.cpas-home .btt-icon.show { opacity: 1; transform: none; pointer-events: all; }
.cpas-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; }
.cpas-home .btt-icon .elementor-icon:hover { background: var(--primary-dark); transform: translateY(-2px); }
.cpas-home .btt-icon .elementor-icon i,
.cpas-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 */
.cpas-home.e-con.e-flex,
.cpas-home .hdr-wrap.e-con.e-flex,
.cpas-home .hdr.e-con.e-flex,
.cpas-home .footer.e-con.e-flex,
.cpas-home .footer-in.e-con.e-flex,
.cpas-home .ftr_col1.e-con.e-flex,
.cpas-home .footer-grid > .e-con.e-flex {
  --flex-direction: column;
  flex-direction: column;
}

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

/* hdr-in: justify space-between + center, fixed height */
.cpas-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 */
.cpas-home .nav-d.e-con {
  --align-items: center !important;
  align-items: center !important;
  --gap: 2px;
  gap: 2px !important;
}

/* logo container: row, gap 11px, center */
.cpas-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) */
.cpas-home .logo-t.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  --gap: 0;
  gap: 0 !important;
}

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

/* footer-bot: row, justify-between */
.cpas-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%) */
.cpas-home .hdr-in.e-con > .elementor-element,
.cpas-home .nav-d.e-con > .elementor-element,
.cpas-home .logo.e-con > .elementor-element,
.cpas-home .logo-t.e-con > .elementor-element,
.cpas-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 */
.cpas-home .h_logo_ico.elementor-widget,
.cpas-home .ftr_logo_ico.elementor-widget,
.cpas-home .logo-icon.elementor-widget-icon {
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px !important;
}

/* Nav buttons keep their content-size width */
.cpas-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){
  .cpas-home .hamburger-btn { display: none !important; }
}
@media(max-width:1024px){
  .cpas-home .nav-d.e-con { display: none !important; }
}

/* hdr-wrap: actually fixed positioning + full-width transparent wrapper */
.cpas-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 */
.cpas-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,80,90,.08);
  border-radius: var(--radius-xl);
  box-shadow: 0 8px 32px rgba(0,80,90,.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;
}

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

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

/* Force header inner row to fixed height + perfect vertical centering */
.cpas-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;
}

.cpas-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). */
.cpas-home .logo-icon .elementor-icon svg,
.cpas-home .logo-icon .elementor-icon i {
  width: 18px !important;
  height: 18px !important;
  font-size: 18px !important;
  line-height: 1 !important;
  display: block !important;
}

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

.cpas-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 */
.cpas-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;
}

.cpas-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 */
.cpas-home .logo.e-con {
  --align-items: center !important;
  align-items: center !important;
  align-self: center !important;
  height: auto !important;
}

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

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

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

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

/* ============================================================
   FIX v3 RETIRE (mai 2026 / a.ndakwizeye) :
   Le position:absolute + translate(-50%,-50%) sur .nav-d.e-con
   centrait le menu independamment du logo, ce qui causait un
   chevauchement visible (le 1er item "Accueil" passait sur le
   logo CPAS|OCMW a 1440-1920px). On revient au flex flow naturel :
   - .hdr-in.e-con garde position:relative (utile pour dropdowns)
   - .nav-d.e-con reste dans le flex parent, pousse a droite via
     margin-left:auto (cpas-mobile-menu.php >=1300px deja en place)
   - le logo et le menu ont des margins propres injectees via
     _elementor_data settings (cpas-design-fix mai 2026)
   ============================================================ */

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

.cpas-home .nav-d.e-con {
  /* position:absolute SUPPRIME volontairement */
  margin-left: auto !important;
}

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

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

/* footer-grid: 4 equal columns row */
.cpas-home .footer-grid.e-con {
  --flex-direction: row !important;
  flex-direction: row !important;
  --gap: 48px;
  gap: 48px !important;
  flex-wrap: wrap;
}
.cpas-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 */
.cpas-home .footer .logo.e-con {
  --align-items: center !important;
  align-items: center !important;
  margin-bottom: 18px;
}

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

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

/* Footer column heading: white smaller compact */
.cpas-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 */
.cpas-home .footer-desc .elementor-widget-container > * {
  font-size: .83rem !important;
  line-height: 1.7 !important;
  color: rgba(255,255,255,.65) !important;
}
.cpas-home .footer-desc p {
  margin: 0 0 18px 0 !important;
}

/* Engagement accessibilite Heading */
.cpas-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 */
.cpas-home .footer-links-list .elementor-icon-list-items {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}
.cpas-home .footer-links-list .elementor-icon-list-item {
  border: none !important;
  padding: 0 0 7px 0 !important;
  margin: 0 !important;
}
.cpas-home .footer-links-list .elementor-icon-list-item:last-child {
  padding-bottom: 0 !important;
}
.cpas-home .footer-links-list .elementor-icon-list-icon {
  display: none !important;
}
.cpas-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;
}
.cpas-home .footer-links-list .elementor-icon-list-item a {
  padding: 0 !important;
  display: inline-block !important;
  transition: padding-left .3s !important;
}
.cpas-home .footer-links-list .elementor-icon-list-item a:hover {
  padding-left: 4px !important;
}
.cpas-home .footer-links-list .elementor-icon-list-item a:hover .elementor-icon-list-text {
  color: var(--orange) !important;
}

/* footer-bot: row layout */
.cpas-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;
}
.cpas-home .footer-bot.e-con > .elementor-element {
  flex: 0 0 auto !important;
  width: auto !important;
  --width: auto !important;
  align-self: center !important;
}

/* Copyright */
.cpas-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 */
.cpas-home .footer-social .elementor-social-icons-wrapper {
  display: flex !important;
  gap: 9px !important;
  justify-content: flex-end !important;
}
.cpas-home .footer-social .elementor-grid-item {
  padding: 0 !important;
  margin: 0 !important;
}
.cpas-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;
}
.cpas-home .footer-social .elementor-social-icon i,
.cpas-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;
}
.cpas-home .footer-social .elementor-social-icon:hover {
  background: var(--orange) !important;
  background-color: var(--orange) !important;
  transform: translateY(-3px);
}
.cpas-home .footer-social .elementor-social-icon:hover i,
.cpas-home .footer-social .elementor-social-icon:hover svg {
  color: #fff !important;
  fill: #fff !important;
}

/* footer outer container */
.cpas-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;
}
.cpas-home .footer-in.e-con {
  max-width: 1200px;
  margin: 0 auto !important;
  width: 100%;
}

/* Back-to-top Icon widget */
.cpas-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;
}
.cpas-home .btt-icon.show {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: all !important;
}
.cpas-home .btt-icon .elementor-widget-container {
  padding: 0 !important;
}
.cpas-home .btt-icon .elementor-icon-wrapper {
  width: 44px !important;
  height: 44px !important;
}
.cpas-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;
}
.cpas-home .btt-icon:hover .elementor-icon {
  background: var(--primary-dark) !important;
  transform: translateY(-2px);
}
.cpas-home .btt-icon .elementor-icon i,
.cpas-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){
  .cpas-home .footer-grid.e-con > .e-con {
    flex: 0 0 calc(50% - 24px) !important;
    min-width: calc(50% - 24px) !important;
  }
}
@media(max-width:640px){
  .cpas-home .footer-grid.e-con > .e-con {
    flex: 0 0 100% !important;
    min-width: 100% !important;
  }
  .cpas-home .footer-bot.e-con {
    flex-direction: column !important;
    --flex-direction: column !important;
    align-items: flex-start !important;
    --align-items: flex-start !important;
  }
  .cpas-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 columns.
   5 colonnes : logo+legal | Services | Etablissements | Institution | Contact&horaires */
.cpas-home .footer-grid.e-con {
  display: grid !important;
  grid-template-columns: 1.2fr 1fr 1fr 1fr 1.1fr !important;
  gap: 40px !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. */
.cpas-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 */
.cpas-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 */
.cpas-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 */
.cpas-home .footer-desc,
.cpas-home .footer-desc *,
.cpas-home .footer-links-list,
.cpas-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){
  .cpas-home .footer-grid.e-con {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media(max-width:640px){
  .cpas-home .footer-grid.e-con {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

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

/* ===== HERO ===== */
.cpas-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;
}

.cpas-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;
}

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

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

/* hero h1 (Heading widget) */
.cpas-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 */
.cpas-home .hero-actions.e-con {
  --flex-direction: row !important;
  flex-direction: row !important;
  --gap: 12px;
  gap: 12px !important;
  flex-wrap: wrap;
  margin-bottom: 44px;
}
.cpas-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. */
.cpas-home .hero-actions .btn-primary .elementor-button,
.cpas-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;
}
.cpas-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;
}
.cpas-home .hero-actions .btn-primary .elementor-button:hover {
  background: var(--primary-dark) !important;
  transform: translateY(-3px);
}
.cpas-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;
}
.cpas-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 */
.cpas-home .hero-visual.e-con {
  position: relative !important;
  height: 680px;
  margin-right: -60px;
  --width: auto;
  width: auto !important;
}

/* hero-img-main: organic blob shape */
.cpas-home .hero-img-main.elementor-widget-image {
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  top: 0;
  right: 0;
}
.cpas-home .hero-img-main .elementor-widget-container,
.cpas-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){
  .cpas-home .hero-mobile-img.elementor-widget-image { display: none !important; }
}
@media(max-width:1024px){
  .cpas-home .hero-in.e-con { grid-template-columns: 1fr !important; }
  .cpas-home .hero-visual.e-con { display: none !important; }
  .cpas-home .hero-mobile-img.elementor-widget-image { display: block !important; }
  .cpas-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;
  }
  .cpas-home .hero.e-con { padding-bottom: 56px !important; min-height: auto; }
  .cpas-home .hero-content.e-con { padding-right: 0 !important; --padding-inline-end: 0; }
}

/* ===== INTEREST ===== */
.cpas-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;
}

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

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

.cpas-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 */
.cpas-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,80,90,.04), 0 4px 8px rgba(0,80,90,.05);
}
.cpas-home .icard.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.cpas-home .icard.e-con:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 2px 4px rgba(0,80,90,.06), 0 12px 32px rgba(0,80,90,.12);
  border-color: transparent !important;
}
/* Header heading (.icard-title) override */
.cpas-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;
}
.cpas-home .icard:hover .elementor-heading-title {
  color: var(--ic-color, var(--primary)) !important;
}
.cpas-home .icard:nth-child(1){--ic-color:#006E78}
.cpas-home .icard:nth-child(2){--ic-color:#7B2D8B}
.cpas-home .icard:nth-child(3){--ic-color:#F47B20}
.cpas-home .icard:nth-child(4){--ic-color:#C0392B}
.cpas-home .icard:nth-child(5){--ic-color:#004F58}
.cpas-home .icard:nth-child(6){--ic-color:#B36AC0}
.cpas-home .icard:nth-child(7){--ic-color:#00A8C6}
.cpas-home .icard:nth-child(8){--ic-color:#52B043}

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

/* ===== DARK BAND ===== */
.cpas-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;
}

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

.cpas-home .dark-etab-hdr.e-con {
  margin-bottom: 32px;
  --flex-direction: column;
}
.cpas-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;
}
.cpas-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;
}

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

.cpas-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;
}
.cpas-home .etab-card.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.cpas-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 */
.cpas-home .etab-card-img.elementor-widget-image {
  width: 100% !important;
}
.cpas-home .etab-card-img .elementor-widget-container,
.cpas-home .etab-card-img img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover;
}

.cpas-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;
}
.cpas-home .etab-card-body .elementor-heading-title {
  font-size: 1rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  margin: 0 0 6px 0 !important;
}
.cpas-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){
  .cpas-home .etab-grid.e-con { grid-template-columns: repeat(2,1fr) !important; }
}
@media(max-width:640px){
  .cpas-home .etab-grid.e-con { grid-template-columns: 1fr !important; }
  .cpas-home .dark-band.e-con { --padding-block-start: 56px; --padding-block-end: 56px; --padding-inline-start: 20px; --padding-inline-end: 20px; }
}

/* ===== NEWS ===== */
.cpas-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;
}

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

.cpas-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;
}
.cpas-home .news-feat.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.cpas-home .news-feat.e-con:hover {
  box-shadow: var(--shadow);
  transform: translateY(-4px);
  border-color: var(--primary-muted) !important;
}

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

.cpas-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;
}
.cpas-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;
}
.cpas-home .news-feat-body .elementor-widget-text-editor p {
  color: var(--text-soft) !important;
  font-size: .9rem !important;
  line-height: 1.65 !important;
}

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

.cpas-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;
}
.cpas-home .news-item.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.cpas-home .news-item.e-con:hover {
  border-color: var(--primary-muted) !important;
  transform: translateX(4px);
  box-shadow: var(--shadow-sm);
}
.cpas-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;
}
.cpas-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){
  .cpas-home .news-grid.e-con { grid-template-columns: 1fr !important; }
}

/* ===== FAQ ===== */
.cpas-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;
}
.cpas-home .faq-list-native .elementor-accordion {
  max-width: 780px;
}
.cpas-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;
}
.cpas-home .faq-list-native .elementor-accordion-item.elementor-active {
  border-color: var(--primary-muted) !important;
  box-shadow: 0 6px 24px rgba(0,110,120,.08);
}
.cpas-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;
}
.cpas-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;
}
.cpas-home .faq-list-native .elementor-active .elementor-tab-title .elementor-accordion-icon {
  background: var(--primary) !important;
  color: #fff !important;
}
.cpas-home .faq-list-native .elementor-accordion-icon svg {
  width: 16px;
  height: 16px;
  fill: currentColor !important;
}
.cpas-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 ===== */
.cpas-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;
}

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

.cpas-home .contact-wrap.e-con {
  background: linear-gradient(145deg, #004f58 0%, #00565f 40%, #004f58 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);
}

.cpas-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;
}

.cpas-home .contact-info.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  color: #fff !important;
  padding: 8px 0 !important;
}
.cpas-home .contact-info > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}
.cpas-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;
}
.cpas-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;
}

.cpas-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;
}
.cpas-home .c-row.e-con > .elementor-element {
  flex: 0 0 auto !important;
  --width: auto !important;
  width: auto !important;
}
.cpas-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;
}
.cpas-home .c-txt > .elementor-element { width: auto !important; --width: auto !important; }
.cpas-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;
}
.cpas-home .c-txt .elementor-widget-text-editor span,
.cpas-home .c-txt .elementor-widget-text-editor p {
  font-size: .82rem !important;
  color: rgba(255,255,255,.45) !important;
  margin: 0 !important;
}
.cpas-home .c-txt .elementor-widget-text-editor a {
  color: var(--primary-light) !important;
  font-weight: 600;
}
.cpas-home .c-txt .elementor-widget-text-editor a:hover {
  color: var(--orange) !important;
}

/* Contact-form (CF7) wrapper styling */
.cpas-home .contact-form.e-con {
  --flex-direction: column !important;
  flex-direction: column !important;
  padding: 4px 0 !important;
}
.cpas-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 */
.cpas-home .contact-form .elementor-widget-shortcode {
  width: 100%;
}

@media(max-width:1024px){
  .cpas-home .contact-grid.e-con { grid-template-columns: 1fr !important; }
  .cpas-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){
  .cpas-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) ===== */
.cpas-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;
}
.cpas-home .sec-in.e-con {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.cpas-home .sec-hdr.e-con {
  margin-bottom: 48px;
}
.cpas-home .sec-title .elementor-heading-title,
.cpas-home .interest-title .elementor-heading-title,
.cpas-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) */
.cpas-home .sec-hdr .elementor-widget-text-editor p,
.cpas-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).
   ============================================================ */

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

.cpas-home .hero > .elementor-element.elementor-widget-html,
.cpas-home .hero > .elementor-widget-html,
.cpas-home .hero > .elementor-element.elementor-widget-html > .elementor-widget-container,
.cpas-home .hero .elementor-element-hero_decor,
.cpas-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) */
.cpas-home .hero-visual .elementor-element-hero_dots_w,
.cpas-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 */
.cpas-home .hero-visual.e-con {
  position: relative !important;
  overflow: visible !important;
}

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

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

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

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

.cpas-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;
}

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

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

.cpas-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;
}

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

.cpas-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 */
.cpas-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 */
.cpas-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 */
.cpas-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. */
.cpas-home .faq-list-native .elementor-tab-title .elementor-accordion-icon > span.elementor-accordion-icon-closed,
.cpas-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;
}
.cpas-home .faq-list-native .elementor-tab-title .elementor-accordion-icon > span.elementor-accordion-icon-opened,
.cpas-home .faq-list-native .elementor-tab-title.elementor-active .elementor-accordion-icon > span.elementor-accordion-icon-closed {
  display: none !important;
}

.cpas-home .faq-list-native .elementor-tab-title .elementor-accordion-icon svg,
.cpas-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 */
.cpas-home .faq-list-native .elementor-tab-title a,
.cpas-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 */
.cpas-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 − */
.cpas-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;
}
.cpas-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. */
.cpas-home .faq-list-native .elementor-tab-title.elementor-active .elementor-accordion-icon-closed {
  display: none !important;
}
.cpas-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.
   ============================================================ */

.cpas-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;
}
.cpas-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;
}
.cpas-home .hub-card.e-con:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 40px rgba(0,80,90,.12);
  border-color: transparent !important;
}
.cpas-home .hub-card.e-con:hover::after { transform: scaleX(1); }
.cpas-home .hub-card.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
}

.cpas-home .hub-card-img-wrap.e-con {
  position: relative !important;
  height: 180px;
  overflow: hidden !important;
  --display: block;
  display: block !important;
  padding: 0 !important;
}
.cpas-home .hub-card-img-wrap.e-con > .elementor-widget-image {
  width: 100% !important;
  height: 100% !important;
}
.cpas-home .hub-card-img-wrap.e-con > .elementor-widget-image .elementor-widget-container,
.cpas-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);
}
.cpas-home .hub-card.e-con:hover .hub-card-img-wrap img {
  transform: scale(1.04);
}
.cpas-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;
}

.cpas-home .hub-card-img-wrap .elementor-widget-text-editor {
  position: absolute !important;
  top: 14px;
  left: 14px;
  z-index: 2;
  width: auto !important;
}
.cpas-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));
}

.cpas-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;
}
.cpas-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;
}
.cpas-home .hub-card.e-con:hover .hub-card-body .elementor-heading-title {
  color: var(--hub-color, var(--primary)) !important;
}
.cpas-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;
}
.cpas-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);
}
.cpas-home .hub-card.e-con:hover .hub-card-link {
  gap: 10px;
}
.cpas-home .hub-card.e-con:hover .hub-card-link span {
  transform: translateX(4px);
}
.cpas-home .hub-card-body .hub-card-link span {
  transition: transform .3s var(--transition);
}

.cpas-home .aide-grid.e-con {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  --gap: 24px;
}
@media(max-width:1024px){
  .cpas-home .aide-grid.e-con { grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; }
}
@media(max-width:640px){
  .cpas-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. */
.cpas-home .aide-grid.soins-grid-2col.e-con,
.cpas-home .soins-grid-2col.e-con {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 24px !important;
}
@media(max-width:640px){
  .cpas-home .soins-grid-2col.e-con {
    grid-template-columns: 1fr !important;
  }
}

.cpas-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);
}
.cpas-home .aide-sec-in.e-con {
  max-width: 1100px !important;
  margin: 0 auto !important;
}

.cpas-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;
}
.cpas-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;
}
.cpas-home .aide-hero-in.e-con > .elementor-element {
  width: 100% !important;
  --width: 100% !important;
  text-align: center;
}
.cpas-home .aide-hero .elementor-heading-title {
  font-family: var(--font-editorial) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.8rem) !important;  /* 5C: aligné sur le hero standard */
  font-weight: 800 !important;
  color: var(--navy) !important;
  line-height: 1.1 !important;
  letter-spacing: -.5px !important;
  margin: 0 0 16px 0 !important;
  text-align: center !important;
}
.cpas-home .aide-hero .elementor-heading-title .hl {
  color: var(--primary) !important;
  font-style: italic;
}
.cpas-home .aide-hero .breadcrumb {
  margin-bottom: 20px;
}

.cpas-home .aide-hero > .elementor-widget-html.elementor-element-hero_decor,
.cpas-home .aide-hero > .elementor-widget-html.elementor-element-hero_decor > .elementor-widget-container,
.cpas-home .aide-hero .elementor-element-hero_decor,
.cpas-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 */
.cpas-home .hub-card-c0 { --hub-color: #006E78; }
.cpas-home .hub-card-c1 { --hub-color: #9A4607; }
.cpas-home .hub-card-c2 { --hub-color: #7B2D8B; }
.cpas-home .hub-card-c3 { --hub-color: #00738A; }
.cpas-home .hub-card-c4 { --hub-color: #357A1E; }
.cpas-home .hub-card-c5 { --hub-color: #C0392B; }
.cpas-home .hub-card-c6 { --hub-color: #004F58; }
.cpas-home .hub-card-c7 { --hub-color: #8E44AD; }

/* ============================================================
   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 */
.cpas-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. */
.cpas-home .wave-sep {
  height: auto !important;
  min-height: 60px;
}
.cpas-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 */
.cpas-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. */
.cpas-home .wave-sep {
  margin: 0;  /* base, no !important */
}
.cpas-home .wave-sep[style*="margin-top"] {
  /* let inline style win */
}

/* Make sure wave-sep-wrap has no padding/margin that forces a fixed height */
.cpas-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: .cpas-home .wave-sep[style*="..."] beats
   .cpas-home .wave-sep on attribute-presence + same class count.
   ============================================================ */
.cpas-home .wave-sep[style*="margin-top:-60px"] {
  margin-top: -60px !important;
}
.cpas-home .wave-sep[style*="margin-top:-80px"] {
  margin-top: -80px !important;
  height: auto !important;
  min-height: 80px;
  overflow: hidden !important;
}
.cpas-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. */
.cpas-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.
   ============================================================ */

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

.cpas-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. */
.cpas-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;
}
.cpas-home .stretched-link-widget .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none;
}
.cpas-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. */
.cpas-home .icard > .elementor-element,
.cpas-home .hub-card > .elementor-element,
.cpas-home .news-item > .elementor-element,
.cpas-home .news-feat > .elementor-element,
.cpas-home .etab-card > .elementor-element,
.cpas-home .sit-card > .elementor-element {
  position: relative;
  z-index: 1;
  pointer-events: none;  /* let clicks bubble to stretched-link */
}
.cpas-home .icard a,
.cpas-home .hub-card a,
.cpas-home .news-item a,
.cpas-home .news-feat a,
.cpas-home .etab-card a,
.cpas-home .sit-card a,
.cpas-home .icard button,
.cpas-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. */
.cpas-home{--text-muted:#3A565D}

/* 2. --orange-dark: #C85E0A (3.79:1 on #fef3e8) → darken text use. */
.cpas-home .orange-dark-text,
.cpas-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). */
.cpas-home .footer{color:rgba(255,255,255,.92)}
.cpas-home .footer-bot{color:rgba(255,255,255,.85)}
.cpas-home .page-hero-sub{color:rgba(255,255,255,.92)}
.cpas-home .page-hero .breadcrumb{color:rgba(255,255,255,.85)}
.cpas-home .page-hero .breadcrumb a{color:rgba(255,255,255,.92)}
.cpas-home .aide-hero .breadcrumb{color:#54737B}
.cpas-home .aide-hero .breadcrumb a{color:#3a5860}
.cpas-home .cta-banner p{color:rgba(255,255,255,.92)}
.cpas-home .contact-info .c-sub{color:rgba(255,255,255,.85)}
.cpas-home .c-txt span{color:rgba(255,255,255,.85)}
.cpas-home .fg label{color:rgba(255,255,255,.92)}
.cpas-home .fg input::placeholder,
.cpas-home .fg textarea::placeholder{color:rgba(255,255,255,.65)}

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

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

/* 6. Footer logo subtitle: was rgba(255,255,255,.4) ratio 2.8 → boost to .85 */
.cpas-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 */
.cpas-home .news-tag-orange{color:#9A4607 !important}
.cpas-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. */
.cpas-home .elementor-accordion-title,
.cpas-home .elementor-tab-title:not(.elementor-active) .elementor-accordion-title{
  color:var(--navy, #1C2833) !important;
}
.cpas-home .elementor-tab-title.elementor-active .elementor-accordion-title{
  color:var(--primary-dark, #004F58) !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. */
.cpas-home .acc-card-cur h3{color:#9A4607 !important}

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

/* 11. Footer "Engagement accessibilité" h4 — Elementor inline style sets primary-light (#00A8C6).
       On dark-teal footer bg ratio 3.28. Force white. */
.cpas-home .footer .elementor-heading-title,
.cpas-home .elementor-element-ftr_a11y .elementor-heading-title{
  color:#fff !important;
}
.cpas-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. */
.cpas-home .contact-info .elementor-widget-text-editor p,
.cpas-home .contact-info p,
.cpas-home .contact-info .c-sub{color:rgba(255,255,255,.92) !important}
.cpas-home .contact-info .c-txt span,
.cpas-home .c-row .c-txt span{color:rgba(255,255,255,.92) !important}
.cpas-home .c-txt a{color:rgba(255,255,255,.95) !important;text-decoration:underline}
.cpas-home .c-txt a:hover{color:#fff !important}

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

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

/* 15. Default global brand colors used as text on white — must pass AA */
.cpas-home a{color:var(--primary-dark, #004f58)}
.cpas-home a:hover{color:var(--primary, #006e78)}

/* 16. Form field borders (was #19666E on #00555E ratio 1.3:1) — increase. */
.cpas-home .fg input,
.cpas-home .fg select,
.cpas-home .fg textarea{border-color:rgba(255,255,255,.4) !important}
.cpas-home .fg input:focus,
.cpas-home .fg select:focus,
.cpas-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. */
.cpas-home .elementor-tab-content[aria-hidden="true"]{display:none !important}
.cpas-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. */
.cpas-home a:focus-visible,
.cpas-home button:focus-visible,
.cpas-home [role="button"]:focus-visible,
.cpas-home input:focus-visible,
.cpas-home select:focus-visible,
.cpas-home textarea:focus-visible,
.cpas-home .elementor-tab-title:focus-visible{
  outline:3px solid var(--primary, #006e78) !important;
  outline-offset:2px !important;
  border-radius:4px;
  z-index:5;
}
/* FAQ + accordion focus visible — explicit */
.cpas-home .cpas-acc-modern .elementor-tab-title:focus-visible{
  outline:3px solid var(--primary, #006e78) !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). */
.cpas-home .text-orange,
.cpas-home a.text-orange{color:#9A4607 !important}     /* orange-dark text */
.cpas-home .text-primary-light{color:#005F70 !important}  /* darken cyan */
.cpas-home .text-green{color:#3A7C2A !important}          /* green darken */
.cpas-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.
       NB (26030, 2026-06-22) : le vrai header fixe est .hdr-wrap (pas .hdr.sticky) ;
       on le dé-fixe (static) et on réduit l'offset/padding-top des héros pour éviter
       un grand vide en haut une fois le header revenu dans le flux. */
@media (max-width: 1280px) and (max-height: 384px) {
  /* min-height < 384px @ 1280px = roughly 400% zoom on a 1280×1024 base */
  .cpas-home .hdr-wrap,
  .cpas-home .hdr-wrap.e-con{position:static !important;top:auto !important}
  /* anciens sélecteurs conservés par sécurité (HFE/sticky natifs) */
  .cpas-home .header-fixed,
  .cpas-home .ehf-header.sticky,
  .cpas-home header.sticky,
  .cpas-home .hdr.sticky{position:static !important}
  .cpas-home .footer.sticky{position:static !important}
  /* header désormais dans le flux → l'espace réservé par les héros n'est plus utile */
  .cpas-home .page-hero,
  .cpas-home .aide-hero{padding-top:28px !important}
  html{scroll-padding-top:12px !important}
}

/* 21. Reduced motion — respect user preference. */
@media (prefers-reduced-motion: reduce) {
  .cpas-home *,
  .cpas-home *::before,
  .cpas-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).                                     */
/* ============================================================ */
.cpas-home .elementor-accordion-icon-opened{display:none !important}
.cpas-home .elementor-accordion-icon-closed{display:inline-block !important}
.cpas-home .elementor-tab-title.elementor-active .elementor-accordion-icon-closed{display:none !important}
.cpas-home .elementor-tab-title.elementor-active .elementor-accordion-icon-opened{display:inline-block !important}
.cpas-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. */
.cpas-home .elementor-element-slnews_feat,
.cpas-home [class*="elementor-element-slnews_item"]{
  display:contents !important;
}
.cpas-home .elementor-element-slnews_feat > .elementor-widget-container,
.cpas-home [class*="elementor-element-slnews_item"] > .elementor-widget-container{
  display:contents !important;
}

/* ============================================================ */
/* SINGLE POST — typographic identity for blog articles          */
/* Targets body.single-post (cpas-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.cpas-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.cpas-home main .elementor-widget-heading h2.elementor-heading-title::after{
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, var(--primary, #006e78), var(--primary-light, #00A8C6));
  border-radius: 2px;
  position: absolute;
  bottom: 0;
  left: 0;
}

/* H3 in article body : Montserrat, weight 700, navy-dark, smaller, eyebrow-style */
body.single-post.cpas-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, #006e78);
}

/* Body paragraphs — better readability */
body.single-post.cpas-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.cpas-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.cpas-home main .elementor-widget-text-editor ol,
body.single-post.cpas-home main .elementor-widget-text-editor ul{
  margin: 8px 0 24px;
  padding: 0;
  list-style: none;
  counter-reset: art-counter;
}
body.single-post.cpas-home main .elementor-widget-text-editor ol > li,
body.single-post.cpas-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.cpas-home main .elementor-widget-text-editor ol{
  counter-reset: art-counter;
}
body.single-post.cpas-home main .elementor-widget-text-editor ol > li{
  counter-increment: art-counter;
}
body.single-post.cpas-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, #006e78);
  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.cpas-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, #006e78);
}

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

/* Subtle paragraph emphasis — first paragraph after H1 (intro) */
body.single-post.cpas-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.cpas-home main .elementor-widget-text-editor{
  margin-bottom: 12px !important;
}

/* Constrain reading width on desktop */
@media (min-width: 1024px){
  body.single-post.cpas-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.cpas-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.cpas-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.cpas-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.cpas-home main .elementor-widget-image:hover img{
  transform: scale(1.02);
}
@media (max-width: 768px){
  body.single-post.cpas-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)            */
/* ============================================================ */
.cpas-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 */
.cpas-home .timeline::before{
  content: "";
  position: absolute;
  left: 53px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: linear-gradient(180deg, var(--primary, #006e78) 0%, var(--primary-light, #00A8C6) 50%, rgba(0,168,198,.15) 100%);
  border-radius: 2px;
  z-index: 0;
}
/* Each step row : number on left, content card on right */
.cpas-home .timeline .t-step,
.cpas-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;
}
.cpas-home .timeline .t-step > .elementor-element-populated{
  width: auto;
}
/* Number badge — gradient circle */
.cpas-home .timeline .t-num{
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary, #006e78), var(--primary-dark, #004F58));
  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 */
.cpas-home .timeline .t-step > .elementor-widget:has(.t-num){
  flex: 0 0 auto;
  width: 48px;
}
/* The widget container around .t-num should be transparent */
.cpas-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 */
.cpas-home .timeline .t-content,
.cpas-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);
}
.cpas-home .timeline .t-step:hover .t-content{
  transform: translateY(-2px);
  box-shadow: var(--shadow, 0 12px 32px rgba(0,80,90,.10));
  border-color: var(--primary-muted, #A8DDE5);
}
/* Step heading */
.cpas-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;
}
.cpas-home .timeline .t-emoji{
  font-size: 1.4rem;
  line-height: 1;
}
/* Step description */
.cpas-home .timeline .t-content .elementor-widget-text-editor p{
  font-size: .98rem;
  color: var(--text-soft, #4A6670);
  line-height: 1.7;
  margin: 0;
}
.cpas-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 */
.cpas-home .timeline .t-tip{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: var(--primary-pale, #D4F0F5);
  border-left: 3px solid var(--primary, #006e78);
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 8px;
  font-size: .9rem;
  color: var(--primary-dark, #004F58);
  line-height: 1.6;
}
.cpas-home .timeline .t-tip svg{
  flex: 0 0 auto;
  color: var(--primary, #006e78);
  margin-top: 2px;
}
.cpas-home .timeline .t-tip a{
  color: var(--primary-dark, #004F58);
  font-weight: 700;
  text-decoration: underline;
}
@media (max-width: 768px){
  .cpas-home .timeline{padding-left: 0}
  .cpas-home .timeline::before{left: 23px}
  .cpas-home .timeline .t-step,
  .cpas-home .timeline .t-step.e-con{ gap: 16px !important }
  .cpas-home .timeline .t-num{width: 40px; height: 40px; font-size: 1rem}
  .cpas-home .timeline .t-content,
  .cpas-home .timeline .t-content.e-con{padding: 18px 20px !important}
  .cpas-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) */
.cpas-home .elementor-widget-text-editor p,
.cpas-home .elementor-tab-content p,
.cpas-home .elementor-tab-content li,
.cpas-home main p,
.cpas-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. */
.cpas-home .page-hero-sub,
.cpas-home .sec-desc,
.cpas-home .mission-text p,
.cpas-home .sec-hdr > .elementor-widget-text-editor p,
.cpas-home main .elementor-tab-content,
.cpas-home main .elementor-tab-content p,
.cpas-home main .elementor-tab-content li,
.cpas-home .liens-group p,
.cpas-home .liens-group li,
.cpas-home .news-feat-body p,
.cpas-home .news-item p,
body.single-post.cpas-home main .elementor-widget-text-editor p,
body.single-post.cpas-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é */
.cpas-home .sec-desc,
.cpas-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. */
.cpas-home main p:not(:last-child),
.cpas-home main li:not(:last-child),
.cpas-home .elementor-widget-text-editor p:not(:last-child),
.cpas-home .elementor-tab-content p:not(:last-child),
.cpas-home .elementor-tab-content li:not(:last-child){
  margin-bottom: 1.5em;
}

/* Listes : line-height + spacing dans le contenu de lecture */
.cpas-home main .elementor-tab-content ul li,
.cpas-home main .elementor-tab-content ol li,
body.single-post.cpas-home main .elementor-widget-text-editor ul li,
body.single-post.cpas-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) */
.cpas-home main p,
.cpas-home main li{
  text-align-last: auto;
}
.cpas-home main p{
  hyphens: auto;
}

/* Switcher de langue dans header — intégré au nav-d */
.hdr .nav-d .cpas-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 .cpas-lang-switcher-widget .elementor-widget-container{
  display: flex;
  align-items: center;
}
.cpas-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;
}
.cpas-lang-switcher .cpas-lang-current{
  color: var(--primary, #006E78);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
}
.cpas-lang-switcher .cpas-lang-link{
  color: var(--text-soft, #3A565D);
  text-decoration: none;
  transition: color .2s;
}
.cpas-lang-switcher .cpas-lang-link:hover,
.cpas-lang-switcher .cpas-lang-link:focus-visible{
  color: var(--primary, #006E78);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
}
.cpas-lang-switcher .cpas-lang-sep{
  color: var(--border-strong, #B8CFD3);
}

/* Switcher de langue : padding compact (a.ndakwizeye, 2026-06-01).
   Override la regle generique .cpas-home .nav-d a (qui met 7px 14px)
   par spec (0,3,1 > 0,2,1) sans avoir besoin de !important. */
.cpas-home .nav-d a.cpas-lang-link {
  padding: 7px 5px;
}

/* Eng-card buttons — texte plus petit pour 3 boutons cohérents */
.cpas-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. */
.cpas-home .sec.sec-on-soft.e-con.elementor-element-home_engagement{
  --padding-block-end: 56px !important;   /* 12/06 : +respiration avant la FAQ (retour client) */
  padding-block-end: 56px !important;
  padding-bottom: 56px !important;
}
.cpas-home .sec.faq-bg.e-con.elementor-element-sec_faq{
  --padding-block-start: 56px !important;  /* 12/06 : +respiration (retour client) */
  padding-block-start: 56px !important;
  padding-top: 56px !important;
}
/* Masquer complètement le wave4 — transition directe entre sections */
.cpas-home .wave-sep-wrap.e-con.elementor-element-cwave4{
  display: none !important;
}

/* ============================================================
   FIX accessibilité icônes .eng-card (DAS audit, juin 2026)
   Les pastilles .cpas-icon[data-cat=X] du mu-plugin emoji-to-lucide
   créent un double background coloré dans les .eng-card.
   On uniformise : .eng-ico garde sa pastille turquoise pâle,
   .cpas-icon devient transparent + couleur stroke = primary.
   ============================================================ */
/* (Inversé 12/06, retour client "monochrome et moche" : la pastille COLORÉE
   du mu-plugin redevient visible ; c'est le conteneur .eng-ico qui perd son
   fond pâle — toujours pas de double fond.) */
.cpas-home .eng-card .eng-ico {
  background: transparent !important;
  box-shadow: none !important;
}
.cpas-home .eng-card .cpas-icon,
.cpas-home .eng-card .cpas-icon[data-cat] {
  width: 35px !important;  /* 12/06 retour client : 45 -> 35px */
  height: 35px !important;
  vertical-align: middle !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-bottom: 10px !important; /* l'icône ne colle plus au texte */
}
.cpas-home .eng-card .cpas-icon svg {
  width: 55% !important;
  height: 55% !important;
  fill-opacity: 0 !important;
}

/* WCAG : harmoniser la typographie dans les .eng-card */
.cpas-home .eng-card .eng-content strong {
  font-size: 1.05rem;
  margin-bottom: 8px;
}
.cpas-home .eng-card .eng-content p {
  font-size: 0.92rem;
  line-height: 1.55;
  margin: 0 0 6px 0;
}
.cpas-home .eng-card .eng-content p:last-child {
  margin-bottom: 0;
}

/* ============================================================
   CALLOUTS — encarts d'attention / important (DAS, juin 2026)
   Utilises sur les pages Adresse de reference, RI, Soins, etc.
   Conformes WCAG : contraste >= 4.5:1, role=note, semantique aside
   ============================================================ */
.cpas-callout {
  display: block;
  margin: 28px 0;
  padding: 18px 22px 18px 60px;
  border-radius: 12px;
  position: relative;
  /* border-left supprimée (retour client 12/06 : effet daté) */
  font-size: 0.95rem;
  line-height: 1.55;
}
.cpas-callout::before {
  position: absolute;
  left: 18px;
  top: 18px;
  font-size: 1.4rem;
  line-height: 1;
  display: block;
}
.cpas-callout-title {
  display: block;
  font-size: 1.02rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.cpas-callout p {
  margin: 0;
}
.cpas-callout p + p {
  margin-top: 8px;
}

/* Warning : amber, pour attirer l'attention */
.cpas-callout-warning {
  background: #fff8e6;
  color: #6b3a00;
}
.cpas-callout-warning::before { content: "⚠" / ""; color: #d97706; }
.cpas-callout-warning .cpas-callout-title { color: #6b3a00; }

/* Important : turquoise CPAS, pour souligner une regle majeure */
.cpas-callout-important {
  background: #e6f7f6;
  color: #0a3a38;
}
.cpas-callout-important::before { content: "ⓘ" / ""; color: var(--primary, #0d8581); font-weight: 700; }
.cpas-callout-important .cpas-callout-title { color: var(--primary, #0d8581); }

/* Tip : vert frais, pour une astuce ou une info utile */
.cpas-callout-tip {
  background: #ecfdf5;
  color: #064e3b;
}
.cpas-callout-tip::before { content: "💡" / ""; }
.cpas-callout-tip .cpas-callout-title { color: #047857; } /* a11y : 5,2:1 sur #ecfdf5 (#059669 = 3,57) */

/* ============================================================
   ADREF (Adresse de reference) — sections didactiques
   Cible : .elementor-element-adref_info (FR) + .elementor-element-refadr_info (NL)
   Independant de css_classes (qui n'est pas applique en wrapper Elementor)
   ============================================================ */
/* H3 turquoise des sections */
.elementor-element-adref_info .sec-in > .elementor-widget-heading:not(.sec-hdr *) .elementor-heading-title,
.elementor-element-refadr_info .sec-in > .elementor-widget-heading:not(.sec-hdr *) .elementor-heading-title,
.elementor-element-etu_info .sec-in > .elementor-widget-heading:not(.sec-hdr *) .elementor-heading-title,
.elementor-element-stu_info .sec-in > .elementor-widget-heading:not(.sec-hdr *) .elementor-heading-title {
  font-size: 1.45rem !important;
  font-weight: 700 !important;
  color: var(--primary, #0d8581) !important;
  margin-top: 36px !important;
  margin-bottom: 14px !important;
  line-height: 1.3 !important;
}
/* Body text + listes : on cible tout text-editor enfant de adref_info_in/refadr_info_in */
.elementor-element-adref_info .elementor-widget-text-editor,
.elementor-element-refadr_info .elementor-widget-text-editor,
.elementor-element-etu_info .elementor-widget-text-editor,
.elementor-element-stu_info .elementor-widget-text-editor {
  font-size: 1rem;
  line-height: 1.7;
  color: #1f2937;
}
.elementor-element-adref_info .elementor-widget-text-editor p,
.elementor-element-refadr_info .elementor-widget-text-editor p,
.elementor-element-etu_info .elementor-widget-text-editor p,
.elementor-element-stu_info .elementor-widget-text-editor p {
  margin: 0 0 12px 0;
}
/* Force bullets : surcharge le reset Hello Elementor / Elementor */
.elementor-element-adref_info .elementor-widget-text-editor ul,
.elementor-element-refadr_info .elementor-widget-text-editor ul,
.elementor-element-etu_info .elementor-widget-text-editor ul,
.elementor-element-stu_info .elementor-widget-text-editor ul {
  margin: 8px 0 18px 0 !important;
  padding-left: 1.7em !important;
  list-style: disc outside !important;
}
.elementor-element-adref_info .elementor-widget-text-editor ul li,
.elementor-element-refadr_info .elementor-widget-text-editor ul li,
.elementor-element-etu_info .elementor-widget-text-editor ul li,
.elementor-element-stu_info .elementor-widget-text-editor ul li {
  display: list-item !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.55 !important;
  padding-left: 4px !important;
}
.elementor-element-adref_info .elementor-widget-text-editor ul li::marker,
.elementor-element-refadr_info .elementor-widget-text-editor ul li::marker,
.elementor-element-etu_info .elementor-widget-text-editor ul li::marker,
.elementor-element-stu_info .elementor-widget-text-editor ul li::marker {
  color: var(--primary, #0d8581) !important;
  font-weight: 700;
}
.elementor-element-adref_info .elementor-widget-text-editor ul + p,
.elementor-element-refadr_info .elementor-widget-text-editor ul + p,
.elementor-element-etu_info .elementor-widget-text-editor ul + p,
.elementor-element-stu_info .elementor-widget-text-editor ul + p {
  margin-top: 18px !important;
}
/* Source link italic */
.elementor-element-adref_info .adref-source,
.elementor-element-refadr_info .adref-source,
.elementor-element-etu_info .adref-source,
.elementor-element-stu_info .adref-source {
  font-style: italic;
  font-size: 0.92rem;
  color: #475569;
  margin-top: 18px !important;
}
.elementor-element-adref_info .adref-source a,
.elementor-element-refadr_info .adref-source a,
.elementor-element-etu_info .adref-source a,
.elementor-element-stu_info .adref-source a {
  color: var(--primary, #0d8581);
  text-decoration: underline;
}
/* Notes en aside avec fleche */
.elementor-element-adref_info .adref-note,
.elementor-element-refadr_info .adref-note,
.elementor-element-etu_info .adref-note,
.elementor-element-stu_info .adref-note {
  background: #f1f5f4;
  border-left: 3px solid var(--primary, #0d8581);
  padding: 10px 14px;
  margin: 14px 0 18px 0 !important;
  font-size: 0.94rem;
  border-radius: 0 6px 6px 0;
}
.elementor-element-adref_info .adref-note::before,
.elementor-element-refadr_info .adref-note::before,
.elementor-element-etu_info .adref-note::before,
.elementor-element-stu_info .adref-note::before {
  content: "→ " / "";
  color: var(--primary, #0d8581);
  font-weight: 700;
}

/* ============================================================
   Extension generique : applique le styling adref a TOUTES les sections
   dont l'ID Elementor se termine par _info. Plus simple a maintenir
   que de lister chaque page.
   ============================================================ */
[class*="elementor-element-"][class*="_info"] .sec-in > .elementor-widget-heading:not(.sec-hdr *) .elementor-heading-title {
  font-size: 1.45rem !important;
  font-weight: 700 !important;
  color: var(--primary, #0d8581) !important;
  margin-top: 36px !important;
  margin-bottom: 14px !important;
  line-height: 1.3 !important;
}
[class*="elementor-element-"][class*="_info"] .elementor-widget-text-editor {
  font-size: 1rem;
  line-height: 1.7;
  color: #1f2937;
}
[class*="elementor-element-"][class*="_info"] .elementor-widget-text-editor p {
  margin: 0 0 12px 0;
}
[class*="elementor-element-"][class*="_info"] .elementor-widget-text-editor ul {
  margin: 8px 0 18px 0 !important;
  padding-left: 1.7em !important;
  list-style: disc outside !important;
}
[class*="elementor-element-"][class*="_info"] .elementor-widget-text-editor ul li {
  display: list-item !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.55 !important;
  padding-left: 4px !important;
}
[class*="elementor-element-"][class*="_info"] .elementor-widget-text-editor ul li::marker {
  color: var(--primary, #0d8581) !important;
  font-weight: 700;
}
[class*="elementor-element-"][class*="_info"] .elementor-widget-text-editor ul + p {
  margin-top: 18px !important;
}
[class*="elementor-element-"][class*="_info"] .adref-source {
  font-style: italic;
  font-size: 0.92rem;
  color: #475569;
  margin-top: 18px !important;
}
[class*="elementor-element-"][class*="_info"] .adref-source a {
  color: var(--primary, #0d8581);
  text-decoration: underline;
}
[class*="elementor-element-"][class*="_info"] .adref-note {
  background: #f1f5f4;
  border-left: 3px solid var(--primary, #0d8581);
  padding: 10px 14px;
  margin: 14px 0 18px 0 !important;
  font-size: 0.94rem;
  border-radius: 0 6px 6px 0;
}
[class*="elementor-element-"][class*="_info"] .adref-note::before {
  content: "→ " / "";
  color: var(--primary, #0d8581);
  font-weight: 700;
}

/* ============================================================
   FAQ accordions natifs <details>/<summary>
   Utilisés sur la page Exclusion chômage NL et autres FAQ
   ============================================================ */
.cpas-faq {
  margin: 0 0 12px 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}
.cpas-faq summary {
  cursor: pointer;
  padding: 14px 18px;
  font-weight: 600;
  color: #1f2937;
  list-style: none;
  position: relative;
  padding-right: 48px;
  font-size: 1rem;
  line-height: 1.4;
}
.cpas-faq summary::-webkit-details-marker { display: none; }
.cpas-faq summary::after {
  content: "+";
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background: var(--primary, #0d8581);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  transition: transform 0.15s ease;
}
.cpas-faq[open] summary::after {
  content: "−";
  transform: translateY(-50%) rotate(180deg);
}
.cpas-faq summary:hover {
  background: #f9fafb;
}
.cpas-faq summary:focus-visible {
  outline: 2px solid var(--primary, #0d8581);
  outline-offset: -2px;
}
.cpas-faq-answer {
  padding: 0 18px 16px 18px;
  border-top: 1px solid #f3f4f6;
  color: #374151;
  font-size: 0.95rem;
  line-height: 1.6;
}
.cpas-faq-answer p {
  margin: 12px 0;
}
.cpas-faq-answer p:first-child { margin-top: 12px; }
.cpas-faq-answer p:last-child { margin-bottom: 0; }
.cpas-faq-answer a {
  color: var(--primary, #0d8581);
  text-decoration: underline;
}
.cpas-faq-answer strong {
  color: #111827;
}

/* ============================================================
   HOTFIX nav-d position - InstaWP migration (Jun 2026)
   Le FIX v3 (ligne ~1319) commentait "position:absolute SUPPRIME"
   mais ne mettait pas reellement la regle position. Re-fix ici
   en fin de fichier pour avoir la priorite de cascade.
   ============================================================ */
.cpas-home .nav-d.e-con {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  margin-left: auto !important;
}

/* ============================================================
   CPAS-3 : Label écodynamique footer plus lisible (Jun 2026)
   Le client trouvait l'image trop petite (80x80)
   ============================================================ */
.cpas-home .elementor-element-ftr_ecodyn img,
.cpas-home .ftr_ecodyn img {
  /* 12/06 : badge sous le logo CPAS, largeur alignée sur l'image du logo (240px),
     carte blanche comme le logo (textes sombres illisibles sur le teal du footer) */
  max-width: 240px !important;
  width: 240px !important;
  height: auto !important;
  background: #fff;
  border-radius: 12px;
  padding: 12px 16px;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .cpas-home .elementor-element-ftr_ecodyn img,
  .cpas-home .ftr_ecodyn img {
    max-width: 120px !important;
    width: 120px !important;
  }
}

/* ============================================================
   CPAS-3 (suite) : Fond blanc autour du logo footer pour lisibilité
   sur background teal sombre
   ============================================================ */
.cpas-home .elementor-element-ftr_logo {
  background: #ffffff;
  padding: 14px 22px 10px 22px;
  border-radius: 14px;
  display: inline-block !important;
  width: auto !important;
  max-width: 280px;
  margin-bottom: 18px;
}
.cpas-home .elementor-element-ftr_logo > .elementor-widget-container {
  display: inline-block;
  width: auto;
}
.cpas-home .elementor-element-ftr_logo img {
  height: 64px !important;
  width: auto !important;
  max-width: 100% !important;
  filter: none !important;
  opacity: 1 !important;
}

/* ============================================================
   CPAS-11 : Vidéos Lise Thiry format 16:9 garanti (Jun 2026)
   ============================================================ */
.cpas-home .elementor-element-lt_videos_c1_v video,
.cpas-home .elementor-element-lt_videos_c2_v video,
.cpas-home [data-id^="lt_videos_"] video {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: cover;
  display: block;
}
.cpas-home [data-id^="lt_videos_"] .elementor-wrapper {
  width: 100%;
  aspect-ratio: 16 / 9;
}

/* ============================================================
   CPAS-9 : Uniformiser typographie cards "2 types d'accompagnement"
   sur toutes les pages DAS (Jun 2026)
   - Médiation, Insertion sociale, Emploi, Énergie, etc.
   ============================================================ */
.cpas-home .acc-card h3,
.cpas-home .acc-card .elementor-heading-title,
.cpas-home .acc-card-prev .elementor-heading-title,
.cpas-home .acc-card-cur .elementor-heading-title {
  font-size: 1.25rem !important;     /* ~20px */
  font-weight: 700 !important;
  line-height: 1.3 !important;
  margin: 0 0 6px 0 !important;
  color: var(--navy, #1f2937) !important;
}
.cpas-home .acc-card .elementor-widget-text-editor p,
.cpas-home .acc-card-prev .elementor-widget-text-editor p,
.cpas-home .acc-card-cur .elementor-widget-text-editor p {
  font-size: 0.92rem !important;     /* ~14.7px */
  line-height: 1.5 !important;
  color: var(--text-soft, #475569) !important;
  margin: 0 0 14px 0 !important;
  font-weight: 400 !important;
  font-style: normal;
}
.cpas-home .acc-card ul,
.cpas-home .acc-card-prev ul,
.cpas-home .acc-card-cur ul,
.cpas-home .acc-card .acc-list,
.cpas-home .acc-card-prev .acc-list,
.cpas-home .acc-card-cur .acc-list {
  margin: 8px 0 0 0 !important;
  padding-left: 1.4em !important;
  list-style: disc outside !important;
  font-size: 0.92rem !important;     /* ~14.7px */
  line-height: 1.55 !important;
}
.cpas-home .acc-card ul li,
.cpas-home .acc-card-prev ul li,
.cpas-home .acc-card-cur ul li,
.cpas-home .acc-card .acc-list li,
.cpas-home .acc-card-prev .acc-list li,
.cpas-home .acc-card-cur .acc-list li {
  font-size: 0.92rem !important;     /* PASSE DE 22px à ~14.7px */
  line-height: 1.55 !important;
  margin: 0 0 6px 0 !important;
  color: var(--text, #1f2937) !important;
  display: list-item !important;
}
.cpas-home .acc-card ul li::marker,
.cpas-home .acc-card-prev ul li::marker,
.cpas-home .acc-card-cur ul li::marker {
  color: var(--primary, #0d8581);
}
/* Sub-titre (sous le titre principal) : un peu plus clair */
.cpas-home .acc-card-prev .elementor-widget-text-editor:first-of-type,
.cpas-home .acc-card-cur .elementor-widget-text-editor:first-of-type,
.cpas-home .acc-card .elementor-widget-text-editor:first-of-type {
  margin-bottom: 12px !important;
}
.cpas-home .acc-card-prev .elementor-widget-text-editor:first-of-type p,
.cpas-home .acc-card-cur .elementor-widget-text-editor:first-of-type p,
.cpas-home .acc-card .elementor-widget-text-editor:first-of-type p {
  font-size: 0.95rem !important;
  color: var(--primary, #0d8581) !important;
  font-weight: 600 !important;
  font-style: italic;
}

/* ============================================================
   CPAS-13 : Section calendrier sur la home (Jun 2026)
   ============================================================ */
.cpas-home .sec-calendar { padding: 80px 24px; }
.cpas-home .cpas-calendar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 32px;
}
@media (max-width: 1024px) {
  .cpas-home .cpas-calendar-grid { grid-template-columns: 1fr; gap: 18px; }
}
.cpas-home .cpas-cal-card {
  background: #fff;
  border-radius: 16px;
  padding: 28px 26px 22px 26px;
  box-shadow: 0 4px 16px rgba(0, 80, 90, 0.08);
  /* border-top supprimée (retour client 12/06 : bordures colorées datées) */
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.cpas-home .cpas-cal-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 80, 90, 0.14);
}
/* variantes border-top retirées (retour client 12/06) — les pills colorées suffisent à différencier */
.cpas-home .cpas-cal-head { margin-bottom: 18px; }
.cpas-home .cpas-cal-pill {
  display: inline-block;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
  margin-bottom: 10px;
}
.cpas-home .cpas-cal-red .cpas-cal-pill {
  background: #fde6e3; color: #c0392b;
}
.cpas-home .cpas-cal-orange .cpas-cal-pill {
  background: #fef0e3; color: #9a4a08; /* a11y : 5,6:1 (#c85e0a = 3,71) */
}
.cpas-home .cpas-cal-teal .cpas-cal-pill {
  background: #d4f0ef; color: #0a3a38;
}
.cpas-home .cpas-cal-head h3 {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--navy, #1f2937);
  margin: 0;
  line-height: 1.3;
}
.cpas-home .cpas-cal-body p {
  margin: 0 0 10px 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text, #1f2937);
}
.cpas-home .cpas-cal-date {
  font-weight: 400; /* retour client 12/06 : graisse uniforme dans la carte */
  color: var(--text, #1f2937);
}
.cpas-home .cpas-cal-loc {
  font-size: 0.88rem !important;
  color: var(--text-soft, #475569);
  margin-top: 12px !important;
}
.cpas-home .cpas-cal-meta {
  font-size: 0.88rem;
  color: var(--text-soft, #475569);
  font-style: italic;
}
.cpas-home ul.cpas-cal-dates {
  list-style: none !important;
  padding: 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  margin: 12px 0 !important;
}
.cpas-home ul.cpas-cal-dates li {
  display: inline-block !important;
  background: #f1f5f4;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.85rem !important;
  color: var(--primary-dark, #006e78);
  font-weight: 600;
  margin: 0 !important;
}
.cpas-home ul.cpas-cal-dates li::before { content: none !important; }
.cpas-home .cpas-cal-tip {
  text-align: center;
  margin-top: 32px;
  font-size: 0.92rem;
  color: var(--text-soft, #475569);
  font-style: italic;
}

/* ============================================================
   CPAS-14 : Barre de recherche (icône loupe discrète + modal)
   ============================================================ */
.cpas-home .cpas-search-btn,
body .cpas-search-btn {
  background: transparent;
  border: 1.5px solid rgba(0, 110, 120, 0.15);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--primary, #0d8581);
  transition: all 0.25s ease;
  padding: 0;
  margin: 0 8px;
}
.cpas-home .cpas-search-btn:hover,
body .cpas-search-btn:hover {
  background: var(--primary, #0d8581);
  color: #fff;
  border-color: var(--primary, #0d8581);
  transform: scale(1.06);
}
.cpas-home .cpas-search-btn svg,
body .cpas-search-btn svg {
  pointer-events: none;
}

/* Modal de recherche */
.cpas-search-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 99999;
  align-items: flex-start;
  justify-content: center;
  padding-top: 14vh;
}
.cpas-search-modal.open { display: flex; }
.cpas-search-modal-bg {
  position: absolute;
  inset: 0;
  background: rgba(15, 30, 35, 0.55);
  backdrop-filter: blur(6px);
  cursor: pointer;
}
.cpas-search-modal-inner {
  position: relative;
  background: #fff;
  border-radius: 18px;
  padding: 32px 36px 28px 36px;
  max-width: 640px;
  width: calc(100% - 40px);
  box-shadow: 0 20px 60px rgba(0, 60, 70, 0.3);
  animation: cpas-search-pop 0.25s cubic-bezier(.34,1.5,.64,1);
}
@keyframes cpas-search-pop {
  from { transform: translateY(-12px) scale(0.96); opacity: 0; }
  to { transform: translateY(0) scale(1); opacity: 1; }
}
.cpas-search-close {
  position: absolute;
  top: 14px;
  right: 18px;
  background: transparent;
  border: none;
  font-size: 2rem;
  line-height: 1;
  color: var(--text-soft, #475569);
  cursor: pointer;
  padding: 4px 10px;
  border-radius: 50%;
  transition: background 0.2s;
}
.cpas-search-close:hover { background: rgba(0,0,0,0.05); color: var(--navy); }
.cpas-search-modal-inner h2 {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--navy, #1f2937);
  margin: 0 0 18px 0;
}
.cpas-search-form {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}
.cpas-search-form input[type='search'] {
  flex: 1;
  padding: 14px 18px;
  border: 2px solid var(--border, #e5e7eb);
  border-radius: 999px;
  font-size: 1rem;
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s;
}
.cpas-search-form input[type='search']:focus {
  border-color: var(--primary, #0d8581);
}
.cpas-search-form button[type='submit'] {
  padding: 14px 28px;
  background: var(--primary, #0d8581);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
  white-space: nowrap;
}
.cpas-search-form button[type='submit']:hover {
  background: var(--primary-dark, #006e78);
  transform: translateY(-1px);
}
.cpas-search-hint {
  font-size: 0.85rem;
  color: var(--text-soft, #475569);
  font-style: italic;
  margin: 0;
}

/* ESC pour fermer */
@media (max-width: 600px) {
  .cpas-search-modal-inner { padding: 24px 22px; }
  .cpas-search-form { flex-direction: column; }
}

/* Search modal trigger via touche / */

/* ============================================================
   CPAS-FIX v2.1 : Pill responsive avec clamp() (Jun 2026)
   Résout le problème de "pill perdue au milieu" à zoom 50-90%

   ROLLBACK : si problème, restaurer depuis
   cpas-shared.css.backup-menu-fix-20260611 (à côté de ce fichier)
   OU revenir au bloc commenté ci-dessous (v1).

   Calcul des bornes :
   - MIN 1400px = largeur minimale pour contenir tous les items
     (logo ~200 + 8 menus ~950 + loupe 40 + lang 90 + paddings ~120)
   - MAX 1800px = limite avant que la pill ne "s'étire" sur 4K
   - VW 96vw = laisse 2% marge de chaque côté (~30px sur 1440px viewport)

   Comportement par viewport :
     1440px → 1400px (forcé au min, marges 20px)
     1600px → 1536px (96vw)
     1920px → 1800px (capped au max)
     2880px (zoom 50%) → 1800px (capped au max)
     1024-1440px → calc(100vw - 32px) via @media tablet
   ============================================================ */
@media (min-width: 1440px) {
  .cpas-home .hdr,
  .cpas-home .hdr.e-con,
  .cpas-home [data-id="hdr_glass"] {
    width: clamp(1400px, 96vw, 1800px) !important;
    max-width: clamp(1400px, 96vw, 1800px) !important;
    --container-max-width: 1800px !important;
  }
}
.cpas-home .hdr-in {
  gap: 10px !important;
  padding: 0 20px !important;
}
/* Entre 1024 et 1440 : pleine largeur disponible (pas de min) */
@media (min-width: 1025px) and (max-width: 1439px) {
  .cpas-home .hdr,
  .cpas-home .hdr.e-con,
  .cpas-home [data-id="hdr_glass"] {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    --container-max-width: none !important;
  }
}
/* Mobile/tablette */
@media (max-width: 1024px) {
  .cpas-home .hdr,
  .cpas-home .hdr.e-con,
  .cpas-home [data-id="hdr_glass"] {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    min-width: 0 !important;
  }
  .cpas-home .hdr-in { padding: 0 14px !important; gap: 6px !important; }
}
/*
   ============================================================
   v1 (rollback - inactif) : ancienne version max-width fixe
   ============================================================
.cpas-home .hdr,
.cpas-home .hdr.e-con,
.cpas-home [data-id="hdr_glass"] {
  max-width: 1420px !important;
  width: calc(100% - 24px) !important;
  --container-max-width: 1420px !important;
}
.cpas-home .hdr-in {
  gap: 10px !important;
  padding: 0 20px !important;
}
@media (max-width: 1500px) {
  .cpas-home .hdr,
  .cpas-home .hdr.e-con {
    max-width: calc(100vw - 32px) !important;
  }
}
@media (max-width: 1100px) {
  .cpas-home .hdr,
  .cpas-home .hdr.e-con {
    max-width: calc(100vw - 24px) !important;
  }
  .cpas-home .hdr-in { padding: 0 14px !important; gap: 6px !important; }
}
*/

/* ============================================================
   A11y (audit 2026-06) — Complianz : notice de contenu bloqué.
   Défaut blanc sur #808080 = 3,94:1 ; #595959 = 7:1. */
.cmplz-blocked-content-notice {
  background-color: #595959 !important;
}

/* ============================================================
   A11y reflow 320px (WCAG 1.4.10 — audit 2026-06).
   - eng-card : les items de grille ne rétrécissent pas sous leur
     min-content (emails / mots NL longs insécables).
   - blobs décoratifs absolus : débordent des heros sans overflow.
   - hdr_glass : pilule header plus large que l'écran à 320px.   */
.cpas-home .eng-card{min-width:0}
.cpas-home .eng-card .eng-content,
.cpas-home .eng-card p,
.cpas-home .eng-card strong{overflow-wrap:anywhere}
.cpas-home .e-con:has(> .aide-hero-blob){overflow:clip}
@media(max-width:380px){
  .cpas-home .eng-card{padding:16px 14px;gap:10px}
  .cpas-home [data-id="hdr_glass"]{max-width:calc(100vw - 16px)}
  .cpas-home h1 .hl,.cpas-home .aide-hero h1{overflow-wrap:anywhere;hyphens:auto}
}
/* Mots longs insécables (NL : "Werkloosheidshervorming"…) qui forcent
   un scroll horizontal sous 380px : autoriser césure + coupure. */
@media(max-width:380px){
  .cpas-home h1,.cpas-home h2,.cpas-home h3,.cpas-home h4,
  .cpas-home main p,.cpas-home main a,.cpas-home main li,
  .cpas-home main strong{overflow-wrap:anywhere;hyphens:auto}
}

/* Vidéo promo Lise Thiry (1920x816 cinémascope) : le cadre 16:9 commun la
   recadrait (retour client "format pas entier"). Ratio natif + contain. */
.elementor-element-lt_videos_c1_v .elementor-wrapper{aspect-ratio:1920/816 !important;height:auto !important;padding-bottom:0 !important}
.elementor-element-lt_videos_c1_v .elementor-wrapper video{object-fit:contain !important;width:100%;height:100%;background:#000}

/* Badge écodynamique footer : sous le logo CPAS, largeur alignée sur lui
   (retours client 12/06 : "trop petit" puis "sous le logo, taille adaptée") */
.ftr-ecodyn-badge{margin-top:14px}
.ftr-ecodyn-badge img{width:240px !important;max-width:100%;height:auto !important}

/* Cartes agenda — icônes (pastilles emoji->Lucide) centrées sur la ligne de
   texte + espacées du texte (retours client 12/06). */
.cpas-home .cpas-cal-body .cpas-icon{vertical-align:middle;margin-top:-2px;margin-right:8px}
.cpas-home .cpas-cal-tip .cpas-icon{margin-right:8px}
/* Aucun gras dans le corps des cartes agenda (retour client 12/06) */
.cpas-home .cpas-cal-body p,.cpas-home .cpas-cal-body strong{font-weight:400}
/* Tip agenda : recentré (le reset des p de text-editor l'emportait depuis la
   conversion du bloc agenda en éléments natifs Elementor — 12/06). */
.cpas-home .elementor-widget-text-editor .cpas-cal-tip{text-align:center !important}

/* 12/06 (retour client) : espace perçu entre l'agenda et "Vous voulez aider ?"
   trop grand (80px pad + wave 80px + 80px pad ≈ 240px). Resserré à ~156px :
   paddings 48px de part et d'autre. (La wave home_w_engagement reste à 80px :
   elle chevauche la section précédente via margin-top:-80px inline — mécanique
   existante, ne pas réduire sans ajuster ce margin.) */
.cpas-home .sec.e-con.elementor-element-sec_calendar{
  --padding-block-end: 48px !important;
  padding-block-end: 48px !important;
  padding-bottom: 48px !important;
  /* 12/06 : zone actus -> agenda resserrée (~224px -> ~152px perçus),
     alignée sur le rythme du site. NB : la valeur est consommée 2x
     (conteneur + e-con-inner via --padding-block-start) -> 12px = 24px réels. */
  --padding-block-start: 12px !important;
  padding-block-start: 12px !important;
  padding-top: 12px !important;
}
.cpas-home .sec.e-con.elementor-element-sec_news{
  --padding-block-end: 48px !important;
  padding-block-end: 48px !important;
  padding-bottom: 48px !important;
}
.cpas-home .sec.e-con.elementor-element-home_engagement{
  --padding-block-start: 48px !important;
  padding-block-start: 48px !important;
  padding-top: 48px !important;
}

/* 12/06 (retour client) : la wave hero->services (cwave1) était invisible —
   courbe blanche rendue SOUS le hero, sur fond blanc. On la fait chevaucher
   le bas du hero crème (pattern de home_w_engagement) : la courbe blanche se
   découpe sur le crème = vraie transition vague. FR + NL (même id). */
.cpas-home .elementor-element-cwave1 .wave-sep{margin-top:-60px !important}

/* 12/06 (retour client) : bouton flottant Complianz "Gérer le consentement"
   blanc sur blanc et superposé à la zone chatbot (coin bas-droit).
   -> coin bas-GAUCHE + couleurs charte ; comportement natif conservé
   (semi-masqué, remonte au survol/focus). Sur mobile Complianz le masque
   déjà (réglage hover-hide-mobile). */
button.cmplz-btn.cmplz-manage-consent{
  left:24px !important;
  right:auto !important;
  background:var(--primary-dark,#004F58) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.3) !important;
  box-shadow:0 4px 16px rgba(0,80,90,.three) ;
  box-shadow:0 4px 16px rgba(0,80,90,.30);
  border-radius:10px 10px 0 0 !important;
}
button.cmplz-btn.cmplz-manage-consent:hover,
button.cmplz-btn.cmplz-manage-consent:focus-visible{
  background:var(--primary,#006E78) !important;
}

/* 12/06 (retour client) : dans les heros sombres (.page-hero, dégradés teal/
   violet), ~30 pages avaient leur sous-titre (widgets *_hero_sub sans la classe
   .page-hero-sub) et le segment courant du breadcrumb en couleur texte sombre,
   illisibles. Règle générique : tout texte direct d'un hero sombre est blanc. */
.cpas-home .page-hero .elementor-widget-text-editor,
.cpas-home .page-hero .elementor-widget-text-editor p{color:rgba(255,255,255,.85) !important}
.cpas-home .page-hero .breadcrumb,
.cpas-home .page-hero .breadcrumb a,
.cpas-home .page-hero .breadcrumb span{color:rgba(255,255,255,.75) !important}
.cpas-home .page-hero .breadcrumb a:hover{color:#fff}
.cpas-home .page-hero .breadcrumb strong,
.cpas-home .page-hero .breadcrumb [aria-current]{color:#fff}

/* 12/06 (retour client, page Énergie mais global aux eng-card) :
   1. Les <strong> en MILIEU de phrase héritaient du style des titres de carte
      (1.05rem/700/block) -> effet agressif et hiérarchie illogique.
      Reset : inline, taille du texte courant, semi-gras 600.
      Le TITRE de carte = premier strong enfant direct de .eng-content. */
.cpas-home .eng-card .eng-content p strong{
  display:inline !important;
  font-size:inherit !important;
  font-weight:600 !important;
  margin:0 !important;
}
.cpas-home .eng-card .eng-content > strong:first-child{
  display:block !important;
  font-size:1.05rem !important;
  font-weight:700 !important;
  margin-bottom:8px !important;
}
/* 2. Contraste du corps des cartes : texte principal au lieu de soft */
.cpas-home .eng-card .eng-content p{color:var(--text, #1A2E35)}

/* 3. Waves de la page Énergie : chevauchement sur la section précédente
   (pattern cwave1/home_w_engagement) -> plus de creux blanc entre sections. */
.cpas-home .elementor-element-en_aides_w .wave-sep,
.cpas-home .elementor-element-en_astuces_w .wave-sep,
.cpas-home .elementor-element-en_liens_w .wave-sep{margin-top:-60px !important}

/* 12/06 (retour client) : page Énergie — transitions de sections resserrées
   au rythme du site (~156px perçus : 48px + wave 60px + 48px, comme l'accueil).
   Avant : 80+60+80 ≈ 220px par transition. FR + NL (mêmes ids). */
.cpas-home .e-con.elementor-element-en_pourqui,
.cpas-home .e-con.elementor-element-en_aides,
.cpas-home .e-con.elementor-element-en_astuces,
.cpas-home .e-con.elementor-element-en_liens{
  padding:64px 24px !important; /* 64 = rythme ~150px avec waves chevauchantes */
  /* neutraliser le padding du kit consommé par l'e-con-inner (80px hérités) */
  --padding-block-start:0px;
  --padding-block-end:0px;
}

/* ══════════════════════════════════════════════════════════════
   13/06 — Page Documents : section "Votre demande de document"
   (doc-form-*) + sélecteur #selectedDocDisplay. Styles du proto
   (css/documents.css) jamais reportés ici ; les champs .fg (plus
   haut dans ce fichier) sont conçus pour ce fond sombre. FR 31 + NL 551.
   ══════════════════════════════════════════════════════════════ */
.cpas-home .doc-form-sec{padding:80px 24px}
.cpas-home .doc-form-in{max-width:900px;margin:0 auto;width:100%}
.cpas-home .doc-form-wrap{
  background:linear-gradient(145deg,#004f58 0%,#00565f 40%,#004f58 100%);
  border-radius:28px;padding:56px;position:relative;overflow:hidden;
  box-shadow:0 24px 64px rgba(0,0,0,.25);
}
.cpas-home .doc-form-wrap::before{
  content:'';position:absolute;top:-80px;right:-80px;width:250px;height:250px;
  background:radial-gradient(circle,rgba(0,168,198,.08),transparent 70%);pointer-events:none;
}
.cpas-home .doc-form-header{text-align:center;margin-bottom:36px}
.cpas-home .doc-form-wrap .doc-form-header h2.elementor-heading-title,
.cpas-home .doc-form-header h2{
  font-family:var(--font-editorial);font-size:1.5rem;font-weight:800;color:#fff;margin-bottom:8px;
}
.cpas-home .doc-form-header p{font-size:.9rem;color:rgba(255,255,255,.85)}
/* Étapes de progression */
.cpas-home .form-steps{display:flex;justify-content:center;gap:8px;margin-bottom:36px}
.cpas-home .form-step-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.15);transition:all .3s}
.cpas-home .form-step-dot.active{background:var(--primary-light);width:32px;border-radius:5px}
.cpas-home .form-step-dot.done{background:var(--green)}
/* Grille du formulaire */
.cpas-home .doc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cpas-home .doc-form-grid .fg-full{grid-column:span 2}
/* Pilule "document sélectionné" — masquée tant que .show absent (cpas-shared.js) */
.cpas-home .selected-doc-display{
  display:none;align-items:center;gap:12px;
  background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.12);
  border-radius:12px;padding:14px 18px;margin-bottom:24px;color:#fff;
}
.cpas-home .selected-doc-display.show{display:flex}
.cpas-home .selected-doc-display .sel-emoji{font-size:1.5rem}
.cpas-home .selected-doc-display .sel-text{font-weight:700;font-size:.9rem}
.cpas-home .selected-doc-display .sel-change{
  margin-left:auto;font-size:.78rem;color:#7DD8E8;cursor:pointer;transition:color .2s;
}
.cpas-home .selected-doc-display .sel-change:hover{color:var(--orange)}
@media (max-width:640px){
  .cpas-home .doc-form-sec{padding:56px 20px}
  .cpas-home .doc-form-wrap{padding:32px 20px}
  .cpas-home .doc-form-grid{grid-template-columns:1fr}
  .cpas-home .doc-form-grid .fg-full{grid-column:span 1}
}
/* Grille 2 colonnes du proto, reproduite sur le <form> CF7 (le markup WP
   n'a pas de wrapper .doc-form-grid : les .fg sont enfants directs du form). */
.cpas-home .doc-form-wrap form.wpcf7-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cpas-home .doc-form-wrap form.wpcf7-form .fg{margin-bottom:0}
.cpas-home .doc-form-wrap form.wpcf7-form .fg-full,
.cpas-home .doc-form-wrap form.wpcf7-form .hidden-fields-container,
.cpas-home .doc-form-wrap form.wpcf7-form .f-submit,
.cpas-home .doc-form-wrap form.wpcf7-form .wpcf7-response-output{grid-column:1 / -1}
.cpas-home .doc-form-wrap form.wpcf7-form .hidden-fields-container{display:none}
@media (max-width:640px){
  .cpas-home .doc-form-wrap form.wpcf7-form{grid-template-columns:1fr}
}

/* ==================== Page de résultats de recherche (13/06) ====================
   Servie par mu-plugins/cpas-search.php (pages coquilles 1406 FR / 1407 NL,
   shortcodes cpas_search_hero + cpas_search_results). */
.cpas-home .cpas-search-hero-inner{text-align:center;max-width:640px;margin:0 auto}
.cpas-home .cpas-search-form{display:flex;gap:10px;max-width:560px;margin:26px auto 0;flex-wrap:wrap;justify-content:center}
.cpas-home .cpas-search-form input[type=search]{flex:1 1 280px;padding:14px 22px;border:1.5px solid var(--border-strong,#cbd5e1);border-radius:var(--radius-pill,999px);font:inherit;font-size:1rem;color:var(--text);background:#fff;min-width:0}
.cpas-home .cpas-search-form input[type=search]:focus{outline:2px solid var(--primary);outline-offset:2px;border-color:var(--primary)}
.cpas-home .cpas-search-form button{padding:14px 28px;background:var(--primary);color:#fff;border:0;border-radius:var(--radius-pill,999px);font-weight:700;font-size:1rem;cursor:pointer;transition:background .15s}
.cpas-home .cpas-search-form button:hover{background:var(--primary-dark)}
.cpas-home .cpas-sr-sec{padding:64px 24px 96px !important;--padding-block-start:0px;--padding-block-end:0px}
.cpas-home .cpas-sr-list{max-width:840px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.cpas-home .cpas-sr-card{background:#fff;border:1.5px solid var(--border,#e2e8f0);border-radius:18px;padding:24px 28px;box-shadow:0 6px 18px rgba(0,80,90,.05);transition:transform .15s,box-shadow .15s}
.cpas-home .cpas-sr-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,80,90,.1)}
.cpas-home .cpas-sr-type{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary-dark);background:var(--primary-pale,#D4F0F5);padding:3px 10px;border-radius:999px;margin-bottom:8px}
.cpas-home .cpas-sr-title{font-family:var(--font-editorial);font-size:1.25rem;font-weight:800;margin:0 0 6px}
.cpas-home .cpas-sr-title a{color:var(--navy);text-decoration:none}
.cpas-home .cpas-sr-title a:hover{color:var(--primary-dark);text-decoration:underline}
.cpas-home .cpas-sr-path{font-size:.82rem;color:var(--primary);margin-bottom:8px;word-break:break-all}
.cpas-home .cpas-sr-excerpt{margin:0 !important;color:var(--text-soft) !important;font-size:.95rem !important;line-height:1.6 !important}
.cpas-home .cpas-sr-empty{text-align:center;max-width:560px;margin:0 auto;color:var(--text-soft)}
.cpas-home .cpas-sr-empty .btn-primary{margin:0 4px}
.cpas-home .cpas-sr-pages{margin:34px auto 0;display:flex;justify-content:center}
.cpas-home .cpas-sr-pages ul{list-style:none !important;display:flex;gap:8px;padding:0 !important;margin:0}
.cpas-home .cpas-sr-pages .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;border-radius:999px;border:1.5px solid var(--border-strong,#cbd5e1);color:var(--primary-dark);text-decoration:none;font-weight:600}
.cpas-home .cpas-sr-pages .page-numbers.current{background:var(--primary);border-color:var(--primary);color:#fff}
.cpas-home .cpas-sr-pages a.page-numbers:hover{border-color:var(--primary)}
/* Centrage explicite : les widgets Elementor (heading/text-editor) imposent
   text-align start/left malgré le center du conteneur. */
.cpas-home .doc-form-header h2.elementor-heading-title,
.cpas-home .doc-form-header .elementor-widget-text-editor p{text-align:center}
/* Espacements : le gap 20px des e-con se cumule avec les marges du proto. */
.cpas-home .doc-form-header.e-con{gap:8px}
.cpas-home .doc-form-header .form-steps{margin-bottom:16px}
.cpas-home .doc-form-wrap .doc-form-header{margin-bottom:16px} /* +20px gap = 36px proto */
.cpas-home .doc-form-wrap .selected-doc-display{margin-bottom:0} /* gap e-con suffit */
.cpas-home .cpas-sr-mark{background:var(--primary-pale,#D4F0F5);color:var(--primary-dark,#004F58);border-radius:4px;padding:0 2px;font-weight:inherit}
.cpas-home .cpas-sr-title .cpas-sr-mark{background:linear-gradient(transparent 55%,var(--primary-pale,#D4F0F5) 55%);border-radius:0;padding:0}
/* ── Même cause racine : grille des cartes documents + section portail
   (css/documents.css du proto, suite). ── */
.cpas-home .doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.cpas-home .doc-card{
  background:#fff;border:2px solid var(--border);border-radius:var(--radius-lg);
  padding:28px 24px;cursor:pointer;transition:all .35s var(--transition);
  position:relative;text-align:center;
}
.cpas-home .doc-card.e-con{gap:4px}
.cpas-home .doc-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:var(--doc-color,var(--primary));transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--transition);border-radius:0 0 var(--radius-lg) var(--radius-lg);
}
.cpas-home .doc-card:hover,.cpas-home .doc-card.selected{
  transform:translateY(-4px);border-color:var(--doc-color,var(--primary));
  box-shadow:0 8px 32px rgba(0,80,90,.1);
}
.cpas-home .doc-card.selected{background:var(--primary-pale);border-color:var(--primary)}
.cpas-home .doc-card.selected::after,.cpas-home .doc-card:hover::after{transform:scaleX(1)}
.cpas-home .doc-card-emoji{font-size:2.2rem;margin-bottom:10px;display:block;transition:transform .4s var(--spring)}
.cpas-home .doc-card:hover .doc-card-emoji,.cpas-home .doc-card.selected .doc-card-emoji{transform:scale(1.15) rotate(-4deg)}
.cpas-home .doc-card h3,
.cpas-home .doc-card h3.elementor-heading-title{
  font-size:.92rem;font-weight:700;color:var(--navy);margin-bottom:4px;transition:color .3s;text-align:center;
}
.cpas-home .doc-card:hover h3,.cpas-home .doc-card.selected h3{color:var(--doc-color,var(--primary))}
.cpas-home .doc-card p{font-size:.78rem;color:var(--text-muted);line-height:1.45;text-align:center}
.cpas-home .doc-card:nth-child(1){--doc-color:var(--primary)}
.cpas-home .doc-card:nth-child(2){--doc-color:var(--violet)}
.cpas-home .doc-card:nth-child(3){--doc-color:var(--orange)}
.cpas-home .doc-card:nth-child(4){--doc-color:var(--green)}
.cpas-home .doc-card:nth-child(5){--doc-color:#00A8C6}
.cpas-home .doc-card:nth-child(6){--doc-color:#B36AC0}
.cpas-home .doc-card:nth-child(7){--doc-color:var(--navy)}
.cpas-home .doc-check{
  position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;
  background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.5);transition:all .3s var(--spring);
}
.cpas-home .doc-card.selected .doc-check{opacity:1;transform:scale(1)}
/* Portail "espace personnel" */
.cpas-home .portal-sec{padding:0 24px 80px}
.cpas-home .portal-in{max-width:900px;margin:0 auto;width:100%}
.cpas-home .portal-card{
  background:linear-gradient(135deg,var(--bg-cream),#F0E8F5);border:2px solid var(--border);
  border-radius:var(--radius-xl);padding:48px;display:flex;flex-direction:row;align-items:center;gap:40px;
  transition:all .35s var(--transition);
}
.cpas-home .portal-card:hover{border-color:var(--violet-light);box-shadow:var(--shadow);transform:translateY(-4px)}
.cpas-home .portal-icon{
  width:80px;height:80px;border-radius:20px;background:linear-gradient(135deg,var(--violet),var(--violet-dark));
  display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 8px 24px rgba(123,45,139,.3);
}
.cpas-home .portal-icon svg{width:36px;height:36px;color:#fff}
.cpas-home .portal-content h3,
.cpas-home .portal-content h3.elementor-heading-title{font-size:1.2rem;font-weight:800;color:var(--navy);margin-bottom:8px}
.cpas-home .portal-content p{font-size:.9rem;color:var(--text-soft);line-height:1.6;margin-bottom:18px}
.cpas-home .portal-btn{
  display:inline-flex;align-items:center;gap:8px;background:var(--violet);color:#fff;
  padding:12px 28px;border-radius:var(--radius-pill);font-weight:700;font-size:.9rem;
  transition:all .35s var(--transition);box-shadow:0 6px 20px rgba(123,45,139,.25);
}
.cpas-home .portal-btn:hover{background:var(--violet-dark);transform:translateY(-2px);box-shadow:0 10px 32px rgba(123,45,139,.35)}
@media (max-width:1024px){
  .cpas-home .doc-grid{grid-template-columns:repeat(2,1fr)}
  .cpas-home .portal-card{flex-direction:column;text-align:center;gap:24px;padding:36px}
}
@media (max-width:640px){
  .cpas-home .doc-grid{grid-template-columns:1fr;gap:12px}
}
/* Le conteneur Elementor impose --flex-direction:column et son propre fond :
   on force la disposition horizontale du proto avec la spécificité .e-con. */
.cpas-home .portal-card.e-con{
  --flex-direction:row;flex-direction:row;
  background:linear-gradient(135deg,var(--bg-cream),#F0E8F5);
}
@media (max-width:1024px){
  .cpas-home .portal-card.e-con{--flex-direction:column;flex-direction:column}
}

/* ==================== Header : largeur plafonnée (13/06) ====================
   Retour client : sur écrans larges, justify space-between déversait tout
   l'espace excédentaire entre le logo et le menu (~270px à 1900px de large).
   Contenu mesuré : 1524px FR / 1487px NL — on plafonne la pilule juste
   au-dessus, le vide résiduel tombe à ~35px. La règle max-width:1200px
   historique (L41/L1184) est écrasée par la largeur du conteneur Elementor
   (1800px) et serait de toute façon trop étroite pour le contenu. */
@media (min-width: 1300px) {
  .cpas-home .hdr.e-con { max-width: 1560px !important; }
}

/* ════════════════════════════════════════════════════════════
   15/06 → 18/06 (retour client) — Page Énergie & Logement (1212 /aide/energie/)
   Section « Nos 4 services concrets » (conteneur enfaid) : les 4 .eng-card
   en GRILLE 2×2 (4 items équivalents, pas d'orphelin, hauteurs égales).
   ⚠ Ciblé sur enfaid (FR 1212) + ennaid (NL 1218) UNIQUEMENT — les autres
   .droits-grid à 3 cartes (enfpq/ennpq…) restent en 3 colonnes.
   ════════════════════════════════════════════════════════════ */
.cpas-home .elementor-element-enfaid.droits-grid,
.cpas-home .elementor-element-ennaid.droits-grid{
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:stretch;
}
.cpas-home .elementor-element-enfaid.droits-grid .eng-card,
.cpas-home .elementor-element-ennaid.droits-grid .eng-card{height:100%}
@media(max-width:768px){
  .cpas-home .elementor-element-enfaid.droits-grid,
  .cpas-home .elementor-element-ennaid.droits-grid{grid-template-columns:1fr}
}

/* 15/06 (retour client) — Accueil : bouton « Voir toutes les questions » vers
   la page FAQ complète, ajouté sous l'accordéon FAQ (FR 7 + NL 571).
   Stylé à la charte (pilule teal) pour matcher .btn-primary. */
.cpas-home .faq-all-btn{text-align:center;margin-top:28px}
.cpas-home .faq-all-btn .elementor-button{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--primary);color:#fff;
  padding:14px 30px;border:2px solid var(--primary);border-radius:var(--radius-pill);
  font-family:var(--font-body);font-style:normal;font-weight:700;font-size:.95rem;letter-spacing:normal;
  box-shadow:var(--shadow-primary);
  transition:all .35s var(--transition);
}
.cpas-home .faq-all-btn .elementor-button:hover{
  background:var(--primary-dark) !important;background-color:var(--primary-dark) !important;
  transform:translateY(-2px);
  box-shadow:0 10px 36px rgba(0,110,120,.5);
}

/* 15/06 (retour client) — Réponse FAQ « demande d'aide » enrichie (permanence
   sociale sans rdv / service social sur rdv + adresse), et lien transformé en
   bouton bien visible. Cible le contenu de l'accordéon FAQ (.faq-list-native). */
.cpas-home .faq-list-native .elementor-tab-content p{margin-bottom:10px}
.cpas-home .faq-list-native .elementor-tab-content ul{list-style:disc;padding-left:20px;margin:6px 0 12px}
.cpas-home .faq-list-native .elementor-tab-content li{margin-bottom:8px}
/* Mises en avant (horaires, tél, adresse) : poids 600 plutôt que bold 700 */
.cpas-home .faq-list-native .elementor-tab-content strong{font-weight:600}
/* CTA : pas un bouton — un lien centré, clairement identifiable (couleur + soulignement) */
.cpas-home .faq-list-native .elementor-tab-content a.faq-cta{
  display:block;text-align:center;margin-top:16px;
  color:var(--primary);font-weight:600;
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px;
  transition:color .2s var(--transition);
}
.cpas-home .faq-list-native .elementor-tab-content a.faq-cta:hover{color:var(--primary-dark)}

/* ════════════════════════════════════════════════════════════
   18/06 — Enrichissement RI/ERI : "Conditions à remplir" en
   cartes numérotées (FR 1128 + NL 1149). Composant réutilisable.
   Le numéro est généré par compteur CSS (pas de N. en dur dans les titres).
   ════════════════════════════════════════════════════════════ */
.cpas-home .cond-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px;counter-reset:condnum}
.cpas-home .cond-card{background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:26px;counter-increment:condnum;transition:transform .35s var(--transition),box-shadow .35s var(--transition),border-color .35s var(--transition)}
.cpas-home .cond-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--primary-muted)}
.cpas-home .cond-card .elementor-heading-title{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.cpas-home .cond-card .elementor-heading-title::before{content:counter(condnum);flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:800;line-height:1}
.cpas-home .cond-card .elementor-widget-text-editor{margin-top:4px}
@media(max-width:768px){.cpas-home .cond-grid{grid-template-columns:1fr}}

/* 18/06 — RI/ERI : intro 2-col alignee en HAUT (le texte y est plus court que
   l'illustration -> evite le grand vide du centrage vertical). Scopé aux grilles
   ri-eri (87fb121) + NL (c5f3a50) pour ne pas modifier aide-financiere. */
.cpas-home .elementor-element-87fb121.mission-grid,
.cpas-home .elementor-element-c5f3a50.mission-grid{align-items:start}

/* Listes a puces lisibles dans les cartes conditions (le reset global .cpas-home ul met list-style:none) */
.cpas-home .cond-card ul{list-style:disc;padding-left:20px;margin:8px 0}
.cpas-home .cond-card li{margin-bottom:4px}

/* Liste "Documents a fournir" : restaurer les puces (sortie du scope [class*="_info"] apres deplacement en section sit-bg-soft) */
.cpas-home .elementor-element-rieri_docs_p ul,
.cpas-home .elementor-element-lleli_docs_p ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}
.cpas-home .elementor-element-rieri_docs_p li,
.cpas-home .elementor-element-lleli_docs_p li{margin-bottom:4px}

/* 18/06 — Accès aux soins (1132) : intro 2-col alignee en haut + puces restaurees
   dans les nouvelles sections (sorties du scope [class*="_info"] au deplacement). */
.cpas-home .elementor-element-d5f1fc1.mission-grid{align-items:start}
.cpas-home .elementor-element-5569724 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-b4548bf .elementor-widget-text-editor ul,
.cpas-home .elementor-element-fd5fc55 .elementor-widget-text-editor ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}

/* 18/06 — Attestations & documents (1136) : intro 2-col alignee en haut +
   puces restaurees (atdoc_depot_p / atdoc_alt_p sortis du scope [class*="_info"]
   au re-sectionnement vers la section "Démarches"). */
.cpas-home .elementor-element-atdoc_att_grid.mission-grid{align-items:start}
.cpas-home .elementor-element-atdoc_depot_p ul,
.cpas-home .elementor-element-atdoc_alt_p ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}
.cpas-home .elementor-element-atdoc_depot_p li,
.cpas-home .elementor-element-atdoc_alt_p li{margin-bottom:4px}

/* 18/06 — Attesten & documenten NL (1157) : meme traitement que FR */
.cpas-home .elementor-element-atest_att_grid.mission-grid{align-items:start}
.cpas-home .elementor-element-atest_depot_p ul,
.cpas-home .elementor-element-atest_alt_p ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}
.cpas-home .elementor-element-atest_depot_p li,
.cpas-home .elementor-element-atest_alt_p li{margin-bottom:4px}

/* 18/06 — Accès aux soins NL (1153) : meme traitement que FR */
.cpas-home .elementor-element-77d5e6a.mission-grid{align-items:start}
.cpas-home .elementor-element-1a32f32 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-546f0e4 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-a6b3202 .elementor-widget-text-editor ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}

/* 18/06 — Adresses de référence (1134) : intro 2-col alignee haut + puces des nouvelles sections */
.cpas-home .elementor-element-d1998ab.mission-grid{align-items:start}
.cpas-home .elementor-element-37a3852 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-b3d3cd0 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-657e2fa .elementor-widget-text-editor ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}

/* 18/06 — Adresses de référence NL (1155) : meme traitement */
.cpas-home .elementor-element-31eb604.mission-grid{align-items:start}
.cpas-home .elementor-element-f2e9715 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-bd0df91 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-0936508 .elementor-widget-text-editor ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}

/* 18/06 — Étudiants (1130) : intro 2-col alignee haut + puces nouvelles sections */
.cpas-home .elementor-element-4ebea09.mission-grid{align-items:start}
.cpas-home .elementor-element-c551ae2 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-67d1691 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-2d7059b .elementor-widget-text-editor ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}

/* 18/06 — Studenten NL (1151) : meme traitement */
.cpas-home .elementor-element-883beae.mission-grid{align-items:start}
.cpas-home .elementor-element-36c42a4 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-184e065 .elementor-widget-text-editor ul,
.cpas-home .elementor-element-4453868 .elementor-widget-text-editor ul{list-style:disc outside;padding-left:1.7em;margin:8px 0}

/* a11y 26022 — lien porté par le TITRE visible (h3>a), étiré sur toute la carte + focus visible */
.cpas-home .icard .icard-title a{color:inherit;text-decoration:none;position:static}
.cpas-home .icard .icard-title a::after{content:'';position:absolute;inset:0;z-index:6}
.cpas-home .icard:focus-within{outline:3px solid var(--primary,#006E78);outline-offset:3px;border-radius:var(--radius-lg)}
.cpas-home .icard .icard-title a:focus-visible{outline:none}
/* a11y 26022 (suite) — neutralise le positionnement d'infra stretched-link sur l'icard,
   pour que le ::after du lien-titre s'étire bien sur toute la carte (.icard position:relative) */
.cpas-home .icard > .elementor-element{position:static}

/* a11y 26022 — ahg-card (hub Aides) : lien porté par le titre, étiré sur la carte + focus */
.cpas-home .ahg-card{position:relative}
.cpas-home .ahg-card > .elementor-element{position:static}
.cpas-home .ahg-card .ahg-title a{position:static;color:inherit;text-decoration:none}
.cpas-home .ahg-card .ahg-title a::after{content:'';position:absolute;inset:0;z-index:6}
.cpas-home .ahg-card:focus-within{outline:3px solid var(--primary,#006E78);outline-offset:3px;border-radius:16px}
.cpas-home .ahg-card .ahg-title a:focus-visible{outline:none}

/* a11y 26022 — hub-card (Établissements) : lien sur le titre h3, zone cliquable = corps de carte + focus */
.cpas-home .hub-card-body .elementor-widget-heading a{position:static;color:inherit;text-decoration:none}
.cpas-home .hub-card-body > .elementor-element{position:static}
.cpas-home .hub-card-body .elementor-widget-heading a::after{content:'';position:absolute;inset:0;z-index:6}
.cpas-home .hub-card:focus-within{outline:3px solid var(--primary,#006E78);outline-offset:2px}
.cpas-home .hub-card-body .elementor-widget-heading a:focus-visible{outline:none}

/* a11y 26022 — cartes Actualités (news-feat / news-item) : lien sur le titre, carte entière cliquable via ::after + focus */
.cpas-home .news-feat > .elementor-element,
.cpas-home .news-item > .elementor-element,
.cpas-home .news-feat-body > .elementor-element{position:static}
.cpas-home .news-feat .elementor-widget-heading a,
.cpas-home .news-item .elementor-widget-heading a{position:static;color:inherit;text-decoration:none}
.cpas-home .news-feat .elementor-widget-heading a::after,
.cpas-home .news-item .elementor-widget-heading a::after{content:'';position:absolute;inset:0;z-index:6}
.cpas-home .news-feat:focus-within,
.cpas-home .news-item:focus-within{outline:3px solid var(--primary,#006E78);outline-offset:2px}
.cpas-home .news-feat .elementor-widget-heading a:focus-visible,
.cpas-home .news-item .elementor-widget-heading a:focus-visible{outline:none}

/* a11y 26022 — page Actualités (act-card) : lien sur le titre, carte entière cliquable via ::after + focus */
.cpas-home .act-card-title a{color:inherit;text-decoration:none;position:static}
.cpas-home .act-card-title a::after{content:'';position:absolute;inset:0;z-index:6}
.cpas-home .act-card:focus-within{outline:3px solid var(--primary,#006E78);outline-offset:2px}
.cpas-home .act-card-title a:focus-visible{outline:none}

/* a11y 26023 — ordre source des cartes Actualités : titre d'abord dans le DOM (lecteur d'écran),
   ordre visuel rétabli (tag, date, titre, description) via flex `order`. Source = [titre, tag, date, desc]. */
.cpas-home .news-feat-body > .elementor-element:nth-child(1){order:3} /* titre */
.cpas-home .news-feat-body > .elementor-element:nth-child(2){order:1} /* tag  */
.cpas-home .news-feat-body > .elementor-element:nth-child(3){order:2} /* date */
.cpas-home .news-feat-body > .elementor-element:nth-child(4){order:4} /* desc */
.cpas-home .news-item.e-con{display:flex;flex-direction:column}
.cpas-home .news-item > .elementor-element:nth-child(1){order:3}
.cpas-home .news-item > .elementor-element:nth-child(2){order:1}
.cpas-home .news-item > .elementor-element:nth-child(3){order:2}
.cpas-home .news-item > .elementor-element:nth-child(4){order:4}

/* a11y 26032 (WCAG 1.4.1) — souligner les liens dans le TEXTE COURANT (widgets texte) pour qu'ils
   ne dépendent pas que de la couleur. N'affecte ni les titres (h*), ni les boutons, ni les menus (icon-list). */
.cpas-home .elementor-widget-text-editor p a,
.cpas-home .elementor-widget-text-editor li a{text-decoration:underline;text-underline-offset:2px}

/* a11y 26007 (WCAG 1.4.3) — hover/page courante des liens footer : orange clair #FFB060 (~5.1:1 sur #004F58)
   remplace #F47B20 (3.4:1, insuffisant). Méthode : redéfinir --orange UNIQUEMENT dans les listes de liens
   du footer → les règles de hover existantes (var(--orange)) résolvent l'orange clair, sans toucher aux
   icônes sociales (.footer-social garde --orange #F47B20). */
.cpas-home .footer-links,
.cpas-home .footer-links-list,
.cpas-home .footer-a11y{--orange:#FFB060}

/* a11y 26009 (WCAG 1.4.3) — blancs translucides sur fond vert foncé : contraste insuffisant.
   Correctif ciblant les VRAIES règles gagnantes (sélecteurs Elementor + !important). Le bloc "boost"
   antérieur (~L3042) ciblait des sélecteurs non rendus / sans !important → inopérant.
   Cible = pire cas (survol des cartes établissements, fond le plus clair) : ≥4.5:1.
   Texte secondaire lisible → blanc .92 (~6-7:1) ; placeholders → blanc .7 (~5:1, reste un indice). */
.cpas-home .dark-etab-hdr .elementor-widget-text-editor p,
.cpas-home .etab-card-body .elementor-widget-text-editor p,
.cpas-home .contact-info .elementor-widget-text-editor p,
.cpas-home .c-txt .elementor-widget-text-editor span,
.cpas-home .c-txt .elementor-widget-text-editor p,
.cpas-home .fg label,
.cpas-home .fg select,
.cpas-home .footer .logo-sub .elementor-heading-title{color:rgba(255,255,255,.92) !important}
.cpas-home .fg input::placeholder,
.cpas-home .fg textarea::placeholder{color:rgba(255,255,255,.7) !important}
/* a11y 26009 — titre "Contactez-nous" : était #006E78 (teal) sur #004F58 = 1.55:1 → blanc (9.3:1). */
.cpas-home .contact-form-wrap .elementor-heading-title{color:#fff !important}

/* a11y 26008 (WCAG 1.4.11) — indicateur de focus : #006E78 = 1,55:1 sur les fonds vert foncé.
   Sur ces zones foncées, outline blanc (9,3:1). Ailleurs (fond clair) le focus #006E78 reste (6:1). */
.cpas-home .footer *:focus-visible,
.cpas-home .contact-wrap *:focus-visible,
.cpas-home .page-hero *:focus-visible,
.cpas-home .dark-etab-hdr *:focus-visible,
.cpas-home .etab-card *:focus-visible{outline-color:#fff !important}

/* a11y 26026 (WCAG 1.4.11) — bord des champs de formulaire : rgba(255,255,255,.4) = 2,8:1.
   → .6 (~3,98:1 vs intérieur, ~4,42 vs fond). La bordure focus cyan #7DD8E8 reste prioritaire. */
.cpas-home .fg input,
.cpas-home .fg select,
.cpas-home .fg textarea{border-color:rgba(255,255,255,.6) !important}

/* a11y 26011 (WCAG 2.4.7) — etab-card (accueil « Trouvez l'établissement ») : le lien
   cliquable est un stretched-link caché → focus invisible. Contour :focus-within blanc
   (fond vert foncé, ~9:1) pour rendre le focus clavier visible sur la carte. */
.cpas-home .etab-card{position:relative}
.cpas-home .etab-card:focus-within{outline:3px solid #fff;outline-offset:2px;border-radius:var(--radius-lg)}

/* === Organigramme : version texte accessible (details/summary natif) === */
.cpas-org-text {
  margin-top: 16px;
  border: 1px solid #d9e6e6;
  border-radius: 10px;
  background: #f5f8f8;
  overflow: hidden;
}
.cpas-org-text > summary {
  cursor: pointer;
  padding: 13px 16px;
  font-weight: 600;
  color: #006E78;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 8px;
}
.cpas-org-text > summary::-webkit-details-marker { display: none; }
.cpas-org-text > summary::before {
  content: "\25B8"; /* triangle */
  font-size: 0.9em;
  transition: transform 0.2s ease;
}
.cpas-org-text[open] > summary::before { transform: rotate(90deg); }
.cpas-org-text > summary:hover { color: #004F58; }
.cpas-org-text > summary:focus-visible { outline: 3px solid #006E78; outline-offset: 2px; }
.cpas-org-text-body { padding: 2px 20px 16px; }
.cpas-org-text-body p { margin: 8px 0; }
.cpas-org-text-body ul { margin: 6px 0; padding-left: 22px; }
.cpas-org-text-body > ul > li { margin-bottom: 7px; }
.cpas-org-text-body ul ul { margin-top: 5px; }
.cpas-org-text-body ul ul li { margin-bottom: 3px; color: var(--text-soft, #4a5a5a); }

/* === Hero mauve (variante de couleur, ex. pages "soins") ===
   Classe modificatrice ajoutee par cpas-starter-page.php quand l'editeur
   cree une page via "Page starter (mauve)". Reutilise le degrade des pages
   etablissements de soins. Specificite 0,3,0 pour battre le .page-hero teal. */
.cpas-home .page-hero.page-hero--mauve {
  background: linear-gradient(145deg, #3140c0, #5615a7, #1f5bb5) !important;
}

/* === Footer : 5e colonne "Contact & horaires" === */
.cpas-home .footer-col-contact .footer-col-h-inline{color:#fff;font-size:.9rem;font-weight:700;margin:0 0 14px;line-height:1.3}
.cpas-home .footer-col-contact .footer-col-h-inline + ul + .footer-col-h-inline,
.cpas-home .footer-col-contact ul + .footer-col-h-inline{margin-top:22px}
.cpas-home .footer-contact,.cpas-home .footer-hours{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.cpas-home .footer-contact li{display:flex;gap:9px;align-items:flex-start;font-size:.85rem;line-height:1.5;color:rgba(255,255,255,.8)}
.cpas-home .footer-contact .fc-ico{flex-shrink:0;line-height:1.4}
.cpas-home .footer-contact a{color:#fff;text-decoration:none}
.cpas-home .footer-contact a:hover{text-decoration:underline}
.cpas-home .footer-hours li{font-size:.83rem;line-height:1.55;color:rgba(255,255,255,.8)}
.cpas-home .footer-hours strong{color:#fff;font-weight:700}
.cpas-home .footer-col-contact .fc-muted{color:rgba(255,255,255,.55);font-size:.92em}
.cpas-home .footer-hours-all{display:inline-block;margin-top:10px;font-size:.83rem;font-weight:600;color:var(--primary-light,#00A8C6);text-decoration:none}
.cpas-home .footer-hours-all:hover{text-decoration:underline}
/* Lien "Fiche d'accessibilite" mis en avant (bouton blanc sur fond teal) */
.cpas-home .footer-access-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:11px 18px;background:#fff;color:var(--primary-dark,#004F58);font-weight:700;font-size:.85rem;border-radius:var(--radius-pill,999px);text-decoration:none;box-shadow:0 3px 12px rgba(0,0,0,.18);transition:transform .25s var(--transition,ease),box-shadow .25s ease,background .25s ease}
.cpas-home .footer-access-link:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.28);background:var(--primary-pale,#D4F0F5)}
.cpas-home .footer-access-link:focus-visible{outline:3px solid #fff;outline-offset:3px}
.cpas-home .footer-access-link .fa-ico{font-size:1.15em;line-height:1}
.cpas-home .footer-access-link .fc-pdf{font-size:.68rem;font-weight:700;background:var(--primary-dark,#004F58);color:#fff;padding:2px 6px;border-radius:4px;letter-spacing:.03em}
