/*
Theme Name: Le Moulin — Divi
Theme URI: https://lemoulin.info
Description: Thème enfant Divi pour l'Association Le Moulin (Fribourg). Identité « moulin de la vallée du Gottéron ». Conçu pour une édition par des profils non techniques : tous les contenus s'éditent dans les modules Divi (Visual Builder), sans HTML.
Author: Association Le Moulin
Version: 2.0.0
Template: Divi
Text Domain: lemoulin-divi
*/

:root{
  --lm-paper:#F4F0E5; --lm-paper-2:#EAE3D2; --lm-card:#FBF9F2;
  --lm-ink:#1F271E; --lm-ink-soft:#3F4A3C;
  --lm-pine:#24382A; --lm-pine-deep:#172319; --lm-moss:#5C7556;
  --lm-wheat:#C6862C; --lm-wheat-soft:#E4B468; --lm-river:#6C8F8B;
  --lm-line:rgba(31,39,30,.14); --lm-line-strong:rgba(31,39,30,.28);
  --lm-shadow:0 1px 2px rgba(31,39,30,.05),0 12px 32px -16px rgba(31,39,30,.22);
  --lm-r:14px;
}

/* ---------- Typographie ---------- */
body, .et_pb_text, p, li{ font-family:Inter,system-ui,sans-serif; color:var(--lm-ink); }
body{ background:var(--lm-paper); }
h1,h2,h3,h4,h5,h6,
.et_pb_module h1,.et_pb_module h2,.et_pb_module h3,.et_pb_module h4{
  font-family:"Bricolage Grotesque",sans-serif; font-weight:700;
  letter-spacing:-.02em; line-height:1.1; color:var(--lm-ink);
}

