:root {
  --flambart-blue: #254F82;
  --flambart-blue-dark: #102A43;
  --flambart-red: #7A2014;
  --flambart-cream: #F7F2E8;
  --flambart-rope: #D8C7A3;
  --flambart-slate: #2F3A40;
  --flambart-radius: 1.4rem;
  --flambart-shadow: 0 18px 50px rgba(16, 42, 67, 0.10);
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--flambart-cream);
  color: var(--flambart-slate);
}

a {
  text-underline-offset: 0.18em;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(247, 242, 232, 0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(16, 42, 67, 0.08);
}

.flambart-container {
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 2rem);
}

.flambart-hero {
  min-height: 62vh;
  border-radius: 0 0 var(--flambart-radius) var(--flambart-radius);
  overflow: hidden;
}

.flambart-card {
  background: rgba(255,255,255,0.45);
  border: 1px solid rgba(16, 42, 67, 0.10);
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
  padding: clamp(1.2rem, 2vw, 2rem);
}

.flambart-kicker {
  color: var(--flambart-red);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  font-weight: 700;
}

.flambart-section {
  padding-block: clamp(3rem, 7vw, 6rem);
}

.flambart-section-compact {
  padding-block: clamp(2rem, 5vw, 4rem);
}

.flambart-button-outline a,
a.flambart-button-outline {
  border: 1px solid var(--flambart-blue);
  color: var(--flambart-blue);
  background: transparent;
  border-radius: 999px;
  padding: 0.75rem 1.1rem;
  text-decoration: none;
}

.flambart-button-red a,
a.flambart-button-red {
  background: var(--flambart-red);
  color: var(--flambart-cream);
}

.flambart-muted {
  color: rgba(47, 58, 64, 0.76);
}

.flambart-spec-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.flambart-spec {
  border-top: 3px solid var(--flambart-red);
}

.flambart-timeline {
  display: grid;
  gap: 1rem;
}

.flambart-timeline-item {
  border-left: 3px solid var(--flambart-blue);
  padding-left: 1rem;
}

.flambart-program-slot {
  margin-block: 2rem;
}

.flambart-program-item {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(16, 42, 67, 0.12);
}

.flambart-program-time {
  color: var(--flambart-red);
  font-weight: 700;
}

@media (max-width: 780px) {
  .flambart-hero {
    min-height: auto;
  }

  .flambart-spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flambart-program-item {
    grid-template-columns: 1fr;
  }
}

/* Header / navigation */
.flambart-header-inner {
  min-height: 76px;
  gap: 1.2rem;
}

.flambart-site-title {
  margin: 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  font-weight: 700;
  color: var(--flambart-blue-dark);
  white-space: nowrap;
}

.flambart-site-title a {
  color: inherit;
  text-decoration: none;
}

.flambart-main-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(0.75rem, 1.4vw, 1.2rem);
  font-size: 0.95rem;
}

.flambart-main-nav a {
  color: var(--flambart-blue-dark);
  text-decoration: none;
  font-weight: 600;
}

.flambart-main-nav a:hover,
.flambart-main-nav a:focus {
  color: var(--flambart-red);
}

.flambart-member-link {
  border: 1px solid var(--flambart-blue);
  border-radius: 999px;
  padding: 0.55rem 0.9rem;
}

.flambart-member-link:hover,
.flambart-member-link:focus {
  background: var(--flambart-blue);
  color: var(--flambart-cream) !important;
}

@media (max-width: 980px) {
  .flambart-header-inner {
    align-items: flex-start;
    padding-block: 0.9rem;
  }

  .flambart-main-nav {
    width: 100%;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 0.35rem;
    scrollbar-width: thin;
  }

  .flambart-main-nav a {
    white-space: nowrap;
  }
}

/* Placeholders temporaires pour blocs images vides */
.wp-block-media-text__media:empty,
.wp-block-cover:not([style*="background-image"]) {
  background:
    linear-gradient(135deg, rgba(37,79,130,0.18), rgba(122,32,20,0.10)),
    repeating-linear-gradient(
      -45deg,
      rgba(16,42,67,0.06),
      rgba(16,42,67,0.06) 8px,
      rgba(247,242,232,0.10) 8px,
      rgba(247,242,232,0.10) 16px
    );
  min-height: 280px;
  border-radius: var(--flambart-radius);
}

.wp-block-media-text__media:empty::after {
  content: "Image à intégrer";
  display: grid;
  place-items: center;
  min-height: 280px;
  color: rgba(16,42,67,0.62);
  font-weight: 700;
}


/* ==========================================================
   Flambart — visual polish v0.1
   ========================================================== */

/* Base */
*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  background:
    radial-gradient(circle at top left, rgba(216, 199, 163, 0.22), transparent 34rem),
    var(--flambart-cream);
  color: var(--flambart-slate);
  text-rendering: optimizeLegibility;
}

img {
  max-width: 100%;
  height: auto;
}

main.wp-block-group {
  margin-top: 0;
}

.wp-site-blocks {
  overflow-x: hidden;
}

.flambart-container,
.alignwide {
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 3vw, 2rem);
}

.alignfull {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
}

/* Typographie */
h1,
h2,
h3,
h4 {
  text-wrap: balance;
}

h1 {
  font-size: clamp(2.3rem, 6vw, 5.2rem);
  letter-spacing: -0.035em;
  margin-bottom: 1rem;
}

h2 {
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  letter-spacing: -0.025em;
  margin-top: 0;
}

h3 {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
}

p,
li {
  font-size: clamp(1rem, 1.1vw, 1.075rem);
}

p {
  margin-top: 0;
}

p:last-child {
  margin-bottom: 0;
}

.flambart-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--flambart-red);
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-size: 0.75rem;
  font-weight: 800;
  margin-bottom: 0.85rem;
}

.flambart-kicker::before {
  content: "";
  width: 2.2rem;
  height: 1px;
  background: currentColor;
  opacity: 0.75;
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(247, 242, 232, 0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(16, 42, 67, 0.10);
  box-shadow: 0 8px 28px rgba(16, 42, 67, 0.05);
}

.flambart-header-inner {
  min-height: 78px;
  gap: 1.25rem;
  padding-block: 0.55rem;
}

.flambart-site-title {
  display: inline-flex;
  flex-direction: column;
  line-height: 1;
  color: var(--flambart-blue-dark);
  text-decoration: none;
  white-space: nowrap;
}

.flambart-site-title-main {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 800;
  letter-spacing: -0.03em;
}

.flambart-site-title-sub {
  margin-top: 0.18rem;
  color: rgba(16, 42, 67, 0.72);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.flambart-main-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(0.55rem, 1vw, 1.05rem);
  font-size: 0.93rem;
}

.flambart-main-nav a {
  position: relative;
  color: var(--flambart-blue-dark);
  text-decoration: none;
  font-weight: 650;
  padding-block: 0.4rem;
}

.flambart-main-nav a:not(.flambart-member-link)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.12rem;
  height: 2px;
  background: var(--flambart-red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 160ms ease;
}

.flambart-main-nav a:hover::after,
.flambart-main-nav a:focus::after {
  transform: scaleX(1);
}

.flambart-main-nav a:hover,
.flambart-main-nav a:focus {
  color: var(--flambart-red);
}

.flambart-member-link {
  border: 1px solid rgba(37, 79, 130, 0.75);
  border-radius: 999px;
  padding: 0.55rem 0.9rem !important;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}

.flambart-member-link:hover,
.flambart-member-link:focus {
  background: var(--flambart-blue);
  border-color: var(--flambart-blue);
  color: var(--flambart-cream) !important;
}

.flambart-member-link::after {
  display: none !important;
}

/* Sections */
.flambart-section {
  padding-block: clamp(3rem, 7vw, 6.5rem);
}

.flambart-section-compact {
  padding-block: clamp(2.2rem, 5vw, 4rem);
}

.flambart-section > *:first-child,
.flambart-section-compact > *:first-child {
  margin-top: 0;
}

/* Hero */
.flambart-hero {
  min-height: min(640px, 70vh);
  display: grid;
  align-items: center;
  overflow: hidden;
  border-radius: 0 0 clamp(1.2rem, 3vw, 2.4rem) clamp(1.2rem, 3vw, 2.4rem);
  background:
    linear-gradient(120deg, rgba(16, 42, 67, 0.78), rgba(37, 79, 130, 0.42)),
    radial-gradient(circle at right bottom, rgba(122, 32, 20, 0.25), transparent 24rem),
    var(--flambart-blue-dark);
}

.flambart-hero .wp-block-cover__inner-container {
  width: 100%;
}

.flambart-hero h1,
.flambart-hero p {
  max-width: 780px;
}

.flambart-hero h1 {
  color: var(--flambart-cream);
}

.flambart-hero p:not(.flambart-kicker) {
  color: rgba(247, 242, 232, 0.92);
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
}

/* Cards */
.flambart-card {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.64), rgba(255, 255, 255, 0.38));
  border: 1px solid rgba(16, 42, 67, 0.11);
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
  padding: clamp(1.25rem, 2.3vw, 2rem);
}

.flambart-card h3 {
  margin-top: 0;
}

