/*

Theme Name: Bouchons Euréliens

Theme URI: https://www.bouchonseureliens.fr

Description: Thème enfant GeneratePress pour l'association Bouchons Euréliens

Author: Bouchons Euréliens

Template: generatepress

Version: 1.0.0

Text Domain: bouchons-eureliens

*/



/* ============================================================

   VARIABLES & RESET

   ============================================================ */

:root {

  --green-50:   #f0f7e8;

  --green-100:  #d6ecb8;

  --green-300:  #8fca3a;

  --green-500:  #4e8c10;

  --green-700:  #2d5908;

  --green-900:  #162e02;

  --sand-50:    #faf8f2;

  --sand-100:   #f1ede0;

  --sand-300:   #d9cfa8;

  --charcoal:   #1e2219;

  --muted:      #5a6355;

  --accent:     #e8630a;

  --white:      #ffffff;

  --radius:     12px;

  --radius-lg:  20px;

  --shadow-sm:  0 1px 3px rgba(30,34,25,0.08);

  --shadow-md:  0 4px 16px rgba(30,34,25,0.10);

}



*, *::before, *::after { box-sizing: border-box; }



body {

  font-family: 'DM Sans', sans-serif !important;

  background: var(--sand-50) !important;

  color: var(--charcoal) !important;

  line-height: 1.6;

  overflow-x: hidden;

}



/* ============================================================

   GENERATEPRESS OVERRIDES

   ============================================================ */

.site-header,

.site-header .header-inner {

  background: rgba(250,248,242,0.97) !important;

  backdrop-filter: blur(12px);

  border-bottom: 1px solid var(--sand-300) !important;

  box-shadow: none !important;

}

.site-header {

  position: fixed !important;

  top: 0; left: 0; right: 0;

  z-index: 999;

}

.site-content { padding-top: 64px !important; }



/* Logo */

.site-branding .site-title a {

  font-family: 'DM Serif Display', serif !important;

  font-size: 20px !important;

  color: var(--charcoal) !important;

  text-decoration: none;

}

.site-branding .site-description {

  font-size: 10px !important;

  letter-spacing: 0.12em;

  text-transform: uppercase;

  color: var(--muted) !important;

}



/* Nav */

.main-navigation a {

  font-family: 'DM Sans', sans-serif !important;

  font-size: 14px !important;

  color: var(--muted) !important;

  font-weight: 400 !important;

  transition: color 0.2s;

}

.main-navigation a:hover,

.main-navigation .current-menu-item > a {

  color: var(--charcoal) !important;

}

.main-navigation .nav-cta > a {

  background: var(--green-500) !important;

  color: var(--white) !important;

  padding: 8px 20px !important;

  border-radius: 100px !important;

  font-weight: 500 !important;

}

.main-navigation .nav-cta > a:hover {

  background: var(--green-700) !important;

}



/* Footer GP */

.site-footer {

  background: var(--charcoal) !important;

  color: rgba(255,255,255,0.5) !important;

  padding: 0 !important;

}

.site-footer a { color: rgba(255,255,255,0.5) !important; }

.site-footer a:hover { color: var(--white) !important; }



/* ============================================================

   UTILITAIRES GLOBAUX

   ============================================================ */

.be-container {

  max-width: 1100px;

  margin: 0 auto;

  padding: 0 2rem;

}



.be-section { padding: 80px 0; }

.be-section--white { background: var(--white); }

.be-section--dark  { background: var(--green-900); }

.be-section--tinted { background: var(--green-50); border-top: 1px solid var(--green-100); border-bottom: 1px solid var(--green-100); }



.be-tag {

  display: inline-flex; align-items: center; gap: 8px;

  background: var(--green-50);

  border: 1px solid var(--green-100);

  color: var(--green-500);

  font-size: 12px; font-weight: 500;

  letter-spacing: 0.1em; text-transform: uppercase;

  padding: 6px 14px; border-radius: 100px;

  margin-bottom: 1.5rem;

}

.be-tag::before {

  content: '';

  width: 6px; height: 6px;

  background: var(--green-300);

  border-radius: 50%;

}



.be-label {

  font-size: 11px; font-weight: 500;

  letter-spacing: 0.15em; text-transform: uppercase;

  color: var(--green-500);

  margin-bottom: 0.75rem;

  display: block;

}



