/* ============================================================
   BARNES MAGAZINE — Feuille de style principale
   Charte graphique officielle BARNES International
   Palette :
     --bm-fond    : #ffffff    (fond principal blanc)
     --bm-fond-lt : #f7f3f2    (fond secondaire beige très clair)
     --bm-noir    : #1d1d1b    (texte principal)
     --bm-gris    : #202020    (variante texte foncé)
     --bm-rouge   : #aa0832    (accent brand BARNES)
     --bm-rouge-lt: #c94060    (accent secondaire)
     --bm-sep     : #e2dcd9    (séparateurs / bordures)
     --bm-txt-sec : #6b6360    (texte secondaire)
   Typographie :
     - Titres    : Cormorant Garamond (serif élégant)
     - Corps     : Jost (sans-serif aéré)
   ============================================================ */

/* ── Reset & fondations ──────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Couleurs principales */
  --bm-noir        : #1d1d1b;
  --bm-rouge       : #aa0832;
  --bm-rouge-lt    : #c94060;
  --bm-blanc       : #ffffff;
  --bm-fond        : #ffffff;
  --bm-fond-lt     : #f7f3f2;
  --bm-sep         : #e2dcd9;
  --bm-sep-md      : #ccc5c2;
  --bm-txt-corps   : #202020;
  --bm-txt-sec     : #6b6360;

  /* Aliases pour compatibilité avec les sélecteurs existants */
  --bm-or          : #aa0832;    /* accent (était l'or) */
  --bm-or-lt       : #c94060;
  --bm-gris        : #f7f3f2;    /* fonds secondaires */
  --bm-gris-md     : #e2dcd9;
  --bm-gris-lt     : #202020;    /* texte corps */
  --bm-gris-txt    : #6b6360;

  --bm-ff-serif    : 'Cormorant Garamond', 'Georgia', serif;
  --bm-ff-sans     : 'Jost', 'Helvetica Neue', Arial, sans-serif;

  --bm-fz-base     : 1rem;          /* 16px */
  --bm-fz-sm       : .875rem;       /* 14px */
  --bm-fz-xs       : .90rem;        /* 12px */

  --bm-lh-base     : 1.75;
  --bm-lh-tight    : 1.25;
  --bm-lh-heading  : 1.1;

  --bm-space       : 1.5rem;
  --bm-space-lg    : 3rem;
  --bm-space-xl    : 5rem;

  --bm-max-w       : 1200px;
  --bm-article-w   : 780px;

  --bm-nav-w       : 320px;
  --bm-topbar-h    : 0px;
  --bm-header-h    : 118px;

  --bm-transition  : .25s ease;
  --bm-radius      : 0px;           /* Design carré/rectiligne */
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  /* overflow-x: clip bloque le débordement horizontal SANS créer
     de contexte de scroll — contrairement à overflow-x: hidden
     qui casse position: sticky sur tous les descendants */
  overflow-x: clip;
}

body.bm-body {
  background-color: var(--bm-fond);
  color: var(--bm-noir);
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-base);
  font-weight: 300;
  line-height: var(--bm-lh-base);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

/* ── Sélection ───────────────────────────────────────────────── */
::selection { background: var(--bm-rouge); color: var(--bm-blanc); }

/* ── Liens ───────────────────────────────────────────────────── */
a { color: inherit; text-decoration: none; transition: color var(--bm-transition); }
a:hover { color: var(--bm-rouge); }
a:focus-visible { outline: 2px solid var(--bm-rouge); outline-offset: 2px; }

/* ── Images ──────────────────────────────────────────────────── */
img { max-width: 100%; height: auto; display: block; }

/* ── Typographie ─────────────────────────────────────────────── */
h1, h2, h3, h4, h5 {
  font-family: var(--bm-ff-serif);
  font-weight: 400;
  line-height: var(--bm-lh-heading);
  letter-spacing: .02em;
}

/* ── Conteneur ───────────────────────────────────────────────── */
.bm-container {
  width: 100%;
  max-width: var(--bm-max-w);
  margin-inline: auto;
  padding-inline: var(--bm-space);
}
.bm-container--article {
  max-width: var(--bm-article-w);
  animation: bm-article-reveal .65s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}
.bm-container--center  { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 50vh; text-align: center; }


/* ============================================================
   BARRE SUPÉRIEURE (langue + lien externe)
   ============================================================ */
.bm-topbar {
  height: var(--bm-topbar-h);
  background: var(--bm-fond-lt);
  border-bottom: 1px solid var(--bm-sep);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.bm-topbar__inner {
  /*max-width: var(--bm-max-w);*/
  margin-inline: auto;
  padding-inline: var(--bm-space);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bm-topbar__site-link {
  font-size: var(--bm-fz-xs);
  font-family: var(--bm-ff-sans);
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--bm-txt-sec);
}
.bm-topbar__site-link:hover { color: var(--bm-rouge); }
.bm-topbar__arrow { margin-left: .25em; }

/* Switch de langue */
.bm-lang-switcher { display: flex; gap: .125rem; }
.bm-lang-switcher__btn {
  padding: .2em .55em;
  font-size: var(--bm-fz-xs);
  font-family: var(--bm-ff-sans);
  font-weight: 400;
  letter-spacing: .1em;
  color: var(--bm-txt-sec);
  border: 1px solid transparent;
  transition: all var(--bm-transition);
}
.bm-lang-switcher__btn:hover,
.bm-lang-switcher__btn.is-active {
  color: var(--bm-rouge);
  border-color: var(--bm-rouge);
}


/* ============================================================
   EN-TÊTE PRINCIPAL
   ============================================================ */
.bm-header {
  height: var(--bm-header-h);
  background: var(--bm-blanc);
  border-bottom: 1px solid var(--bm-sep);
  position: sticky;
  top: var(--bm-topbar-h);
  z-index: 999;
}
.bm-header__inner {
  max-width: var(--bm-max-w);
  margin-inline: auto;
  padding-inline: var(--bm-space);
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
}

/* Brand — empilement vertical centré BARNES / MAGAZINE */
.bm-header__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .05rem;
  flex-shrink: 0;
  line-height: 1;
}
.bm-header__brand-name {
  font-family: var(--bm-ff-serif);
  font-size: 2rem;
  font-weight: 600;
  /*letter-spacing: .28em;*/
  text-transform: uppercase;
  color: var(--bm-noir);
  transition: color var(--bm-transition);
}
.bm-header__brand-mag {
  font-family: var(--bm-ff-sans);
  font-size: .85rem;
  font-weight: 400;
  font-style: normal;
  letter-spacing: .38em;
  text-transform: uppercase;
  color: var(--bm-txt-sec);
}
/* N°39 intégré dans la ligne MAGAZINE */
.bm-header__brand-num {
  display: none;   /* déjà visible dans la nav */
}
.bm-header__brand:hover .bm-header__brand-name { color: var(--bm-rouge); }
.bm-header__brand:hover .bm-header__brand-mag  { color: var(--bm-rouge); }

/* Saison — sous le brand, séparée par un filet discret */
.bm-header__saison {
  font-family: var(--bm-ff-serif);
  font-size: 1.1rem;
  font-style: italic;
  font-weight: 400;
  letter-spacing: .04em;
  text-transform: none;
  color: var(--bm-txt-corps);
}
.bm-header__saison::before {
  content: '';
  display: block;
  width: 1.5rem;
  height: 1px;
  background: var(--bm-sep);
  margin: .3rem auto;
}