.flambart-spec {
  border-top: 4px solid var(--flambart-red);
}

.flambart-spec h3 {
  color: var(--flambart-blue-dark);
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  line-height: 1;
}

/* Boutons */
.wp-block-button__link {
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease, color 140ms ease;
  box-shadow: 0 10px 22px rgba(16, 42, 67, 0.10);
  font-weight: 700;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(16, 42, 67, 0.16);
}

.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--flambart-blue-dark) !important;
  border: 1px solid rgba(37, 79, 130, 0.7);
  box-shadow: none;
}

.is-style-outline .wp-block-button__link:hover,
.is-style-outline .wp-block-button__link:focus {
  background: var(--flambart-blue) !important;
  color: var(--flambart-cream) !important;
}

/* Colonnes */
.wp-block-columns {
  gap: clamp(1.2rem, 3vw, 2.6rem);
}

.wp-block-column > *:last-child {
  margin-bottom: 0;
}

/* Placeholders images temporaires */
.wp-block-media-text__media:empty,
.wp-block-cover:not([style*="background-image"]) {
  background:
    linear-gradient(135deg, rgba(37, 79, 130, 0.18), rgba(122, 32, 20, 0.10)),
    repeating-linear-gradient(
      -45deg,
      rgba(16, 42, 67, 0.06),
      rgba(16, 42, 67, 0.06) 8px,
      rgba(247, 242, 232, 0.10) 8px,
      rgba(247, 242, 232, 0.10) 16px
    );
  min-height: 300px;
  border-radius: var(--flambart-radius);
}

.wp-block-media-text__media:empty::after {
  content: "Image à intégrer";
  display: grid;
  place-items: center;
  min-height: 300px;
  color: rgba(16, 42, 67, 0.62);
  font-weight: 800;
  letter-spacing: 0.02em;
}

.wp-block-media-text {
  gap: clamp(1.4rem, 4vw, 3.5rem);
}

.wp-block-media-text__content {
  padding: clamp(1rem, 3vw, 2rem) !important;
}

/* Timeline */
.flambart-timeline {
  display: grid;
  gap: 1rem;
  margin-top: 2rem;
}

.flambart-timeline-item {
  position: relative;
  background: rgba(255, 255, 255, 0.46);
  border: 1px solid rgba(16, 42, 67, 0.10);
  border-left: 5px solid var(--flambart-blue);
  border-radius: 1rem;
  padding: 1rem 1.2rem;
}

/* Programme fête */
.flambart-programme {
  margin-top: 2rem;
}

.flambart-program-slot {
  margin-block: 2.5rem;
}

.flambart-program-slot h3 {
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(16, 42, 67, 0.16);
}

.flambart-program-item {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 1.2rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid rgba(16, 42, 67, 0.12);
}

.flambart-program-time {
  color: var(--flambart-red);
  font-weight: 850;
  font-size: 1.05rem;
}

.flambart-program-item h4 {
  margin: 0 0 0.35rem;
}

/* Details / FAQ */
.wp-block-details,
details {
  background: rgba(255, 255, 255, 0.48);
  border: 1px solid rgba(16, 42, 67, 0.11);
  border-radius: 1rem;
  padding: 1rem 1.2rem;
  margin-bottom: 0.85rem;
}

.wp-block-details summary,
details summary {
  cursor: pointer;
  color: var(--flambart-blue-dark);
  font-weight: 800;
}

/* Footer */
.site-footer {
  margin-top: clamp(3rem, 7vw, 6rem);
  padding-block: clamp(3rem, 7vw, 5rem);
  background:
    radial-gradient(circle at top right, rgba(122, 32, 20, 0.20), transparent 24rem),
    var(--flambart-blue-dark);
  color: var(--flambart-cream);
}

.flambart-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(160px, 0.7fr) minmax(160px, 0.7fr) minmax(220px, 0.9fr);
  gap: clamp(1.5rem, 3vw, 3rem);
}

.flambart-footer-title {
  margin-bottom: 0.75rem;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.4rem, 2vw, 2rem);
  font-weight: 800;
}

.flambart-footer-heading {
  margin-bottom: 0.8rem;
  color: var(--flambart-rope);
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
}

.flambart-footer-links {
  display: grid;
  align-content: start;
  gap: 0.45rem;
}

.flambart-footer-links a,
.site-footer a {
  color: var(--flambart-cream);
  text-decoration: none;
}

.flambart-footer-links a:hover,
.site-footer a:hover {
  color: var(--flambart-rope);
}

.flambart-footer-small {
  font-size: 0.9rem;
  opacity: 0.76;
}

/* Corrections de largeur Gutenberg */
.wp-block-group:not(.alignfull) > .wp-block-group,
.wp-block-group:not(.alignfull) > .wp-block-columns,
.wp-block-group:not(.alignfull) > .wp-block-media-text,
.wp-block-group:not(.alignfull) > .wp-block-heading,
.wp-block-group:not(.alignfull) > p,
.wp-block-group:not(.alignfull) > ul,
.wp-block-group:not(.alignfull) > ol,
.wp-block-group:not(.alignfull) > .wp-block-buttons,
.wp-block-group:not(.alignfull) > .wp-block-details {
  max-width: 1180px;
}

/* Mobile */
@media (max-width: 980px) {
  .flambart-header-inner {
    display: block !important;
    padding-block: 0.8rem;
  }

  .flambart-main-nav {
    width: 100%;
    margin-top: 0.75rem;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 0.45rem;
    scrollbar-width: thin;
  }

  .flambart-main-nav a {
    white-space: nowrap;
  }

  .flambart-member-link {
    flex: 0 0 auto;
  }

  .flambart-footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .flambart-program-item {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

@media (max-width: 680px) {
  h1 {
    font-size: clamp(2.1rem, 12vw, 3.2rem);
  }

  .flambart-hero {
    min-height: 500px;
    border-radius: 0 0 1.4rem 1.4rem;
  }

  .flambart-section {
    padding-block: 3rem;
  }

  .flambart-section-compact {
    padding-block: 2rem;
  }

  .wp-block-columns {
    display: block;
  }

  .wp-block-column {
    margin-bottom: 1rem;
  }

  .flambart-spec-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .flambart-footer-grid {
    grid-template-columns: 1fr;
  }

  .wp-block-button,
  .wp-block-button__link {
    width: 100%;
  }

  .wp-block-button__link {
    text-align: center;
  }
}


/* ==========================================================
   Flambart — visual fixes v0.2
   Objectif : marges mobile, cartes, images, responsive
   ========================================================== */

/* ----------------------------------------------------------
   1. Sécurité générale : éviter les contenus collés aux bords
   ---------------------------------------------------------- */

:root {
  --flambart-mobile-pad: clamp(1.1rem, 5vw, 1.5rem);
  --flambart-content-pad: clamp(1rem, 3vw, 2rem);
}

/* Tous les blocs Gutenberg contraints gardent une respiration */
.entry-content,
.wp-site-blocks main,
main.wp-block-group {
  width: 100%;
}

/* Sécurité pour les enfants directs sur pages */
main.wp-block-group > *:not(.alignfull),
.wp-block-group:not(.alignfull) {
  padding-left: var(--flambart-content-pad);
  padding-right: var(--flambart-content-pad);
}

/* Évite double padding sur les conteneurs maison */
.flambart-container {
  padding-left: var(--flambart-content-pad);
  padding-right: var(--flambart-content-pad);
}

/* Les alignfull restent full width mais leur contenu interne respire */
.alignfull > .wp-block-group,
.alignfull > .flambart-container,
.alignfull .flambart-container {
  padding-left: var(--flambart-content-pad);
  padding-right: var(--flambart-content-pad);
}

/* ----------------------------------------------------------
   2. Header : densité et lisibilité
   ---------------------------------------------------------- */

.site-header {
  width: 100%;
}

.flambart-header-inner {
  max-width: 1280px;
  margin-inline: auto;
}

.flambart-main-nav {
  min-width: 0;
}

.flambart-main-nav a {
  line-height: 1.2;
}

/* ----------------------------------------------------------
   3. Hero : meilleur cadrage et meilleure lisibilité
   ---------------------------------------------------------- */

.wp-block-cover.flambart-hero,
.wp-block-cover.flambart-page-hero {
  position: relative;
}

.wp-block-cover.flambart-hero img,
.wp-block-cover.flambart-page-hero img {
  object-fit: cover;
}

/* Le grand bandeau large doit garder le bateau visible à gauche */
.flambart-hero .wp-block-cover__image-background {
  object-position: center center;
}

.flambart-page-hero .wp-block-cover__image-background {
  object-position: center center;
}

.flambart-hero .wp-block-cover__inner-container,
.flambart-page-hero .wp-block-cover__inner-container {
  max-width: 1180px;
  margin-inline: auto;
  padding-left: var(--flambart-content-pad);
  padding-right: var(--flambart-content-pad);
}

/* Limite les lignes trop longues dans les heros */
.flambart-hero h1,
.flambart-page-hero h1,
.flambart-hero p,
.flambart-page-hero p {
  max-width: 820px;
}

/* ----------------------------------------------------------
   4. Cartes : homogénéité des boîtes d’affichage
   ---------------------------------------------------------- */

.flambart-card {
  height: 100%;
  overflow: hidden;
}

.flambart-card > figure:first-child,
.flambart-card .wp-block-image:first-child {
  margin: calc(-1 * clamp(1.25rem, 2.3vw, 2rem));
  margin-bottom: 1.15rem;
}

.flambart-card img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.flambart-card h3 {
  margin-bottom: 0.55rem;
}

.flambart-card p {
  color: rgba(47, 58, 64, 0.82);
}

/* Images arrondies hors cartes */
.flambart-rounded-image,
.flambart-rounded-image img,
.wp-block-image.flambart-rounded-image img {
  border-radius: var(--flambart-radius);
  overflow: hidden;
}

.wp-block-image.flambart-rounded-image {
  margin: 0;
  box-shadow: var(--flambart-shadow);
}

.wp-block-image.flambart-rounded-image img {
  display: block;
  width: 100%;
  object-fit: cover;
}

/* ----------------------------------------------------------
   5. Chiffres clés : corriger la grille
   ---------------------------------------------------------- */

.wp-block-columns.flambart-spec-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.35rem);
}