.be-title {

  font-family: 'DM Serif Display', serif;

  font-size: clamp(1.8rem, 3.5vw, 2.8rem);

  line-height: 1.15;

  color: var(--charcoal);

  margin-bottom: 1rem;

}

.be-title em { font-style: italic; color: var(--green-500); }

.be-title--white { color: var(--white); }



.be-subtitle {

  font-size: 17px; font-weight: 300;

  color: var(--muted); line-height: 1.7;

  max-width: 560px;

  margin-bottom: 0;

}

.be-subtitle--white { color: rgba(255,255,255,0.6); }



/* Boutons */

.be-btn {

  display: inline-flex; align-items: center; gap: 8px;

  padding: 14px 28px; border-radius: 100px;

  text-decoration: none; font-weight: 500; font-size: 15px;

  transition: background 0.2s, transform 0.15s, border-color 0.2s;

  cursor: pointer; border: none; font-family: 'DM Sans', sans-serif;

}

.be-btn--primary { background: var(--green-500); color: var(--white) !important; }

.be-btn--primary:hover { background: var(--green-700); transform: translateY(-1px); }

.be-btn--secondary { background: transparent; color: var(--charcoal) !important; border: 1.5px solid var(--sand-300); }

.be-btn--secondary:hover { border-color: var(--charcoal); transform: translateY(-1px); }

.be-btn--white { background: var(--white); color: var(--green-900) !important; }

.be-btn--white:hover { opacity: 0.9; }



/* Cards */

.be-card {

  background: var(--white);

  border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg);

  padding: 1.75rem;

  transition: border-color 0.2s, transform 0.2s;

}

.be-card:hover { border-color: var(--green-300); transform: translateY(-2px); }



/* ============================================================

   PAGE HEADER

   ============================================================ */

.be-page-header {

  padding: 80px 0 60px;

  background: linear-gradient(135deg, var(--sand-50) 60%, var(--green-50));

  border-bottom: 1px solid var(--sand-300);

}

.be-page-header h1 {

  font-family: 'DM Serif Display', serif;

  font-size: clamp(2rem, 4vw, 3.2rem);

  line-height: 1.1;

  margin-bottom: 1rem;

  color: var(--charcoal);

}

.be-page-header p {

  font-size: 18px; font-weight: 300;

  color: var(--muted); max-width: 560px; line-height: 1.7;

}



/* ============================================================

   HERO (front-page)

   ============================================================ */

.be-hero {

  min-height: calc(100vh - 64px);

  display: flex; align-items: center;

  padding: 80px 0;

  position: relative; overflow: hidden;

  background: linear-gradient(135deg, var(--sand-50) 50%, var(--green-50) 100%);

}

.be-hero__circle {

  position: absolute; border-radius: 50%;

  background: var(--green-100); opacity: 0.5;

  pointer-events: none;

}

.be-hero__circle--1 { width: 600px; height: 600px; top: -200px; right: -200px; }

.be-hero__circle--2 { width: 300px; height: 300px; bottom: -100px; left: 10%; opacity: 0.3; }

.be-hero__inner {

  display: grid; grid-template-columns: 1fr 1fr;

  gap: 4rem; align-items: center;

  position: relative; z-index: 1;

}

.be-hero__content h1 {

  font-family: 'DM Serif Display', serif;

  font-size: clamp(2.5rem, 5vw, 4rem);

  line-height: 1.1; margin-bottom: 1.5rem;

  color: var(--charcoal);

}

.be-hero__content p {

  font-size: 18px; font-weight: 300;

  color: var(--muted); max-width: 440px;

  margin-bottom: 2.5rem; line-height: 1.7;

}

.be-hero__actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }

.be-hero__visual { display: flex; flex-direction: column; gap: 1.5rem; }

.be-hero__stat-row { display: flex; gap: 1rem; }

.be-hero__stat {

  flex: 1; background: var(--white);

  border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg); padding: 1.5rem;

}

.be-hero__stat--green {

  background: var(--green-500); border: none;

  display: flex; align-items: center; gap: 1rem;

}

.be-hero__stat-number {

  font-family: 'DM Serif Display', serif;

  font-size: 2.2rem; line-height: 1; margin-bottom: 4px;

  color: var(--charcoal);

}

.be-hero__stat--green .be-hero__stat-number { color: var(--white); }

.be-hero__stat-number span { color: var(--green-500); }

.be-hero__stat--green .be-hero__stat-number span { color: var(--white); }

