/*
Theme Name: Les Bananes Mékanik
Theme URI: https://bananes-mekanik.fr
Author: Les Bananes Mékanik
Description: Thème fanzine pour l'association Les Bananes Mékanik — garage associatif en Périgord Vert. Esprit atelier populaire, palette noir / jaune / bleu électrique.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bananes-mekanik
Tags: association, one-column, custom-menu, custom-logo, translation-ready, rtl-language-support
*/

/* ============================================================
   TOKENS
============================================================ */
:root {
  --bm-noir: #0A0A0B;
  --bm-anthracite: #1F2023;
  --bm-anthracite-light: #2A2B2F;
  --bm-anthracite-border: #34363B;
  --bm-jaune: #F5D00A;
  --bm-jaune-fonce: #E6B800;
  --bm-bleu: #3D4CC7;
  --bm-bleu-clair: #5B69D6;
  --bm-blanc: #FFFFFF;
  --bm-creme: #E8E6E0;
  --bm-gris: #9A9B9F;

  --bm-container: 1280px;
  --bm-section-pad-y: 90px;
  --bm-section-pad-x: 40px;
}

/* ============================================================
   RESET
============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  background: var(--bm-noir);
  color: var(--bm-creme);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; cursor: pointer; }
h1, h2, h3, h4 { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }

/* skip link */
.skip-link {
  position: absolute; left: -9999px; top: 0;
  background: var(--bm-noir); color: var(--bm-jaune);
  padding: 12px 18px; font-weight: 800; z-index: 100;
  text-transform: uppercase; letter-spacing: 1px;
}
.skip-link:focus { left: 12px; top: 12px; }

.container { max-width: var(--bm-container); margin: 0 auto; position: relative; }
.section { padding: var(--bm-section-pad-y) var(--bm-section-pad-x); position: relative; overflow: hidden; }

/* ============================================================
   HEADER (yellow fanzine)
============================================================ */
.bm-header {
  background: var(--bm-jaune);
  color: var(--bm-noir);
  border-bottom: 4px solid var(--bm-noir);
  position: sticky; top: 0; z-index: 20;
  }
.bm-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 40px; gap: 24px; flex-wrap: wrap;
  
}
.bm-logo-link { display: block; }
.bm-logo-link img { width: 320px; max-width: 100%; height: auto; }