/* Burger (mobile) — absolu pour ne pas perturber le centrage */
.bm-header__burger {
  position: absolute;
  right: var(--bm-space);
  top: 50%;
  transform: translateY(-50%);
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: .5rem;
}
.bm-header__burger-bar {
  display: block;
  width: 22px;
  height: 1px;
  background: var(--bm-noir);
  transition: transform var(--bm-transition), opacity var(--bm-transition);
}
.bm-header__burger[aria-expanded="true"] .bm-header__burger-bar:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.bm-header__burger[aria-expanded="true"] .bm-header__burger-bar:nth-child(2) {
  opacity: 0;
}
.bm-header__burger[aria-expanded="true"] .bm-header__burger-bar:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* Groupe actions droite : langue + retour accueil */
.bm-header__actions {
  position: absolute;
  right: var(--bm-space);
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
}

/* Icône retour accueil — dans le flux du groupe, filet gauche */
.bm-header__home {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: .6rem;
  padding-left: .75rem;
  border-left: 1px solid var(--bm-sep);
  color: var(--bm-txt-sec);
  transition: color var(--bm-transition);
}
.bm-header__home:hover { color: var(--bm-rouge); }
.bm-header__home svg { display: block; flex-shrink: 0; }

/* Switch de langue sur la page d'accueil (hero) */
.bm-home-lang {
  position: absolute;
  top: 1.25rem;
  right: var(--bm-space);
  z-index: 3;
  display: flex;
  gap: .125rem;
}
.bm-home-lang__btn {
  padding: .2em .55em;
  font-size: var(--bm-fz-xs);
  font-family: var(--bm-ff-sans);
  font-weight: 400;
  letter-spacing: .1em;
  color: rgba(255,255,255,.45);
  border: 1px solid transparent;
  transition: color var(--bm-transition), border-color var(--bm-transition);
}
.bm-home-lang__btn:hover,
.bm-home-lang__btn.is-active {
  color: var(--bm-blanc);
  border-color: rgba(255,255,255,.35);
  background:#000;
}


/* ============================================================
   NAVIGATION — SOMMAIRE DÉROULANT
   ============================================================ */
.bm-nav {
  position: fixed;
  top: calc(var(--bm-topbar-h) + var(--bm-header-h));
  left: 0;
  bottom: 0;
  width: var(--bm-nav-w);
  background: var(--bm-fond-lt);
  border-right: 1px solid var(--bm-sep);
  overflow-y: auto;
  z-index: 900;
  transform: translateX(0);
  transition: transform var(--bm-transition);
  /* Firefox */
  scrollbar-width: thin;
  scrollbar-color: #bfb9b7 transparent;
}
/* Webkit (Chrome, Safari, Edge) */
.bm-nav::-webkit-scrollbar {
  width: 3px;
}
.bm-nav::-webkit-scrollbar-track {
  background: transparent;
}
.bm-nav::-webkit-scrollbar-thumb {
  background: var(--bm-sep);
  border-radius: 0;
  transition: background var(--bm-transition);
}
.bm-nav:hover::-webkit-scrollbar-thumb {
  background: var(--bm-rouge);
}

.bm-nav__inner { padding: 0 0 var(--bm-space-lg); }

/* ── En-tête nav : BARNES Magazine + numéro/saison ── */
.bm-nav__header {
  padding: 1.25rem 1.5rem 1rem;
  border-bottom: 1px solid var(--bm-rouge);
  margin-bottom: .25rem;
  background:#fff;
}
.bm-nav__header-brand {
  display: flex;
  align-items: baseline;
  gap: .3em;
  margin-bottom: .3rem;
}
.bm-nav__header-name {
  font-family: var(--bm-ff-serif);
  font-size: 1.35rem;
  font-weight: 600;
 /*letter-spacing: .2em;*/
  text-transform: uppercase;
  color: var(--bm-noir);
  transition: color var(--bm-transition);
}
.bm-nav__header-mag {
  font-family: var(--bm-ff-serif);
  font-size: 1.35rem;
  font-weight: 300;
  font-style: italic;
  color: var(--bm-rouge);
}
.bm-nav__header-brand:hover .bm-nav__header-name { color: var(--bm-rouge); }
.bm-nav__header-issue {
  font-size: var(--bm-fz-xs);
  letter-spacing: .06em;
  color: var(--bm-txt-sec);
}

/* ── Étiquette "Au sommaire" ── */
.bm-nav__label {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.5rem .5rem;
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-xs);
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--bm-txt-sec);
  border-bottom: 1px solid var(--bm-sep);
  margin-bottom: .25rem;
}
.bm-nav__label svg {
  flex-shrink: 0;
  opacity: .55;
}

/* Liste principale */
.bm-nav__list { list-style: none; }

/* Item de groupe */
.bm-nav__item--group { border-bottom: 1px solid rgba(0,0,0,.05); }

/* Bouton rubrique */
.bm-nav__group-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1.5rem;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--bm-noir);
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-sm);
  font-weight: 400;
  letter-spacing: .06em;
  text-align: left;
  transition: color var(--bm-transition), background var(--bm-transition);
}
.bm-nav__group-btn:hover,
.bm-nav__item--group.is-open > .bm-nav__group-btn {
  color: var(--bm-rouge);
  background: rgba(170, 8, 50, .04);
}
.bm-nav__group-chevron {
  font-size: .7em;
  transition: transform var(--bm-transition);
  flex-shrink: 0;
}
.bm-nav__item--group.is-open .bm-nav__group-chevron {
  transform: rotate(180deg);
}

/* Sous-liste */
.bm-nav__sub {
  list-style: none;
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s cubic-bezier(.4,0,.2,1);
  background: rgba(0,0,0,.025);
}
.bm-nav__item--group.is-open .bm-nav__sub {
  max-height: 1000px;
}

/* Lien article */
.bm-nav__sub-item { border-top: 1px solid rgba(0,0,0,.05); }
.bm-nav__sub-link {
  display: flex;
  flex-direction: column;
  padding: .6rem 1.5rem .6rem 2rem;
  transition: background var(--bm-transition), color var(--bm-transition);
}
.bm-nav__sub-link:hover,
.bm-nav__sub-link.is-current {
  background: rgba(170, 8, 50, .06);
  color: var(--bm-rouge);
}
.bm-nav__sub-title {
  font-size: var(--bm-fz-sm);
  font-weight: 400;
  line-height: 1.4;
}
.bm-nav__sub-subtitle {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  margin-top: .15em;
  font-style: italic;
}

/* ── Lien retour couverture ── */
.bm-nav__home-link {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  padding: 1rem 1.5rem;
  transition: color var(--bm-transition), background var(--bm-transition);
  color: var(--bm-txt-sec);
}
.bm-nav__home-link:hover {
  color: var(--bm-rouge);
  background: rgba(170, 8, 50, .03);
}
.bm-nav__home-num {
  font-family: var(--bm-ff-serif);
  font-size: 1rem;
  font-weight: 400;
  color: var(--bm-noir);
}
.bm-nav__home-saison {
  font-size: var(--bm-fz-xs);
  letter-spacing: .05em;
  color: var(--bm-txt-sec);
}
.bm-nav__home-link:hover .bm-nav__home-num { color: var(--bm-rouge); }