.be-hero__stat-label { font-size: 13px; color: var(--muted); font-weight: 300; }

.be-hero__stat--green .be-hero__stat-label { color: rgba(255,255,255,0.75); }

.be-hero__quote-card {

  background: var(--white);

  border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg); padding: 1.5rem;

  display: flex; align-items: center; gap: 1rem;

}

.be-hero__avatar {

  width: 48px; height: 48px; border-radius: 50%;

  background: var(--green-50); border: 2px solid var(--green-100);

  display: flex; align-items: center; justify-content: center;

  font-size: 22px; flex-shrink: 0;

}

.be-hero__quote {

  font-size: 14px; color: var(--muted);

  font-style: italic; line-height: 1.5;

}

.be-hero__quote strong {

  font-style: normal; color: var(--charcoal); font-size: 13px;

}



/* Animations hero */

@keyframes be-fadeUp {

  from { opacity: 0; transform: translateY(24px); }

  to   { opacity: 1; transform: translateY(0); }

}

.be-hero__content { animation: be-fadeUp 0.7s ease both; }

.be-hero__visual  { animation: be-fadeUp 0.7s 0.2s ease both; }



/* ============================================================

   STEPS (comment ça marche)

   ============================================================ */

.be-steps { display: flex; flex-direction: column; gap: 0; margin-top: 3rem; }

.be-step {

  display: grid; grid-template-columns: 80px 1fr;

  gap: 2rem; padding: 2.5rem 0;

  border-bottom: 1px solid var(--sand-300); align-items: start;

}

.be-step:last-child { border-bottom: none; }

.be-step__num {

  font-family: 'DM Serif Display', serif;

  font-size: 4rem; color: var(--green-100);

  -webkit-text-stroke: 1.5px var(--green-300);

  line-height: 1; text-align: right; padding-top: 4px;

}

.be-step h3 { font-size: 22px; font-weight: 500; margin-bottom: 0.75rem; }

.be-step p {

  font-size: 16px; color: var(--muted); font-weight: 300;

  line-height: 1.7; max-width: 640px;

}

.be-step p strong { color: var(--charcoal); font-weight: 500; }

.be-step__tag {

  display: inline-block; margin-top: 1rem;

  background: var(--green-50); color: var(--green-500);

  font-size: 12px; padding: 4px 12px; border-radius: 100px;

  border: 1px solid var(--green-100); font-weight: 500;

}



/* Steps carrés (accueil) */

.be-steps-grid {

  display: grid; grid-template-columns: repeat(4, 1fr);

  gap: 0; margin-top: 3rem;

  border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg); overflow: hidden;

}

.be-step-sq {

  padding: 2rem 1.75rem; background: var(--white);

  border-right: 1px solid var(--sand-300);

}

.be-step-sq:last-child { border-right: none; }

.be-step-sq__num {

  font-family: 'DM Serif Display', serif;

  font-size: 4rem; line-height: 1;

  color: var(--green-50); margin-bottom: 1rem;

  -webkit-text-stroke: 1px var(--green-100);

}

.be-step-sq__icon { font-size: 2rem; margin-bottom: 1rem; display: block; }

.be-step-sq h3 { font-size: 16px; font-weight: 500; margin-bottom: 0.5rem; }

.be-step-sq p { font-size: 14px; color: var(--muted); line-height: 1.6; }



/* ============================================================

   IMPACT

   ============================================================ */

.be-impact-grid {

  display: grid; grid-template-columns: repeat(3, 1fr);

  gap: 1.5rem; margin-top: 3rem;

}

.be-impact-card {

  background: rgba(255,255,255,0.05);

  border: 1px solid rgba(255,255,255,0.1);

  border-radius: var(--radius-lg); padding: 2rem;

}

.be-impact-number {

  font-family: 'DM Serif Display', serif;

  font-size: 3.5rem; color: var(--green-300);

  line-height: 1; margin-bottom: 0.5rem;

}

.be-impact-label {

  font-size: 15px; color: rgba(255,255,255,0.5);

  font-weight: 300; line-height: 1.5;

}

.be-impact-label strong { color: rgba(255,255,255,0.85); font-weight: 400; }



/* ============================================================

   COLLECTE CARDS

   ============================================================ */

.be-collecte-grid {

  display: grid; grid-template-columns: repeat(3, 1fr);

  gap: 1.5rem; margin-top: 3rem;

}