.wp-block-columns.flambart-spec-grid > .wp-block-column {
  flex-basis: auto !important;
  margin: 0 !important;
  min-width: 0;
}

.flambart-spec {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 150px;
}

.flambart-spec h3 {
  margin-bottom: 0.45rem;
  word-break: normal;
}

.flambart-spec p {
  font-size: 0.98rem;
}

/* ----------------------------------------------------------
   6. Colonnes Gutenberg : respiration et empilement propre
   ---------------------------------------------------------- */

.wp-block-columns {
  align-items: center;
}

.wp-block-columns:not(.flambart-spec-grid) > .wp-block-column {
  min-width: 0;
}

.wp-block-media-text {
  border-radius: var(--flambart-radius);
}

.wp-block-media-text__media img {
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
}

.wp-block-media-text__content {
  min-width: 0;
}

/* ----------------------------------------------------------
   7. Programme / FAQ : blocs plus propres
   ---------------------------------------------------------- */

.flambart-program-slot {
  background: rgba(255, 255, 255, 0.32);
  border: 1px solid rgba(16, 42, 67, 0.10);
  border-radius: var(--flambart-radius);
  padding: clamp(1rem, 2.5vw, 1.5rem);
}

.flambart-program-slot h3 {
  margin-top: 0;
}

details,
.wp-block-details {
  box-shadow: 0 8px 24px rgba(16, 42, 67, 0.05);
}

details[open],
.wp-block-details[open] {
  background: rgba(255, 255, 255, 0.68);
}

/* ----------------------------------------------------------
   8. Footer : éviter le collage et améliorer mobile
   ---------------------------------------------------------- */

.site-footer {
  padding-left: 0;
  padding-right: 0;
}

.site-footer .flambart-container {
  padding-left: var(--flambart-content-pad);
  padding-right: var(--flambart-content-pad);
}

/* ----------------------------------------------------------
   9. Mobile : vraie correction des bords d’écran
   ---------------------------------------------------------- */

@media (max-width: 980px) {
  main.wp-block-group > *:not(.alignfull),
  .wp-block-group:not(.alignfull),
  .flambart-container {
    padding-left: var(--flambart-mobile-pad);
    padding-right: var(--flambart-mobile-pad);
  }

  .alignfull > .wp-block-group,
  .alignfull .flambart-container,
  .flambart-hero .wp-block-cover__inner-container,
  .flambart-page-hero .wp-block-cover__inner-container {
    padding-left: var(--flambart-mobile-pad);
    padding-right: var(--flambart-mobile-pad);
  }

  .flambart-header-inner {
    padding-left: var(--flambart-mobile-pad);
    padding-right: var(--flambart-mobile-pad);
  }

  .flambart-main-nav {
    display: flex;
    gap: 0.85rem;
    overflow-x: auto;
    padding-bottom: 0.55rem;
    -webkit-overflow-scrolling: touch;
  }

  .flambart-main-nav::-webkit-scrollbar {
    height: 4px;
  }

  .flambart-main-nav::-webkit-scrollbar-thumb {
    background: rgba(37, 79, 130, 0.35);
    border-radius: 999px;
  }

  .wp-block-columns:not(.flambart-spec-grid) {
    display: block !important;
  }

  .wp-block-columns:not(.flambart-spec-grid) > .wp-block-column {
    margin-bottom: 1.3rem;
  }

  .wp-block-columns:not(.flambart-spec-grid) > .wp-block-column:last-child {
    margin-bottom: 0;
  }

  .wp-block-media-text {
    display: block !important;
  }

  .wp-block-media-text__media {
    margin-bottom: 1.3rem;
  }

  .wp-block-media-text__content {
    padding: 0 !important;
  }
}

@media (max-width: 760px) {
  body {
    overflow-x: hidden;
  }

  h1 {
    font-size: clamp(2.1rem, 11vw, 3.4rem);
  }

  h2 {
    font-size: clamp(1.65rem, 8vw, 2.45rem);
  }

  .flambart-hero,
  .flambart-page-hero {
    min-height: 500px !important;
  }

  .flambart-hero .wp-block-cover__image-background {
    object-position: 34% center;
  }

  .flambart-page-hero .wp-block-cover__image-background {
    object-position: center center;
  }

  .flambart-site-title {
    max-width: 100%;
  }

  .flambart-main-nav {
    margin-left: calc(-1 * var(--flambart-mobile-pad));
    margin-right: calc(-1 * var(--flambart-mobile-pad));
    padding-left: var(--flambart-mobile-pad);
    padding-right: var(--flambart-mobile-pad);
  }

  .wp-block-columns.flambart-spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flambart-spec {
    min-height: 130px;
    padding: 1rem;
  }

  .flambart-spec h3 {
    font-size: clamp(1.35rem, 7vw, 2rem);
  }

  .flambart-card {
    padding: 1.1rem;
  }

  .flambart-card > figure:first-child,
  .flambart-card .wp-block-image:first-child {
    margin: -1.1rem;
    margin-bottom: 1rem;
  }

  .flambart-card img {
    aspect-ratio: 16 / 11;
  }

  .flambart-program-slot {
    padding: 1rem;
  }

  .flambart-program-item {
    padding: 0.95rem 0;
  }

  details,
  .wp-block-details {
    padding: 0.95rem 1rem;
  }
}

@media (max-width: 460px) {
  :root {
    --flambart-mobile-pad: 1.15rem;
  }

  .wp-block-columns.flambart-spec-grid {
    grid-template-columns: 1fr;
  }

  .flambart-hero,
  .flambart-page-hero {
    min-height: 460px !important;
  }

  .flambart-hero .wp-block-cover__image-background {
    object-position: 28% center;
  }

  .flambart-main-nav {
    font-size: 0.9rem;
  }

  .flambart-member-link {
    padding: 0.5rem 0.75rem !important;
  }
}

/* ----------------------------------------------------------
   10. Petites finitions
   ---------------------------------------------------------- */

.wp-block-image {
  margin-top: 0;
}

.wp-block-image img {
  height: auto;
}

.wp-block-buttons {
  gap: 0.75rem;
}

.has-background:not(.site-header):not(.site-footer) {
  overflow: hidden;
}

/* Évite certains débordements de textes longs */
p,
h1,
h2,
h3,
h4,
li,
a {
  overflow-wrap: anywhere;
}

/* Mais garde les titres plus élégants quand possible */
h1,
h2,
h3 {
  overflow-wrap: normal;
}



/* ==========================================================
   Flambart — desktop width fixes v0.3
   Objectif : redonner de l'ampleur aux colonnes sur ordinateur
   tout en conservant les marges de sécurité mobile.
   ========================================================== */

/* ----------------------------------------------------------
   1. Largeur globale desktop
   ---------------------------------------------------------- */

