/* ============================================================
   CrossFit BBN — "BLUEPRINT" edition
   Brutalist / plan d'architecte. Encre, papier, rouge signal.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');

:root{
  --ink:    #0c0c0c;   /* encre / fond sombre */
  --paper:  #f3f1ea;   /* papier */
  --paper-2:#e7e4d8;   /* papier ombré */
  --grid:   #d6d2c4;   /* lignes de grille claires */
  --grid-d: #232323;   /* lignes de grille sombres */
  --red:    #e23b2e;   /* rouge signal */
  --red-txt:#c9302c;   /* rouge foncé pour petits textes sur fond clair (contraste AA) */
  --red-d:  #c22d22;
  --mut:    #6f6c61;   /* texte secondaire sur papier */
  --mut-d:  #8f8b7e;   /* texte secondaire sur encre */
  --line:   #1a1a1a;

  --maxw: 1280px;
  --f-head: 'Anton', Impact, sans-serif;
  --f-body: 'Space Grotesk', system-ui, sans-serif;
  --f-mono: 'Space Mono', monospace;

  --u: 8px; /* unité de grille */
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--f-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  font-size:17px;
  overflow-x:hidden;
  /* papier millimétré subtil */
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size:32px 32px;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--red); color:var(--paper); }

.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:clamp(1rem,4vw,2.5rem); }
.section{ padding-block:clamp(3.5rem,8vw,7rem); position:relative; }

/* ---- type ---- */
.mono{ font-family:var(--f-mono); }
.tag{
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--red); display:inline-flex; gap:.5rem; align-items:center;
}
.tag::before{ content:"[ "; color:var(--ink); }
.tag::after{ content:" ]"; color:var(--ink); }

.h-mega{ font-family:var(--f-head); font-weight:400; line-height:.82; text-transform:uppercase;
  font-size:clamp(3.6rem,15vw,13rem); letter-spacing:-.01em; }
.h-xl{ font-family:var(--f-head); font-weight:400; line-height:.86; text-transform:uppercase;
  font-size:clamp(2.8rem,8vw,6.5rem); letter-spacing:-.01em; }
.h-lg{ font-family:var(--f-head); font-weight:400; line-height:.9; text-transform:uppercase;
  font-size:clamp(2rem,5vw,3.6rem); }
.h-md{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:clamp(1.4rem,3vw,2rem); }
.lede{ color:var(--mut); max-width:60ch; font-size:1.05rem; }
.outline{ color:transparent; -webkit-text-stroke:2px var(--ink); }
.red{ color:var(--red); }

/* dimension line (cote d'architecte) */
.dimline{ display:flex; align-items:center; gap:.6rem; font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; color:var(--mut); text-transform:uppercase; }
.dimline::before,.dimline::after{ content:""; height:1px; background:var(--ink); flex:1; }
.dimline span{ white-space:nowrap; }

/* ---- buttons ---- */
.btn{
  display:inline-flex; align-items:center; gap:.7rem; font-family:var(--f-mono);
  font-weight:700; text-transform:uppercase; letter-spacing:.1em; font-size:.8rem;
  padding:1rem 1.5rem; background:var(--ink); color:var(--paper);
  border:2px solid var(--ink); transition:.16s ease; cursor:pointer;
}
.btn:hover{ background:var(--red); border-color:var(--red); color:var(--paper); transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--ink); }
.btn--red{ background:var(--red); border-color:var(--red); }
.btn--red:hover{ background:var(--ink); border-color:var(--ink); box-shadow:4px 4px 0 var(--red); }
.btn--ghost{ background:transparent; color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); box-shadow:4px 4px 0 var(--red); }
.btn .x{ font-weight:700; }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.masthead{ background:var(--ink); color:var(--paper); border-bottom:2px solid var(--ink); }
.masthead .wrap{ display:flex; justify-content:space-between; gap:1rem; padding-block:.5rem;
  font-family:var(--f-mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mut-d); }
.masthead a:hover{ color:var(--red); }
.masthead .r{ display:flex; gap:1.5rem; }
@media(max-width:640px){ .masthead{ display:none; } }

header.nav{ position:sticky; top:0; z-index:60; background:var(--paper); border-bottom:2px solid var(--ink); }
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; padding-block:.7rem; }
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand .box{ width:46px; height:46px; background:var(--ink); color:var(--paper); display:grid; place-items:center;
  font-family:var(--f-head); font-size:1.5rem; line-height:1; }