/* Desktop nav */
.bm-nav-desktop { display: flex; }
.bm-nav-desktop ul { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.bm-nav-desktop li { position: relative; }
.bm-nav-desktop a {
  display: inline-flex; align-items: center; gap: 7px;
  text-decoration: none;
  color: var(--bm-noir); background: transparent;
  font-weight: 800; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.5px;
  padding: 7px 11px; white-space: nowrap;
  transition: background .12s, color .12s;
}
.bm-nav-desktop a .bm-menu-icon { color: var(--bm-noir); flex-shrink: 0; display: inline-flex; }
.bm-nav-desktop a:hover,
.bm-nav-desktop .current-menu-item > a,
.bm-nav-desktop .current_page_item > a,
.bm-nav-desktop .current-menu-ancestor > a {
  background: var(--bm-noir);
  color: var(--bm-jaune);
}
.bm-nav-desktop a:hover .bm-menu-icon,
.bm-nav-desktop .current-menu-item > a .bm-menu-icon,
.bm-nav-desktop .current_page_item > a .bm-menu-icon,
.bm-nav-desktop .current-menu-ancestor > a .bm-menu-icon {
  color: var(--bm-jaune);
}

/* Submenu */
.bm-nav-desktop .sub-menu {
  position: absolute; top: 100%; left: 0;
  padding: 6px 0; background: var(--bm-noir); min-width: 190px;
  border: 3px solid var(--bm-jaune); z-index: 30;
  display: none; flex-direction: column;
}
.bm-nav-desktop li:hover > .sub-menu,
.bm-nav-desktop li:focus-within > .sub-menu { display: flex; }
.bm-nav-desktop .sub-menu a {
  padding: 11px 14px; color: var(--bm-jaune);
  font-size: 12px; background: transparent;
}
.bm-nav-desktop .sub-menu a:hover { background: var(--bm-anthracite); }
.bm-nav-desktop .sub-menu a .bm-menu-icon { color: var(--bm-jaune); }
.bm-menu-caret { opacity: .8; margin-left: 2px; }

/* Burger */
.bm-burger {
  display: none; align-items: center; gap: 10px;
  background: var(--bm-noir); color: var(--bm-jaune);
  border: 3px solid var(--bm-noir);
  padding: 10px 16px;
  font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: 1px;
}

/* Ticker */
.bm-ticker {
  background: var(--bm-noir); color: var(--bm-jaune);
  padding: 8px 40px; font-size: 12px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase;
  white-space: nowrap; overflow: hidden;
  display: flex; align-items: center;
}
.bm-ticker span { margin-right: 40px; }

/* Mobile panel */
.bm-mobile-panel {
  position: fixed; inset: 0; z-index: 40;
  background: var(--bm-noir); overflow-y: auto;
  display: none; animation: bmSlide .22s ease-out;
}
.bm-mobile-panel[data-open="true"] { display: block; }
@keyframes bmSlide { from { opacity: 0; transform: translateY(-8px);} to { opacity: 1; transform: translateY(0);} }
.bm-mobile-panel__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 24px; background: var(--bm-jaune);
  border-bottom: 4px solid var(--bm-noir);
}
.bm-mobile-panel__head img { width: 180px; height: auto; }
.bm-mobile-close {
  width: 44px; height: 44px; background: var(--bm-noir); color: var(--bm-jaune);
  border: 3px solid var(--bm-noir);
  display: flex; align-items: center; justify-content: center;
}
.bm-mobile-nav { padding: 12px 16px 60px; }
.bm-mobile-nav > ul > li { border-bottom: 1px solid var(--bm-anthracite-border); }
.bm-mobile-nav a {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 12px;
  color: var(--bm-creme);
  text-decoration: none; font-weight: 800; font-size: 18px;
  text-transform: uppercase; letter-spacing: 0.5px;
}
.bm-mobile-nav a .bm-menu-icon { color: var(--bm-jaune); flex-shrink: 0; }
.bm-mobile-nav .current-menu-item > a,
.bm-mobile-nav .current_page_item > a,
.bm-mobile-nav .current-menu-ancestor > a { color: var(--bm-jaune); }
.bm-mobile-nav .sub-menu { padding: 0 0 10px 52px; }
.bm-mobile-nav .sub-menu a {
  padding: 10px 0; color: var(--bm-jaune);
  font-size: 14px; font-weight: 700;
}

/* Responsive */
@media (max-width: 1100px) {
  .bm-logo-link img { width: 240px; }
  .bm-nav-desktop { display: none; }
  .bm-burger { display: inline-flex; }
}
@media (max-width: 640px) {
  .bm-logo-link img { width: 200px; }
  .bm-header__inner { padding: 12px 20px; }
  .bm-ticker { padding-left: 20px; padding-right: 20px; font-size: 10px; }
  .bm-ticker span { margin-right: 20px; }
  .section { padding: 60px 24px; }
}
@media (max-width: 520px) {
  .section { padding: 48px 18px; }
}

/* ============================================================
   SHARED TYPO
============================================================ */
.bm-h1 {
  font-size: clamp(56px, 10vw, 140px);
  font-weight: 900; line-height: .88; letter-spacing: -4px;
  color: var(--bm-noir); text-transform: uppercase; margin: 0;
}
.bm-h2 {
  font-size: clamp(40px, 7vw, 82px);
  font-weight: 900; line-height: .95; letter-spacing: -2px;
  text-transform: uppercase; margin: 0;
}
@media (max-width: 900px) {
  .bm-h1 { font-size: clamp(48px, 13vw, 96px); letter-spacing: -2px; }
  .bm-h2 { font-size: clamp(34px, 9vw, 64px); }
}
.bm-h1 .bm-h1__accent {
  display: inline-block;
  background: var(--bm-noir); color: var(--bm-jaune);
  padding: 0 18px; transform: rotate(-1.5deg);
}