.be-collecte-card {

  background: var(--white); border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg); padding: 1.75rem;

  transition: border-color 0.2s, transform 0.2s;

  display: flex; flex-direction: column;

}

.be-collecte-card:hover { border-color: var(--green-300); transform: translateY(-2px); }

.be-collecte-card__top {

  display: flex; justify-content: space-between;

  align-items: flex-start; margin-bottom: 1.25rem;

}

.be-collecte-card__icon {

  width: 48px; height: 48px; background: var(--green-50);

  border-radius: var(--radius); display: flex;

  align-items: center; justify-content: center; font-size: 24px;

}

.be-badge {

  font-size: 11px; padding: 4px 10px;

  border-radius: 100px; font-weight: 500;

}

.be-badge--open   { background: var(--green-50); color: var(--green-700); border: 1px solid var(--green-100); }

.be-badge--new    { background: #fff3e0; color: #8a5200; border: 1px solid #ffd99a; }

.be-badge--siege  { background: var(--sand-100); color: var(--muted); border: 1px solid var(--sand-300); }

.be-collecte-card h3 { font-size: 16px; font-weight: 500; margin-bottom: 4px; }

.be-collecte-card__zone {

  font-size: 12px; color: var(--green-500); font-weight: 500;

  letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0.75rem;

}

.be-collecte-card p { font-size: 13px; color: var(--muted); line-height: 1.6; flex: 1; }

.be-collecte-card__footer {

  margin-top: 1.25rem; padding-top: 1rem;

  border-top: 1px solid var(--sand-100);

  display: flex; align-items: center; gap: 8px;

}

.be-collecte-card__address { font-size: 12px; color: var(--muted); }

.be-collecte-card__link {

  font-size: 13px; color: var(--green-500);

  text-decoration: none; font-weight: 500; margin-left: auto;

}

.be-collecte-card__link:hover { text-decoration: underline; }



/* Filter bar */

.be-filter-bar { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 2rem; }

.be-filter-btn {

  padding: 8px 18px; border-radius: 100px;

  border: 1px solid var(--sand-300);

  background: var(--white); color: var(--muted);

  font-size: 13px; cursor: pointer;

  font-family: 'DM Sans', sans-serif; transition: all 0.2s;

}

.be-filter-btn:hover, .be-filter-btn.active {

  background: var(--green-500); color: var(--white); border-color: var(--green-500);

}



/* ============================================================

   ACCEPT (oui/non bouchons)

   ============================================================ */

.be-accept-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 3rem; }

.be-accept-col { border-radius: var(--radius-lg); padding: 2rem; }

.be-accept-col--yes { background: var(--green-50); border: 1px solid var(--green-100); }

.be-accept-col--no  { background: #fff8f5; border: 1px solid #f5d5c0; }

.be-accept-col h3 { font-size: 17px; font-weight: 500; margin-bottom: 1.25rem; }

.be-accept-col--yes h3 { color: var(--green-700); }

.be-accept-col--no  h3 { color: #8a3a1a; }

.be-accept-list { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; padding: 0; }

.be-accept-list li {

  font-size: 14px; color: var(--muted);

  display: flex; align-items: flex-start; gap: 10px;

}

.be-accept-col--yes .be-accept-list li::before { content: '✓'; color: var(--green-500); font-weight: 700; flex-shrink: 0; }

.be-accept-col--no  .be-accept-list li::before { content: '✗'; color: #c0522a; font-weight: 700; flex-shrink: 0; }



/* ============================================================

   FAQ

   ============================================================ */

.be-faq { margin-top: 3rem; display: flex; flex-direction: column; gap: 1px; border: 1px solid var(--sand-300); border-radius: var(--radius-lg); overflow: hidden; }

.be-faq-item { background: var(--white); border-top: 1px solid var(--sand-300); }

.be-faq-item:first-child { border-top: none; }

.be-faq-q {

  padding: 1.25rem 1.5rem; cursor: pointer;

  font-size: 16px; font-weight: 500;

  display: flex; justify-content: space-between; align-items: center;

  user-select: none; list-style: none;

}

.be-faq-q:hover { background: var(--sand-50); }

.be-faq-icon { color: var(--green-500); font-size: 20px; transition: transform 0.2s; flex-shrink: 0; }

.be-faq-item.open .be-faq-icon { transform: rotate(45deg); }

.be-faq-a {

  display: none; padding: 0 1.5rem 1.25rem;

  font-size: 15px; font-weight: 300; color: var(--muted); line-height: 1.7;

}

.be-faq-item.open .be-faq-a { display: block; }



/* ============================================================

   QUI SOMMES NOUS

   ============================================================ */

.be-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }

.be-story-content h2 { font-family: 'DM Serif Display', serif; font-size: 2rem; margin-bottom: 1.5rem; line-height: 1.2; }

.be-story-content p { font-size: 16px; color: var(--muted); line-height: 1.8; margin-bottom: 1.25rem; font-weight: 300; }

.be-story-content p strong { color: var(--charcoal); font-weight: 500; }

.be-story-sidebar { display: flex; flex-direction: column; gap: 1rem; }

.be-info-card { background: var(--white); border: 1px solid var(--sand-300); border-radius: var(--radius-lg); padding: 1.5rem; }

.be-info-card__label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--green-500); font-weight: 500; margin-bottom: 4px; }