.brand .name{ font-family:var(--f-head); font-size:1.7rem; line-height:.85; }
.brand .name small{ display:block; font-family:var(--f-mono); font-size:.55rem; letter-spacing:.24em; color:var(--mut); margin-top:3px; }

.menu{ display:flex; align-items:center; gap:.3rem; list-style:none; }
.menu > li > a{ font-family:var(--f-mono); font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  padding:.5rem .7rem; color:var(--ink); position:relative; }
.menu > li > a:hover{ color:var(--red); }
.menu > li > a.active{ background:var(--ink); color:var(--paper); }
.nav-cta a{ margin-left:.5rem; }

.burger{ display:none; flex-direction:column; gap:5px; background:none; border:2px solid var(--ink); cursor:pointer; padding:.5rem; }
.burger span{ width:24px; height:2px; background:var(--ink); transition:.3s; }
.burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media(max-width:980px){
  .burger{ display:flex; }
  .menu{ position:fixed; inset:0 0 0 auto; width:min(86vw,380px); background:var(--paper);
    border-left:2px solid var(--ink); flex-direction:column; align-items:stretch; gap:0;
    padding:5.5rem 1.5rem 2rem; transform:translateX(100%); transition:transform .3s ease; z-index:55; }
  .menu.open{ transform:translateX(0); }
  .menu > li > a{ display:block; font-size:1rem; padding:1.1rem .5rem; border-bottom:1px solid var(--grid); }
  .menu .nav-cta a{ margin:1.2rem 0 0; justify-content:center; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero{ background:var(--ink); color:var(--paper); position:relative; overflow:hidden;
  background-image:
    linear-gradient(var(--grid-d) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-d) 1px, transparent 1px);
  background-size:32px 32px; }
/* Vidéo de fond du hero */
.hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  z-index:0; opacity:.55; }
.hero__video + .hero__scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(12,12,12,.55) 0%, rgba(12,12,12,.35) 40%, rgba(12,12,12,.85) 100%); }
.hero .wrap{ padding-block:clamp(3rem,8vw,7rem); position:relative; z-index:2; }
.hero .meta-row{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mut-d);
  border-bottom:1px solid var(--grid-d); padding-bottom:1rem; margin-bottom:2.5rem; }
.hero h1{ color:var(--paper); margin-bottom:1.5rem; }
.hero h1 .ln2{ display:block; color:transparent; -webkit-text-stroke:2px var(--red); }
.hero .sub{ font-family:var(--f-mono); font-size:clamp(.95rem,2vw,1.15rem); color:var(--paper); max-width:46ch; margin-bottom:2.2rem; line-height:1.7; }
.hero .cta-row{ display:flex; gap:1rem; flex-wrap:wrap; }
.hero .corner{ position:absolute; font-family:var(--f-mono); font-size:.68rem; letter-spacing:.16em; color:var(--mut-d); z-index:2; }
.hero .corner.tr{ top:1rem; right:1.2rem; }
.hero .corner.bl{ bottom:1rem; left:1.2rem; }
.hero .ghostnum{ position:absolute; right:-2%; bottom:-6%; font-family:var(--f-head);
  font-size:clamp(12rem,40vw,34rem); line-height:.7; color:transparent; -webkit-text-stroke:1px var(--grid-d); z-index:1; pointer-events:none; }

/* ---- ticker ---- */
.ticker{ background:var(--red); color:var(--paper); border-block:2px solid var(--ink); overflow:hidden; }
.ticker__t{ display:flex; gap:2rem; white-space:nowrap; width:max-content; padding-block:.55rem;
  font-family:var(--f-head); font-size:1.2rem; letter-spacing:.04em; text-transform:uppercase; animation:tick 26s linear infinite; }