/* ── Lien "Tous nos magazines" (pied de nav) ── */
.bm-nav__all-issues {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .875rem 1.5rem;
  border-top: 2px solid var(--bm-sep);
  background: var(--bm-fond-lt);
  color: var(--bm-txt-sec);
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-xs);
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: color var(--bm-transition), background var(--bm-transition);
}
.bm-nav__all-issues:hover {
  color: var(--bm-rouge);
  background: #ede8e6;
}
.bm-nav__all-issues svg {
  flex-shrink: 0;
  opacity: .55;
  transition: opacity var(--bm-transition);
}
.bm-nav__all-issues:hover svg { opacity: 1; }

/* Overlay */
.bm-nav__overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.4);
  z-index: 850;
}


/* ============================================================
   MISE EN PAGE PRINCIPALE (avec sidebar nav)
   ============================================================ */
.bm-main {
  margin-left: var(--bm-nav-w);
  min-height: 80vh;
  padding-top: var(--bm-space-lg);
  padding-bottom: var(--bm-space-xl);
}


/* ============================================================
   BOUTONS
   ============================================================ */
.bm-btn {
  display: inline-block;
  padding: .7em 2em;
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-sm);
  font-weight: 400;
  letter-spacing: .15em;
  text-transform: uppercase;
  background: var(--bm-rouge);
  color: var(--bm-blanc);
  border: 1px solid var(--bm-rouge);
  cursor: pointer;
  transition: all var(--bm-transition);
}
.bm-btn:hover { background: transparent; color: var(--bm-rouge); }
.bm-btn--outline { background: transparent; color: var(--bm-rouge); }
.bm-btn--outline:hover { background: var(--bm-rouge); color: var(--bm-blanc); }
.bm-btn--ghost { background: transparent; color: var(--bm-txt-sec); border-color: var(--bm-sep-md); }
.bm-btn--ghost:hover { color: var(--bm-rouge); border-color: var(--bm-rouge); }


/* ============================================================
   PAGE D'ACCUEIL — HERO
   ============================================================ */
.bm-hero {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: var(--bm-space-lg);
  align-items: start;
  padding: var(--bm-space-lg) var(--bm-space);
  max-width: var(--bm-max-w);
  margin-inline: auto;
}
.bm-hero__media { position: sticky; top: calc(var(--bm-topbar-h) + var(--bm-header-h) + 1rem); }
.bm-hero__cover {
  width: 100%;
  box-shadow: 0 24px 64px rgba(0,0,0,.15);
  transition: transform .6s ease;
}
.bm-hero__cover-link { display: block; overflow: hidden; }
.bm-hero__cover-link:hover .bm-hero__cover { transform: scale(1.02); }

.bm-hero__content { padding-top: .5rem; }

/* Eyebrow : N°39 — Saison */
.bm-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: 1rem;
}
.bm-hero__eyebrow-num {
  font-family: var(--bm-ff-serif);
  font-size: clamp(3rem, 7vw, 5.5rem);
  font-weight: 300;
  line-height: 1;
  color: var(--bm-rouge);
}
.bm-hero__eyebrow-sep {
  display: block;
  width: 1px;
  height: 3.5rem;
  background: var(--bm-sep-md);
  flex-shrink: 0;
}
.bm-hero__eyebrow-saison {
  font-size: var(--bm-fz-sm);
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--bm-txt-sec);
  line-height: 1.4;
}

/* Titre principal magazine */
.bm-hero__title {
  font-family: var(--bm-ff-serif);
  font-size: clamp(1.6rem, 3.5vw, 2.5rem);
  font-weight: 300;
  line-height: 1.15;
  color: var(--bm-noir);
  margin-bottom: var(--bm-space);
}

/* Édito (extrait) */
.bm-hero__edito {
  border-left: 2px solid var(--bm-rouge);
  padding-left: 1.5rem;
  margin-bottom: var(--bm-space-lg);
  font-family: var(--bm-ff-serif);
  font-size: 1.5rem;
  font-style: italic;
  color: var(--bm-txt-corps);
  line-height: 1.85;
}
.bm-hero__edito p { margin: 0; }
.bm-hero__edito-sig {
  display: block;
  margin-top: .75rem;
  font-size: var(--bm-fz-sm);
  font-style: normal;
  font-family: var(--bm-ff-sans);
  font-weight: 400;
  letter-spacing: .08em;
  color: var(--bm-txt-sec);
}

/* Boutons d'action */
.bm-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: var(--bm-space);
}

/* Anciens alias (pages autres) */
.bm-hero__overline {
  font-size: var(--bm-fz-xs);
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  margin-bottom: .5rem;
}
.bm-hero__num {
  font-family: var(--bm-ff-serif);
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 300;
  line-height: 1;
  color: var(--bm-noir);
  margin-bottom: .25rem;
}
.bm-hero__saison {
  font-size: var(--bm-fz-sm);
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--bm-txt-sec);
  margin-bottom: var(--bm-space-lg);
}
.bm-hero__cta { margin-top: var(--bm-space); }


/* ============================================================
   SOMMAIRE VISUEL (section ancre)
   ============================================================ */
.bm-sommaire-section {
  padding: var(--bm-space-xl) var(--bm-space);
  max-width: var(--bm-max-w);
  margin-inline: auto;
  border-top: 1px solid var(--bm-sep);
}
.bm-sommaire-section__header {
  margin-bottom: var(--bm-space-lg);
}
.bm-sommaire-section__title {
  font-family: var(--bm-ff-serif);
  font-size: 2.5rem;
  font-weight: 300;
  letter-spacing: .1em;
  color: var(--bm-rouge);
  margin-bottom: .4rem;
}
.bm-sommaire-section__sub {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  font-style: italic;
  letter-spacing: .02em;
}

/* Colonnes sommaire */
.bm-sommaire-cols {
  columns: 2;
  column-gap: var(--bm-space-lg);
}
.bm-sommaire-cols .bm-sommaire-group {
  break-inside: avoid;
  margin-bottom: var(--bm-space-lg);
}

.bm-sommaire-group { margin-bottom: var(--bm-space-lg); }
.bm-sommaire-group__rubrique {
  font-size: 1rem;
  font-family: var(--bm-ff-sans);
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--bm-sep);
  margin-bottom: 1rem;
}
.bm-sommaire-group__list { list-style: none; }
.bm-sommaire-group__entry {
  border-bottom: 1px solid rgba(0,0,0,.06);
  padding-bottom:0.75rem;
}
.bm-sommaire-group__link {
  /*display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;*/
  padding: .75rem 0;
  transition: color var(--bm-transition), padding-left var(--bm-transition);
}
.bm-sommaire-group__link:hover {
  color: var(--bm-rouge);
  padding-left: .5rem;
}
.bm-sommaire-group__titre {
  font-family: var(--bm-ff-serif);
  font-size: 1.25rem;
  font-weight: 400;
}
.bm-sommaire-group__sous-titre {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  font-style: italic;
  flex-shrink: 0;
  text-align: right;
}