.be-info-card__value { font-size: 15px; color: var(--charcoal); }

.be-info-card__value a { color: var(--green-500); text-decoration: none; }



.be-values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 3rem; }

.be-value-card { padding: 2rem; border: 1px solid var(--sand-300); border-radius: var(--radius-lg); }

.be-value-icon { font-size: 2rem; margin-bottom: 1rem; display: block; }

.be-value-card h3 { font-size: 17px; font-weight: 500; margin-bottom: 0.5rem; }

.be-value-card p { font-size: 14px; color: var(--muted); line-height: 1.6; }



.be-reseau-flow {

  display: grid; grid-template-columns: repeat(5, 1fr);

  margin-top: 3rem;

  background: rgba(255,255,255,0.05);

  border: 1px solid rgba(255,255,255,0.1);

  border-radius: var(--radius-lg); overflow: hidden;

}

.be-reseau-step { padding: 1.5rem 1.25rem; }

.be-reseau-step:not(:last-child) { border-right: 1px solid rgba(255,255,255,0.1); }

.be-reseau-step__num { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--green-300); margin-bottom: 0.75rem; font-weight: 500; }

.be-reseau-step h4 { font-size: 14px; color: var(--white); font-weight: 500; margin-bottom: 0.5rem; }

.be-reseau-step p { font-size: 12px; color: rgba(255,255,255,0.5); }



/* ============================================================

   CONTACT

   ============================================================ */

.be-contact-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: 4rem; align-items: start; }

.be-contact-cards { display: flex; flex-direction: column; gap: 1.25rem; }

.be-contact-card {

  background: var(--white); border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg); padding: 1.5rem;

  display: flex; align-items: flex-start; gap: 1rem;

}

.be-contact-card__icon {

  width: 44px; height: 44px; border-radius: var(--radius);

  background: var(--green-50); display: flex;

  align-items: center; justify-content: center;

  font-size: 20px; flex-shrink: 0;

}

.be-contact-card__label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--green-500); font-weight: 500; margin-bottom: 4px; }

.be-contact-card__value { font-size: 15px; color: var(--charcoal); }

.be-contact-card__value a { color: var(--charcoal); text-decoration: none; }

.be-contact-card__value a:hover { color: var(--green-500); }

.be-contact-card__note { font-size: 12px; color: var(--muted); margin-top: 2px; }



.be-form-card {

  background: var(--white); border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg); padding: 2.5rem;

}

.be-form-card h2 { font-family: 'DM Serif Display', serif; font-size: 1.6rem; margin-bottom: 0.5rem; }

.be-form-card .be-form-subtitle { font-size: 14px; color: var(--muted); font-weight: 300; margin-bottom: 2rem; }

.be-subject-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 1.5rem; }

.be-subject-chip {

  padding: 7px 14px; border-radius: 100px;

  border: 1px solid var(--sand-300); background: var(--white);

  color: var(--muted); font-size: 13px; cursor: pointer;

  font-family: 'DM Sans', sans-serif; transition: all 0.2s;

}

.be-subject-chip:hover, .be-subject-chip.selected {

  background: var(--green-500); color: var(--white); border-color: var(--green-500);

}

.be-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }

.be-form-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: 1rem; }

.be-form-group label { font-size: 13px; font-weight: 500; color: var(--charcoal); }

.be-form-group input,