/* ---------- Sections ---------- */
.et_pb_section.lm-paper2{ background:var(--lm-paper-2) !important; }
.et_pb_section.lm-pine{ background:var(--lm-pine) !important; }
.et_pb_section.lm-pine, .et_pb_section.lm-pine .et_pb_text,
.et_pb_section.lm-pine p, .et_pb_section.lm-pine li{ color:#cfd6c8 !important; }
.et_pb_section.lm-pine h1,.et_pb_section.lm-pine h2,
.et_pb_section.lm-pine h3,.et_pb_section.lm-pine h4{ color:#F4F0E5 !important; }

/* ---------- Sur-titre (eyebrow) ---------- */
.lm-eyebrow-mod p{ margin:0 0 .3em; display:flex; align-items:center; gap:.6em; }
.lm-eyebrow-mod p::before{ content:""; width:26px; height:1px; background:var(--lm-wheat); flex:0 0 auto; }
.lm-pine .lm-eyebrow-mod p{ color:var(--lm-wheat-soft) !important; }

/* ---------- Texte d'intro ---------- */
.lm-lede p{ color:var(--lm-ink-soft); max-width:62ch; }
.lm-pine .lm-lede p{ color:#cfd6c8 !important; }

/* ---------- Boutons ---------- */
.et_pb_button.lm-donate, .et_pb_button.lm-pine,
.et_pb_button.lm-ghost, .et_pb_button.lm-light{
  font-family:"Bricolage Grotesque",sans-serif !important; font-weight:600 !important;
  border-radius:100px !important; padding:.72em 1.5em !important; margin:0 8px 8px 0 !important;
}
.et_pb_button.lm-donate:after,.et_pb_button.lm-pine:after,
.et_pb_button.lm-ghost:after,.et_pb_button.lm-light:after{ display:none !important; }
.et_pb_button.lm-donate{ background:var(--lm-wheat) !important; color:#2a1c05 !important; border:1px solid var(--lm-wheat) !important; }
.et_pb_button.lm-donate:hover{ background:var(--lm-wheat-soft) !important; }
.et_pb_button.lm-pine{ background:var(--lm-pine) !important; color:#F4F0E5 !important; border:1px solid var(--lm-pine) !important; }
.et_pb_button.lm-pine:hover{ background:var(--lm-pine-deep) !important; }
.et_pb_button.lm-ghost{ background:transparent !important; color:var(--lm-ink) !important; border:1px solid var(--lm-line-strong) !important; }
.et_pb_button.lm-light{ background:rgba(244,240,229,.12) !important; color:#F4F0E5 !important; border:1px solid rgba(244,240,229,.32) !important; }

/* ---------- Blurb = les « cartes » (module natif, éditable) ---------- */
.et_pb_blurb.lm-blurb{
  background:var(--lm-card); border:1px solid var(--lm-line); border-radius:var(--lm-r);
  padding:26px 24px; height:100%; transition:transform .2s, box-shadow .2s;
}
.et_pb_blurb.lm-blurb:hover{ transform:translateY(-3px); box-shadow:var(--lm-shadow); }
.et_pb_blurb.lm-blurb .et_pb_module_header{ font-size:1.16rem !important; margin-bottom:.4em; }
.et_pb_blurb.lm-blurb .et_pb_blurb_description p{ font-size:.95rem; color:var(--lm-ink-soft); margin:0; }
.et_pb_blurb.lm-blurb .et_pb_main_blurb_image{ margin-bottom:12px; }
.lm-pine .et_pb_blurb.lm-blurb{ background:rgba(244,240,229,.06); border-color:rgba(244,240,229,.16); }

/* ---------- Listes à puces rondes ---------- */
.lm-check-mod ul{ list-style:none; padding:0; margin:.6em 0; }
.lm-check-mod ul li{ position:relative; padding:.42em 0 .42em 30px !important; border-bottom:1px solid var(--lm-line); color:var(--lm-ink-soft); }
.lm-check-mod ul li::before{ content:""; position:absolute; left:0; top:1.05em; width:11px; height:11px; border:1.5px solid var(--lm-moss); border-radius:50%; }
.lm-pine .lm-check-mod ul li{ color:#cfd6c8; border-color:rgba(244,240,229,.14); }

/* ---------- Accordéon (FAQ) ---------- */
.et_pb_accordion.lm-accordion .et_pb_toggle{
  background:var(--lm-card) !important; border:1px solid var(--lm-line) !important;
  border-radius:12px !important; margin-bottom:10px; padding:1em 1.3em !important;
}
.et_pb_accordion.lm-accordion .et_pb_toggle_title{ color:var(--lm-pine) !important; font-size:1.05rem !important; }
.et_pb_accordion.lm-accordion .et_pb_toggle_content p{ color:var(--lm-ink-soft); font-size:.95rem; }

/* ---------- Témoignages ---------- */
.et_pb_testimonial.lm-testimonial{
  background:var(--lm-card) !important; border:1px solid var(--lm-line);
  border-radius:var(--lm-r); padding:30px !important;
}
.et_pb_testimonial.lm-testimonial .et_pb_testimonial_description_inner p{ color:var(--lm-pine); font-style:italic; }
.et_pb_testimonial.lm-testimonial .et_pb_testimonial_author{ font-family:"Bricolage Grotesque",sans-serif; color:var(--lm-ink); font-style:normal; }
.et_pb_testimonial.lm-testimonial .et_pb_testimonial_meta{ color:var(--lm-wheat); }

/* ---------- Compteurs (chiffres clés) ---------- */
.et_pb_number_counter.lm-counter .percent p{ font-family:"Bricolage Grotesque",sans-serif; font-weight:700; color:var(--lm-pine) !important; }
.et_pb_number_counter.lm-counter h3, .et_pb_number_counter.lm-counter .title{ color:var(--lm-ink-soft) !important; font-size:.95rem !important; }

/* ---------- Images ---------- */
.et_pb_image img{ border-radius:10px; }

/* ---------- Formulaire de contact ---------- */
.et_pb_contact_form_container .et_pb_contact_field input,
.et_pb_contact_form_container .et_pb_contact_field textarea{
  background:var(--lm-card) !important; border:1px solid var(--lm-line-strong) !important;
  border-radius:10px !important; color:var(--lm-ink) !important;
}
.et_pb_contact_submit.et_pb_button{
  font-family:"Bricolage Grotesque",sans-serif !important; font-weight:600 !important;
  background:var(--lm-pine) !important; color:#F4F0E5 !important;
  border:1px solid var(--lm-pine) !important; border-radius:100px !important;
}
.et_pb_contact_submit.et_pb_button:after{ display:none !important; }

/* ---------- En-tête / pied de page ---------- */
#main-header{ background:rgba(244,240,229,.94) !important; box-shadow:none; border-bottom:1px solid var(--lm-line); }
#main-header #top-menu li a{ font-family:"Bricolage Grotesque",sans-serif; font-weight:600; color:var(--lm-ink-soft); }
#main-header #top-menu li.current-menu-item > a{ color:var(--lm-pine); }
#logo{ max-height:54px; }
#main-footer{ background:var(--lm-pine-deep); }
#footer-widgets .footer-widget h4{ font-family:"Bricolage Grotesque",sans-serif; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--lm-wheat-soft); }
#main-footer, #footer-widgets li a, #footer-info{ color:#c3cbbc; }

/* ---------- Widget de don [lm_don] ---------- */
.lm-don{ background:var(--lm-card); border:1px solid var(--lm-line); border-radius:var(--lm-r); padding:30px; box-shadow:var(--lm-shadow); max-width:520px; }
.lm-don .lm-freq{ display:inline-flex; background:var(--lm-paper-2); border-radius:100px; padding:4px; margin-bottom:18px; }
.lm-don .lm-freq button{ font-family:"Bricolage Grotesque",sans-serif; font-weight:600; font-size:.9rem; border:none; background:none; padding:.5em 1.1em; border-radius:100px; cursor:pointer; color:var(--lm-ink-soft); }
.lm-don .lm-freq button.sel{ background:var(--lm-card); color:var(--lm-ink); box-shadow:var(--lm-shadow); }
.lm-don .lm-amounts{ display:flex; flex-wrap:wrap; gap:12px; margin:8px 0 22px; }
.lm-don .lm-amount{ font-family:"Bricolage Grotesque",sans-serif; font-weight:700; font-size:1.05rem; padding:.7em 1.2em; border-radius:12px; border:1.5px solid var(--lm-line-strong); background:var(--lm-card); cursor:pointer; color:var(--lm-ink); }
.lm-don .lm-amount.sel{ background:var(--lm-pine); color:#F4F0E5; border-color:var(--lm-pine); }
.lm-don .lm-give{ display:flex; justify-content:center; width:100%; font-family:"Bricolage Grotesque",sans-serif; font-weight:600; background:var(--lm-wheat); color:#2a1c05; border:none; border-radius:100px; padding:.85em 1.4em; cursor:pointer; }
.lm-don .lm-pay{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.lm-don .lm-pay span{ font-family:"Bricolage Grotesque",sans-serif; font-weight:600; font-size:.8rem; padding:.4em .85em; border-radius:8px; background:var(--lm-paper-2); color:var(--lm-ink-soft); }

/* ---------- Confort d'édition : colonnes de cartes de même hauteur ---------- */
@media(min-width:981px){
  .et_pb_row .et_pb_column .et_pb_blurb.lm-blurb{ display:flex; flex-direction:column; }
}

/* =========================================================
   13. EN-TÊTE GLOBAL (Theme Builder) — CORRIGÉ (3 colonnes flex)
   ========================================================= */
/* ---------- Fond de la barre + effet collant ---------- */
.et-l--header .et_pb_section.lm-header,
body .et_pb_section.lm-header{
  background-color:rgba(244,240,229,.90) !important;
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(31,39,30,.14) !important;
}

.et-l--header{ position:sticky; top:0; z-index:99999; }
.admin-bar .et-l--header{ top:32px; }
@media(max-width:782px){ .admin-bar .et-l--header{ top:46px; } }


/* ---------- ★ LA CORRECTION : la ligne devient un flex ---------- */
body .lm-header .lm-header-row{
  display:flex !important;
  align-items:center !important;   /* tout est centré verticalement */
  flex-wrap:nowrap !important;
}

/* Les colonnes ne s'empilent plus et ne se chevauchent plus */
body .lm-header .lm-header-row .et_pb_column{
  margin-bottom:0 !important;
  margin-right:0 !important;
  display:flex !important;
  align-items:center !important;
}

body .lm-header .lm-col-logo{ justify-content:flex-start !important; flex:0 0 auto !important; }
body .lm-header .lm-col-menu{ justify-content:flex-end !important;  flex:1 1 auto !important; }
body .lm-header .lm-col-cta{
  justify-content:flex-end !important;
  flex:0 0 auto !important;
  gap:8px;
  white-space:nowrap;
}


/* ---------- Logo ---------- */
body .lm-header .lm-logo{ margin:0 !important; }
body .lm-header .lm-logo img{ border-radius:0 !important; display:block; }


/* ---------- Menu ---------- */
body .lm-header .lm-menu{ width:100%; margin:0 !important; }
body .lm-header .lm-menu .et_pb_menu__wrap{ justify-content:flex-end !important; }
body .lm-header .lm-menu .et_pb_menu__menu{ width:auto !important; }
body .lm-header .lm-menu .et_pb_menu__menu > nav > ul > li > a{
  font-family:"Bricolage Grotesque",sans-serif !important;
  font-weight:600 !important;
  padding:.5em .65em !important;
  border-radius:8px;
  color:#3F4A3C !important;
  transition:color .15s, background .15s;
}
body .lm-header .lm-menu .et_pb_menu__menu > nav > ul > li > a:hover{
  color:#24382A !important; background:rgba(31,39,30,.05);
}
body .lm-header .lm-menu .et_pb_menu__menu > nav > ul > li.current-menu-item > a{
  color:#24382A !important; background:rgba(92,117,86,.14);
}
/* le logo du module Menu est masqué : il est déjà dans sa colonne */
body .lm-header .lm-menu .et_pb_menu__logo-wrap,
body .lm-header .lm-menu .et_pb_menu__logo{ display:none !important; }


/* ---------- Boutons permanents (plus AUCUNE marge négative) ---------- */
body .lm-header .et_pb_button.lm-header-btn{
  position:static !important;      /* annule tout décalage résiduel */
  transform:none !important;
  padding:.55em 1.05em !important;
  font-size:14px !important;
  line-height:1.2 !important;
  white-space:nowrap;
  display:inline-block !important;
}
body .lm-header .lm-col-cta .et_pb_button_module_wrapper{
  margin:0 !important;
  display:inline-block !important;
}


/* ---------- Responsive ---------- */
/* Tablette : le menu passe en hamburger, les boutons restent à droite */
@media(max-width:1100px){
  body .lm-header .et_pb_button.lm-header-btn{
    font-size:13px !important; padding:.5em .85em !important;
  }
  body .lm-header .lm-menu .et_pb_menu__menu > nav > ul > li > a{ padding:.5em .45em !important; }
}

/* Mobile : on empile proprement, sans chevauchement */
@media(max-width:980px){
  body .lm-header .lm-header-row{ flex-wrap:wrap !important; }
  body .lm-header .lm-col-logo{ flex:1 1 50% !important; }
  body .lm-header .lm-col-menu{ flex:0 0 auto !important; order:3; }
  body .lm-header .lm-col-cta{ flex:1 1 auto !important; }
  body .lm-header .et_pb_button.lm-header-btn{ margin:4px 0 4px 6px !important; }
}

@media(max-width:600px){
  body .lm-header .lm-logo img{ max-width:96px !important; }
  body .lm-header .et_pb_button.lm-header-btn{
    font-size:12px !important; padding:.45em .75em !important;
  }
  /* si l'espace manque vraiment, masquer le bouton secondaire :
     décommenter la ligne suivante */
  /* body .lm-header .et_pb_button.lm-ghost.lm-header-btn{ display:none !important; } */
}

/* Empilement propre sur mobile : boutons sous le menu */
@media(max-width:980px){
  .lm-header .lm-header-row{ flex-wrap:wrap; }
  .lm-header .et_pb_button.lm-header-btn{
    margin:8px 8px 0 0 !important; position:static !important;
    transform:none !important; custom-margin:0 !important;
  }
  .lm-header .et_pb_button.lm-header-btn{ margin-top:10px !important; }
  .lm-header .lm-menu .et_pb_menu__wrap{ justify-content:flex-end; }
}
@media(max-width:600px){
  .lm-header .lm-logo img{ max-width:104px; }
  .lm-header .et_pb_button.lm-header-btn{ font-size:13px !important; padding:.5em .9em !important; }
}

/* ---------- PIED DE PAGE : 4 colonnes sur vert profond ---------- */
.lm-footer{ background:var(--lm-pine-deep) !important; }
.lm-footer .et_pb_row{ margin-bottom:0; }
.lm-footer .lm-foot-logo img{ border-radius:0; opacity:.95; }

.lm-footer .lm-foot-col h4,
.lm-footer h4{
  font-family:"Bricolage Grotesque",sans-serif !important;
  font-size:.8rem !important; letter-spacing:.12em; text-transform:uppercase;
  color:var(--lm-wheat-soft) !important; margin:0 0 1em !important; font-weight:600;
}
.lm-footer .lm-foot-col p{ margin:0 0 .1em; }
.lm-footer .lm-foot-col a,
.lm-footer .lm-foot-about a{
  color:#c3cbbc !important; text-decoration:none;
  display:inline-block; padding:.22em 0; transition:color .15s;
}
.lm-footer .lm-foot-col a:hover,
.lm-footer .lm-foot-about a:hover{ color:#F4F0E5 !important; }
.lm-footer .lm-foot-about p{ color:#9aa491 !important; }

.lm-footer .lm-copyright p{
  font-size:13px !important; color:#8a9381 !important; margin:0;
}
.lm-footer .lm-copyright a{ color:#8a9381 !important; text-decoration:none; }
.lm-footer .lm-copyright a:hover{ color:#c3cbbc !important; }

@media(max-width:980px){
  .lm-footer .et_pb_column{ margin-bottom:28px !important; width:100% !important; }
  .lm-footer .lm-copyright p{ text-align:left; }
}