/* ============================================================
   GRILLE UNE (articles mis en avant)
   ============================================================ */
.bm-une {
  padding: var(--bm-space-xl) var(--bm-space);
  max-width: var(--bm-max-w);
  margin-inline: auto;
}
.bm-une__title {
  font-family: var(--bm-ff-serif);
  font-size: 2rem;
  font-weight: 300;
  color: var(--bm-rouge);
  margin-bottom: var(--bm-space-lg);
}
.bm-une__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}
.bm-une__card--featured {
  grid-column: span 2;
  grid-row: span 2;
}

.bm-une__card {
  background: var(--bm-fond-lt);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.bm-une__card--featured .bm-une__card-body { flex: 1; }

.bm-une__card-img-wrap { overflow: hidden; }
.bm-une__card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.bm-une__card:hover .bm-une__card-img { transform: scale(1.03); }

.bm-une__card--featured .bm-une__card-img { max-height: 480px; }
.bm-une__card:not(.bm-une__card--featured) .bm-une__card-img { height: 200px; }

.bm-une__card-body { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; }
.bm-une__card-rubrique {
  font-size: var(--bm-fz-xs);
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  margin-bottom: .5rem;
}
.bm-une__card-title {
  font-family: var(--bm-ff-serif);
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: .4rem;
  color: var(--bm-noir);
}
.bm-une__card--featured .bm-une__card-title { font-size: 2rem; }
.bm-une__card-sub {
  font-size: var(--bm-fz-sm);
  font-style: italic;
  color: var(--bm-txt-sec);
  margin-bottom: .75rem;
}
.bm-une__card-chapeau {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-corps);
  line-height: 1.6;
  flex: 1;
  margin-bottom: 1rem;
}
.bm-une__card-cta {
  font-size: var(--bm-fz-xs);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  margin-top: auto;
}
.bm-une__card-cta:hover { color: var(--bm-rouge-lt); }


/* ============================================================
   PAGE ARTICLE
   ============================================================ */

/* Fil d'Ariane */
.bm-breadcrumb { margin-bottom: var(--bm-space); }
.bm-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  list-style: none;
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
}
.bm-breadcrumb__sep { color: var(--bm-sep-md); }
.bm-breadcrumb__list a { color: var(--bm-txt-sec); }
.bm-breadcrumb__list a:hover { color: var(--bm-rouge); }

/* En-tête article */
.bm-article-header { margin-bottom: var(--bm-space-lg); }
.bm-article-header__rubrique {
  display: block;
  font-size: var(--bm-fz-xs);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  margin-bottom: .75rem;
}
.bm-article-header__title {
  font-family: var(--bm-ff-serif);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: .75rem;
  color: var(--bm-noir);
}
.bm-article-header__subtitle {
  font-family: var(--bm-ff-serif);
  font-size: 1.25rem;
  font-style: italic;
  color: var(--bm-rouge-lt);
  margin-bottom: .75rem;
}
.bm-article-header__chapeau {
  font-size: 1.4rem;
  color: var(--bm-txt-corps);
  line-height: 1.8;
  margin-bottom: 1rem;
  border-left: 2px solid var(--bm-rouge);
  padding-left: 1.25rem;
}
.bm-article-header__credits {
  display: flex;
  gap: 1.5rem;
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  letter-spacing: .05em;
  padding-top: 1rem;
  border-top: 1px solid var(--bm-sep);
}

/* Image principale */
.bm-article-hero-img { margin-bottom: var(--bm-space-lg); }
.bm-article-hero-img img { border:1px solid #e3e1e1; }
.bm-article-hero-img__img { width: 100%; max-height: 600px; object-fit: cover; }
.bm-article-hero-img__caption {
  margin-top: .5rem;
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  font-style: italic;
}

/* Corps */
.bm-article-body {
  font-size: 1.15rem;
  line-height: var(--bm-lh-base);
  color: var(--bm-noir);
}
.bm-article-body__p {
  margin-bottom: 1.5rem;
  color: var(--bm-txt-corps);
}
.bm-article-body__p a,
.bm-article-body__quote a,
.bm-article-body__encadre a,
.bm-article-body__list a {
  color: var(--bm-rouge);
  text-decoration: underline;
  text-decoration-color: rgba(170,8,50,.35);
  text-underline-offset: 3px;
  transition: text-decoration-color var(--bm-transition);
}
.bm-article-body__p a:hover,
.bm-article-body__quote a:hover,
.bm-article-body__encadre a:hover,
.bm-article-body__list a:hover {
  text-decoration-color: var(--bm-rouge);
}
.bm-article-body__h2 {
  font-family: var(--bm-ff-sans);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  margin: 2.5rem 0 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--bm-sep);
  line-height:1.5rem;
}
.bm-article-body__quote {
  font-family: var(--bm-ff-serif);
  font-size: 1.35rem;
  font-style: italic;
  line-height: 1.7;
  color: var(--bm-rouge-lt);
  border-left: 3px solid var(--bm-rouge);
  padding-left: 1.5rem;
  margin: 2rem 0;
}
.bm-article-body__encadre {
  background: var(--bm-fond-lt);
  border: 1px solid var(--bm-sep);
  padding: 1.5rem;
  margin: 2rem 0;
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-corps);
  line-height: 1.7;
}
.bm-article-body__legende {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  font-style: italic;
  margin-bottom: 1rem;
}
.bm-article-body__list {
  list-style: none;
  margin: 1rem 0 1.5rem;
  padding-left: 1rem;
}
.bm-article-body__list li {
  padding: .3rem 0;
  padding-left: 1rem;
  border-left: 1px solid var(--bm-rouge);
  color: var(--bm-txt-corps);
  font-size: var(--bm-fz-sm);
}
.bm-article-body__figure { margin: 2rem 0; }
.bm-article-body__figure-img { width: 100%; }
.bm-article-body__figure-caption {
  margin-top: .5rem;
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  font-style: italic;
}

/* Nav précédent / suivant */
.bm-article-nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: var(--bm-space-xl);
  padding-top: var(--bm-space);
  border-top: 1px solid var(--bm-sep);
}
.bm-article-nav__btn {
  display: flex;
  align-items: center;
  gap: .75rem;
  max-width: 48%;
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  transition: color var(--bm-transition);
}
.bm-article-nav__btn:hover { color: var(--bm-rouge); }
.bm-article-nav__btn--next { margin-left: auto; text-align: right; flex-direction: row-reverse; }
.bm-article-nav__arrow { font-size: 1.2rem; }
.bm-article-nav__label {
  font-family: var(--bm-ff-serif);
  font-size: 1rem;
  line-height: 1.3;
}

/* Retour à la une */
.bm-article-back { margin-top: 2rem; }


/* ============================================================
   PAGE RUBRIQUE
   ============================================================ */
.bm-page-title {
  font-family: var(--bm-ff-serif);
  font-size: 2.5rem;
  font-weight: 300;
  color: var(--bm-noir);
  margin-bottom: var(--bm-space-lg);
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--bm-sep);
}
.bm-page-intro {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  margin-bottom: var(--bm-space-lg);
  max-width: 600px;
}