.ticker__t span{ display:inline-flex; gap:2rem; align-items:center; }
.ticker__t span::after{ content:"+"; }
@keyframes tick{ to{ transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce){ .ticker__t{ animation:none; } }

/* ============================================================
   PAGE HEADER (interior)
   ============================================================ */
.phead{ background:var(--ink); color:var(--paper); border-bottom:2px solid var(--ink);
  background-image:linear-gradient(var(--grid-d) 1px,transparent 1px),linear-gradient(90deg,var(--grid-d) 1px,transparent 1px);
  background-size:32px 32px; position:relative; overflow:hidden; }
.phead .wrap{ padding-block:clamp(2.5rem,6vw,4.5rem); position:relative; z-index:2; }
.phead .crumb{ font-family:var(--f-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mut-d); margin-bottom:1.2rem; }
.phead .crumb a:hover{ color:var(--red-txt); }
.phead h1{ color:var(--paper); }
.phead p{ margin-top:1.2rem; color:var(--mut-d); max-width:60ch; }
.phead .idx{ position:absolute; top:1rem; right:1.2rem; font-family:var(--f-mono); font-size:.7rem; letter-spacing:.16em; color:var(--mut-d); z-index:2; }

/* ============================================================
   BLOCKS / GRID
   ============================================================ */
.grid{ display:grid; gap:0; border:2px solid var(--ink); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
.g2{ grid-template-columns:repeat(2,1fr); }
@media(max-width:860px){ .g3,.g4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .g2,.g3,.g4{ grid-template-columns:1fr; } }

.cell{ border:1px solid var(--ink); margin:-1px 0 0 -1px; padding:clamp(1.4rem,3vw,2rem); background:var(--paper); transition:.16s; position:relative; }
.cell:hover{ background:var(--ink); color:var(--paper); }
.cell:hover .cnum, .cell:hover .lede, .cell:hover p{ color:var(--mut-d); }
.cell .cnum{ font-family:var(--f-mono); font-size:.74rem; letter-spacing:.12em; color:var(--red); }
.cell h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.7rem; margin:.7rem 0 .5rem; }
.cell p{ color:var(--mut); font-size:.95rem; }

/* stat strip */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); border:2px solid var(--ink); }
@media(max-width:680px){ .stats{ grid-template-columns:repeat(2,1fr); } }
.stat{ padding:1.6rem; border-left:1px solid var(--ink); }
.stat:first-child{ border-left:0; }
.stat .n{ font-family:var(--f-head); font-size:clamp(2.6rem,6vw,4.4rem); line-height:.85; }
.stat .n em{ font-style:normal; color:var(--red); }
.stat .l{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--mut); margin-top:.5rem; }
@media(max-width:680px){ .stat:nth-child(odd){ border-left:0; } .stat:nth-child(n+3){ border-top:1px solid var(--ink); } }

/* split */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:2px solid var(--ink); }
@media(max-width:840px){ .split{ grid-template-columns:1fr; } }
.split__txt{ padding:clamp(1.8rem,4vw,3rem); }
.split__img{ position:relative; border-left:1px solid var(--ink); min-height:340px; overflow:hidden; }
@media(max-width:840px){ .split__img{ border-left:0; border-top:1px solid var(--ink); } }
.split__img img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.15); }
.split.rev .split__txt{ order:2; }
.split.rev .split__img{ border-left:0; border-right:1px solid var(--ink); }
@media(max-width:840px){ .split.rev .split__txt{ order:0; } }
.split__img .stamp{ position:absolute; top:1rem; left:1rem; background:var(--red); color:var(--paper);
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; padding:.4rem .7rem; }

.checklist{ list-style:none; display:grid; gap:.7rem; margin-top:1.4rem; }
.checklist li{ display:flex; gap:.8rem; font-family:var(--f-body); color:var(--mut); }
.checklist li::before{ content:"→"; color:var(--red); font-weight:700; }

/* CTA band */
.band{ background:var(--red); color:var(--paper); border-block:2px solid var(--ink); text-align:center; }
.band .wrap{ padding-block:clamp(3rem,7vw,5.5rem); }
.band h2{ color:var(--paper); }
.band h2 .o{ color:transparent; -webkit-text-stroke:2px var(--paper); }

/* ============================================================
   FOOTER
   ============================================================ */
footer.site{ background:var(--ink); color:var(--paper); border-top:2px solid var(--ink); }
footer.site .wrap{ padding-block:clamp(2.5rem,6vw,4rem) 1.5rem; }
.fgrid{ display:grid; grid-template-columns:1.6fr 1fr 1.2fr 1fr; gap:2rem; align-items:start; }
@media(max-width:1080px){ .fgrid{ grid-template-columns:1fr 1fr; gap:2rem 1.6rem; } }
@media(max-width:560px){ .fgrid{ grid-template-columns:1fr; gap:1.8rem; } }
footer.site .name{ font-family:var(--f-head); font-size:2.4rem; line-height:.85; }
footer.site .name small{ display:block; font-family:var(--f-mono); font-size:.6rem; letter-spacing:.24em; color:var(--red); margin-top:5px; }
footer.site h4{ font-family:var(--f-mono); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--red); margin-bottom:1rem; }
footer.site ul{ list-style:none; display:grid; gap:.55rem; }
footer.site a:hover{ color:var(--red); }
footer.site .mut{ color:var(--mut-d); }
.fbar{ border-top:1px solid var(--grid-d); margin-top:2.2rem; padding-top:1.2rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mut-d); }