.be-form-group textarea,

.be-form-group select {

  width: 100%; padding: 12px 14px;

  border: 1px solid var(--sand-300); border-radius: var(--radius);

  font-family: 'DM Sans', sans-serif; font-size: 14px;

  color: var(--charcoal); background: var(--sand-50);

  transition: border-color 0.2s; appearance: none;

}

.be-form-group input:focus,

.be-form-group textarea:focus {

  outline: none; border-color: var(--green-500); background: var(--white);

}

.be-form-group textarea { min-height: 140px; resize: vertical; }

.be-form-note { font-size: 12px; color: var(--muted); }

.be-btn-submit {

  width: 100%; margin-top: 1.5rem;

  padding: 15px 28px; border-radius: 100px;

  background: var(--green-500); color: var(--white);

  border: none; font-family: 'DM Sans', sans-serif;

  font-size: 15px; font-weight: 500; cursor: pointer;

  transition: background 0.2s, transform 0.15s;

}

.be-btn-submit:hover { background: var(--green-700); transform: translateY(-1px); }

.be-success-msg { display: none; text-align: center; padding: 2rem; }

.be-success-msg .be-success-icon { font-size: 3rem; margin-bottom: 1rem; }

.be-success-msg h3 { font-family: 'DM Serif Display', serif; font-size: 1.4rem; margin-bottom: 0.5rem; }

.be-success-msg p { font-size: 14px; color: var(--muted); }



/* ============================================================

   BAND PARTNER / BENEVOLE / CTA

   ============================================================ */

.be-band {

  border-radius: var(--radius-lg); padding: 3rem;

  display: grid; grid-template-columns: 1fr auto;

  gap: 2rem; align-items: center; margin-top: 3rem;

}

.be-band--light  { background: var(--green-50); border: 1px solid var(--green-100); }

.be-band--dark   { background: var(--green-900); }

.be-band h3 { font-family: 'DM Serif Display', serif; font-size: 1.6rem; margin-bottom: 0.5rem; }

.be-band--light h3 { color: var(--charcoal); }

.be-band--dark  h3 { color: var(--white); }

.be-band p { font-size: 15px; font-weight: 300; max-width: 480px; line-height: 1.6; }

.be-band--light p { color: var(--muted); }

.be-band--dark  p { color: rgba(255,255,255,0.6); }



/* CTA centré */

.be-cta-center { text-align: center; padding: 64px 0; }

.be-cta-center .be-title { margin: 0 auto 1rem; }

.be-cta-center .be-subtitle { margin: 0 auto 2rem; }

.be-cta-center-actions { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }



/* Zone notice */

.be-zone-notice {

  background: var(--white); border: 1px solid var(--sand-300);

  border-radius: var(--radius-lg); padding: 2rem;

  display: flex; gap: 1.5rem; align-items: flex-start; margin-bottom: 1.5rem;

}

.be-zone-notice__icon { font-size: 2rem; flex-shrink: 0; }

.be-zone-notice h4 { font-size: 16px; font-weight: 500; margin-bottom: 0.4rem; }

.be-zone-notice p { font-size: 14px; color: var(--muted); font-weight: 300; line-height: 1.6; }

.be-zone-notice a { color: var(--green-500); font-weight: 500; }



/* ============================================================

   FOOTER CUSTOM

   ============================================================ */

.be-footer-inner {

  max-width: 1100px; margin: 0 auto;

  padding: 3rem 2rem;

  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem;

}

.be-footer-brand h4 {

  font-family: 'DM Serif Display', serif;

  color: var(--white); font-size: 20px; margin-bottom: 0.75rem;

}

.be-footer-brand p { font-size: 13px; line-height: 1.6; max-width: 280px; color: rgba(255,255,255,0.5); }

.be-footer-col h5 {

  color: var(--white); font-size: 12px;

  letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1rem;

}

.be-footer-col a {

  display: block; color: rgba(255,255,255,0.5) !important;

  text-decoration: none; font-size: 14px; margin-bottom: 0.5rem; transition: color 0.2s;

}

.be-footer-col a:hover { color: var(--white) !important; }

.be-footer-bottom {

  max-width: 1100px; margin: 0 auto;

  padding: 1.5rem 2rem;

  border-top: 1px solid rgba(255,255,255,0.1);

  display: flex; justify-content: space-between; align-items: center; font-size: 12px;

  color: rgba(255,255,255,0.4);

}

