/*
Theme Name: InfoSDF Divi Child v6.27 Dons intégrés
Theme URI: https://www.infosdf.be
Description: Thème enfant Divi pour InfoSDF.be — compatible Visual Builder, multilingue FR/NL/DE/EN et plugin InfoSDF 3.4+.
Author: New Line Info ASBL
Template: Divi
Version: 6.29
Text Domain: infosdf-divi
*/

:root{--infosdf-purple:#6436d8;--infosdf-blue:#2585f5;--infosdf-cyan:#24c8d8;--infosdf-green:#25b56d;--infosdf-orange:#ff8a34;--infosdf-pink:#e63b91;--infosdf-ink:#30274a;--infosdf-soft:#f7f5ff;--infosdf-radius:22px}
#main-header{box-shadow:0 6px 26px rgba(48,39,74,.09)!important}
#logo{max-height:64px!important;width:auto!important;transition:none!important}
.et-fixed-header #logo{max-height:54px!important}
@media(max-width:980px){#logo{max-height:50px!important}}

.infosdf-theme-shell{max-width:1240px;margin:0 auto;padding:36px 22px 70px}
.infosdf-theme-hero{position:relative;overflow:hidden;border-radius:30px;padding:42px;background:linear-gradient(135deg,#6436d8 0%,#2585f5 50%,#24c8d8 100%);color:#fff;margin-bottom:30px;box-shadow:0 18px 55px rgba(59,48,132,.16)}
.infosdf-theme-hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.12);right:-70px;top:-110px}
.infosdf-theme-hero h1,.infosdf-theme-hero h2{color:#fff!important;font-weight:900!important;line-height:1.06;margin:0 0 12px}
.infosdf-theme-hero p{font-size:18px;max-width:780px;margin:0;color:#fff}
.infosdf-theme-kicker{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);padding:7px 12px;border-radius:99px;font-weight:800;margin-bottom:14px}
.infosdf-theme-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}
@media(max-width:980px){.infosdf-theme-grid{grid-template-columns:1fr}.infosdf-theme-shell{padding:24px 16px 50px}.infosdf-theme-hero{padding:28px 22px;border-radius:24px}}
.infosdf-theme-main,.infosdf-theme-side-card,.infosdf-news-card,.infosdf-contact-card{background:#fff;border:1px solid #ece8fb;border-radius:var(--infosdf-radius);box-shadow:0 10px 35px rgba(49,39,80,.07)}
.infosdf-theme-main{padding:24px}
.infosdf-theme-sidebar{display:grid;gap:18px}
.infosdf-theme-side-card{padding:18px}
.infosdf-theme-side-card h3{font-weight:900!important;color:var(--infosdf-purple)!important;margin:0 0 12px}
.infosdf-theme-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}
.infosdf-theme-action{display:block;text-decoration:none!important;color:#fff!important;border-radius:20px;padding:20px 16px;min-height:112px;font-weight:900;font-size:18px;box-shadow:0 10px 25px rgba(49,39,80,.1)}
.infosdf-theme-action small{display:block;font-size:13px;opacity:.92;margin-top:6px;font-weight:600}
.infosdf-theme-action:nth-child(6n+1){background:linear-gradient(135deg,#ff8a34,#ff5d65)}
.infosdf-theme-action:nth-child(6n+2){background:linear-gradient(135deg,#2585f5,#6436d8)}
.infosdf-theme-action:nth-child(6n+3){background:linear-gradient(135deg,#24c8d8,#25b56d)}
.infosdf-theme-action:nth-child(6n+4){background:linear-gradient(135deg,#e63b91,#8b42db)}
.infosdf-theme-action:nth-child(6n+5){background:linear-gradient(135deg,#25b56d,#80c73f)}
.infosdf-theme-action:nth-child(6n+6){background:linear-gradient(135deg,#ffbe2e,#ff8a34);color:#33274b!important}
@media(max-width:900px){.infosdf-theme-actions{grid-template-columns:repeat(2,1fr)}}

.infosdf-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.infosdf-news-card{overflow:hidden}
.infosdf-news-card img{display:block;width:100%;height:190px;object-fit:cover}
.infosdf-news-body{padding:20px}.infosdf-news-body h2,.infosdf-news-body h3{font-weight:900!important;line-height:1.18}
.infosdf-news-meta{font-size:13px;color:#776d8f;margin-bottom:8px}.infosdf-news-excerpt{color:#544d65}
.infosdf-news-featured{display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden;margin-bottom:24px}.infosdf-news-featured img{width:100%;height:100%;min-height:330px;object-fit:cover}.infosdf-news-featured .infosdf-news-body{padding:34px}
.infosdf-news-badge{display:inline-block;background:#f0eaff;color:#6436d8;border-radius:99px;padding:5px 10px;font-weight:800;font-size:12px;margin-bottom:10px}
@media(max-width:900px){.infosdf-news-grid{grid-template-columns:1fr}.infosdf-news-featured{grid-template-columns:1fr}.infosdf-news-featured img{min-height:220px}}

.infosdf-contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px}.infosdf-contact-card{padding:24px}.infosdf-contact-card h2{color:var(--infosdf-purple)!important;font-weight:900!important}.infosdf-contact-card label{display:block;font-weight:700;margin:12px 0}.infosdf-contact-card input,.infosdf-contact-card textarea{width:100%;padding:12px 14px;border:1px solid #ddd5f5;border-radius:12px;background:#fff}.infosdf-contact-card button{border:0;background:linear-gradient(135deg,#6436d8,#2585f5);color:#fff;font-weight:900;padding:13px 20px;border-radius:99px;cursor:pointer}.infosdf-contact-row{padding:11px 0;border-bottom:1px solid #eee9fb}.infosdf-contact-row strong{display:block;color:var(--infosdf-purple)}
@media(max-width:800px){.infosdf-contact-layout{grid-template-columns:1fr}}

.infosdf-theme-admin-wrap .infosdf-admin-card{background:#fff;border:1px solid #ddd;border-radius:14px;padding:18px;margin:14px 0;max-width:1100px}.infosdf-theme-admin-wrap code{font-size:13px}.infosdf-page-ok{color:#178342;font-weight:700}.infosdf-page-warn{color:#b36800;font-weight:700}

/* Empêche les sidebars WordPress génériques de polluer les pages InfoSDF lorsque Divi utilise le template pleine largeur. */
body.infosdf-page #sidebar{display:none!important}body.infosdf-page #left-area{width:100%!important;padding-right:0!important}body.infosdf-page #main-content .container:before{display:none!important}


/* === InfoSDF v4.0 : retour à l'identité POP colorée, sans casser Divi Builder === */
body{background:#f6f7fb;color:#172033}
#main-header{background:#fff!important;box-shadow:0 5px 24px rgba(23,32,51,.10)!important}
#logo{max-height:58px!important;width:auto!important;border-radius:14px}
#top-menu a{font-weight:850!important;color:#2d2449!important}
#top-menu li.current-menu-item>a,#top-menu a:hover{color:#e63b91!important}

.infosdf-pop-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);align-items:center;gap:30px;padding:clamp(34px,6vw,72px);border-radius:34px;background:linear-gradient(125deg,#6847ff 0%,#7d49f0 31%,#ed3f8f 70%,#ff8a25 100%);box-shadow:0 24px 65px rgba(88,50,170,.25);color:#fff}
.infosdf-pop-hero:before{content:"";position:absolute;inset:auto -70px -130px auto;width:340px;height:340px;border-radius:50%;background:rgba(255,255,255,.12)}
.infosdf-pop-hero:after{content:"";position:absolute;left:-80px;top:-120px;width:260px;height:260px;border-radius:50%;background:rgba(255,201,40,.23)}
.infosdf-pop-hero__content,.infosdf-pop-hero__logo{position:relative;z-index:2}
.infosdf-pop-kicker{display:inline-flex;padding:8px 14px;border-radius:999px;background:#ffc928;color:#332600;font-size:13px;font-weight:950;letter-spacing:.045em;text-transform:uppercase}
.infosdf-pop-hero h1{margin:18px 0 18px!important;color:#fff!important;font-size:clamp(42px,6vw,76px)!important;line-height:.98!important;font-weight:950!important;letter-spacing:-.045em!important}
.infosdf-pop-hero h1 strong{color:#fff!important;text-shadow:0 3px 0 rgba(50,22,98,.18)}
.infosdf-pop-hero p{max-width:760px;color:#fff!important;font-size:clamp(17px,2vw,21px);line-height:1.55}
.infosdf-pop-hero__logo{background:#fff;padding:22px;border-radius:30px;box-shadow:0 22px 55px rgba(45,20,85,.25);transform:rotate(1.4deg)}
.infosdf-pop-hero__logo img{display:block;width:100%;height:auto}
.infosdf-pop-languages{margin-top:20px}.infosdf-pop-languages a,.infosdf-pop-languages button{background:#fff!important;color:#4a2f8f!important;border:0!important;border-radius:999px!important;font-weight:900!important}

.infosdf-pop-needs,.infosdf-pop-panel,.infosdf-pop-wall{margin:28px 0}
.infosdf-pop-heading span{display:inline-block;color:#e63b91;font-weight:950;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.infosdf-pop-heading h2{color:#172033!important;font-size:clamp(30px,4vw,48px)!important;line-height:1.05!important;font-weight:950!important;letter-spacing:-.025em!important;margin:6px 0 20px!important}
.infosdf-pop-need-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.infosdf-pop-need{position:relative;overflow:hidden;display:flex;min-height:164px;padding:20px;border-radius:25px;flex-direction:column;justify-content:flex-end;text-decoration:none!important;color:#fff!important;box-shadow:0 14px 36px rgba(23,32,51,.14);transition:.2s transform,.2s box-shadow}
.infosdf-pop-need:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(23,32,51,.20)}
.infosdf-pop-need:nth-child(1){background:linear-gradient(135deg,#ff8a25,#f45b38)}
.infosdf-pop-need:nth-child(2){background:linear-gradient(135deg,#2684ff,#6557ff)}
.infosdf-pop-need:nth-child(3){background:linear-gradient(135deg,#15b8d4,#18a58c)}
.infosdf-pop-need:nth-child(4){background:linear-gradient(135deg,#f24b4b,#ed3f8f)}
.infosdf-pop-need:nth-child(5){background:linear-gradient(135deg,#24b36b,#68c83e)}
.infosdf-pop-need:nth-child(6){background:linear-gradient(135deg,#6c4cff,#9a42df)}
.infosdf-pop-need:nth-child(7){background:linear-gradient(135deg,#ffc928,#ff9f1c);color:#332600!important}
.infosdf-pop-need:nth-child(8){background:linear-gradient(135deg,#db2777,#7c3aed)}
.infosdf-pop-need__icon{position:absolute;top:17px;left:19px;font-size:38px;line-height:1}
.infosdf-pop-need strong{font-size:21px;color:inherit!important}.infosdf-pop-need small{margin-top:5px;font-weight:700;opacity:.92;color:inherit!important}

.infosdf-pop-panel{background:#fff;border:1px solid #ece8f6;border-top:8px solid #ffc928;border-radius:30px;padding:26px;box-shadow:0 14px 42px rgba(23,32,51,.09)}
.infosdf-pop-map{margin-top:24px;overflow:hidden;border-radius:22px}
.infosdf-pop-sidebar{display:grid;gap:18px}.infosdf-pop-side-card{background:#fff;border:1px solid #ece8f6;border-radius:24px;padding:18px;box-shadow:0 10px 28px rgba(23,32,51,.08)}
.infosdf-pop-side-card:nth-child(1){border-top:6px solid #15b8d4}.infosdf-pop-side-card:nth-child(2){border-top:6px solid #ff8a25}.infosdf-pop-side-card:nth-child(3){border-top:6px solid #e63b91}
.infosdf-pop-side-card h2,.infosdf-pop-side-card h3,.infosdf-pop-side-card h4{color:#6436d8!important;font-weight:950!important}
.infosdf-pop-wall{padding:clamp(22px,4vw,38px);border-radius:30px;background:linear-gradient(135deg,#fff7ed 0%,#ffe4e6 45%,#ede9fe 100%);border:2px solid rgba(124,58,237,.12);box-shadow:0 16px 45px rgba(109,40,217,.10)}

/* Harmonisation visuelle du plugin */
.infosdf-card,.infosdf-widget,.infosdf-calendar,.infosdf-search,.infosdf-directory,.infosdf-map-wrap{border-radius:22px!important}
.infosdf-btn,.infosdf-button,.infosdf-search button,input[type=submit].infosdf-btn{border-radius:999px!important;font-weight:900!important;background:linear-gradient(135deg,#6436d8,#2585f5)!important;color:#fff!important;border:0!important;box-shadow:0 8px 20px rgba(64,83,220,.20)!important}
.infosdf-search input,.infosdf-search select,.infosdf-search textarea{border-radius:14px!important}

@media(max-width:980px){.infosdf-pop-hero{grid-template-columns:1fr}.infosdf-pop-hero__logo{max-width:460px;transform:none}.infosdf-pop-need-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.infosdf-pop-hero{padding:34px 22px;border-radius:26px}.infosdf-pop-hero h1{font-size:43px!important}.infosdf-pop-need-grid{gap:10px}.infosdf-pop-need{min-height:142px;padding:15px}.infosdf-pop-need__icon{font-size:31px}.infosdf-pop-need strong{font-size:17px}.infosdf-pop-panel{padding:18px;border-radius:22px}}


/* === InfoSDF v4.1 : stabilité Divi / accueil === */
body.home #main-content{overflow:hidden;background:#f7f8fc}
body.home #main-content>.container{width:100%!important;max-width:none!important;padding:0!important}
body.home .et_pb_section{padding:18px 0!important;background:transparent!important}
body.home .et_pb_section:first-child{padding-top:24px!important}
body.home .et_pb_row{width:min(1180px,calc(100% - 32px))!important;max-width:1180px!important;padding:0!important}
body.home .et_pb_column,body.home .et_pb_code,body.home .et_pb_code_inner{min-width:0!important;max-width:100%!important}
body.home .et_pb_section_0_tb_header+ #et-main-area{margin-top:0!important}

/* Accueil legacy : même grille propre si une ancienne page contient encore [infosdf_home]. */
.infosdf-home-legacy-bridge{width:min(1180px,calc(100% - 32px));margin:24px auto 64px}
.infosdf-home-content-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,.82fr);gap:26px;align-items:start}
.infosdf-home-content-grid>*{min-width:0}

/* Hero : logo PNG robuste et dimensions contrôlées. */
.infosdf-pop-hero{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);padding:48px!important}
.infosdf-pop-hero__logo{display:flex!important;align-items:center;justify-content:center;min-height:180px!important;padding:22px!important}
.infosdf-pop-hero__logo img{display:block!important;width:100%!important;max-width:520px!important;height:auto!important;object-fit:contain!important}
.infosdf-pop-hero h1{font-size:clamp(38px,4.5vw,62px)!important}

/* Recherche : une seule ligne propre. */
.infosdf-pop-panel .infosdf-search{display:grid!important;grid-template-columns:minmax(0,1.5fr) minmax(160px,.8fr) minmax(180px,.9fr) auto!important;gap:12px!important;align-items:center!important;margin:0!important}
.infosdf-pop-panel .infosdf-search>*{min-width:0!important;width:100%!important;box-sizing:border-box!important}
.infosdf-pop-panel .infosdf-search button{width:auto!important;white-space:nowrap!important;padding:13px 22px!important}

/* Carte : jamais plus large que sa colonne. */
.infosdf-pop-map,.infosdf-map-wrap,.infosdf-leaflet-map{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
.infosdf-leaflet-map{overflow:hidden!important}
.infosdf-map-search{display:none!important} /* sur l'accueil la recherche principale suffit */

/* Sidebar et mur. */
.infosdf-pop-sidebar{min-width:0!important}
.infosdf-pop-side-card{overflow:hidden!important}
.infosdf-pop-side-card .infosdf-sidebar-widget{margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
.infosdf-pop-wall{width:100%!important;max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important}
.infosdf-pop-wall .infosdf-wall,.infosdf-pop-wall .infosdf-wall-wrap,.infosdf-pop-wall form{max-width:100%!important;box-sizing:border-box!important}
.infosdf-pop-wall input,.infosdf-pop-wall textarea{max-width:100%!important;width:100%!important;box-sizing:border-box!important}

/* Évite tout scrollbar horizontal généré par un module plugin. */
body.home #page-container,body.home #et-main-area,body.home #main-content{max-width:100vw!important;overflow-x:hidden!important}
body.home .infosdf-module,body.home .infosdf-card,body.home .infosdf-sidebar-widget{max-width:100%!important;box-sizing:border-box!important}

@media(max-width:980px){
 body.home .et_pb_section{padding:12px 0!important}
 .infosdf-home-content-grid{grid-template-columns:1fr}
 .infosdf-pop-hero{grid-template-columns:1fr;padding:34px 26px!important}
 .infosdf-pop-hero__logo{max-width:560px;min-height:0!important;margin-top:10px}
 .infosdf-pop-panel .infosdf-search{grid-template-columns:1fr 1fr!important}
 .infosdf-pop-panel .infosdf-search button{width:100%!important}
}
@media(max-width:600px){
 body.home .et_pb_row,.infosdf-home-legacy-bridge{width:calc(100% - 20px)!important}
 .infosdf-pop-panel .infosdf-search{grid-template-columns:1fr!important}
 .infosdf-pop-hero{padding:28px 20px!important;border-radius:24px}
 .infosdf-pop-hero__logo{padding:14px!important;border-radius:20px}
}

/* === InfoSDF v4.2 : logo hero garanti visible === */
.infosdf-pop-hero__logo{
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  background:#fff!important;border:3px solid rgba(255,255,255,.9)!important;
  min-height:260px!important;padding:18px!important;border-radius:30px!important;
}
.infosdf-pop-hero__logo .infosdf-hero-brand{
  display:block!important;visibility:visible!important;opacity:1!important;
  width:100%!important;max-width:650px!important;height:auto!important;max-height:300px!important;
  object-fit:contain!important;border-radius:22px!important;
}
.infosdf-hero-tagline{
  margin-top:12px;padding:10px 18px;border-radius:999px;
  background:linear-gradient(90deg,#276dff,#6d43e8,#ed3f8f,#ff8a25);
  color:#fff;font-size:18px;font-weight:900;text-align:center;box-shadow:0 8px 20px rgba(65,55,160,.18)
}
@media(max-width:980px){.infosdf-pop-hero__logo{min-height:0!important}.infosdf-pop-hero__logo .infosdf-hero-brand{max-width:620px!important}}
@media(max-width:600px){.infosdf-hero-tagline{font-size:15px;padding:8px 14px}.infosdf-pop-hero__logo .infosdf-hero-brand{max-height:220px!important}}

/* InfoSDF v5.4 Performance Safe */
.infosdf-pop-hero__logo .infosdf-hero-brand{
 aspect-ratio:1430 / 640!important;
 width:100%!important;
 height:auto!important;
 object-fit:contain!important;
}


/* === InfoSDF v5.9 CLS Safe ===
   Réserve l'espace avant le chargement tardif des images/polices.
   Ne modifie pas volontairement le design. */

/* Header Divi : évite qu'il change de hauteur pendant le chargement. */
#main-header,
.et-l--header,
.et-l--header .et_pb_section:first-child{
    contain:layout style;
}
#main-header .container,
#main-header .logo_container{
    min-height:72px;
}

/* Le logo header garde son ratio et sa boîte dès le premier rendu. */
#main-header #logo,
.logo_container img,
.et_pb_menu__logo img,
.et_pb_fullwidth_menu__logo img,
.et-l--header .custom-logo{
    height:auto!important;
    object-fit:contain!important;
}

/* Hero : la place est réservée par son ratio réel avant décodage. */
.infosdf-pop-hero__logo{
    min-height:0;
}
.infosdf-pop-hero__logo .infosdf-hero-brand{
    display:block;
    width:100%!important;
    height:auto!important;
    aspect-ratio:1430 / 640!important;
}

/* Les images du contenu ne doivent pas dépasser leur boîte. */
#et-main-area img{
    max-width:100%;
    height:auto;
}

/* Évite les sauts lors de l'apparition des icônes de réseaux. */
.et-social-icons,
ul.et-social-icons{
    min-height:24px;
}

/* Réserve une hauteur minimale au sélecteur/recherche InfoSDF. */
select[name="service"]{
    min-height:44px;
}


/* === InfoSDF v6.29 — PageSpeed 92+ SAFE === */
/* Réserve mieux la géométrie du header sans modifier le menu. */
#main-header #logo,
#main-header .logo_container img{
  aspect-ratio:320 / 141!important;
}
#main-header .logo_container{
  contain:layout paint;
}

/* Contraste Lighthouse : libellé INFOSDF dans les blocs clairs. */
.infosdf-pop-heading > span,
.infosdf-pop-panel .infosdf-pop-heading > span{
  color:#5b176f!important;
}

/* Cibles tactiles principales : min 44px sans agrandir visuellement le texte. */
#top-menu-nav > ul > li > a,
#et-secondary-menu a,
#et-info a{
  min-height:44px;
  display:inline-flex;
  align-items:center;
}

/* Animations des cartes : transform uniquement, pas de box-shadow animé. */
.infosdf-pop-need{
  transition:transform .18s ease!important;
}
.infosdf-pop-need:hover{
  box-shadow:0 14px 36px rgba(23,32,51,.14)!important;
}