/* reveal */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } }
:focus-visible{ outline:3px solid var(--red); outline-offset:2px; }

/* ============================================================
   COMPOSANTS BBN GYM — style BLUEPRINT brutaliste
   (ajoutés au thème d'origine ; encre / papier / rouge signal)
   ============================================================ */

/* --- Bandeau campagne (haut de page) --- */
.campagne{ background:var(--red); color:var(--paper); border-bottom:2px solid var(--ink); }
.campagne .wrap{ display:flex; justify-content:center; gap:1rem; padding-block:.5rem;
  font-family:var(--f-mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; text-align:center; }

/* --- Ticker cliquable + mention essai --- */
a.ticker{ display:block; }
a.ticker:hover .ticker__t{ animation-play-state:paused; }
.ticker--essai .ticker__t{ padding-block:.85rem; }
.ticker--essai .ticker__essai{ font-family:var(--f-head); font-weight:400; text-transform:uppercase;
  font-size:1.35rem; letter-spacing:.02em; color:var(--paper); }
.ticker--essai .ticker__essai::after{ content:"★"; color:var(--paper); opacity:.75; }

/* --- Grille activités (aperçu accueil / page activités) --- */
.acts{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:2px solid var(--ink); }
@media(max-width:900px){ .acts{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .acts{ grid-template-columns:1fr; } }
.act{ border-right:2px solid var(--ink); border-bottom:2px solid var(--ink); background:var(--paper);
  display:flex; flex-direction:column; }
.act__img{ display:block; aspect-ratio:4/3; overflow:hidden; border-bottom:2px solid var(--ink); }
.act__img img{ width:100%; height:100%; object-fit:cover; }
.act__b{ padding:1.3rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.act__b h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.5rem; line-height:.9; }
.act__b p{ color:var(--mut); font-size:.92rem; flex:1; }
.act__more, .actrow__more{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--red-txt); font-weight:700; }
.coachtag{ font-family:var(--f-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); }

/* --- Liste verticale activités (accueil) --- */
.actlist{ display:flex; flex-direction:column; gap:0; border:2px solid var(--ink); }
.actrow{ display:grid; grid-template-columns:320px 1fr; text-decoration:none; color:inherit;
  border-bottom:2px solid var(--ink); background:var(--paper); }
.actrow[hidden]{ display:none !important; }
.actrow:last-child{ border-bottom:0; }
.actrow__img{ display:block; min-height:220px; border-right:2px solid var(--ink); overflow:hidden; }
.actrow__img img{ width:100%; height:100%; object-fit:cover; }
.actrow__body{ padding:1.6rem 1.8rem; display:flex; flex-direction:column; justify-content:center; gap:.5rem; }
.actrow__body h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:clamp(1.6rem,3vw,2.4rem); line-height:.9; }
.actrow__body p{ color:var(--mut); max-width:60ch; }
.actrow__coach{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mut); }
.actrow:nth-child(even){ grid-template-columns:1fr 320px; }
.actrow:nth-child(even) .actrow__img{ order:2; border-right:0; border-left:2px solid var(--ink); }
@media(max-width:680px){
  .actrow, .actrow:nth-child(even){ grid-template-columns:1fr; }
  .actrow__img, .actrow:nth-child(even) .actrow__img{ order:0; border-right:0; border-left:0; border-bottom:2px solid var(--ink); min-height:180px; }
}
#actShowMore .x{ display:inline-block; }

/* --- Fiche activité : bénéfices / infos --- */
.benef{ display:flex; flex-wrap:wrap; gap:.6rem; }
.benef span{ font-family:var(--f-mono); font-size:.75rem; text-transform:uppercase; letter-spacing:.08em;
  border:2px solid var(--ink); padding:.5rem .8rem; }