.bm-rubrique-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 2px;
  margin-bottom: var(--bm-space-lg);
}
.bm-rubrique-card { background: var(--bm-fond-lt); overflow: hidden; }
.bm-rubrique-card__img-wrap { overflow: hidden; }
.bm-rubrique-card__img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  transition: transform .5s ease;
}
.bm-rubrique-card:hover .bm-rubrique-card__img { transform: scale(1.04); }
.bm-rubrique-card__body { padding: 1.25rem; }
.bm-rubrique-card__title {
  font-family: var(--bm-ff-serif);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: .4rem;
  color: var(--bm-noir);
}
.bm-rubrique-card__sub {
  font-size: var(--bm-fz-xs);
  color: var(--bm-rouge);
  font-style: italic;
  margin-bottom: .6rem;
}
.bm-rubrique-card__chapeau {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  line-height: 1.6;
  margin-bottom: .75rem;
}
.bm-rubrique-card__cta {
  font-size: var(--bm-fz-xs);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--bm-rouge);
}


/* ============================================================
   PAGE IMMOBILIER
   ============================================================ */
.bm-immo-filter {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: var(--bm-space-lg);
}
.bm-immo-filter__btn {
  padding: .4em 1em;
  font-size: var(--bm-fz-xs);
  font-family: var(--bm-ff-sans);
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: var(--bm-fond-lt);
  color: var(--bm-txt-sec);
  border: 1px solid var(--bm-sep-md);
  cursor: pointer;
  transition: all var(--bm-transition);
}
.bm-immo-filter__btn:hover,
.bm-immo-filter__btn.is-active {
  background: var(--bm-rouge);
  color: var(--bm-blanc);
  border-color: var(--bm-rouge);
}

.bm-immo-zone { margin-bottom: var(--bm-space-xl); }
.bm-immo-zone.is-hidden { display: none; }
.bm-immo-zone__title {
  font-size: var(--bm-fz-xs);
  font-family: var(--bm-ff-sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--bm-sep);
  margin-bottom: 1.5rem;
}

/* ── Grille immobilier ──────────────────────────────────────── */
.bm-immo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
  margin-bottom: 3rem;
}

/* ── Carte immobilier ───────────────────────────────────────── */
.bm-immo-card {
  background: var(--bm-blanc);
  border: 1px solid var(--bm-sep);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .3s ease, transform .3s ease;
}
.bm-immo-card:hover {
  box-shadow: 0 8px 32px rgba(29,29,27,.1);
  transform: translateY(-2px);
}

/* Image */
.bm-immo-card__img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--bm-fond-lt);
  flex-shrink: 0;
}
.bm-immo-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}
.bm-immo-card:hover .bm-immo-card__img { transform: scale(1.05); }

/* Placeholder quand pas d'image */
.bm-immo-card__img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bm-fond-lt);
}
.bm-immo-card__img-placeholder span {
  font-family: var(--bm-ff-sans);
  font-size: .7rem;
  letter-spacing: .4em;
  color: var(--bm-sep);
  text-transform: uppercase;
}

/* Badge localisation (bas gauche de l'image) */
.bm-immo-card__loc-badge {
  position: absolute;
  bottom: .75rem;
  left: .75rem;
  background: rgba(29,29,27,.72);
  backdrop-filter: blur(4px);
  color: #fff;
  font-size: .65rem;
  font-family: var(--bm-ff-sans);
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .25rem .6rem;
  line-height: 1.4;
}

/* Badge zone (haut droit, discret) */
.bm-immo-card__zone-badge {
  position: absolute;
  top: .75rem;
  right: .75rem;
  background: var(--bm-rouge);
  color: #fff;
  font-size: .6rem;
  font-family: var(--bm-ff-sans);
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .2rem .5rem;
  display: none; /* caché par défaut, visible sur la vue d'ensemble */
}
.bm-immo-zone .bm-immo-card__zone-badge { display: none; }

/* Corps */
.bm-immo-card__body {
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* Titre */
.bm-immo-card__title {
  font-family: var(--bm-ff-serif);
  font-size: 1.1rem;
  font-weight: 400;
  font-style: italic;
  line-height: 1.35;
  margin: 0 0 .6rem;
  color: var(--bm-noir);
}

/* Description */
.bm-immo-card__desc {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  line-height: 1.65;
  margin-bottom: 1rem;
  flex: 1;
}

/* Meta prix / surface */
.bm-immo-card__meta {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: .85rem;
  padding: .6rem 0;
  border-top: 1px solid var(--bm-sep);
}
.bm-immo-card__prix {
  font-family: var(--bm-ff-sans);
  font-size: .9rem;
  font-weight: 500;
  color: var(--bm-rouge);
  letter-spacing: .01em;
}
.bm-immo-card__prix--psr {
  color: var(--bm-txt-sec);
  font-style: italic;
  font-weight: 400;
  font-size: .8rem;
}
.bm-immo-card__surface {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  font-family: var(--bm-ff-sans);
}

/* Contact */
.bm-immo-card__contact {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  padding-top: .7rem;
  border-top: 1px solid var(--bm-sep);
}
.bm-immo-card__contact-link {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  text-decoration: none;
  transition: color .2s;
  word-break: break-all;
}
.bm-immo-card__contact-link:hover { color: var(--bm-rouge); }
.bm-immo-card__contact-icon {
  font-style: normal;
  color: var(--bm-rouge);
  flex-shrink: 0;
}

/* Zone title */
.bm-immo-zone { margin-bottom: 3.5rem; }
.bm-immo-zone__title {
  font-family: var(--bm-ff-serif);
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--bm-noir);
  border-bottom: 2px solid var(--bm-sep);
  padding-bottom: .75rem;
  margin-bottom: 2rem;
}
.bm-immo-zone__title::after {
  content: '';
  display: block;
  width: 2rem;
  height: 2px;
  background: var(--bm-rouge);
  margin-top: .5rem;
}


/* ============================================================
   MISE EN PAGE PLEINE LARGEUR (page d'accueil sans nav)
   ============================================================ */
/* Spécificité doublée (.bm-main.bm-main--full) pour l'emporter
   sur .bm-main { margin-left } défini plus tôt dans le fichier */
.bm-main.bm-main--full {
  margin-left: 0;
}
.bm-footer.bm-footer--full {
  margin-left: 0;
}


/* ============================================================
   PAGE D'ACCUEIL — HERO BRANDING
   ============================================================ */
.bm-home-hero {
  position: relative;
  background-color: var(--bm-noir);
  /* L'image de fond est injectée en inline style depuis PHP */
  background-size: auto 108%;
  background-position: right center;
  background-repeat: no-repeat;
  color: var(--bm-blanc);
  min-height: clamp(480px, 76vh, 700px);
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* Dégradé diagonal : opaque à gauche, transparent vers la droite
   → la couverture se révèle en fondu élégant                    */
.bm-home-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(29,29,27,1)    0%,
    rgba(29,29,27,.97)  28%,
    rgba(29,29,27,.86)  46%,
    rgba(29,29,27,.40)  66%,
    rgba(29,29,27,.06)  86%,
    transparent         100%
  );
  z-index: 1;
}

/* Vignette basse : raccord avec la section suivante */
.bm-home-hero::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(to bottom, transparent, rgba(29,29,27,.55));
  z-index: 1;
  pointer-events: none;
}

.bm-home-hero .bm-container { position: relative; z-index: 2; width: 100%; }