@media (min-width: 981px) {
  :root {
    --flambart-content-pad: clamp(1.25rem, 2.2vw, 2.25rem);
  }

  /* Les sections principales utilisent vraiment la largeur wide */
  main.wp-block-group {
    max-width: none;
  }

  main.wp-block-group > .wp-block-group:not(.alignfull),
  main.wp-block-group > .wp-block-columns:not(.alignfull),
  main.wp-block-group > .wp-block-media-text:not(.alignfull) {
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
  }

  /* Les conteneurs maison passent un peu plus large */
  .flambart-container,
  .alignwide {
    max-width: 1240px;
  }

  /* Évite le cumul excessif de padding dans les groupes imbriqués */
  main.wp-block-group > .wp-block-group:not(.alignfull) {
    padding-left: var(--flambart-content-pad);
    padding-right: var(--flambart-content-pad);
  }

  main.wp-block-group > .wp-block-group:not(.alignfull) > .wp-block-group,
  main.wp-block-group > .wp-block-group:not(.alignfull) > .wp-block-columns,
  main.wp-block-group > .wp-block-group:not(.alignfull) > .wp-block-media-text {
    padding-left: 0;
    padding-right: 0;
  }

  /* Les colonnes ne doivent pas être étranglées par des max-width hérités */
  .wp-block-columns {
    width: 100%;
    max-width: none;
  }

  .wp-block-columns > .wp-block-column {
    min-width: 0;
  }

  /* Les sections avec fond pleine largeur gardent un contenu large */
  .alignfull > .wp-block-group,
  .alignfull .flambart-container,
  .has-background > .wp-block-columns,
  .has-background > .wp-block-group,
  .has-background > .wp-block-media-text {
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ----------------------------------------------------------
   2. Colonnes desktop plus aérées mais plus larges
   ---------------------------------------------------------- */

@media (min-width: 981px) {
  .wp-block-columns {
    gap: clamp(2rem, 3.5vw, 4rem);
  }

  /* Les blocs deux colonnes éditoriaux gagnent en ampleur */
  .wp-block-columns:not(.flambart-spec-grid) {
    align-items: center;
  }

  /* Les colonnes dans les grandes sections ne doivent pas être trop petites */
  .wp-block-columns:not(.flambart-spec-grid) > .wp-block-column {
    flex-grow: 1;
  }

  /* Media & Text : plus large, moins tassé */
  .wp-block-media-text {
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
    grid-column-gap: clamp(2rem, 4vw, 4.5rem);
  }

  .wp-block-media-text__content {
    padding-left: clamp(1.5rem, 2.5vw, 3rem) !important;
    padding-right: clamp(1.5rem, 2.5vw, 3rem) !important;
  }
}

/* ----------------------------------------------------------
   3. Grille chiffres : 4 colonnes desktop bien étalées
   ---------------------------------------------------------- */

@media (min-width: 981px) {
  .wp-block-columns.flambart-spec-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
    gap: clamp(1.1rem, 1.8vw, 1.6rem);
  }

  .wp-block-columns.flambart-spec-grid > .wp-block-column {
    width: auto;
  }

  .flambart-spec {
    min-height: 165px;
  }
}

/* ----------------------------------------------------------
   4. Cartes galerie accueil : utiliser la largeur
   ---------------------------------------------------------- */

@media (min-width: 981px) {
  .flambart-card {
    width: 100%;
  }

  .wp-block-columns > .wp-block-column.flambart-card {
    display: flex;
    flex-direction: column;
  }

  .wp-block-columns > .wp-block-column.flambart-card p {
    margin-bottom: 0;
  }
}

/* ----------------------------------------------------------
   5. Hero : contenu plus ample sur grand écran
   ---------------------------------------------------------- */

@media (min-width: 981px) {
  .flambart-hero .wp-block-cover__inner-container,
  .flambart-page-hero .wp-block-cover__inner-container {
    max-width: 1240px;
  }

  .flambart-hero h1,
  .flambart-page-hero h1 {
    max-width: 900px;
  }

  .flambart-hero p,
  .flambart-page-hero p {
    max-width: 780px;
  }
}

/* ----------------------------------------------------------
   6. Desktop très large
   ---------------------------------------------------------- */

@media (min-width: 1440px) {
  .flambart-container,
  .alignwide,
  main.wp-block-group > .wp-block-group:not(.alignfull),
  main.wp-block-group > .wp-block-columns:not(.alignfull),
  main.wp-block-group > .wp-block-media-text:not(.alignfull),
  .wp-block-columns.flambart-spec-grid,
  .wp-block-media-text,
  .flambart-hero .wp-block-cover__inner-container,
  .flambart-page-hero .wp-block-cover__inner-container {
    max-width: 1320px;
  }

  .wp-block-columns {
    gap: clamp(2.5rem, 4vw, 5rem);
  }
}

/* ----------------------------------------------------------
   7. Annule certains effets de padding trop agressifs
   issus de la passe mobile précédente sur desktop uniquement
   ---------------------------------------------------------- */

@media (min-width: 981px) {
  .wp-block-group:not(.alignfull) > .wp-block-group,
  .wp-block-group:not(.alignfull) > .wp-block-columns,
  .wp-block-group:not(.alignfull) > .wp-block-media-text,
  .wp-block-group:not(.alignfull) > .wp-block-heading,
  .wp-block-group:not(.alignfull) > p,
  .wp-block-group:not(.alignfull) > ul,
  .wp-block-group:not(.alignfull) > ol,
  .wp-block-group:not(.alignfull) > .wp-block-buttons,
  .wp-block-group:not(.alignfull) > .wp-block-details {
    max-width: none;
  }
}



/* ==========================================================
   Flambart — Layout foundation v1.0
   Objectif :
   - remettre un système de largeur clair ;
   - éviter les paddings cumulés ;
   - préserver de vraies marges mobile ;
   - redonner de l’ampleur desktop.
   ========================================================== */

:root {
  --flambart-max: 1240px;
  --flambart-max-wide: 1320px;
  --flambart-page-pad: clamp(1.15rem, 3vw, 2.25rem);
  --flambart-mobile-pad: clamp(1.15rem, 5vw, 1.45rem);
  --flambart-section-y: clamp(3rem, 7vw, 6.5rem);
  --flambart-section-y-compact: clamp(2.25rem, 5vw, 4rem);
}

/* Reset doux des débordements */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.wp-site-blocks,
main.wp-block-group {
  width: 100%;
  max-width: none;
}

/* Conteneur de base */
.flambart-container,
.wp-block-group.flambart-container {
  width: min(100% - 2 * var(--flambart-page-pad), var(--flambart-max));
  max-width: var(--flambart-max);
  margin-inline: auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Sections Gutenberg principales */
main.wp-block-group > .wp-block-group:not(.alignfull),
main.wp-block-group > .wp-block-columns:not(.alignfull),
main.wp-block-group > .wp-block-media-text:not(.alignfull) {
  width: min(100% - 2 * var(--flambart-page-pad), var(--flambart-max));
  max-width: var(--flambart-max);
  margin-inline: auto;
}

/* Les sections full width prennent toute la largeur, mais leur contenu doit respirer */
.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

.alignfull > *,
.alignfull .wp-block-cover__inner-container {
  box-sizing: border-box;
}

/* On neutralise les paddings globaux trop agressifs ajoutés précédemment */
@media (min-width: 981px) {
  main.wp-block-group > *:not(.alignfull),
  .wp-block-group:not(.alignfull),
  .wp-block-group:not(.alignfull) > .wp-block-group,
  .wp-block-group:not(.alignfull) > .wp-block-columns,
  .wp-block-group:not(.alignfull) > .wp-block-media-text,
  .wp-block-group:not(.alignfull) > .wp-block-heading,
  .wp-block-group:not(.alignfull) > p,
  .wp-block-group:not(.alignfull) > ul,
  .wp-block-group:not(.alignfull) > ol,
  .wp-block-group:not(.alignfull) > .wp-block-buttons,
  .wp-block-group:not(.alignfull) > .wp-block-details {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
  }
}

/* Sections verticales */
.flambart-section {
  padding-top: var(--flambart-section-y);
  padding-bottom: var(--flambart-section-y);
}

.flambart-section-compact {
  padding-top: var(--flambart-section-y-compact);
  padding-bottom: var(--flambart-section-y-compact);
}

/* Sections avec fond : le fond est full, le contenu est contenu */
.wp-block-group.has-background:not(.site-header):not(.site-footer) {
  padding-left: var(--flambart-page-pad);
  padding-right: var(--flambart-page-pad);
}

.wp-block-group.has-background:not(.site-header):not(.site-footer) > .wp-block-columns,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > .wp-block-group,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > .wp-block-media-text,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > h1,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > h2,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > h3,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > p,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > ul,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > ol,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > details,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > .wp-block-buttons,
.wp-block-group.has-background:not(.site-header):not(.site-footer) > .wp-block-columns {
  max-width: var(--flambart-max);
  margin-left: auto;
  margin-right: auto;
}

/* Colonnes : largeur complète du conteneur */
.wp-block-columns {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  gap: clamp(1.5rem, 3vw, 3.75rem);
}

.wp-block-column {
  min-width: 0;
}

/* Desktop large */
@media (min-width: 1440px) {
  :root {
    --flambart-max: 1320px;
  }
}

/* Tablette et mobile : marges constantes et lisibles */
@media (max-width: 980px) {
  .flambart-container,
  .wp-block-group.flambart-container,
  main.wp-block-group > .wp-block-group:not(.alignfull),
  main.wp-block-group > .wp-block-columns:not(.alignfull),
  main.wp-block-group > .wp-block-media-text:not(.alignfull) {
    width: min(100% - 2 * var(--flambart-mobile-pad), var(--flambart-max));
  }

  .wp-block-group.has-background:not(.site-header):not(.site-footer) {
    padding-left: var(--flambart-mobile-pad);
    padding-right: var(--flambart-mobile-pad);
  }

  .wp-block-group.has-background:not(.site-header):not(.site-footer) > * {
    max-width: 100%;
  }

  .wp-block-columns:not(.flambart-spec-grid) {
    display: block !important;
  }

  .wp-block-columns:not(.flambart-spec-grid) > .wp-block-column {
    margin-bottom: 1.35rem;
  }

  .wp-block-columns:not(.flambart-spec-grid) > .wp-block-column:last-child {
    margin-bottom: 0;
  }
}

/* Mobile étroit */
@media (max-width: 520px) {
  :root {
    --flambart-mobile-pad: 1.18rem;
  }

  .flambart-section {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .flambart-section-compact {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}



/* ==========================================================
   Flambart — Components polish v1.0
   Objectif :
   - homogénéiser les cartes ;
   - stabiliser les images ;
   - améliorer chiffres clés, timeline, programme et FAQ.
   ========================================================== */

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

.wp-block-image {
  margin-top: 0;
  margin-bottom: 0;
}

.wp-block-image img {
  border-radius: var(--flambart-radius);
}

/* Images éditoriales */
.flambart-rounded-image,
.flambart-rounded-image img,
.wp-block-image.flambart-rounded-image img {
  border-radius: var(--flambart-radius);
}

.wp-block-image.flambart-rounded-image {
  box-shadow: var(--flambart-shadow);
  overflow: hidden;
}

.wp-block-image.flambart-rounded-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Cartes générales */
.flambart-card {
  position: relative;
  height: 100%;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.42));
  border: 1px solid rgba(16, 42, 67, 0.12);
  border-radius: var(--flambart-radius);
  box-shadow: 0 18px 45px rgba(16, 42, 67, 0.095);
  padding: clamp(1.2rem, 2vw, 1.8rem);
}

.flambart-card h3 {
  margin-top: 0;
  margin-bottom: 0.55rem;
  color: var(--flambart-blue-dark);
}

.flambart-card p {
  color: rgba(47, 58, 64, 0.82);
}

.flambart-card > figure:first-child,
.flambart-card > .wp-block-image:first-child {
  margin: calc(-1 * clamp(1.2rem, 2vw, 1.8rem));
  margin-bottom: 1.15rem;
}

.flambart-card > figure:first-child img,
.flambart-card > .wp-block-image:first-child img,
.flambart-card img:first-child {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: var(--flambart-radius) var(--flambart-radius) 0 0;
}

/* Cards dans colonnes : hauteur homogène */
.wp-block-columns > .wp-block-column.flambart-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* Chiffres clés / fiche technique */
.wp-block-columns.flambart-spec-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 1.8vw, 1.5rem);
  align-items: stretch;
}