.infobox{ border:2px solid var(--ink); background:var(--paper-2); padding:1.4rem; }
.infobox ul{ list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.infobox li{ font-family:var(--f-mono); font-size:.82rem; border-bottom:1px solid var(--grid); padding-bottom:.5rem; }

/* --- Étapes essai (accueil) --- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:2px solid var(--ink); }
@media(max-width:760px){ .steps{ grid-template-columns:1fr; } }
.step{ padding:1.6rem; border-right:2px solid var(--ink); }
.step:last-child{ border-right:0; }
.step .num{ font-family:var(--f-head); font-size:2.4rem; color:var(--red); line-height:.85; margin-bottom:.6rem; }
.step h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.3rem; margin-bottom:.3rem; }
.step p{ color:var(--mut); font-size:.92rem; }

/* --- Module offres (accueil) --- */
.offres-home{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:2px solid var(--ink); }
@media(max-width:820px){ .offres-home{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:460px){ .offres-home{ grid-template-columns:1fr; } }
.offre-mini{ position:relative; padding:1.5rem 1.3rem; border-right:2px solid var(--ink); background:var(--paper); }
.offre-mini:last-child{ border-right:0; }
.offre-mini--feat{ background:var(--ink); color:var(--paper); }
.offre-mini__badge{ position:absolute; top:-2px; left:-2px; background:var(--red); color:var(--paper);
  font-family:var(--f-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; padding:.3rem .6rem; }
.offre-mini__nom{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.6rem; margin-top:.6rem; }
.offre-mini__freq{ font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--red-txt); }
.offre-mini--feat .offre-mini__freq{ color:var(--paper); }
.offre-mini__prix{ font-family:var(--f-head); font-size:2.6rem; line-height:1; margin-top:.6rem; }
.offre-mini__prix sup{ font-size:1.1rem; }
.offre-mini__prix span{ font-family:var(--f-mono); font-size:.62rem; letter-spacing:.06em; color:var(--mut); }
.offre-mini--feat .offre-mini__prix span{ color:var(--mut-d); }

/* --- Duo entreprises / accès (accueil) --- */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:2px solid var(--ink); }
@media(max-width:820px){ .duo{ grid-template-columns:1fr; } }
.duo__card{ padding:2rem; border-right:2px solid var(--ink); }
.duo__card:last-child{ border-right:0; }
.duo__card p{ color:var(--mut); }

/* --- Avis --- */
.avis{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:2px solid var(--ink); }
@media(max-width:820px){ .avis{ grid-template-columns:1fr; } }
.avis__c{ padding:1.6rem; border-right:2px solid var(--ink); }
.avis__c:last-child{ border-right:0; }
.avis__c .stars{ color:var(--red); letter-spacing:.2em; margin-bottom:.6rem; }
.avis__c p{ font-size:.95rem; margin-bottom:1rem; }
.avis__c .who{ font-family:var(--f-mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; }
.avis__c .when{ font-family:var(--f-mono); font-size:.68rem; color:var(--mut); }

/* --- Formats entreprises --- */
.formats{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:2px solid var(--ink); }
@media(max-width:860px){ .formats{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .formats{ grid-template-columns:1fr; } }
.format{ padding:1.5rem; border-right:2px solid var(--ink); border-bottom:2px solid var(--ink); }
.format__n{ font-family:var(--f-mono); font-size:.7rem; letter-spacing:.12em; color:var(--red-txt); }
.format h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.3rem; margin:.4rem 0; }
.format p{ color:var(--mut); font-size:.9rem; }

/* --- FAQ --- */
.faq{ border:2px solid var(--ink); }
.faq details{ border-bottom:2px solid var(--ink); }
.faq details:last-child{ border-bottom:0; }
.faq summary{ cursor:pointer; padding:1.2rem 1.4rem; font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.15rem; list-style:none; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; float:right; color:var(--red); }
.faq details[open] summary::after{ content:"–"; }
.faq details p{ padding:0 1.4rem 1.2rem; color:var(--mut); }

/* --- Salles multiples --- */
.salles{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:2px solid var(--ink); }
@media(max-width:820px){ .salles{ grid-template-columns:1fr; } }
.salle{ padding:1.6rem; border-right:2px solid var(--ink); }
.salle:last-child{ border-right:0; }
.salle h3{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.3rem; margin-bottom:.4rem; }
.salle__adr{ font-family:var(--f-mono); font-size:.8rem; margin-bottom:.6rem; }
.salle__desc{ color:var(--mut); font-size:.9rem; margin-bottom:1rem; }

/* --- Formulaires (contact + entreprise) --- */
.formgrid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:600px){ .formgrid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:.35rem; }
.field.full{ grid-column:1 / -1; }
.bbn-form label{ font-family:var(--f-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }
.bbn-form input, .bbn-form select, .bbn-form textarea{
  width:100%; padding:.7rem .8rem; border:2px solid var(--ink); background:var(--paper);
  font-family:var(--f-body); font-size:.95rem; color:var(--ink); }
.bbn-form input:focus, .bbn-form select:focus, .bbn-form textarea:focus{ outline:2px solid var(--red); outline-offset:1px; border-color:var(--red); }
.form-notice{ padding:1rem 1.2rem; border:2px solid var(--ink); margin-bottom:1.4rem; font-family:var(--f-mono); font-size:.85rem; }
.form-ok{ background:var(--ink); color:var(--paper); }
.form-err{ background:var(--red); color:var(--paper); border-color:var(--red); }

/* --- Coaching individuel pleine largeur (tarifs) --- */
.plans.plans--1{ grid-template-columns:1fr; }
.plan--wide{ display:flex; flex-direction:column; align-items:flex-start; gap:.4rem; }
.plan .pnote{ font-family:var(--f-mono); font-size:.72rem; color:var(--mut); margin:.3rem 0 .8rem; }

/* --- Cartes tarifs cliquables --- */
a.pass{ cursor:pointer; }
a.pass .pass__go{ font-family:var(--f-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red-txt); }

/* --- Prose légale --- */
.legal-prose{ max-width:74ch; }
.legal-prose h2{ font-family:var(--f-head); font-weight:400; text-transform:uppercase; font-size:1.6rem; margin:2rem 0 .6rem; }
.legal-prose p{ color:var(--mut); margin-bottom:1rem; }
.pv-split{ display:grid; grid-template-columns:1fr; gap:1.5rem; }

/* --- Footer : logo + une ligne --- */
.fbrand-logo{ height:60px; width:auto; margin-bottom:.6rem; }
/* Repli : si aucun logo blanc dédié, on éclaircit le logo d'en-tête (monochrome foncé). */
.fbrand-logo--invert{ filter:brightness(0) invert(1); }
.fbrand-mark{ display:flex; align-items:center; gap:.7rem; }
.fbrand-mark .box{ width:46px; height:46px; background:var(--paper); color:var(--ink); display:grid; place-items:center;
  font-family:var(--f-head); font-size:1.5rem; border:2px solid var(--paper); }
.fbrand .name{ font-family:var(--f-head); font-size:1.5rem; line-height:.85; }
.fbrand .name small{ display:block; font-family:var(--f-mono); font-size:.55rem; letter-spacing:.24em; color:var(--mut-d); }

/* --- Divers --- */
.coachtag, .actrow__coach{ display:inline-block; }
.meta-row{ display:flex; gap:1.5rem; font-family:var(--f-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--mut-d); margin-bottom:1rem; flex-wrap:wrap; }
.ln2{ display:block; }

/* --- Case de consentement RGPD --- */
.field--consent{ font-family:var(--f-body); }
.field--consent label{ font-size:.82rem; color:var(--mut); line-height:1.5; }
.field--consent a{ color:var(--red); text-decoration:underline; }

/* --- Galerie Instagram (accueil) — style brutaliste --- */
.iggrid{ display:grid; grid-template-columns:repeat(6,1fr); gap:0; border:2px solid var(--ink); }
@media(max-width:900px){ .iggrid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:520px){ .iggrid{ grid-template-columns:repeat(2,1fr); } }
.igitem{ position:relative; display:block; aspect-ratio:1/1; overflow:hidden;
  border-right:2px solid var(--ink); border-bottom:2px solid var(--ink); background:var(--ink); }
.igitem img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s, opacity .2s; }
.igitem:hover img{ transform:scale(1.06); opacity:.85; }
.igitem__icon{ position:absolute; top:8px; right:10px; color:#fff; font-size:1.1rem; opacity:.9;
  text-shadow:0 1px 3px rgba(0,0,0,.5); }

/* --- Accessibilité : lien d'évitement (visible au focus clavier) --- */
.skip-link{ position:absolute; left:-9999px; top:0; z-index:1000;
  background:var(--ink); color:var(--paper); padding:.7rem 1.2rem; font-family:var(--f-mono);
  font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; text-decoration:none; }
.skip-link:focus{ left:8px; top:8px; outline:3px solid var(--red); outline-offset:2px; }
#bbn-main-content{ scroll-margin-top:90px; }
#bbn-main-content:focus{ outline:none; }