.bm-home-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.75rem;
  max-width: 560px;
  padding-block: var(--bm-space-xl);
}

/* — Badge dernier numéro — */
.bm-home-hero__issue {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding: .55rem 1rem .55rem 1.1rem;
  border-left: 1px solid var(--bm-rouge);
  /*background: rgba(29,29,27,.35);*/
  background: rgba(170,8,50,.14);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: inherit;
  transition: background var(--bm-transition), border-color var(--bm-transition);
  animation: bm-hero-up .7s ease both;
}
.bm-home-hero__issue:hover {
  border-left: 1px solid var(--bm-fond-lt);
  background: var(--bm-rouge);
}
.bm-home-hero__issue-label {
  font-size: .625rem;
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
}
.bm-home-hero__issue-ref {
  font-family: var(--bm-ff-serif);
  font-size: .9375rem;
  font-style: italic;
  font-weight: 300;
  color: rgba(255,255,255,.88);
  letter-spacing: .06em;
}

/* — Marque — */
.bm-home-hero__brand {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  animation: bm-hero-up .7s .1s ease both;
}

/* Filet rouge décoratif au-dessus du logotype */
.bm-home-hero__brand::before {
  content: '';
  display: block;
  width: 2.25rem;
  height: 1px;
  background: var(--bm-rouge);
  margin-bottom: 1.5rem;
}

.bm-home-hero__brand-name {
  font-family: var(--bm-ff-serif);
  font-size: clamp(3.5rem, 9vw, 6rem);
  font-weight: 400;
  letter-spacing: 0em;
  text-transform: uppercase;
  line-height: .68;
  color: var(--bm-blanc);
  text-shadow: 0 4px 48px rgba(0,0,0,.4);
}

.bm-home-hero__brand-mag {
  font-family: var(--bm-ff-serif);
  font-size: clamp(2.8rem, 2.8vw, 4.2rem);
  font-weight: 400;
  font-style: italic;
  color: var(--bm-rouge);
  /*letter-spacing: .24em;*/
  padding-left: .3em;
  line-height:5rem;
}

/* — Baseline — */
.bm-home-hero__baseline {
  font-family: var(--bm-ff-sans);
  font-size: 1rem;
  font-weight: 300;
  color: rgba(255,255,255,.7);
  line-height: 2;
  max-width: 360px;
  padding-left: 1.25rem;
  border-left: 1px solid rgba(170,8,50,.55);
  letter-spacing: .04em;
  animation: bm-hero-up .7s .2s ease both;
}

/* — Lien site — */
.bm-home-hero__site-link {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-size: .6875rem;
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(255,255,255,.14);
  white-space: nowrap;
  transition: color var(--bm-transition), border-color var(--bm-transition);
  animation: bm-hero-up .7s .3s ease both;
}
.bm-home-hero__site-link:hover {
  color: var(--bm-blanc);
  border-color: var(--bm-rouge);
}

/* — Indicateur de défilement — */
.bm-home-hero__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: .3;
  animation: bm-hero-up .7s .55s ease both;
  pointer-events: none;
}
.bm-home-hero__scroll-line {
  display: block;
  width: 1px;
  height: 2.75rem;
  background: linear-gradient(to bottom, var(--bm-blanc) 0%, transparent 100%);
  animation: bm-scroll-drop 2.4s cubic-bezier(.45,.05,.55,.95) infinite;
}

/* ── Animation entrée article ───────────────────────────────── */
@keyframes bm-article-reveal {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Animations hero ────────────────────────────────────────── */
@keyframes bm-hero-up {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes bm-scroll-drop {
  0%, 100% { transform: translateY(0);   opacity: .8; }
  50%       { transform: translateY(6px); opacity: .3; }
}


/* ============================================================
   PAGE D'ACCUEIL — GRILLE DES MAGAZINES
   ============================================================ */
.bm-home-issues {
  padding: var(--bm-space-xl) var(--bm-space);
  max-width: var(--bm-max-w);
  margin-inline: auto;
}
.bm-home-issues__header {
  margin-bottom: var(--bm-space-lg);
  border-bottom: 1px solid var(--bm-sep);
  padding-bottom: var(--bm-space);
}
.bm-home-issues__title {
  font-family: var(--bm-ff-serif);
  font-size: 2rem;
  font-weight: 300;
  color: var(--bm-noir);
  margin-bottom: .35rem;
}
.bm-home-issues__sub {
  font-size: 1.35rem;
  color: var(--bm-txt-sec);
  font-style: italic;
}

/* Grille */
.bm-home-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--bm-space);
  list-style: none;
}

/* Carte magazine */
.bm-home-card { }
.bm-home-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* Couverture */
.bm-home-card__cover-wrap {
  position: relative;
  overflow: hidden;
  background: var(--bm-fond-lt);
  aspect-ratio: 3 / 4;
  margin-bottom: 1rem;
  border:1px solid #e1dcd9;
}
.bm-home-card__cover-wrap: hover {
  border:1px solid #4f1825;
}
.bm-home-card__cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
  display: block;
}
.bm-home-card__link:hover .bm-home-card__cover {
  transform: scale(1.04);
}
.bm-home-card__cover-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bm-ff-serif);
  font-size: 3rem;
  font-weight: 300;
  color: var(--bm-sep-md);
}

/* Overlay "Lire ce numéro" */
.bm-home-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(29,29,27,.55);
  display: flex;
  align-items: flex-end;
  padding: 1.25rem;
  opacity: 0;
  transition: opacity .35s ease;
}
.bm-home-card__link:hover .bm-home-card__overlay { opacity: 1; }
.bm-home-card__cta {
  font-size: var(--bm-fz-xs);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--bm-blanc);
}

/* Infos sous la couverture */
.bm-home-card__info { padding: 0 .1rem; }
.bm-home-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: .2rem;
}
.bm-home-card__num {
  font-family: var(--bm-ff-serif);
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--bm-noir);
}
.bm-home-card__year {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  letter-spacing: .05em;
}
.bm-home-card__saison {
  font-size: var(--bm-fz-xs);
  color: var(--bm-rouge);
  letter-spacing: .08em;
  text-transform: uppercase;
}


/* ============================================================
   LISTE DES MAGAZINES (ancienne classe — conservée)
   ============================================================ */
.bm-mag-list {
  padding: var(--bm-space-xl) var(--bm-space);
  max-width: var(--bm-max-w);
  margin-inline: auto;
}
.bm-mag-list__title {
  font-family: var(--bm-ff-serif);
  font-size: 3rem;
  font-weight: 300;
  letter-spacing: .1em;
  margin-bottom: .5rem;
  color: var(--bm-noir);
}
.bm-mag-list__intro {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  margin-bottom: var(--bm-space-lg);
}
.bm-mag-list__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 2px;
  list-style: none;
}
.bm-mag-list__card { background: var(--bm-fond-lt); overflow: hidden; }
.bm-mag-list__card-link { display: block; }
.bm-mag-list__card-cover {
  width: 100%;
  height: 280px;
  object-fit: cover;
  transition: transform .5s ease;
}
.bm-mag-list__card:hover .bm-mag-list__card-cover { transform: scale(1.04); }
.bm-mag-list__card-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
}
.bm-mag-list__card-num {
  font-family: var(--bm-ff-serif);
  font-size: 1.25rem;
  color: var(--bm-noir);
}
.bm-mag-list__card-saison {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
  font-style: italic;
}