.be-footer-badge {

  display: inline-flex; align-items: center; gap: 6px;

  background: rgba(255,255,255,0.08);

  padding: 6px 12px; border-radius: 100px;

  font-size: 12px; color: rgba(255,255,255,0.4);

}



/* ============================================================

   RESPONSIVE

   ============================================================ */

@media (max-width: 1024px) {

  .be-reseau-flow { grid-template-columns: repeat(3, 1fr); }

}



@media (max-width: 900px) {

  .be-hero__inner     { grid-template-columns: 1fr; }

  .be-hero__visual    { display: none; }

  .be-steps-grid      { grid-template-columns: repeat(2, 1fr); }

  .be-step-sq:nth-child(2) { border-right: none; }

  .be-step-sq:nth-child(1),

  .be-step-sq:nth-child(2) { border-bottom: 1px solid var(--sand-300); }

  .be-impact-grid     { grid-template-columns: 1fr 1fr; }

  .be-collecte-grid   { grid-template-columns: 1fr 1fr; }

  .be-accept-grid     { grid-template-columns: 1fr; }

  .be-story-grid      { grid-template-columns: 1fr; gap: 2.5rem; }

  .be-values-grid     { grid-template-columns: 1fr 1fr; }

  .be-reseau-flow     { grid-template-columns: 1fr; }

  .be-reseau-step     { border-right: none !important; border-bottom: 1px solid rgba(255,255,255,0.1); }

  .be-contact-layout  { grid-template-columns: 1fr; }

  .be-band            { grid-template-columns: 1fr; }

  .be-footer-inner    { grid-template-columns: 1fr; gap: 2rem; }

  .be-footer-bottom   { flex-direction: column; gap: 1rem; text-align: center; }

}



@media (max-width: 600px) {

  .be-steps-grid      { grid-template-columns: 1fr; }

  .be-step-sq         { border-right: none !important; border-bottom: 1px solid var(--sand-300); }

  .be-impact-grid     { grid-template-columns: 1fr; }

  .be-collecte-grid   { grid-template-columns: 1fr; }

  .be-values-grid     { grid-template-columns: 1fr; }

  .be-step            { grid-template-columns: 50px 1fr; gap: 1rem; }

  .be-step__num       { font-size: 2.5rem; }

  .be-form-row        { grid-template-columns: 1fr; }

  .be-hero__content h1 { font-size: 2.2rem; }

}

/* ============================================================

   BOUCHONS EURELIENS - NETTOYAGE PIED DE PAGE (FOOTER)

   ============================================================ */



/* 1. FORCE LA COULEUR BLANCHE (TEXTES, LIENS, TITRES) */

.site-footer, 

.site-footer p, 

.site-footer span, 

.site-footer li, 

.site-footer a,

.site-footer .widget-title,

.site-footer .textwidget,

.inside-footer-widgets .widget-title,

.footer-widgets .widget {

    color: #ffffff !important;

}



/* Force les liens en blanc pur */

.site-footer a, 

.footer-widgets a, 

.site-info a {

    color: #ffffff !important;

    text-decoration: underline !important;

}



/* 2. RÉDUCTION DRASTIQUE DE LA HAUTEUR DU BANDEAU NOIR */

/* On cible le conteneur principal de GeneratePress */

.site-footer .footer-widgets-container {

    padding-top: 25px !important;    /* Réduit le vide en haut */

    padding-bottom: 0px !important;  /* Supprime le vide en bas avant le copyright */

}



/* On supprime les marges internes des colonnes de widgets */

.site-footer .inside-footer-widgets {

    margin-bottom: 0px !important;

}



/* On réduit l'espace sous chaque widget individuel */

.site-footer .footer-widgets .widget {

    padding-bottom: 5px !important;

    margin-bottom: 10px !important;

}



/* 3. RÉDUCTION DE LA BARRE DE COPYRIGHT TOUT EN BAS */

.site-info {

    padding-top: 10px !important;

    padding-bottom: 10px !important;

    margin-top: 5px !important; /* Rapproche la barre des widgets */

    background-color: rgba(255,255,255,0.03) !important;

}



/* 4. TAILLE DES TITRES DU FOOTER */

.site-footer .widget-title {

    margin-bottom: 10px !important;

    font-size: 17px !important;

    text-transform: uppercase;

    letter-spacing: 1px;

}