.wp-block-columns.flambart-spec-grid > .wp-block-column {
  margin: 0 !important;
  width: auto !important;
  flex-basis: auto !important;
}

.flambart-spec {
  min-height: 160px;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-start;
  border-top: 4px solid var(--flambart-red);
}

.flambart-spec h3 {
  margin-bottom: 0.45rem;
  font-size: clamp(1.55rem, 2.5vw, 2.35rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.flambart-spec p {
  font-size: 0.98rem;
  line-height: 1.45;
}

/* Timeline */
.flambart-timeline {
  position: relative;
  display: grid;
  gap: 1rem;
  margin-top: 2rem;
}

.flambart-timeline::before {
  content: "";
  position: absolute;
  left: 0.65rem;
  top: 0.5rem;
  bottom: 0.5rem;
  width: 2px;
  background: rgba(37, 79, 130, 0.25);
}

.flambart-timeline-item {
  position: relative;
  margin-left: 0;
  padding: 1rem 1.2rem 1rem 2.25rem;
  background: rgba(255, 255, 255, 0.52);
  border: 1px solid rgba(16, 42, 67, 0.10);
  border-radius: 1rem;
  box-shadow: 0 10px 26px rgba(16, 42, 67, 0.055);
}

.flambart-timeline-item::before {
  content: "";
  position: absolute;
  left: 0.43rem;
  top: 1.25rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: var(--flambart-red);
  box-shadow: 0 0 0 4px rgba(122, 32, 20, 0.12);
}

.flambart-timeline-item strong {
  color: var(--flambart-blue-dark);
  font-weight: 850;
}

/* Programme fête */
.flambart-programme {
  margin-top: 2rem;
}

.flambart-program-slot {
  margin-block: 2rem;
  padding: clamp(1.1rem, 2.3vw, 1.7rem);
  background: rgba(255,255,255,0.42);
  border: 1px solid rgba(16, 42, 67, 0.11);
  border-radius: var(--flambart-radius);
  box-shadow: 0 12px 30px rgba(16, 42, 67, 0.055);
}

.flambart-program-slot h3 {
  margin-top: 0;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid rgba(16,42,67,0.16);
}

.flambart-program-item {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 1.15rem;
  padding: 1.05rem 0;
  border-bottom: 1px solid rgba(16, 42, 67, 0.10);
}

.flambart-program-item:last-child {
  border-bottom: 0;
}

.flambart-program-time {
  color: var(--flambart-red);
  font-weight: 850;
  font-size: 1.05rem;
}

.flambart-program-item h4 {
  margin: 0 0 0.25rem;
  font-size: 1.15rem;
}

/* FAQ / details */
details,
.wp-block-details {
  margin-bottom: 0.85rem;
  padding: 1rem 1.15rem;
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(16,42,67,0.11);
  border-radius: 1rem;
  box-shadow: 0 8px 20px rgba(16,42,67,0.045);
}

details summary,
.wp-block-details summary {
  cursor: pointer;
  color: var(--flambart-blue-dark);
  font-weight: 850;
}

details[open],
.wp-block-details[open] {
  background: rgba(255,255,255,0.78);
}

/* Boutons */
.wp-block-buttons {
  gap: 0.75rem;
}

.wp-block-button__link {
  font-weight: 750;
  border-radius: 999px;
}

.flambart-button-red .wp-block-button__link,
.wp-block-button.flambart-button-red .wp-block-button__link {
  background: var(--flambart-red);
  color: var(--flambart-cream);
}

/* Media & Text */
.wp-block-media-text {
  gap: clamp(1.5rem, 3.5vw, 4rem);
}

.wp-block-media-text__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
}

.wp-block-media-text__content {
  padding: clamp(1rem, 2vw, 2rem) !important;
}

/* Mobile components */
@media (max-width: 980px) {
  .wp-block-columns.flambart-spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wp-block-media-text {
    display: block !important;
  }

  .wp-block-media-text__media {
    margin-bottom: 1.35rem;
  }

  .wp-block-media-text__content {
    padding: 0 !important;
  }
}

@media (max-width: 520px) {
  .wp-block-columns.flambart-spec-grid {
    grid-template-columns: 1fr;
  }

  .flambart-spec {
    min-height: auto;
  }

  .flambart-program-item {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .flambart-card {
    padding: 1.05rem;
  }

  .flambart-card > figure:first-child,
  .flambart-card > .wp-block-image:first-child {
    margin: -1.05rem;
    margin-bottom: 1rem;
  }
}



/* ==========================================================
   Flambart — Desktop / tablet / mobile refinements v1.0
   Objectif :
   - finaliser le rendu responsive ;
   - garder desktop ample ;
   - rendre mobile confortable ;
   - stabiliser header/hero/footer.
   ========================================================== */

/* Header desktop */
.site-header {
  width: 100%;
}

.flambart-header-inner {
  width: min(100% - 2 * var(--flambart-page-pad), var(--flambart-max));
  max-width: var(--flambart-max);
  margin-inline: auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.flambart-site-title {
  flex: 0 0 auto;
}

.flambart-main-nav {
  flex: 1 1 auto;
  min-width: 0;
}

/* Desktop : meilleure répartition menu */
@media (min-width: 981px) {
  .flambart-header-inner {
    min-height: 78px;
  }

  .flambart-main-nav {
    justify-content: flex-end;
    gap: clamp(0.55rem, 0.9vw, 1rem);
  }

  .flambart-main-nav a {
    font-size: clamp(0.86rem, 0.78vw, 0.96rem);
  }
}

/* Hero */
.flambart-hero,
.flambart-page-hero {
  isolation: isolate;
}

.flambart-hero::after,
.flambart-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(16,42,67,0.58), rgba(16,42,67,0.22), rgba(16,42,67,0.10));
  z-index: 0;
}

.flambart-hero .wp-block-cover__inner-container,
.flambart-page-hero .wp-block-cover__inner-container {
  position: relative;
  z-index: 1;
}

.flambart-hero h1,
.flambart-page-hero h1 {
  color: var(--flambart-cream);
  text-shadow: 0 8px 26px rgba(0,0,0,0.20);
}

.flambart-hero p:not(.flambart-kicker),
.flambart-page-hero p:not(.flambart-kicker) {
  color: rgba(247,242,232,0.94);
}

/* Desktop hero object-position */
@media (min-width: 981px) {
  .flambart-hero .wp-block-cover__image-background {
    object-position: center center;
  }

  .flambart-page-hero .wp-block-cover__image-background {
    object-position: center center;
  }

  .flambart-hero,
  .flambart-page-hero {
    min-height: clamp(520px, 64vh, 720px) !important;
  }
}

/* Tablette */
@media (max-width: 980px) {
  .flambart-header-inner {
    width: min(100% - 2 * var(--flambart-mobile-pad), var(--flambart-max));
    display: block !important;
    padding-top: 0.85rem;
    padding-bottom: 0.75rem;
  }

  .flambart-main-nav {
    width: calc(100% + 2 * var(--flambart-mobile-pad));
    margin-left: calc(-1 * var(--flambart-mobile-pad));
    margin-right: calc(-1 * var(--flambart-mobile-pad));
    margin-top: 0.7rem;
    padding-left: var(--flambart-mobile-pad);
    padding-right: var(--flambart-mobile-pad);
    padding-bottom: 0.55rem;
    display: flex;
    justify-content: flex-start;
    gap: 0.85rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .flambart-main-nav a {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .flambart-hero,
  .flambart-page-hero {
    min-height: 520px !important;
  }

  .flambart-hero::after,
  .flambart-page-hero::after {
    background:
      linear-gradient(90deg, rgba(16,42,67,0.72), rgba(16,42,67,0.34)),
      linear-gradient(0deg, rgba(16,42,67,0.35), transparent);
  }

  .flambart-hero .wp-block-cover__image-background {
    object-position: 36% center;
  }
}

/* Mobile */
@media (max-width: 680px) {
  p,
  li {
    font-size: 1rem;
    line-height: 1.62;
  }

  h1 {
    font-size: clamp(2.15rem, 11vw, 3.25rem);
    line-height: 1.02;
  }

  h2 {
    font-size: clamp(1.65rem, 8vw, 2.4rem);
    line-height: 1.1;
  }

  h3 {
    font-size: clamp(1.2rem, 5.5vw, 1.55rem);
  }

  .flambart-site-title-main {
    font-size: 1.28rem;
  }

  .flambart-site-title-sub {
    font-size: 0.72rem;
  }

  .flambart-hero,
  .flambart-page-hero {
    min-height: 480px !important;
    border-radius: 0 0 1.35rem 1.35rem;
  }

  .flambart-hero .wp-block-cover__inner-container,
  .flambart-page-hero .wp-block-cover__inner-container {
    width: min(100% - 2 * var(--flambart-mobile-pad), var(--flambart-max));
    margin-inline: auto;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .flambart-hero .wp-block-cover__image-background {
    object-position: 30% center;
  }

  .flambart-page-hero .wp-block-cover__image-background {
    object-position: center center;
  }

  .wp-block-buttons {
    width: 100%;
  }

  .wp-block-button {
    width: 100%;
  }

  .wp-block-button__link {
    width: 100%;
    text-align: center;
  }

  .flambart-footer-grid {
    grid-template-columns: 1fr !important;
  }

  .site-footer {
    margin-top: 3rem;
  }
}

/* Très petit mobile */
@media (max-width: 420px) {
  :root {
    --flambart-mobile-pad: 1.12rem;
  }

  .flambart-main-nav {
    font-size: 0.88rem;
  }

  .flambart-member-link {
    padding: 0.48rem 0.72rem !important;
  }

  .flambart-hero,
  .flambart-page-hero {
    min-height: 450px !important;
  }
}

/* Footer desktop */
.flambart-footer-grid {
  width: min(100% - 2 * var(--flambart-page-pad), var(--flambart-max));
  max-width: var(--flambart-max);
  margin-inline: auto;
}

/* Liens et focus accessibles */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 3px solid rgba(122, 32, 20, 0.45);
  outline-offset: 3px;
}

/* Réduction animations si préférence utilisateur */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
  }
}



/* ==========================================================
   Flambart — Secondary pages blocks v1.0
   Patrimoine, galerie, participer, association, espace membres
   ========================================================== */

.flambart-editorial-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.74), rgba(255,255,255,0.46));
  border: 1px solid rgba(16,42,67,0.12);
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
  padding: clamp(1.4rem, 3vw, 2.6rem);
}