/* ============================================================
   PAGE 404
   ============================================================ */
.bm-404 { padding: var(--bm-space-xl) 0; }
.bm-404__num {
  font-family: var(--bm-ff-serif);
  font-size: 8rem;
  line-height: 1;
  color: var(--bm-rouge);
  opacity: .2;
  margin-bottom: 0;
}
.bm-404__title {
  font-size: 2rem;
  font-weight: 300;
  margin-bottom: 1rem;
  color: var(--bm-noir);
}
.bm-404__text {
  color: var(--bm-txt-sec);
  margin-bottom: var(--bm-space);
}


/* ============================================================
   FOOTER
   ============================================================ */
.bm-footer {
  margin-left: var(--bm-nav-w);
  background: var(--bm-fond-lt);
  border-top: 1px solid var(--bm-sep);
  padding: var(--bm-space-lg) 0;
}
.bm-footer__inner {
  max-width: var(--bm-max-w);
  margin-inline: auto;
  padding-inline: var(--bm-space);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--bm-space);
}

.bm-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.bm-footer__brand-logo {
  height: 38px;
  width: auto;
  display: block;
}
.bm-footer__brand-tagline {
  margin-top: .35rem;
  font-size: 1.25rem;
  color: var(--bm-txt-sec);
  font-style: italic;
}

.bm-footer__legal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .3rem;
}
.bm-footer__copyright {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
}
.bm-footer__mention {
  font-size: var(--bm-fz-xs);
  color: var(--bm-sep-md);
  line-height: 1.6;
}


/* ============================================================
   RESPONSIVE — TABLETTE (≤ 1024px)
   ============================================================ */
@media (max-width: 1024px) {
  /* Home hero tablette : réduire l'espace */
  .bm-home-hero__inner {
    gap: var(--bm-space);
    max-width: 100%;
  }
  .bm-home-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

  .bm-hero { grid-template-columns: 1fr; }
  .bm-hero__media { position: static; }
  .bm-hero__cover { max-height: 500px; object-fit: cover; }

  .bm-une__grid { grid-template-columns: 1fr 1fr; }
  .bm-une__card--featured { grid-column: span 2; grid-row: span 1; }

  /* footer: already flex column — no override needed */
}


/* ============================================================
   RESPONSIVE — MOBILE (≤ 768px)
   ============================================================ */
@media (max-width: 768px) {

  .bm-home-issues__sub {
    font-size: 1.20rem;
  }


  /* ── Header ─────────────────────────────────────────────── */
  .bm-header__inner { padding-inline: 1rem; }

  .bm-header__brand-name {
    font-size: 1.2rem;
    letter-spacing: .16em;
  }
  .bm-header__brand-mag { font-size: .78rem; }
  .bm-header__brand-num { display: none; }

  /* Masquer la saison sur mobile — trop étroit 
  .bm-header__saison { display: none; } */

  /* Groupe actions masqué sur mobile (burger le remplace) */
  .bm-header__actions { display: none; }

  /* Burger visible, absolu à droite */
  .bm-header__burger {
    display: flex;
    right: 1rem;
    padding: .4rem;
  }

  /* ── Nav drawer ─────────────────────────────────────────── */
  .bm-nav {
    transform: translateX(-100%);
    top: 0;
    width: min(var(--bm-nav-w), 85vw);  /* max 85% du viewport */
    padding-top: calc(var(--bm-topbar-h) + var(--bm-header-h));
    z-index: 950;
  }
  .bm-nav.is-open { transform: translateX(0); }
  .bm-nav__overlay.is-visible { display: block; }

  /* ── Contenu principal ──────────────────────────────────── */
  .bm-main   { margin-left: 0; }
  .bm-footer { margin-left: 0; }

  /* ── Grilles ────────────────────────────────────────────── */
  .bm-une__grid { grid-template-columns: 1fr; }
  .bm-une__card--featured { grid-column: span 1; }

  .bm-rubrique-grid { grid-template-columns: 1fr; }
  .bm-immo-grid     { grid-template-columns: 1fr; }

  /* ── Footer ─────────────────────────────────────────────── */

  /* ── Navigation article ─────────────────────────────────── */
  .bm-article-nav { flex-direction: column; gap: 1.5rem; }
  .bm-article-nav__btn { max-width: 100%; }

  /* ── Home hero mobile ───────────────────────────────────── */
  .bm-home-hero {
    min-height: clamp(380px, 65vh, 600px);
    background-position: right top;
    background-size: 58% auto;
    align-items: flex-start;
  }
  .bm-home-hero::before {
    background: linear-gradient(
      to bottom,
      rgba(29,29,27,.98) 0%,
      rgba(29,29,27,.96) 50%,
      rgba(29,29,27,.82) 100%
    );
  }
  .bm-home-hero__inner { padding-block: var(--bm-space-lg); }
  .bm-home-hero__scroll { display: none; }
  .bm-home-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }

  /* ── Hero ───────────────────────────────────────────────── */
  .bm-hero {
    padding: var(--bm-space) var(--bm-space);
    gap: var(--bm-space);
  }
  .bm-hero__eyebrow-num { font-size: clamp(2.2rem, 10vw, 3.5rem); }
  .bm-hero__actions { flex-direction: column; }
  .bm-hero__actions .bm-btn { text-align: center; }

  /* ── Sommaire en colonne unique ─────────────────────────── */
  .bm-sommaire-cols { columns: 1; }

  /* ── Conteneur ──────────────────────────────────────────── */
  .bm-container { padding-inline: 1rem; }
}

/* ============================================================
   DOMAINES D'EXPERTISE
   ============================================================ */

.bm-exp-list {
  margin-bottom: var(--bm-space-xl);
}

/* — Entrée (carte) — */
.bm-exp-entry {
  border-bottom: 1px solid var(--bm-sep);
}
.bm-exp-entry:first-child {
  /*border-top: 1px solid var(--bm-sep);*/
}

/* — En-tête cliquable — */
.bm-exp-entry__header {
  display: flex;
  align-items: center;
  gap: 2rem;
  width: 100%;
  padding: 1.75rem 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background var(--bm-transition);
}
.bm-exp-entry__header:hover .bm-exp-entry__nom {
  color: var(--bm-rouge);
}
.bm-exp-entry__header[aria-expanded="true"] {
  padding-bottom: 1.25rem;
}
.bm-exp-entry__header[aria-expanded="true"] .bm-exp-entry__icon {
  transform: rotate(45deg);
  color: var(--bm-rouge);
}
.bm-exp-entry__header--no-detail {
  cursor: default;
}