/* ============================================================
   HOMEPAGE SECTIONS
============================================================ */

/* HERO */
.bm-hero { background: var(--bm-jaune); color: var(--bm-noir); }
.bm-halftone-noir {
  position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Ccircle cx='5' cy='5' r='1.6' fill='%230A0A0B' opacity='.08'/%3E%3C/svg%3E");
  background-size: 10px 10px;
}
.bm-halftone-jaune {
  position: absolute; inset: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Ccircle cx='5' cy='5' r='1.6' fill='%23F5D00A' opacity='.08'/%3E%3C/svg%3E");
  background-size: 10px 10px;
}
.bm-deco { position: absolute; pointer-events: none; }

.bm-hero__eyebrow {
  font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 3px;
  margin-bottom: 24px;
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.bm-hero__eyebrow .bm-rule { height: 2px; width: 40px; background: var(--bm-noir); }
.bm-sticker {
  position: absolute; top: 40px; right: 48px;
  background: var(--bm-bleu); color: var(--bm-jaune);
  padding: 18px 22px; transform: rotate(8deg);
  font-weight: 800; font-size: 14px; text-transform: uppercase; letter-spacing: 1px;
  border: 3px solid var(--bm-noir); box-shadow: 6px 6px 0 var(--bm-noir);
  z-index: 3; text-align: center; line-height: 1.2;
}
.bm-sticker strong { display: block; font-size: 20px; }
.bm-hero__grid {
  display: grid; grid-template-columns: 1.1fr 1fr;
  gap: 40px; margin-top: 48px; align-items: start;
}
.bm-hero__lede { margin: 0; font-size: 19px; line-height: 1.45; font-weight: 500; max-width: 560px; }
.bm-btn-group { display: flex; gap: 14px; margin-top: 32px; flex-wrap: wrap; }
.bm-btn {
  padding: 16px 26px; text-decoration: none;
  font-weight: 800; font-size: 14px;
  text-transform: uppercase; letter-spacing: 1px;
  border: 3px solid var(--bm-noir);
  display: inline-block;
}
.bm-btn--primary { background: var(--bm-noir); color: var(--bm-jaune); box-shadow: 5px 5px 0 var(--bm-bleu); }
.bm-btn--ghost { background: transparent; color: var(--bm-noir); }
.bm-hero__photo {
  position: relative; height: 300px;
  background: var(--bm-noir); border: 4px solid var(--bm-noir);
  transform: rotate(2deg); overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.bm-hero__photo2 {
  position: relative;
  border: 4px solid var(--bm-noir);
  transform: rotate(358deg); 
  overflow: hidden;
  display: flex; 
  align-items: left; 
  justify-content: left;
  max-width:500px;
  
}
.bm-hero__photo .bm-hero__tape {
  position: absolute; top: -10px; left: 30px;
  width: 60px; height: 22px;
  background: rgba(245,208,10,0.6);
  transform: rotate(-8deg);
}
.bm-hero__photo .bm-placeholder-label {
  position: absolute; bottom: 10px; right: 14px;
  color: var(--bm-jaune); font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; opacity: .6;
}
@media (max-width: 900px) {
  .bm-hero__grid { grid-template-columns: 1fr; }
  .bm-sticker { position: static; margin: 0 0 24px; display: inline-block; transform: rotate(-3deg); }
  .bm-hero__photo { height: 240px; }
}

/* ACTIVITES */
.bm-activites { background: var(--bm-noir); color: var(--bm-creme); }
.bm-eyebrow-row {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 32px; flex-wrap: wrap;
}
.bm-eyebrow-tag {
  background: var(--bm-jaune); color: var(--bm-noir); padding: 8px 16px;
  font-weight: 900; font-size: 14px; letter-spacing: 2px; text-transform: uppercase;
  transform: rotate(-2deg);
  display: inline-flex; align-items: center; gap: 10px;
}
.bm-eyebrow-rule { flex: 1; min-width: 40px; height: 3px; background: var(--bm-jaune); }
.bm-eyebrow-count { font-size: 12px; color: var(--bm-gris); font-weight: 700; letter-spacing: 1.5px; }
.bm-activites__title { color: var(--bm-blanc); margin: 0 0 56px; }
.bm-activites__title em { color: var(--bm-jaune); font-style: normal; }
.bm-activites__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
}
.bm-activites__grid > .bm-card {
  padding: 36px 28px; position: relative;
}
.bm-activites__grid > .bm-card:not(:nth-child(3n)) { border-right: 2px dashed var(--bm-anthracite-border); }
.bm-activites__grid > .bm-card:nth-child(-n+3) { border-bottom: 2px dashed var(--bm-anthracite-border); }
.bm-card__num {
  position: absolute; top: 16px; right: 18px;
  font-size: 48px; font-weight: 900; color: var(--bm-anthracite);
  line-height: 1; font-feature-settings: "tnum";
}
.bm-card h3 {
  font-size: 22px; font-weight: 900; color: var(--bm-blanc);
  margin: 20px 0 10px; text-transform: uppercase; letter-spacing: -0.3px;
}
.bm-card p { font-size: 14px; color: var(--bm-gris); margin: 0; line-height: 1.55; }
@media (max-width: 900px) {
  .bm-activites__grid { grid-template-columns: 1fr; }
  .bm-activites__grid > .bm-card { border-right: none !important; border-bottom: 2px dashed var(--bm-anthracite-border); }
}

/* ATELIERS (calendrier) */
.bm-ateliers { background: var(--bm-jaune); color: var(--bm-noir); }
.bm-ateliers__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 40px; flex-wrap: wrap; gap: 16px;
}
.bm-ateliers__head .bm-h2 { line-height: .9; }
.bm-ateliers__link {
  color: var(--bm-noir); text-decoration: none; font-weight: 800; font-size: 14px;
  text-transform: uppercase; letter-spacing: 1px;
  border-bottom: 3px solid var(--bm-noir); padding-bottom: 4px;
}
.bm-ateliers__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.bm-atelier {
  background: var(--bm-noir); color: var(--bm-creme);
  padding: 22px 24px;
  border: 3px solid var(--bm-noir); box-shadow: 6px 6px 0 var(--bm-bleu);
  display: grid; grid-template-columns: 80px 1fr auto;
  gap: 18px; align-items: center;
}
.bm-atelier__date {
  text-align: center; border-right: 2px solid var(--bm-jaune); padding-right: 12px;
}
.bm-atelier__day { font-size: 11px; font-weight: 800; color: var(--bm-jaune); text-transform: uppercase; letter-spacing: 1px; }
.bm-atelier__num { font-size: 26px; font-weight: 900; color: var(--bm-blanc); line-height: 1; margin-top: 4px; }
.bm-atelier__time { font-size: 10px; color: var(--bm-gris); margin-top: 4px; font-feature-settings: "tnum"; }
.bm-atelier__title { font-size: 16px; font-weight: 800; color: var(--bm-blanc); margin-bottom: 4px; text-transform: uppercase; letter-spacing: -0.2px; }
.bm-atelier__meta { font-size: 12px; color: var(--bm-jaune); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.bm-atelier__cta {
  background: var(--bm-jaune); color: var(--bm-noir); padding: 10px 14px;
  text-decoration: none; font-weight: 900; font-size: 12px;
  text-transform: uppercase; letter-spacing: 1px;
  border: 2px solid var(--bm-jaune); white-space: nowrap;
}
@media (max-width: 900px) {
  .bm-ateliers__grid { grid-template-columns: 1fr; }
  .bm-atelier { grid-template-columns: 72px 1fr; }
  .bm-atelier__cta { grid-column: 1 / -1; justify-self: start; margin-top: 8px; }
}

/* TEMOIGNAGES */
.bm-temoins { background: var(--bm-noir); }
.bm-temoins__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.bm-temoin {
  margin: 0; background: var(--bm-blanc); color: var(--bm-noir);
  padding: 28px 26px;
  box-shadow: 5px 5px 0 var(--bm-jaune);
  border: 3px solid var(--bm-noir); position: relative;
}
.bm-temoin:nth-child(1) { transform: rotate(-1.5deg); }
.bm-temoin:nth-child(2) { transform: rotate(1deg); }
.bm-temoin:nth-child(3) { transform: rotate(-0.8deg); }
.bm-temoin__quote {
  position: absolute; top: -18px; left: -10px;
  width: 44px; height: 44px;
  border-radius: 22px; background: var(--bm-jaune); color: var(--bm-noir);
  display: flex; align-items: center; justify-content: center;
  font-weight: 900; font-size: 24px; border: 3px solid var(--bm-noir);
}
.bm-temoin p { margin: 0; font-size: 16px; line-height: 1.5; font-weight: 500; }
.bm-temoin footer {
  margin-top: 20px; display: flex; align-items: center; gap: 10px;
  padding-top: 14px; border-top: 2px dashed var(--bm-noir);
}
.bm-temoin__avatar { width: 36px; height: 36px; background: var(--bm-anthracite); border-radius: 50%; flex-shrink: 0; }
.bm-temoin__name { font-size: 13px; font-weight: 900; text-transform: uppercase; }
.bm-temoin__veh { font-size: 11px; opacity: .7; }
.bm-tag-parole {
  display: inline-block; background: var(--bm-bleu); color: var(--bm-blanc);
  padding: 8px 16px; font-size: 14px; font-weight: 900;
  text-transform: uppercase; letter-spacing: 2px;
  transform: rotate(-1deg);
}
@media (max-width: 900px) { .bm-temoins__grid { grid-template-columns: 1fr; } }

/* INFOS */
.bm-infos { background: var(--bm-bleu); color: var(--bm-blanc); }
.bm-infos__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.bm-infos__title.bm-h2 { color: var(--bm-blanc); }
.bm-info-tag {
  display: inline-block; background: var(--bm-jaune); color: var(--bm-noir);
  padding: 6px 14px; font-weight: 900; font-size: 12px;
  letter-spacing: 2px; text-transform: uppercase;
  margin-bottom: 20px; transform: rotate(-1deg);
}
.bm-infos__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bm-infos__card {
  border: 3px solid var(--bm-jaune); padding: 18px 20px;
}
.bm-infos__card--wide { grid-column: span 2; }
.bm-infos__label { font-size: 11px; font-weight: 900; color: var(--bm-jaune); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; }
.bm-infos__value { font-size: 14px; font-weight: 600; line-height: 1.55; }
@media (max-width: 900px) { .bm-infos__grid { grid-template-columns: 1fr; } }

/* ============================================================
   OBJECTIFS PAGE
============================================================ */
.bm-obj-hero { background: var(--bm-noir); color: var(--bm-creme); padding: 60px 40px 40px; position: relative; overflow: hidden; }
.bm-breadcrumbs { font-size: 12px; font-weight: 800; color: var(--bm-gris); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 24px; }
.bm-breadcrumbs a { color: var(--bm-jaune); text-decoration: none; }
.bm-breadcrumbs .sep { margin: 0 10px; color: var(--bm-anthracite-border); }
.bm-obj-hero__eyebrow { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 3px; margin-bottom: 20px; color: var(--bm-jaune); display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.bm-obj-hero__eyebrow .bm-rule { height: 2px; width: 40px; background: var(--bm-jaune); }
.bm-obj-hero .bm-h1 { color: var(--bm-blanc); }
.bm-obj-hero .bm-h1__accent { background: var(--bm-jaune); color: var(--bm-noir); transform: rotate(-1deg); }
.bm-obj-hero__lede { font-size: 20px; line-height: 1.5; max-width: 720px; margin-top: 32px; color: var(--bm-creme); }
.bm-obj-hero__nav { display: flex; gap: 14px; margin-top: 36px; flex-wrap: wrap; }
.bm-obj-hero__nav a {
  padding: 12px 20px; text-decoration: none;
  font-weight: 900; font-size: 13px; text-transform: uppercase; letter-spacing: 1px;
  border: 3px solid var(--bm-jaune); color: var(--bm-jaune);
}
.bm-obj-hero__nav a.is-active { background: var(--bm-jaune); color: var(--bm-noir); }

.bm-axe { padding: var(--bm-section-pad-y) var(--bm-section-pad-x); position: relative; overflow: hidden; }
.bm-axe--1 { background: var(--bm-jaune); color: var(--bm-noir); }
.bm-axe--2 { background: var(--bm-noir); color: var(--bm-creme); }
.bm-axe--3 { background: var(--bm-bleu); color: var(--bm-blanc); }

.bm-axe__header { margin-bottom: 32px; }
.bm-axe__head-row { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.bm-axe__label-tag {
  padding: 8px 16px; font-weight: 900; font-size: 14px;
  letter-spacing: 2px; text-transform: uppercase; transform: rotate(-2deg);
  display: inline-block;
}
.bm-axe--1 .bm-axe__label-tag { background: var(--bm-noir); color: var(--bm-jaune); }
.bm-axe--2 .bm-axe__label-tag { background: var(--bm-jaune); color: var(--bm-noir); }
.bm-axe--3 .bm-axe__label-tag { background: var(--bm-jaune); color: var(--bm-noir); }
.bm-axe__head-rule { flex: 1; min-width: 40px; height: 3px; }
.bm-axe--1 .bm-axe__head-rule { background: var(--bm-noir); }
.bm-axe--2 .bm-axe__head-rule { background: var(--bm-jaune); }
.bm-axe--3 .bm-axe__head-rule { background: var(--bm-noir); }
.bm-axe .bm-h2 { line-height: .92; }
.bm-axe--1 .bm-h2 { color: var(--bm-noir); }
.bm-axe--2 .bm-h2 { color: var(--bm-blanc); }
.bm-axe--3 .bm-h2 { color: var(--bm-noir); }

.bm-axe__intro { font-size: 19px; line-height: 1.5; max-width: 720px; margin: 0 0 48px; font-weight: 500; }
.bm-axe--1 .bm-axe__intro strong { color: var(--bm-noir); }
.bm-axe--2 .bm-axe__intro strong { color: var(--bm-jaune); }
.bm-axe--3 .bm-axe__intro strong { color: var(--bm-noir); }

.bm-obj-2col { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.bm-obj-dark-card {
  background: var(--bm-noir); color: var(--bm-creme);
  padding: 28px 26px; border: 3px solid var(--bm-noir);
  box-shadow: 6px 6px 0 var(--bm-bleu);
}
.bm-obj-dark-card .bm-obj-subnum { font-size: 11px; font-weight: 900; color: var(--bm-jaune); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; }
.bm-obj-dark-card h3 { font-size: 24px; font-weight: 900; color: var(--bm-blanc); margin: 0 0 12px; text-transform: uppercase; letter-spacing: -0.3px; line-height: 1.1; }
.bm-obj-dark-card p { margin: 0; font-size: 15px; line-height: 1.55; }
.bm-obj-subgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; }
.bm-obj-subcard { padding: 12px 14px; border: 2px dashed var(--bm-anthracite-border); }
.bm-obj-subcard__label { font-size: 10px; color: var(--bm-jaune); font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 4px; }
.bm-obj-subcard p { font-size: 13px; color: var(--bm-gris); line-height: 1.5; margin: 0; }
.bm-obj-bullets { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.bm-obj-bullets li { display: flex; gap: 12px; align-items: flex-start; }
.bm-obj-bullets .diamond { margin-top: 4px; width: 10px; height: 10px; background: var(--bm-jaune); flex-shrink: 0; transform: rotate(45deg); }
.bm-obj-bullets strong { font-size: 14px; font-weight: 800; color: var(--bm-blanc); display: block; }
.bm-obj-bullets span { font-size: 13px; color: var(--bm-gris); line-height: 1.5; }

.bm-obj-3col { display: grid; grid-template-columns: repeat(3, 1fr); }
.bm-obj-3col > div { padding: 30px 24px; position: relative; display: flex; flex-direction: column; gap: 14px; }
.bm-obj-3col > div:not(:nth-child(3n)) { border-right: 2px dashed var(--bm-anthracite-border); }
.bm-obj-3col > div:nth-child(-n+3) { border-bottom: 2px dashed var(--bm-anthracite-border); }
.bm-obj-3col__num { position: absolute; top: 14px; right: 16px; font-size: 40px; font-weight: 900; color: var(--bm-anthracite); line-height: 1; font-feature-settings: "tnum"; }
.bm-obj-3col h3 { font-size: 17px; font-weight: 900; color: var(--bm-blanc); margin: 0; text-transform: uppercase; letter-spacing: -0.2px; line-height: 1.2; }

.bm-axe--3 .bm-obj-2col article {
  background: rgba(10,10,11,0.35); padding: 24px 26px;
  border: 3px solid var(--bm-jaune); position: relative;
  display: flex; gap: 18px; align-items: flex-start;
}
.bm-axe--3 .bm-obj-2col article .bm-ico-wrap {
  width: 48px; height: 48px; background: var(--bm-jaune); color: var(--bm-noir);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; border: 3px solid var(--bm-noir);
}
.bm-axe--3 .bm-obj-2col article .num { font-size: 10px; font-weight: 900; color: var(--bm-jaune); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 4px; }
.bm-axe--3 .bm-obj-2col article h3 { font-size: 17px; font-weight: 900; color: var(--bm-blanc); margin: 0 0 6px; text-transform: uppercase; letter-spacing: -0.2px; line-height: 1.2; }
.bm-axe--3 .bm-obj-2col article p { margin: 0; font-size: 14px; line-height: 1.55; color: rgba(255,255,255,0.9); }

@media (max-width: 900px) {
  .bm-obj-2col, .bm-obj-3col, .bm-obj-subgrid { grid-template-columns: 1fr; }
  .bm-obj-3col > div { border-right: none !important; border-bottom: 2px dashed var(--bm-anthracite-border); }
}

/* ============================================================
   FOOTER
============================================================ */
.bm-footer {
  background: var(--bm-noir); padding: 36px 24px;
  border-top: 4px solid var(--bm-jaune);
}
.bm-footer__inner {
  max-width: var(--bm-container); margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 16px;
}
.bm-footer__copy { font-size: 12px; color: var(--bm-gris); font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.bm-footer__links { display: flex; gap: 20px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; flex-wrap: wrap; }
.bm-footer__links a { color: var(--bm-jaune); text-decoration: none; }

/* ============================================================
   PAGE STANDARD — layout
============================================================ */

/* Hero */
.bm-page-standard__hero {
  position: relative;
  overflow: hidden;
  padding-bottom: 0;
}
.bm-page-standard__hero-inner {
  max-width: var(--bm-container);
  margin: 0 auto;
  padding: var(--bm-section-pad-y) var(--bm-section-pad-x) 60px;
  position: relative;
}
.bm-page-standard__eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-bottom: 28px;
}
.bm-page-standard__eyebrow .bm-rule {
  display: inline-block;
  width: 40px;
  height: 3px;
  flex-shrink: 0;
}
.bm-page-standard__lede {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.55;
  max-width: 680px;
  margin: 24px 0 0;
  opacity: .9;
}

/* Corps de page */
.bm-page-standard__body {
  min-height: 200px;
}
.bm-page-standard__content {
  max-width: var(--bm-container);
  margin: 0 auto;
  padding: 72px var(--bm-section-pad-x);
}

/* ── Blocs Gutenberg pleine largeur ──────────────────────── */
/* Le bloc Groupe en "alignfull" sort du container et couvre toute la largeur. */
.bm-page-standard__content .wp-block-group.alignfull {
  margin-left:  calc(-1 * var(--bm-section-pad-x));
  margin-right: calc(-1 * var(--bm-section-pad-x));
  max-width:    calc(100% + 2 * var(--bm-section-pad-x));
  width:        calc(100% + 2 * var(--bm-section-pad-x));
  padding:      var(--bm-section-pad-y) var(--bm-section-pad-x);
  padding:10px;
}
/* Contenu interne contraint à la largeur du container */
.bm-page-standard__content .wp-block-group.alignfull .wp-block-group__inner-blocks {
  max-width: var(--bm-container);
  margin: 0 auto;
}

/* ── Styles de blocs (Page standard + éditeur) ───────────── */

/* Titre BM — s'applique via le panneau "Styles" du bloc Heading */
.bm-page-standard .is-style-bm-titre,
.entry-content .is-style-bm-titre {
  font-family: 'Public Sans', sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.05;
}
h2.is-style-bm-titre { font-size: clamp(28px, 4vw, 60px); letter-spacing: -2px; }
h3.is-style-bm-titre { font-size: clamp(20px, 2.5vw, 36px); letter-spacing: -1px; }
h4.is-style-bm-titre { font-size: 22px; letter-spacing: -0.5px; }

/* Intro BM — s'applique via le panneau "Styles" du bloc Paragraph */
.bm-page-standard .is-style-bm-intro,
.entry-content .is-style-bm-intro {
  font-size: 19px;
  font-weight: 500;
  line-height: 1.65;
  max-width: 680px;
}

/* Séparateur BM */
.bm-page-standard .is-style-bm-separateur hr,
.entry-content .is-style-bm-separateur hr {
  border: none;
  height: 4px;
  background: var(--bm-jaune);
  max-width: 80px;
  margin: 40px 0;
}

/* ── Couleurs de fond des blocs Gutenberg ────────────────── */
.has-bm-noir-background-color       { background-color: var(--bm-noir)       !important; }
.has-bm-anthracite-background-color { background-color: var(--bm-anthracite) !important; }
.has-bm-jaune-background-color      { background-color: var(--bm-jaune)      !important; }
.has-bm-bleu-background-color       { background-color: var(--bm-bleu)       !important; }
.has-bm-blanc-background-color      { background-color: var(--bm-blanc)      !important; }
.has-bm-creme-background-color      { background-color: var(--bm-creme)      !important; }

/* ── Couleurs de texte des blocs Gutenberg ───────────────── */
.has-bm-noir-color       { color: var(--bm-noir)       !important; }
.has-bm-anthracite-color { color: var(--bm-anthracite) !important; }
.has-bm-jaune-color      { color: var(--bm-jaune)      !important; }
.has-bm-bleu-color       { color: var(--bm-bleu)       !important; }
.has-bm-blanc-color      { color: var(--bm-blanc)      !important; }
.has-bm-creme-color      { color: var(--bm-creme)      !important; }
.has-bm-gris-color       { color: var(--bm-gris)       !important; }

/* ── Typographie par défaut dans le contenu de la Page standard ── */
.bm-page-standard__content h2 {
  font-size: clamp(24px, 3.5vw, 50px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -1.5px;
  line-height: 1.05;
  margin: 0 0 20px;
}
.bm-page-standard__content h3 {
  font-size: clamp(18px, 2.5vw, 30px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.5px;
  margin: 0 0 14px;
}
.bm-page-standard__content p {
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 20px;
}
.bm-page-standard__content a {
  color: var(--bm-jaune);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bm-page-standard__content ul,
.bm-page-standard__content ol {
  margin: 0 0 20px 24px;
  padding: 0;
  list-style: revert;
}
.bm-page-standard__content li { line-height: 1.65; margin-bottom: 6px; }

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 640px) {
  .bm-page-standard__content { padding: 48px 24px; }
  .bm-page-standard__hero-inner { padding: 48px 24px 40px; }
  .bm-page-standard__content .wp-block-group.alignfull {
    margin-left: -24px;
    margin-right: -24px;
    max-width: calc(100% + 48px);
    width: calc(100% + 48px);
    padding: 48px 24px;
  }
}