.flambart-key-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  margin-top: 1.5rem;
}

.flambart-key-list > div {
  padding-top: 1rem;
  border-top: 3px solid var(--flambart-red);
}

.flambart-key-list strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--flambart-blue-dark);
}

.flambart-soft-section {
  background: rgba(216,199,163,0.28);
}

.flambart-blue-callout {
  background:
    radial-gradient(circle at top right, rgba(122,32,20,0.22), transparent 24rem),
    var(--flambart-blue-dark);
  color: var(--flambart-cream);
}

.flambart-blue-callout h2,
.flambart-blue-callout h3,
.flambart-blue-callout p,
.flambart-blue-callout strong {
  color: var(--flambart-cream);
}

.flambart-note,
.flambart-alert {
  background: rgba(255,255,255,0.66);
  border: 1px solid rgba(16,42,67,0.12);
  border-left: 4px solid var(--flambart-red);
  border-radius: 1rem;
  padding: 1rem 1.15rem;
  box-shadow: 0 10px 26px rgba(16,42,67,0.055);
}

.flambart-alert {
  background: rgba(122,32,20,0.08);
}

.flambart-note strong,
.flambart-alert strong {
  display: block;
  color: var(--flambart-blue-dark);
  margin-bottom: 0.35rem;
}

.flambart-text-columns {
  columns: 2;
  column-gap: clamp(2rem, 4vw, 4rem);
}

.flambart-text-columns p {
  break-inside: avoid;
}

/* Galerie */
.flambart-gallery-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}

.flambart-gallery-feature {
  position: relative;
  display: block;
  min-height: 320px;
  overflow: hidden;
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
  text-decoration: none;
}

.flambart-gallery-feature img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  transition: transform 280ms ease;
}

.flambart-gallery-feature::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(16,42,67,0.72), transparent 58%);
}

.flambart-gallery-feature span {
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 1.1rem;
  z-index: 1;
  color: var(--flambart-cream);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  font-weight: 800;
}

.flambart-gallery-feature:hover img {
  transform: scale(1.035);
}

.flambart-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 1.8vw, 1.4rem);
  margin-top: 1.5rem;
}

.flambart-photo-grid figure {
  margin: 0;
  overflow: hidden;
  border-radius: var(--flambart-radius);
  background: rgba(255,255,255,0.54);
  box-shadow: 0 12px 30px rgba(16,42,67,0.075);
}

.flambart-photo-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.flambart-photo-grid figcaption {
  padding: 0.75rem 0.9rem 0.9rem;
  color: rgba(47,58,64,0.82);
  font-size: 0.92rem;
}

.flambart-photo-credit {
  background: rgba(216,199,163,0.32);
  border-top: 1px solid rgba(16,42,67,0.08);
  border-bottom: 1px solid rgba(16,42,67,0.08);
}

/* Participer */
.flambart-reasons-grid,
.flambart-bureau-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  margin-top: 1.5rem;
}

.flambart-reason-card,
.flambart-bureau-card {
  background: rgba(255,255,255,0.62);
  border: 1px solid rgba(16,42,67,0.12);
  border-radius: var(--flambart-radius);
  padding: clamp(1.15rem, 2vw, 1.6rem);
  box-shadow: 0 12px 30px rgba(16,42,67,0.065);
}

.flambart-reason-card span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  margin-bottom: 1rem;
  border-radius: 999px;
  background: var(--flambart-blue);
  color: var(--flambart-cream);
  font-weight: 850;
}

.flambart-reason-card h3,
.flambart-bureau-card h3 {
  margin-top: 0;
}

/* Association */
.flambart-bureau-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.flambart-contact-list {
  margin-top: 1.5rem;
  display: grid;
  gap: 1rem;
}

/* Espace membres */
.flambart-member-waiting {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.44));
  border: 1px solid rgba(16,42,67,0.12);
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
  padding: clamp(1.4rem, 3vw, 2.6rem);
}

/* Responsive */
@media (max-width: 1100px) {
  .flambart-key-list,
  .flambart-photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flambart-gallery-feature-grid,
  .flambart-reasons-grid,
  .flambart-bureau-grid {
    grid-template-columns: 1fr;
  }

  .flambart-gallery-feature,
  .flambart-gallery-feature img {
    min-height: 260px;
  }
}

@media (max-width: 760px) {
  .flambart-text-columns {
    columns: 1;
  }

  .flambart-key-list,
  .flambart-photo-grid {
    grid-template-columns: 1fr;
  }

  .flambart-editorial-card,
  .flambart-member-waiting {
    padding: 1.15rem;
  }

  .flambart-gallery-feature,
  .flambart-gallery-feature img {
    min-height: 230px;
  }
}



/* ==========================================================
   Flambart — Visual QA fixes v1.1
   Corrections chevauchements, marges mobile, grilles secondaires
   ========================================================== */

.wp-site-blocks,
main,
section,
.wp-block-group,
.wp-block-columns,
.wp-block-column {
  min-width: 0;
}

h1, h2, h3, h4, p, li, a, summary {
  overflow-wrap: break-word;
}

h1, h2, h3 {
  text-wrap: balance;
}