/* — Identité du département — */
.bm-exp-entry__ident {
  flex: 1;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
}
.bm-exp-entry__nom {
  font-family: var(--bm-ff-serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 400;
  line-height: var(--bm-lh-tight);
  color: var(--bm-noir);
  transition: color var(--bm-transition);
}
.bm-exp-entry__sub {
  font-family: var(--bm-ff-serif);
  font-size: 1rem;
  font-style: italic;
  font-weight: 400;
  color: var(--bm-txt-sec);
}
.bm-exp-entry__accroche {
  flex-basis: 100%;
  font-size: var(--bm-fz-sm);
  font-style: italic;
  color: var(--bm-rouge);
  letter-spacing: .01em;
  margin-top: .25rem;
}

/* — Méta-contact (droite) — */
.bm-exp-entry__meta {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: .15rem;
  text-align: right;
}
.bm-exp-entry__contact-nom {
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-sm);
  font-weight: 500;
  color: var(--bm-noir);
  letter-spacing: .02em;
}
.bm-exp-entry__contact-titre,
.bm-exp-entry__contact-email {
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
}

/* — Icône expand — */
.bm-exp-entry__icon {
  flex-shrink: 0;
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;
  color: var(--bm-rouge);
  transition: transform var(--bm-transition), color var(--bm-transition);
  min-width: 1.6rem;
  text-align: center;
}

/* — Panneau détail — */
.bm-exp-entry__detail {
  padding: 0 0 2.5rem;
}
.bm-exp-entry__detail[hidden] { display: none; }

/* Texte description */
.bm-exp-detail__text {
  max-width: 72ch;
  margin-bottom: 2.5rem;
}
.bm-exp-detail__text p {
  font-size: var(--bm-fz-base);
  line-height: var(--bm-lh-base);
  color: var(--bm-txt-corps);
  margin-bottom: 1.25rem;
}
.bm-exp-detail__text p:last-child { margin-bottom: 0; }

/* Items vitrine */
.bm-exp-items {
  margin-bottom: 2.5rem;
}
.bm-exp-items__title {
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-xs);
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--bm-rouge);
  padding-bottom: .75rem;
  border-bottom: 1px solid var(--bm-sep);
  margin-bottom: 1.5rem;
}
.bm-exp-items__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}
@media (max-width: 860px) {
  .bm-exp-items__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .bm-exp-items__grid { grid-template-columns: 1fr; }
}

.bm-exp-item {
  padding: 1.5rem;
  background: var(--bm-fond-lt);
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.bm-exp-item__marque {
  font-family: var(--bm-ff-serif);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--bm-noir);
}
.bm-exp-item__titre {
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-sm);
  font-weight: 500;
  color: var(--bm-txt-corps);
  line-height: 1.4;
}
.bm-exp-item__desc {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  line-height: 1.65;
  flex: 1;
}
.bm-exp-item__footer {
  margin-top: auto;
  padding-top: .75rem;
  border-top: 1px solid var(--bm-sep);
}
.bm-exp-item__prix {
  display: block;
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-sm);
  font-weight: 600;
  color: var(--bm-rouge);
  margin-bottom: .5rem;
  letter-spacing: .02em;
}
.bm-exp-item__contact {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  font-size: var(--bm-fz-xs);
  color: var(--bm-txt-sec);
}
.bm-exp-item__contact a {
  color: var(--bm-txt-sec);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--bm-transition);
}
.bm-exp-item__contact a:hover { color: var(--bm-rouge); }

/* Bloc contact département */
.bm-exp-detail__contact-block {
  padding-top: 1.5rem;
  border-top: 1px solid var(--bm-sep);
}
.bm-exp-detail__contact-nom {
  display: block;
  font-family: var(--bm-ff-sans);
  font-size: var(--bm-fz-base);
  font-weight: 600;
  letter-spacing: .02em;
  margin-bottom: .2rem;
}
.bm-exp-detail__contact-titre {
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
  margin-bottom: .75rem;
}
.bm-exp-detail__contact-coords {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1.5rem;
  font-size: var(--bm-fz-sm);
  color: var(--bm-txt-sec);
}
.bm-exp-detail__contact-coords a {
  color: var(--bm-txt-sec);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--bm-transition);
}
.bm-exp-detail__contact-coords a:hover { color: var(--bm-rouge); }

/* — Responsive — */
@media (max-width: 700px) {
  .bm-exp-entry__header {
    flex-wrap: wrap;
    gap: 1rem;
  }
  .bm-exp-entry__meta {
    display: none;
  }
  .bm-exp-entry__icon {
    margin-left: auto;
  }
}

/* ══════════════════════════════════════════════════════════════
   PAGE LÉGALE — Politique de confidentialité
   ══════════════════════════════════════════════════════════════ */

.bm-main--legal { padding: 4rem 1.5rem 6rem; }

.bm-legal-wrap { max-width: 800px; margin: 0 auto; }

.bm-legal-lang-switch {
  display: flex; align-items: center; gap: .6rem; margin-bottom: 3rem;
  font-family: var(--bm-font-ui); font-size: .75rem;
  letter-spacing: .1em; text-transform: uppercase;
}
.bm-legal-lang-btn { color: var(--bm-gris-moyen); text-decoration: none; transition: color .2s; }
.bm-legal-lang-btn:hover, .bm-legal-lang-btn.is-active { color: var(--bm-or); font-weight: 500; }
.bm-legal-lang-sep { color: var(--bm-gris-clair); }

.bm-legal-header { border-bottom: 1px solid var(--bm-gris-clair); padding-bottom: 2rem; margin-bottom: 3rem; }
.bm-legal-title { font-family: var(--bm-font-serif); font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 300; color: var(--bm-noir); margin: 0 0 .4rem; }
.bm-legal-subtitle { font-family: var(--bm-font-ui); font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--bm-or); margin: 0 0 1rem; }
.bm-legal-updated { font-family: var(--bm-font-ui); font-size: .8rem; color: var(--bm-gris-moyen); margin: 0; }

.bm-legal-section { margin-bottom: 2.8rem; }
.bm-legal-section h2 { font-family: var(--bm-font-ui); font-size: .8rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--bm-or); margin: 0 0 1rem; }
.bm-legal-section p { font-family: var(--bm-font-ui); font-size: .95rem; line-height: 1.75; color: var(--bm-gris-fonce); margin: 0 0 .9rem; }
.bm-legal-section a { color: var(--bm-or); text-decoration: underline; text-underline-offset: 3px; }
.bm-legal-section a:hover { color: var(--bm-noir); }
.bm-legal-section code { font-family: 'Courier New', monospace; font-size: .85em; background: #f5f4f0; padding: .1em .4em; border-radius: 3px; color: var(--bm-noir); }

.bm-legal-table-wrap { overflow-x: auto; margin: 1.2rem 0 1.4rem; border: 1px solid var(--bm-gris-clair); }
.bm-legal-table { width: 100%; border-collapse: collapse; font-family: var(--bm-font-ui); font-size: .85rem; }
.bm-legal-table th { background: var(--bm-noir); color: var(--bm-blanc); font-weight: 400; letter-spacing: .08em; text-transform: uppercase; font-size: .72rem; padding: .75rem 1rem; text-align: left; }
.bm-legal-table td { padding: .8rem 1rem; border-bottom: 1px solid var(--bm-gris-clair); color: var(--bm-gris-fonce); line-height: 1.5; }
.bm-legal-table tr:last-child td { border-bottom: none; }
.bm-legal-table tr:hover td { background: #f9f8f5; }

@media (max-width: 640px) {
  .bm-main--legal { padding: 2.5rem 1rem 4rem; }
  .bm-legal-table th, .bm-legal-table td { padding: .6rem .7rem; font-size: .8rem; }
}