/* Hero : contenu jamais collé au bord */
.flambart-hero .wp-block-cover__inner-container,
.flambart-page-hero .wp-block-cover__inner-container {
  width: min(100% - 2 * clamp(1.2rem, 4vw, 2.25rem), var(--flambart-max, 1240px));
  margin-inline: auto;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Hero : cadrage robuste */
.flambart-hero .wp-block-cover__image-background,
.flambart-page-hero .wp-block-cover__image-background {
  object-fit: cover;
}

@media (min-width: 981px) {
  .flambart-hero .wp-block-cover__image-background,
  .flambart-page-hero .wp-block-cover__image-background {
    object-position: center center;
  }
}

/* Grilles secondaires : largeur desktop */
@media (min-width: 981px) {
  .flambart-gallery-feature-grid,
  .flambart-photo-grid,
  .flambart-reasons-grid,
  .flambart-bureau-grid,
  .flambart-key-list {
    width: 100%;
    max-width: var(--flambart-max, 1240px);
    margin-left: auto;
    margin-right: auto;
  }

  .flambart-photo-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .flambart-gallery-feature-grid,
  .flambart-reasons-grid,
  .flambart-bureau-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .flambart-key-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Galerie : cartes images robustes */
.flambart-gallery-feature,
.flambart-photo-grid figure {
  min-width: 0;
}

.flambart-gallery-feature img,
.flambart-photo-grid img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.flambart-gallery-feature img {
  height: 100%;
}

.flambart-photo-grid img {
  aspect-ratio: 4 / 3;
}

/* Cartes : éviter les boîtes écrasées */
.flambart-reason-card,
.flambart-bureau-card,
.flambart-card,
.flambart-editorial-card,
.flambart-member-waiting {
  min-width: 0;
  overflow: hidden;
}

/* Notes dans blocs sombres : lisibilité */
.flambart-blue-callout .flambart-note,
.flambart-blue-callout .flambart-alert {
  background: rgba(247, 242, 232, 0.95);
  color: var(--flambart-slate);
}

.flambart-blue-callout .flambart-note p,
.flambart-blue-callout .flambart-note strong,
.flambart-blue-callout .flambart-alert p,
.flambart-blue-callout .flambart-alert strong {
  color: var(--flambart-slate);
}

/* Header mobile */
@media (max-width: 980px) {
  .flambart-header-inner {
    width: min(100% - 2 * var(--flambart-mobile-pad, 1.2rem), var(--flambart-max, 1240px));
  }

  .flambart-main-nav {
    width: calc(100% + 2 * var(--flambart-mobile-pad, 1.2rem));
    margin-left: calc(-1 * var(--flambart-mobile-pad, 1.2rem));
    margin-right: calc(-1 * var(--flambart-mobile-pad, 1.2rem));
    padding-left: var(--flambart-mobile-pad, 1.2rem);
    padding-right: var(--flambart-mobile-pad, 1.2rem);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }

  .flambart-main-nav a {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  main.wp-block-group > .wp-block-group:not(.alignfull),
  main.wp-block-group > .wp-block-columns:not(.alignfull),
  main.wp-block-group > .wp-block-media-text:not(.alignfull),
  .flambart-container {
    width: min(100% - 2 * var(--flambart-mobile-pad, 1.2rem), var(--flambart-max, 1240px));
    margin-inline: auto;
  }

  .wp-block-group.has-background:not(.site-header):not(.site-footer) {
    padding-left: var(--flambart-mobile-pad, 1.2rem);
    padding-right: var(--flambart-mobile-pad, 1.2rem);
  }
}

/* Mobile : toutes les grilles secondaires passent proprement */
@media (max-width: 760px) {
  .flambart-gallery-feature-grid,
  .flambart-photo-grid,
  .flambart-reasons-grid,
  .flambart-bureau-grid,
  .flambart-key-list {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }

  .flambart-gallery-feature,
  .flambart-gallery-feature img {
    min-height: 230px;
  }

  .flambart-photo-grid figure {
    margin: 0;
  }

  .flambart-editorial-card,
  .flambart-member-waiting,
  .flambart-reason-card,
  .flambart-bureau-card,
  .flambart-note,
  .flambart-alert {
    padding: 1rem;
  }

  .flambart-page-hero,
  .flambart-hero {
    min-height: 460px !important;
  }

  .flambart-page-hero h1,
  .flambart-hero h1 {
    font-size: clamp(2.05rem, 10vw, 3.15rem);
  }
}

/* Très petit écran : boutons sans débordement */
@media (max-width: 430px) {
  .wp-block-buttons {
    width: 100%;
  }

  .wp-block-button,
  .wp-block-button__link {
    width: 100%;
  }

  .wp-block-button__link {
    text-align: center;
  }

  .flambart-member-link {
    padding: 0.48rem 0.72rem !important;
  }
}

/* Footer mobile */
@media (max-width: 760px) {
  .flambart-footer-grid {
    display: grid;
    grid-template-columns: 1fr !important;
    width: min(100% - 2 * var(--flambart-mobile-pad, 1.2rem), var(--flambart-max, 1240px));
  }
}



/* ==========================================================
   Flambart — Mobile burger menu v1.0
   ========================================================== */

/* Desktop : menu horizontal */
.flambart-menu-toggle,
.flambart-mobile-panel {
  display: none;
}

.flambart-header-inner {
  position: relative;
}

@media (min-width: 981px) {
  .flambart-header-inner {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
  }

  .flambart-main-nav {
    display: flex;
  }
}

/* Mobile : bouton burger + panneau */
@media (max-width: 980px) {
  body.flambart-menu-open {
    overflow: hidden;
  }

  .flambart-header-inner {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    min-height: 68px;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
  }

  .flambart-main-nav {
    display: none !important;
  }

  .flambart-menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    border: 1px solid rgba(37, 79, 130, 0.35);
    background: rgba(255, 255, 255, 0.42);
    color: var(--flambart-blue-dark);
    border-radius: 999px;
    padding: 0.62rem 0.85rem;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(16, 42, 67, 0.06);
  }

  .flambart-menu-toggle:hover,
  .flambart-menu-toggle:focus {
    background: rgba(255, 255, 255, 0.72);
  }

  .flambart-menu-toggle-icon {
    display: grid;
    gap: 4px;
    width: 18px;
  }

  .flambart-menu-toggle-icon span {
    display: block;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
  }

  .flambart-mobile-panel {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: block;
    background:
      radial-gradient(circle at top right, rgba(216, 199, 163, 0.35), transparent 22rem),
      var(--flambart-cream);
    color: var(--flambart-slate);
    transform: translateY(-0.75rem);
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease, transform 180ms ease;
  }

  .flambart-mobile-panel[hidden] {
    display: block;
  }

  body.flambart-menu-open .flambart-mobile-panel {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .flambart-mobile-panel-inner {
    width: min(100% - 2 * var(--flambart-mobile-pad, 1.2rem), 720px);
    margin-inline: auto;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    padding-top: clamp(1rem, 4vw, 1.5rem);
    padding-bottom: clamp(1.25rem, 5vw, 2rem);
  }

  .flambart-mobile-panel-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(16, 42, 67, 0.12);
  }

  .flambart-mobile-brand {
    display: inline-flex;
    flex-direction: column;
    line-height: 1;
    text-decoration: none;
    color: var(--flambart-blue-dark);
  }

  .flambart-mobile-brand span {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.45rem;
    font-weight: 850;
    letter-spacing: -0.03em;
  }

  .flambart-mobile-brand small {
    margin-top: 0.22rem;
    color: rgba(16, 42, 67, 0.72);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .flambart-menu-close {
    border: 1px solid rgba(37, 79, 130, 0.35);
    background: rgba(255, 255, 255, 0.5);
    color: var(--flambart-blue-dark);
    border-radius: 999px;
    padding: 0.6rem 0.85rem;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
  }

  .flambart-mobile-nav {
    display: grid;
    gap: 0.1rem;
    padding-top: clamp(1.2rem, 5vw, 2rem);
  }

  .flambart-mobile-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 3.25rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid rgba(16, 42, 67, 0.10);
    color: var(--flambart-blue-dark);
    text-decoration: none;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.45rem, 7vw, 2rem);
    font-weight: 800;
    line-height: 1.1;
  }

  .flambart-mobile-nav a::after {
    content: "→";
    color: var(--flambart-red);
    font-family: Inter, system-ui, sans-serif;
    font-size: 1.2rem;
    transform: translateX(0);
    transition: transform 140ms ease;
  }

  .flambart-mobile-nav a:hover::after,
  .flambart-mobile-nav a:focus::after {
    transform: translateX(0.2rem);
  }

  .flambart-mobile-nav .flambart-mobile-member-link {
    margin-top: 1rem;
    justify-content: center;
    border: 1px solid var(--flambart-blue);
    border-radius: 999px;
    background: var(--flambart-blue);
    color: var(--flambart-cream);
    font-family: Inter, system-ui, sans-serif;
    font-size: 1rem;
    font-weight: 850;
    padding: 0.95rem 1.1rem;
  }

  .flambart-mobile-nav .flambart-mobile-member-link::after {
    display: none;
  }

  .flambart-mobile-panel-note {
    margin-top: auto;
    padding-top: 1.25rem;
    color: rgba(47, 58, 64, 0.72);
    font-size: 0.95rem;
  }
}

/* Très petits écrans */
@media (max-width: 420px) {
  .flambart-menu-toggle-text {
    display: none;
  }

  .flambart-menu-toggle {
    padding: 0.65rem;
  }

  .flambart-mobile-nav a {
    font-size: clamp(1.35rem, 8vw, 1.75rem);
  }
}

/* Accessibilité focus */
.flambart-menu-toggle:focus-visible,
.flambart-menu-close:focus-visible,
.flambart-mobile-nav a:focus-visible {
  outline: 3px solid rgba(122, 32, 20, 0.45);
  outline-offset: 3px;
}

/* Réduction animations */
@media (prefers-reduced-motion: reduce) {
  .flambart-mobile-panel,
  .flambart-mobile-nav a::after {
    transition: none !important;
  }
}



/* ==========================================================
   Flambart — mobile menu background fix v1.0
   Objectif : panneau mobile avec vrai fond opaque et stable
   ========================================================== */

@media (max-width: 980px) {
  .flambart-mobile-panel {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: none;
    width: 100vw;
    min-height: 100vh;
    min-height: 100dvh;
    overflow-y: auto;
    background:
      radial-gradient(circle at top right, rgba(216, 199, 163, 0.42), transparent 22rem),
      radial-gradient(circle at bottom left, rgba(37, 79, 130, 0.10), transparent 20rem),
      #F7F2E8 !important;
    color: var(--flambart-slate);
    opacity: 0;
    transform: translateY(-0.5rem);
    pointer-events: none;
    transition: opacity 180ms ease, transform 180ms ease;
  }

  .flambart-mobile-panel[hidden] {
    display: none !important;
  }

  body.flambart-menu-open .flambart-mobile-panel {
    display: block !important;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  body.flambart-menu-open {
    overflow: hidden !important;
    touch-action: none;
  }

  .flambart-mobile-panel-inner {
    position: relative;
    z-index: 1;
    width: min(100% - 2 * var(--flambart-mobile-pad, 1.2rem), 720px);
    margin-inline: auto;
    min-height: 100vh;
    min-height: 100dvh;
    background: transparent;
  }

  .flambart-mobile-panel-top,
  .flambart-mobile-nav,
  .flambart-mobile-panel-note {
    position: relative;
    z-index: 2;
  }

  .flambart-mobile-panel-top {
    background: rgba(247, 242, 232, 0.88);
    backdrop-filter: blur(10px);
  }
}



/* ==========================================================
   Flambart — mobile menu brand overlap fix v1.0
   Corrige la superposition du titre header / titre panneau mobile
   ========================================================== */

@media (max-width: 980px) {
  /* Quand le menu est ouvert, on masque le header normal
     pour éviter le doublon "Le Flambart de Locquémeau". */
  body.flambart-menu-open .site-header > .flambart-header-inner,
  body.flambart-menu-open .site-header > .wp-block-group.flambart-header-inner {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
  }

  /* Le panneau mobile reste visible et prioritaire. */
  body.flambart-menu-open .site-header .flambart-mobile-panel {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }

  .flambart-mobile-panel {
    z-index: 2147483000 !important;
    background:
      radial-gradient(circle at top right, rgba(216, 199, 163, 0.42), transparent 22rem),
      radial-gradient(circle at bottom left, rgba(37, 79, 130, 0.10), transparent 20rem),
      #F7F2E8 !important;
  }

  .flambart-mobile-panel-inner {
    position: relative;
    z-index: 2147483001;
  }

  .flambart-mobile-panel-top {
    position: sticky;
    top: 0;
    z-index: 2147483002;
    margin-left: calc(-1 * var(--flambart-mobile-pad, 1.2rem));
    margin-right: calc(-1 * var(--flambart-mobile-pad, 1.2rem));
    padding-left: var(--flambart-mobile-pad, 1.2rem);
    padding-right: var(--flambart-mobile-pad, 1.2rem);
    padding-top: 0.9rem;
    padding-bottom: 1rem;
    background: #F7F2E8 !important;
    border-bottom: 1px solid rgba(16, 42, 67, 0.12);
    backdrop-filter: none !important;
  }

  .flambart-mobile-brand {
    max-width: calc(100% - 6rem);
  }

  .flambart-mobile-brand span,
  .flambart-mobile-brand small {
    display: block;
  }

  .flambart-menu-close {
    flex: 0 0 auto;
    background: rgba(255, 255, 255, 0.82);
  }
}

/* Si certains navigateurs gardent le header au-dessus à cause du sticky/backdrop-filter */
@media (max-width: 980px) {
  body.flambart-menu-open .site-header {
    background: transparent !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    border-bottom: 0 !important;
  }
}



/* ==========================================================
   Flambart — Content finalization V1
   ========================================================== */

/* Bandeau événementiel accueil */
.flambart-event-banner {
  background:
    radial-gradient(circle at top right, rgba(122, 32, 20, 0.18), transparent 22rem),
    linear-gradient(135deg, var(--flambart-blue-dark), #254f82);
  color: var(--flambart-cream);
  padding-block: clamp(1.2rem, 3vw, 2rem);
}

.flambart-event-banner-inner {
  width: min(100% - 2 * var(--flambart-page-pad, 2rem), var(--flambart-max, 1240px));
}

.flambart-event-banner-content {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) auto auto;
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: center;
}

.flambart-event-banner h2 {
  margin: 0 0 0.35rem;
  color: var(--flambart-cream);
  font-size: clamp(1.45rem, 3vw, 2.45rem);
}

.flambart-event-banner p {
  color: rgba(247, 242, 232, 0.9);
}

.flambart-event-kicker {
  margin-bottom: 0.35rem;
  color: var(--flambart-rope) !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.78rem;
  font-weight: 850;
}

.flambart-countdown {
  display: grid;
  grid-template-columns: repeat(3, minmax(4.2rem, 1fr));
  gap: 0.6rem;
}

.flambart-countdown div {
  background: rgba(247, 242, 232, 0.12);
  border: 1px solid rgba(247, 242, 232, 0.22);
  border-radius: 1rem;
  padding: 0.75rem 0.8rem;
  text-align: center;
}

.flambart-countdown strong {
  display: block;
  color: var(--flambart-cream);
  font-size: clamp(1.45rem, 3vw, 2.1rem);
  line-height: 1;
}

.flambart-countdown span {
  display: block;
  margin-top: 0.2rem;
  color: rgba(247, 242, 232, 0.78);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.flambart-event-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 999px;
  padding: 0.85rem 1.15rem;
  background: var(--flambart-red);
  color: var(--flambart-cream);
  text-decoration: none;
  font-weight: 850;
  white-space: nowrap;
}

/* Grilles finalisées */
.flambart-legal-grid,
.flambart-event-summary-grid,
.flambart-programme-preview {
  display: grid;
  gap: clamp(1rem, 2vw, 1.4rem);
}

.flambart-legal-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.flambart-event-summary-grid,
.flambart-programme-preview {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.flambart-programme-preview {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.flambart-legal-card,
.flambart-event-summary-card,
.flambart-program-preview-card {
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(16, 42, 67, 0.12);
  border-radius: var(--flambart-radius);
  padding: clamp(1rem, 2vw, 1.35rem);
  box-shadow: 0 10px 24px rgba(16, 42, 67, 0.055);
}

.flambart-legal-card strong,
.flambart-event-summary-card strong {
  display: block;
  color: var(--flambart-red);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.74rem;
  margin-bottom: 0.45rem;
}

.flambart-legal-card span,
.flambart-event-summary-card span {
  color: var(--flambart-blue-dark);
  font-weight: 800;
}

.flambart-membership-highlight {
  display: grid;
  grid-template-columns: minmax(220px, 0.45fr) minmax(0, 1fr);
  gap: clamp(1.2rem, 3vw, 2rem);
  align-items: center;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.46));
  border: 1px solid rgba(16, 42, 67, 0.12);
  border-radius: var(--flambart-radius);
  box-shadow: var(--flambart-shadow);
  padding: clamp(1.25rem, 3vw, 2.2rem);
  margin-bottom: 1.2rem;
}

.flambart-membership-highlight strong {
  display: block;
  color: var(--flambart-blue-dark);
  font-size: clamp(3rem, 8vw, 5rem);
  line-height: 0.95;
  letter-spacing: -0.06em;
}

.flambart-membership-highlight span {
  display: block;
  color: rgba(47, 58, 64, 0.76);
  font-weight: 800;
}

.flambart-footer-baseline {
  color: var(--flambart-rope);
  font-weight: 800;
}

/* Responsive finalisation */
@media (max-width: 1100px) {
  .flambart-event-banner-content {
    grid-template-columns: 1fr;
  }

  .flambart-countdown {
    max-width: 360px;
  }

  .flambart-legal-grid,
  .flambart-event-summary-grid,
  .flambart-programme-preview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .flambart-event-banner {
    padding-block: 1.2rem;
  }

  .flambart-event-banner-inner {
    width: min(100% - 2 * var(--flambart-mobile-pad, 1.2rem), var(--flambart-max, 1240px));
  }

  .flambart-countdown {
    width: 100%;
    max-width: none;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .flambart-event-button {
    width: 100%;
  }

  .flambart-legal-grid,
  .flambart-event-summary-grid,
  .flambart-programme-preview,
  .flambart-membership-highlight {
    grid-template-columns: 1fr;
  }

  .flambart-membership-highlight strong {
    font-size: clamp(3rem, 18vw, 4.8rem);
  }
}

