/* ==========================================================
   BONJOUR PICKLEBALL - CSS SITE-WIDE UI ONLY
   Source de vérité unique
   Doctrine:
   - un seul CSS global
   - composants UI uniquement
   - zéro nom métier
   - mobile-first
   - WordPress / GeneratePress / GenerateBlocks compatible
   ========================================================== */

/* ==========================================================
   1. TOKENS
   ========================================================== */
:root {
  /* Couleurs marque */
  --bp-brand: #b45309;
  --bp-brand-dark: #92400e;
  --bp-brand-strong: #7c2d12;
  --bp-link: #2563eb;
  --bp-link-dark: #1e40af;

  /* Alias héritage */
  --bp-orange: var(--bp-brand);
  --bp-orange-dark: var(--bp-brand-dark);
  --bp-orange-strong: var(--bp-brand-strong);
  --bp-orange-hover: var(--bp-brand-dark);
  --bp-blue: var(--bp-link);
  --bp-blue-dark: var(--bp-link-dark);

  /* Texte */
  --bp-text: #0f172a;
  --bp-text-secondary: #475569;
  --bp-text-muted: #5e6e82;
  --text-secondary: var(--bp-text-secondary);

  /* Surfaces */
  --bp-white: #ffffff;
  --bp-surface: #ffffff;
  --bp-surface-soft: #f8fafc;
  --bp-surface-muted: var(--bp-bg-info-soft);
  --bp-surface-warm: #fff7ed;
  --bg-white: #ffffff;

  /* Bordures */
  --bp-border: var(--bp-border-muted);
  --bp-border-soft: #e2e8f0;
  --bp-border-strong: #cbd5e1;
  --bp-border-brand: #fed7aa;
  --bp-border-info: #bfdbfe;
  --bp-toc-bg: #f3f4f6;
  --bp-toc-border: var(--bp-border-muted);
  --bp-bg-box: #fff7ed;

  /* Etats */
  --bp-success: #166534;
  --bp-success-bg: #ecfdf3;
  --bp-error: #b91c1c;
  --bp-error-bg: #fef2f2;
  --bp-warning: #9a3412;
  --bp-warning-bg: #fff7ed;
  --bp-info: #0f3e75;
  --bp-info-bg: #f8fbff;

  /* Alias surfaces / textes fréquents */
  --bp-bg-subtle: #f8fafc;
  --bp-bg-info-soft: #eff6ff;
  --bp-border-muted: #e5e7eb;
  --bp-text-soft: #5e6e82;
  --bp-text-body-soft: #334155;
  --bp-text-body: #374151;

  /* Espacement */
  --space-2xs: .35rem;
  --space-xs: .5rem;
  --space-sm: .75rem;
  --space-md: 1rem;
  --space-lg: 1.25rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;

  /* Typo */
  --bp-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --text-xs: .875rem;
  --text-sm: .95rem;
  --text-base: 1rem;
  --text-md: 1.05rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-toc-title: clamp(1rem, 1.5vw, 1.1rem);
  --text-stat-number: 1.5rem;
  --text-h4: clamp(1.125rem, 2.5vw, 1.25rem);
  --text-h3: clamp(1.25rem, 3vw, 1.5rem);
  --text-h2: clamp(1.5rem, 4vw, 1.875rem);
  --text-h1: clamp(1.75rem, 5vw, 2.25rem);

  /* Layout */
  --bp-reading: 82ch;
  --bp-container: 1200px;
  --bp-container-wide: 1400px;

  /* Radius */
  --radius-sm: .5rem;
  --radius: .75rem;
  --radius-md: .75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.25rem;
  --radius-pill: 999px;

  /* UI */
  --touch-target: 44px;
  --transition: .15s ease-out;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
  --shadow-card: 0 8px 22px rgba(15, 23, 42, .05);
  --shadow-card-hover: 0 12px 30px rgba(15, 23, 42, .08);
  --shadow-panel: 0 12px 30px rgba(15, 23, 42, .06);
  --shadow-hero: 0 20px 50px rgba(15, 23, 42, .05);

  accent-color: var(--bp-brand);
}

/* ==========================================================
   2. RESET + ACCESSIBILITE
   ========================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

body {
  margin: 0;
  color: var(--bp-text);
  background: var(--bp-white);
  font-family: var(--bp-font);
  font-size: var(--text-base);
  line-height: 1.6;
}

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

button,
input,
select,
textarea {
  font: inherit;
}

:where(h1, h2, h3, h4, h5, h6, p, li, blockquote, figcaption, dt, dd, small, th, td) {
  hyphens: none;
  -webkit-hyphens: none;
  -ms-hyphens: none;
  word-break: normal;
  overflow-wrap: break-word;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.skip-link:focus-visible {
  position: fixed;
  inset-inline-start: max(12px, env(safe-area-inset-left));
  top: max(12px, env(safe-area-inset-top));
  width: auto;
  height: auto;
  overflow: visible;
  padding: var(--space-xs) var(--space-sm);
  background: #fff;
  color: #000;
  border: 2px solid var(--bp-brand-dark);
  border-radius: var(--radius-sm);
  z-index: 9999;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.sr-only-focusable:focus,
.sr-only-focusable:focus-visible {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

:focus-visible {
  outline: 2px solid var(--bp-orange);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================
   3. LAYOUT GLOBAL
   ========================================================== */
.bp-shell,
.bp-page,
.bp-article,
.bp-page-shell {
  width: 100%;
}

.bp-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: clamp(1rem, 5vw, 2rem);
  max-width: var(--bp-container-wide);
}

.bp-container--narrow {
  max-width: var(--bp-reading);
  margin-inline: auto;
  padding-inline: clamp(1rem, 5vw, 1.5rem);
}

.page .bp-container--narrow {
  max-width: var(--bp-container);
}

.bp-container .bp-container {
  padding-inline: 0;
}

.bp-section {
  padding-block: clamp(2rem, 5vw, 3rem);
}

.bp-section-space {
  margin-top: 3rem;
}

.bp-stack {
  display: grid;
  gap: var(--space-md);
}

.bp-stack--sm {
  gap: var(--space-sm);
}

.bp-stack--lg {
  gap: var(--space-lg);
}

.bp-cluster,
.bp-actions,
.bp-actions-row,
.bp-chips-row,
.bp-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  align-items: center;
}

.text-center {
  text-align: center;
}

.text-accent,
.bp-kicker,
.eyebrow {
  color: var(--bp-orange);
  font-weight: 700;
  letter-spacing: .01em;
}

.page-meta,
.bp-meta,
.meta {
  color: var(--bp-text-muted);
  font-size: var(--text-sm);
}

.text-lead,
.lede,
.entry-content .lede,
.article-content .lede,
.bp-article .lede,
.bp-lead {
  font-size: var(--text-lg);
  line-height: 1.75;
  color: var(--bp-text-body-soft);
}

.section-intro {
  font-size: var(--text-md);
  color: var(--bp-text-body);
  margin-bottom: var(--space-lg);
}

.bp-caption {
  color: var(--bp-text-muted);
  font-size: var(--text-sm);
  font-style: italic;
}

.bp-question {
  margin: 0 0 var(--space-xs);
  color: var(--bp-text-muted);
  font-size: var(--text-sm);
  font-style: italic;
  font-weight: 600;
  line-height: 1.45;
}

/* ==========================================================
   4. TYPOGRAPHIE
   ========================================================== */
.entry-content > h1,
.entry-content > h2,
.entry-content > h3,
.entry-content > h4,
.article-content > h1,
.article-content > h2,
.article-content > h3,
.article-content > h4,
.page .entry-content > h1,
.page .entry-content > h2,
.page .entry-content > h3,
.page .entry-content > h4,
.bp-article > h1,
.bp-article > h2,
.bp-article > h3,
.bp-article > h4,
.bp-section h1,
.bp-section h2,
.bp-section h3,
.bp-section h4 {
  font-family: var(--bp-font);
  font-weight: 700;
  color: var(--bp-text);
  line-height: 1.3;
  margin-block: var(--space-xl) var(--space-md);
  scroll-margin-top: clamp(80px, 10vh, 120px);
}

.gb-headline.gb-headline-text:not(h1, h2, h3, h4) {
  font-family: var(--bp-font);
  font-weight: 700;
  color: var(--bp-text);
  line-height: 1.3;
  margin: var(--space-xl) 0 var(--space-md);
}

.entry-content .gb-headline.gb-headline-text:not(h1, h2, h3, h4),
.article-content .gb-headline.gb-headline-text:not(h1, h2, h3, h4),
.page .entry-content .gb-headline.gb-headline-text:not(h1, h2, h3, h4),
.bp-article .gb-headline.gb-headline-text:not(h1, h2, h3, h4) {
  font: inherit;
  color: inherit;
  margin: 0 0 var(--space-md);
}

.entry-content h1,
.article-content h1,
.page .entry-content h1,
.bp-article h1,
.bp-section h1 {
  font-size: var(--text-h1);
}

.entry-content h2,
.article-content h2,
.page .entry-content h2,
.bp-article h2,
.bp-section h2 {
  font-size: var(--text-h2);
}

.entry-content h2,
.article-content h2,
.page .entry-content h2,
.bp-article h2,
.bp-section h2 {
  color: var(--bp-brand-dark);
}

.bp-card[itemprop="hasDefinedTerm"] h4,
.bp-card[itemprop="hasDefinedTerm"] h4 span[itemprop="name"] {
  color: var(--bp-brand-dark);
}

.entry-content h3,
.article-content h3,
.page .entry-content h3,
.bp-article h3,
.bp-section h3 {
  font-size: var(--text-h3);
}

.entry-content h4,
.article-content h4,
.page .entry-content h4,
.bp-article h4,
.bp-section h4,
.bp-h5 {
  font-size: var(--text-h4);
}

.entry-content p,
.article-content p,
.bp-article p,
.bp-section p {
  margin-bottom: 1.25rem;
  font-size: var(--text-md);
  line-height: 1.7;
}

.entry-content li,
.article-content li,
.bp-article li,
.bp-section li {
  line-height: 1.7;
}

/* ==========================================================
   5. LIENS / LISTES / TABLEAUX
   ========================================================== */
.entry-content ul:not(.bp-checklist):not(.bp-grid):not(.sources-list):not(.bp-source-list):not(.toc):not(.bp-summary-container):not(.bp-departments-links),
.article-content ul:not(.bp-checklist):not(.bp-grid):not(.sources-list):not(.bp-source-list):not(.toc):not(.bp-summary-container):not(.bp-departments-links),
.bp-article ul:not(.bp-checklist):not(.bp-grid):not(.sources-list):not(.bp-source-list):not(.toc):not(.bp-summary-container):not(.bp-departments-links) {
  list-style: disc;
  padding-inline-start: var(--space-lg);
}

.entry-content ol,
.article-content ol,
.bp-article ol {
  list-style: decimal;
  padding-inline-start: var(--space-lg);
}

.bp-list {
  margin: var(--space-md) 0 0;
  padding-left: var(--space-lg);
}

.bp-list li {
  margin-bottom: .55rem;
}

.entry-content a:not([class*="button"]):not([class*="btn"]):not(.bp-card),
.article-content a:not([class*="button"]):not([class*="btn"]):not(.bp-card),
.bp-article a:not([class*="button"]):not([class*="btn"]):not(.bp-card),
.bp-section a:not([class*="button"]):not([class*="btn"]):not(.bp-card) {
  text-decoration: underline;
  text-underline-offset: 2px;
  color: var(--bp-brand-dark);
}

.entry-content .bp-card a,
.entry-content a.bp-card,
.article-content .bp-card a,
.article-content a.bp-card,
.bp-article .bp-card a,
.bp-article a.bp-card,
.bp-section .bp-card a,
.bp-section a.bp-card {
  text-decoration: none;
}

.bp-card p a {
  text-decoration: underline;
  text-underline-offset: 2px;
  color: var(--bp-text);
}

mark {
  background-color: var(--bp-bg-box);
  padding: 2px 4px;
  border-radius: 3px;
  font-weight: 600;
  color: inherit;
}

.bp-table-wrapper,
.bp-table-wrap {
  overflow-x: auto;
  margin: var(--space-xl) 0;
}

.bp-table,
.bp-article table,
.article-content table,
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-sm);
}

.bp-table th,
.bp-table td,
.bp-article th,
.bp-article td,
.article-content th,
.article-content td,
.entry-content th,
.entry-content td {
  border: 1px solid var(--bp-border-soft);
  padding: .75rem;
  vertical-align: top;
}

.bp-table th,
.bp-article th,
.article-content th,
.entry-content th {
  background: #f8fafc;
  text-align: left;
}

/* ==========================================================
   6. SURFACES
   ========================================================== */
.bp-box,
.bp-panel,
.bp-surface,
.article-box,
.entry-content .article-box,
.article-content .article-box,
.bp-article .article-box {
  margin: var(--space-xl) 0;
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--bp-border-soft);
  border-radius: var(--radius-lg);
  background: var(--bp-surface);
  box-shadow: var(--shadow-panel);
}

.bp-box,
.bp-panel,
.bp-surface {
  position: relative;
}

.article-box,
.entry-content .article-box,
.article-content .article-box,
.bp-article .article-box {
  position: relative;
  background: linear-gradient(180deg, #ffffff 0%, #fcfcfd 100%);
  border-color: var(--bp-border-soft);
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
}

.article-box::before,
.entry-content .article-box::before,
.article-content .article-box::before,
.bp-article .article-box::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  background: linear-gradient(90deg, var(--bp-orange) 0%, #fdba74 100%);
}

.bp-box--hero,
.bp-surface--hero {
  background:
    radial-gradient(circle at top right, rgba(37, 99, 235, 0.06), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border-color: var(--bp-border-soft);
  box-shadow: var(--shadow-hero);
}

.bp-box--tip,
.entry-content .article-box--key,
.article-content .article-box--key,
.bp-article .article-box--key,
.bp-surface--tip {
  position: relative;
  background: linear-gradient(135deg, #fffaf5 0%, #fff1e6 100%);
  border-color: var(--bp-border-brand);
  box-shadow: 0 12px 30px rgba(180, 83, 9, 0.08);
}

.bp-box--tip::before,
.bp-surface--tip::before,
.entry-content .article-box--key::before,
.article-content .article-box--key::before,
.bp-article .article-box--key::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
  background: var(--bp-orange);
}

.bp-box--neutral,
.bp-surface--neutral {
  background: linear-gradient(180deg, #f8fbff 0%, #eef6ff 100%);
  border-color: var(--bp-border-info);
  box-shadow: 0 10px 26px rgba(37, 99, 235, 0.06);
}

.bp-box--warning,
.bp-surface--warning,
.bp-box--danger,
.bp-surface--danger {
  background: linear-gradient(180deg, #fffdf5 0%, #fef3c7 100%);
  border-color: #fcd34d;
  box-shadow: 0 10px 26px rgba(146, 64, 14, 0.07);
}

/* ==========================================================
   7. GRID / CARD
   ========================================================== */
.bp-grid,
.bp-grid--2cols,
.bp-grid--3cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

@media (min-width: 760px) {
  .bp-grid,
  .bp-grid--2cols,
  .bp-grid--3cols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 880px) {
  .bp-grid--3cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .bp-grid.bp-grid--2cols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.bp-grid--3cols > li,
.bp-grid--3cols > * {
  min-width: 0;
}

.bp-card {
  display: block;
  min-height: 100%;
  padding: var(--space-lg);
  border: 1px solid var(--bp-border-soft);
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, .98);
  box-shadow: var(--shadow-card);
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), background-color var(--transition);
}

.bp-card:hover {
  transform: translateY(-1px);
  border-color: var(--bp-border-info);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.07);
  background: #ffffff;
}

.bp-card > h3,
.bp-card > h4 {
  margin-top: 0;
  margin-bottom: var(--space-xs);
}

.bp-card > p:last-child {
  margin-bottom: 0;
}

.bp-card--compact {
  padding: var(--space-md);
  border-radius: var(--radius);
}

.bp-card[itemprop="hasDefinedTerm"] {
  border-color: var(--bp-border-brand);
  background: linear-gradient(180deg, #ffffff 0%, #fffaf5 100%);
  box-shadow: 0 8px 18px rgba(180, 83, 9, 0.05);
}

.bp-card[itemprop="hasDefinedTerm"]:hover {
  border-color: #fdba74;
  box-shadow: 0 12px 24px rgba(180, 83, 9, 0.08);
}

.bp-card[itemprop="hasDefinedTerm"] h4 {
  margin-bottom: var(--space-2xs);
}

.bp-card[itemprop="hasDefinedTerm"] p[itemprop="description"] {
  margin-bottom: 0;
  color: var(--bp-text-body);
  line-height: 1.65;
}

.bp-card.is-search-result {
  outline: 3px solid var(--bp-orange);
  outline-offset: 2px;
  animation: bp-pulse-highlight 1s ease-out;
}

@keyframes bp-pulse-highlight {
  0%, 100% { outline-color: var(--bp-orange); }
  50% { outline-color: var(--bp-orange-dark); }
}

/* ==========================================================
   8. BOUTONS / CHIPS / ETATS
   ========================================================== */
.bp-btn,
.bp-button,
.article-btn,
.bp-btn-primary,
.bp-cta-button,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-target);
  padding: var(--space-sm) var(--space-lg);
  border-radius: var(--radius-sm);
  background: var(--bp-orange);
  color: #ffffff !important;
  border: 1px solid transparent;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  transition: color var(--transition), background-color var(--transition), border-color var(--transition), transform var(--transition);
}

.bp-btn:hover,
.bp-button:hover,
.article-btn:hover,
.bp-btn-primary:hover,
.bp-cta-button:hover,
.wp-block-button__link:hover {
  background: var(--bp-orange-dark);
  transform: translateY(-2px);
}

.bp-btn-secondary,
.bp-button-secondary,
.bp-btn--outline {
  background: #ffffff;
  color: var(--bp-blue-dark) !important;
  border-color: #bfdbfe;
}

.bp-btn-secondary:hover,
.bp-button-secondary:hover,
.bp-btn--outline:hover {
  background: var(--bp-bg-info-soft);
}

.bp-btn--row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: var(--space-sm);
  padding: .55rem .85rem;
  border: 1px solid #bfdbfe;
  border-radius: var(--radius-sm);
  background: #ffffff;
  color: var(--bp-blue-dark) !important;
  font-size: var(--text-sm);
  font-weight: 700;
  text-decoration: none !important;
  transition: background-color var(--transition), border-color var(--transition);
}

.bp-btn--row:hover,
.bp-btn--row:focus-visible {
  background: var(--bp-surface-muted);
  border-color: var(--bp-text);
}

.bp-chip,
.bp-tag,
.bp-badge {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .35rem .85rem;
  background-color: var(--bp-surface-soft);
  color: var(--bp-orange-strong);
  border: 1px solid #fed7aa;
  border-radius: var(--radius-pill);
  text-decoration: none;
  font-size: var(--text-sm);
  font-weight: 600;
}

.bp-chip:hover,
.bp-tag:hover {
  background: #fff7ed;
}

.bp-stat-number,
.bp-summary-number {
  display: block;
  color: var(--bp-orange);
  font-size: var(--text-stat-number);
  font-weight: 800;
  line-height: 1.2;
}

.bp-stat-label,
.bp-summary-label {
  margin-top: .35rem;
  color: var(--bp-brand-dark);
  font-size: var(--text-sm);
  font-weight: 700;
}

.bp-summary-container {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
  padding-left: 0 !important;
  list-style: none !important;
}

.bp-summary-stat {
  text-align: center;
  min-width: 100px;
  padding: .75rem 1rem;
  border: 1px solid #fed7aa;
  border-radius: var(--radius-lg);
  background: #fff7ed;
}

.bp-summary-container--stacked {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-sm);
  margin-bottom: 0;
}

.bp-summary-container--stacked .bp-summary-stat {
  display: grid;
  grid-template-columns: minmax(4.5rem, 5.5rem) 1fr;
  align-items: center;
  gap: var(--space-sm);
  width: 100%;
  min-width: 0;
  text-align: left;
}

.bp-summary-container--stacked .bp-summary-number {
  text-align: right;
}

.bp-summary-container--stacked .bp-summary-label {
  margin-top: 0;
  text-align: left;
}

@media (max-width: 640px) {
  .bp-summary-container--stacked .bp-summary-stat {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .bp-summary-container--stacked .bp-summary-number,
  .bp-summary-container--stacked .bp-summary-label {
    text-align: center;
  }
}

.bp-status {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 12px;
  border-radius: 12px;
  font-weight: 700;
  font-size: var(--text-sm);
  line-height: 1.4;
}

.bp-status--success {
  background: var(--bp-success-bg);
  color: var(--bp-success);
}

.bp-status--error {
  background: var(--bp-error-bg);
  color: var(--bp-error);
}

.bp-status--warning,
.bp-status--pending,
.bp-status--info {
  background: var(--bp-warning-bg);
  color: var(--bp-warning);
}

/* ==========================================================
   9. HERO / RESULTS / FACTS / MEDIA / FORM
   ========================================================== */
.bp-results-head {
  display: grid;
  gap: 10px;
  margin-bottom: .95rem;
  padding: .2rem 0;
}

.bp-results-head h2 {
  margin: 0 0 4px;
  color: var(--bp-text);
  font-size: 1.1rem;
}

.bp-facts,
.bp-facts-list {
  display: grid;
  gap: 8px;
}

.bp-facts-list p {
  margin: 0;
  color: var(--bp-text-secondary);
  font-size: .92rem;
  line-height: 1.45;
}

.bp-facts-list strong {
  display: block;
  margin-bottom: 2px;
  color: var(--bp-info);
  font-size: .8rem;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.bp-media,
.bp-media-card {
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--bp-surface-soft);
}

.bp-media-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bp-gallery,
.bp-gallery-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.bp-embed,
.bp-embed-box {
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 1px solid var(--bp-border-soft);
  background: var(--bp-surface-soft);
}

.bp-embed iframe,
.bp-embed-box iframe {
  display: block;
  width: 100%;
  min-height: 280px;
  border: 0;
}

.bp-search-box,
.bp-form,
.bp-form-grid {
  display: grid;
  gap: 12px;
}



.bp-form-field,
.bp-field {
  display: grid;
  gap: 6px;
  margin: 0;
}

.bp-form-field--full {
  grid-column: 1 / -1;
}

.bp-form-field label,
.bp-field label,
.bp-search-label {
  display: block;
  color: var(--bp-brand-dark);
  font-size: .9rem;
  font-weight: 700;
}

.bp-input,
.bp-filter-control,
.bp-search-input,
.bp-form-field input,
.bp-form-field select,
.bp-form-field textarea,
.bp-field input,
.bp-field select,
.bp-field textarea {
  width: 100%;
  min-height: 48px;
  padding: .8rem .9rem;
  border-radius: 14px;
  border: 1px solid var(--bp-border-soft);
  background: #fff;
  color: var(--bp-text);
  font: inherit;
}

.bp-form-field textarea,
.bp-field textarea {
  min-height: 120px;
  resize: vertical;
}

.bp-search-hint,
.bp-help {
  margin: 0;
  color: var(--bp-text-muted);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.bp-filters-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}

.bp-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: var(--space-lg);
}



/* QUOTE / MEDIA / VISUAL BREAK */
.bp-box--quote {
  background: linear-gradient(135deg, #f0f4ff 0%, #fff5f7 100%);
  border-left: 4px solid var(--bp-blue);
  padding: var(--space-lg);
  margin: var(--space-lg) 0;
  border-radius: var(--radius);
}

.bp-quote-container {
  display: flex;
  gap: var(--space-lg);
  align-items: flex-start;
}

.bp-quote-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 3px solid var(--bp-orange);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.bp-quote-text {
  flex: 1;
  min-width: 0;
}

.bp-quote-text p:first-child {
  font-size: var(--text-md);
  font-style: italic;
  line-height: 1.6;
  margin-bottom: var(--space-md);
  color: var(--bp-text);
}

.bp-quote-text p:last-child {
  margin: var(--space-md) 0 0;
  font-size: var(--text-sm);
}

.bp-quote-text p:last-child strong {
  display: block;
  font-size: var(--text-base);
  margin-bottom: var(--space-md);
}

.bp-quote-text p:last-child small {
  color: var(--text-secondary);
  font-size: var(--text-xs);
}

/* Break visuel éditorial */
.bp-visual-break {
  text-align: center;
  margin: var(--space-xl) 0;
  opacity: 0.85;
}

.bp-visual-break img {
  max-width: min(70%, 560px);
  height: auto;
  border-radius: var(--radius);
  margin: 0 auto;
  display: block;
}

.bp-visual-break figcaption {
  margin-top: var(--space-md);
  color: var(--bp-text-muted);
  font-size: var(--text-xs);
  font-style: italic;
  line-height: 1.5;
}

/* Media inline générique */
.bp-media-inline {
  display: flex;
  gap: var(--space-lg);
  align-items: flex-start;
  margin-bottom: var(--space-xl);
}

.bp-media-inline__img {
  width: 120px;
  height: 150px;
  object-fit: cover;
  border-radius: var(--radius);
  flex-shrink: 0;
}

.bp-media-inline__body {
  flex: 1;
  min-width: 0;
}

@media (max-width: 600px) {
  .bp-quote-container,
  .bp-media-inline {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .bp-quote-avatar {
    width: 80px;
    height: 80px;
  }

  .bp-media-inline__img {
    width: 100px;
    height: 125px;
  }

  .bp-media-inline__body {
    text-align: center;
  }
}

/* HERO - COMPAT COMPOSANT UI */
.bp-hero {
  padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}

.bp-hero .text-center > h1,
.bp-hero .text-center > h2 {
  margin-top: 0;
}

.bp-hero .text-center > .text-lead {
  max-width: 68ch;
  margin-inline: auto;
}


/* HERO / FLOAT PATTERNS UI */
.bp-hero > .bp-container {
  display: grid;
  gap: var(--space-xl);
  align-items: center;
}

.bp-hero--warm > .bp-container {
  grid-template-columns: 1fr;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--bp-border-soft);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at top right, rgba(180, 83, 9, 0.10), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #fff7ed 100%);
  box-shadow: var(--shadow-hero);
}

.bp-media--float {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.10);
  transform: translateY(0);
}

.bp-box--float {
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.10);
  transform: translateY(-2px);
}

@media (min-width: 900px) {
  .bp-hero--warm > .bp-container {
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  }

  .bp-media--float {
    transform: translateY(10px);
  }
}

/* ==========================================================
   10. LEXIQUE / TOC / SOURCES
   ========================================================== */
.bp-search-panel {
  display: grid;
  gap: .95rem;
}

.bp-alpha-nav {
  margin: var(--space-xl) 0;
  padding: var(--space-md);
  border: 1px solid var(--bp-border-soft);
  border-radius: var(--radius);
  background: var(--bp-surface-soft);
  text-align: center;
}

.bp-alpha-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  min-height: 32px;
  color: var(--bp-brand-dark);
  font-weight: 700;
  text-decoration: none;
}

.bp-alpha-nav a.is-active,
.bp-alpha-nav a[aria-current="location"] {
  color: #ffffff;
  background: var(--bp-orange);
  border-radius: var(--radius-sm);
  padding-inline: .35rem;
}

/* TOC — version plus lisible, plus chaude, plus senior-friendly */
.bp-toc,
.toc,
.rank-math-toc-block,
.wp-block-rank-math-toc-block {
  background: var(--bp-surface-warm);
  border: 1px solid var(--bp-border-brand);
  border-left: 4px solid var(--bp-orange);
  border-radius: var(--radius-lg);
  padding: clamp(1.1rem, 3vw, 1.6rem);
  margin: var(--space-xl) 0;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

.bp-toc p,
.toc-title,
h3.toc-title,
.rank-math-toc-block h2,
.wp-block-rank-math-toc-block h2 {
  margin: 0 0 var(--space-md);
  font-size: clamp(1.05rem, 1.8vw, 1.18rem);
  line-height: 1.4;
  font-weight: 800;
  color: var(--bp-text);
}

.bp-toc ul,
.rank-math-toc-block ul,
.wp-block-rank-math-toc-block ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0;
}

.bp-toc li,
.rank-math-toc-block li,
.wp-block-rank-math-toc-block li {
  margin: 0;
  padding: 0;
}

.bp-toc > ul > li + li,
.rank-math-toc-block > ul > li + li,
.wp-block-rank-math-toc-block > ul > li + li {
  margin-top: .45rem;
}

.bp-toc a,
.rank-math-toc-block a,
.wp-block-rank-math-toc-block a {
  display: block;
  padding: .5rem .55rem;
  border-radius: .55rem;
  color: var(--bp-text);
  font-size: 1rem;
  line-height: 1.55;
  font-weight: 600;
  text-decoration: none;
}

.bp-toc a:hover,
.rank-math-toc-block a:hover,
.wp-block-rank-math-toc-block a:hover {
  background: var(--bp-white);
  color: var(--bp-orange-strong);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.bp-toc a:focus-visible,
.rank-math-toc-block a:focus-visible,
.wp-block-rank-math-toc-block a:focus-visible {
  background: var(--bp-white);
  color: var(--bp-orange-strong);
  text-decoration: underline;
  text-underline-offset: 2px;
  box-shadow: 0 0 0 2px var(--bp-orange);
  outline: none;
}

.bp-toc ul ul,
.rank-math-toc-block ul ul,
.wp-block-rank-math-toc-block ul ul {
  margin-top: .3rem;
  margin-left: .9rem;
  padding-left: .85rem !important;
  border-left: 2px solid var(--bp-border-brand);
}

.bp-toc ul ul a,
.rank-math-toc-block ul ul a,
.wp-block-rank-math-toc-block ul ul a {
  font-size: .98rem;
  font-weight: 500;
  color: var(--bp-text-body);
  padding-top: .38rem;
  padding-bottom: .38rem;
}

.sources-list,
.bp-source-list {
  list-style: none !important;
  padding-left: 0 !important;
}

.sources-list li,
.bp-source-list li {
  padding: .75rem 0;
  border-bottom: 1px solid var(--bp-toc-border);
}

.sources-list li:last-child,
.bp-source-list li:last-child {
  border-bottom: 0;
}

.bp-back-to-top {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 50;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: var(--touch-target);
  padding: .55rem .8rem;
  border-radius: var(--radius-pill);
  background: var(--bp-orange);
  color: #ffffff !important;
  font-weight: 700;
  text-decoration: none !important;
  box-shadow: var(--shadow-card-hover);
}

.bp-back-to-top:hover,
.bp-back-to-top:focus-visible {
  background: var(--bp-orange-dark);
}

.bp-back-to-top[hidden] {
  display: none !important;
}

@media (max-width: 768px) {
  .bp-toc,
  .toc,
  .rank-math-toc-block,
  .wp-block-rank-math-toc-block {
    padding: 1rem;
    border-left-width: 3px;
  }

  .bp-toc a,
  .rank-math-toc-block a,
  .wp-block-rank-math-toc-block a {
    padding: .58rem .5rem;
    font-size: 1rem;
    line-height: 1.6;
  }

  .bp-toc ul ul a,
  .rank-math-toc-block ul ul a,
  .wp-block-rank-math-toc-block ul ul a {
    font-size: .97rem;
  }
}



/* CHECKLIST / CTA / SPACING / MEDIA WIDTH */
.bp-checklist {
  list-style: none !important;
  padding-left: 0 !important;
  margin: var(--space-md) 0 0;
  display: grid;
  gap: var(--space-sm);
  text-align: left;
}

.bp-checklist li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: .75rem;
  text-align: left;
  list-style: none !important;
}

.bp-checklist li:last-child {
  margin-bottom: 0;
}

.bp-checklist li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--bp-orange);
  font-weight: 700;
  line-height: 1.6;
}

.bp-cta {
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--bp-border-soft);
  border-radius: var(--radius-lg);
  background: var(--bp-surface);
  box-shadow: var(--shadow-panel);
}

.bp-space-top-lg {
  margin-top: var(--space-lg);
}


.bp-space-top-sm {
  margin-top: var(--space-sm);
}



.bp-space-top-md {
  margin-top: var(--space-md);
}



.bp-space-top-xl {
  margin-top: var(--space-xl);
}

/* Bloc media texte/photo : variantes utilitaires */
.bp-media-inline__img--square {
  width: 180px;
  height: 220px;
  border-radius: var(--radius);
}

@media (max-width: 600px) {
  .bp-media-inline__img--square {
    width: 160px;
    height: 200px;
  }
}

.bp-media--wide {
  display: block;
  width: 100%;
  margin-inline: auto;
}

.bp-media--wide img,
.bp-media.bp-media--wide > img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
}

/* ==========================================================
   11. DIALOG / DETAILS / GALLERY / EMBED LAZY
   ========================================================== */
.bp-modal {
  border: none;
  border-radius: var(--radius);
  padding: 0;
  max-width: min(500px, 90vw);
  width: 100%;
  box-shadow:
    0 20px 25px -5px rgba(0, 0, 0, 0.1),
    0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.bp-modal::backdrop {
  background: rgba(0, 0, 0, 0.5);
}

.bp-modal__content {
  padding: var(--space-lg);
}

.bp-modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--space-md);
}

.bp-modal__close {
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
  padding: 0;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: background var(--transition);
}

.bp-modal__close:hover {
  background: var(--bp-toc-bg);
}

.bp-modal__close:focus-visible {
  outline: 3px solid var(--bp-orange);
  outline-offset: 2px;
}

.bp-modal__content h2,
.bp-modal__content h3 {
  margin: 0;
}

.bp-modal__content p + p,
.bp-modal__content p + ul {
  margin-top: var(--space-md);
}

.bp-modal__content ul {
  padding-left: 1.2rem;
}

details.bp-card > summary {
  font-weight: 800;
  color: var(--bp-info);
  cursor: pointer;
  list-style: none;
  padding: 2px 0 8px;
  font-size: .98rem;
  line-height: 1.3;
}

details.bp-card > summary::-webkit-details-marker {
  display: none;
}

details.bp-card > summary::before {
  content: "+";
  font-size: 1rem;
  margin-right: 8px;
  transition: transform var(--transition);
  display: inline-block;
  font-weight: 700;
}

details.bp-card[open] > summary::before {
  content: "−";
}

details.bp-card[open] > summary {
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--bp-border-soft);
}


/* Optimisation prudente des longues listes */
@supports (content-visibility: auto) {
  .bp-listing-grid > .bp-listing-card,
  .posts-list > .archive-item {
    content-visibility: auto;
    contain-intrinsic-size: 400px;
  }
}



/* ==========================================================
   12. SITE-WIDE CONSOLIDATED REFINEMENTS
   ========================================================== */

/* Accessibilité et navigation */
.bp-chip,
.bp-tag,
.bp-badge,
.bp-btn--row {
  min-height: 44px;
}

.bp-visible-mobile {
  display: revert !important;
}

details > summary {
  list-style: none;
}

details > summary::-webkit-details-marker {
  display: none;
}

[aria-current="page"] {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (forced-colors: active) {
  .bp-card,
  .bp-box,
  .bp-listing-card,
  .bp-cta,
  .bp-thumb {
    border: 1px solid ButtonText !important;
    box-shadow: none !important;
    background: Canvas !important;
    color: CanvasText !important;
  }

  .bp-btn,
  .bp-btn-primary,
  .bp-btn--row,
  .bp-btn-secondary,
  .bp-btn--outline {
    border: 2px solid ButtonText !important;
    background: ButtonFace !important;
    color: ButtonText !important;
    box-shadow: none !important;
  }

  .bp-checklist li::before,
  .rank-math-question::after {
    color: ButtonText !important;
  }
}

/* Eyebrows et petits titres */
.text-accent,
.bp-kicker,
.eyebrow {
  font-size: clamp(1.02rem, 1.7vw, 1.14rem);
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.bp-hero-kicker {
  display: inline-block;
  width: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--bp-orange);
  font-size: clamp(1.05rem, 1.8vw, 1.2rem);
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-transform: none;
}

.bp-map-lazy-eyebrow,
.bp-archive-eyebrow {
  font-size: 0.82rem;
  line-height: 1.3;
}

/* Typographie pages / sections */
.page .bp-section > h2,
.page .bp-box h2,
.page .bp-cta h2,
.page .bp-container--narrow > h2,
.page .text-center > h2 {
  font-size: clamp(1.7rem, 4.4vw, 2.1rem);
  line-height: 1.22;
}

.page .text-accent + h2,
.page .section-intro + h2 {
  margin-top: 0.25rem;
}

.bp-card h3 {
  font-size: clamp(1.15rem, 2.2vw, 1.32rem);
  line-height: 1.28;
}

.page .bp-section > .bp-container--narrow.text-center > h2,
.page .bp-section > .bp-container > .bp-container--narrow.text-center > h2,
.page .bp-box .text-center > h2,
.page .bp-box h2,
.page .bp-cta h2,
.page header.bp-hero .bp-container--narrow h1 {
  letter-spacing: -0.01em;
}

.page .bp-section > .bp-container--narrow.text-center > h2,
.page .bp-section > .bp-container > .bp-container--narrow.text-center > h2,
.page .bp-box .text-center > h2,
.page .bp-box h2,
.page .bp-cta h2 {
  font-size: clamp(1.85rem, 4.8vw, 2.3rem);
  line-height: 1.18;
  margin-bottom: 0.6rem;
  font-weight: 750;
}

.page .section-intro,
.page .text-lead {
  max-width: 60ch;
  margin-inline: auto;
}

.page .bp-card h3,
.page .bp-box .bp-card h3,
.page .bp-grid .bp-card h3,
.page .bp-media-inline__body strong {
  font-size: clamp(1.18rem, 2.4vw, 1.4rem);
  line-height: 1.24;
  font-weight: 750;
}

.page .bp-container--narrow.text-center .section-intro,
.page .bp-container--narrow.text-center .text-lead {
  font-size: clamp(1.05rem, 2vw, 1.14rem);
  line-height: 1.6;
}

.page header.bp-hero .bp-container--narrow h1,
.page .bp-hero .bp-container--narrow h1 {
  font-size: clamp(2rem, 5.4vw, 2.8rem);
  line-height: 1.12;
  margin-bottom: 0.75rem;
}

.text-center .bp-checklist,
.bp-box .text-center .bp-checklist,
.bp-hero .text-center .bp-checklist {
  display: inline-block;
  width: min(100%, 42rem);
  margin-inline: auto;
  text-align: left;
}

/* SEO / IA structures */
.bp-hero-kicker,
.bp-map-lazy-eyebrow,
.bp-archive-eyebrow {
  font-size: 0.75rem;
}

.bp-howto {
  counter-reset: howto-step;
}

.bp-howto-step {
  counter-increment: howto-step;
  position: relative;
  padding-left: 2.25rem;
  margin-bottom: 1rem;
}

.bp-howto-step:last-child {
  margin-bottom: 0;
}

.bp-howto-step::before {
  content: counter(howto-step);
  position: absolute;
  left: 0;
  top: 0.05rem;
  width: 1.5rem;
  height: 1.5rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--bp-orange);
  color: #fff;
  font-weight: 800;
  font-size: 0.9rem;
  line-height: 1;
}

blockquote.bp-quote {
  margin: var(--space-xl) 0;
  padding: 0 0 0 var(--space-lg);
  border-left: 3px solid var(--bp-orange);
  font-style: italic;
  color: var(--bp-text-soft);
}

blockquote.bp-quote > *:first-child {
  margin-top: 0;
}

blockquote.bp-quote > *:last-child {
  margin-bottom: 0;
}

.bp-quote-cite,
blockquote.bp-quote cite {
  display: block;
  margin-top: 0.75rem;
  font-style: normal;
  font-size: var(--text-sm);
  color: var(--bp-text-secondary);
  font-weight: 600;
}

figure {
  margin: var(--space-xl) 0;
}

figure figcaption {
  padding: var(--space-xs) var(--space-sm);
  background: var(--bp-toc-bg);
  border-radius: 0 0 var(--radius) var(--radius);
  color: var(--bp-text-muted);
  font-size: var(--text-sm);
  line-height: 1.5;
  font-style: italic;
}

figure > img + figcaption,
figure > picture + figcaption {
  margin-top: 0;
}

/* Footer respirant */
.site-footer {
  margin-top: clamp(2rem, 5vw, 3rem);
}

.footer-widgets {
  padding-block: clamp(2rem, 4vw, 3rem);
}

.inside-site-footer {
  padding-block: clamp(1rem, 2.5vw, 1.5rem);
  padding-inline: clamp(1.25rem, 5vw, 2rem);
}

.site-info {
  padding-block: .75rem;
  line-height: 1.6;
}

.footer-widgets .widget {
  margin-bottom: 1.25rem;
}

.footer-widgets .widget:last-child,
.footer-widgets p:last-child,
.footer-widgets ul:last-child,
.footer-widgets ol:last-child {
  margin-bottom: 0;
}

/* Header GeneratePress responsive */
.site-header,
.main-navigation,
.inside-header,
.inside-navigation {
  line-height: 1.2;
}

.site-description {
  font-size: 0.96rem;
  line-height: 1.35;
}

.menu-toggle,
.main-navigation .menu-toggle {
  min-height: 48px;
  padding: 0.7rem 1rem;
  font-size: 1rem;
  font-weight: 700;
}

@media (min-width: 1181px) {
  .inside-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: nowrap;
    padding-block: 0.75rem;
  }

  .site-branding {
    flex: 0 1 auto;
    min-width: 0;
    margin-right: 0.5rem;
  }

  .nav-align-right .inside-navigation,
  .inside-navigation {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .main-navigation .main-nav,
  #site-navigation .main-nav {
    width: auto;
  }

  .main-navigation .main-nav > ul,
  #site-navigation .main-nav > ul {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.15rem;
  }

  .main-navigation .main-nav > ul > li,
  #site-navigation .main-nav > ul > li {
    flex: 0 0 auto;
  }

  .site-branding .main-title,
  .site-branding .main-title a,
  .main-title a,
  .site-logo.mobile-header-logo + .site-branding .main-title a {
    font-size: clamp(1.12rem, 1.35vw, 1.28rem);
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -0.01em;
    white-space: nowrap;
  }

  .main-navigation .main-nav > ul > li > a,
  .main-navigation .menu-item-has-children > a,
  #site-navigation .main-nav > ul > li > a {
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.3;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
    padding-left: 0.62rem;
    padding-right: 0.62rem;
    white-space: nowrap;
  }
}

@media (min-width: 1025px) and (max-width: 1180px) {
  .inside-header {
    display: block;
    padding-block: 0.75rem;
  }

  .inside-navigation {
    min-height: 64px;
  }

  .site-branding .main-title,
  .site-branding .main-title a,
  .main-title a {
    font-size: clamp(1.12rem, 2vw, 1.24rem);
    white-space: normal;
  }
}

@media (max-width: 1024px) {
  .inside-header {
    padding-block: 0.75rem;
  }

  .inside-navigation {
    min-height: 64px;
  }

  .site-branding .main-title,
  .site-branding .main-title a,
  .main-title a {
    font-size: clamp(1.12rem, 4.2vw, 1.26rem);
  }

  .menu-toggle,
  .main-navigation .menu-toggle {
    font-size: 0.98rem;
  }
}/* ==========================================================
   13. LEGACY / WORDPRESS / GP / BUILDER / ARCHIVES
   Compatibilité temporaire.
   À conserver jusqu'à migration complète du HTML.
   Ne pas étendre.
   ========================================================== */

/* ----- Wrappers WordPress / GP ----- */
.single-post .inside-article,
.single-post .entry-content,
.single-post .article-content,
.bp-article {
  max-width: var(--bp-reading);
  margin-inline: auto;
  padding-inline: clamp(1.1rem, 4vw, 1.75rem);
  overflow-wrap: break-word;
}

.page .entry-content,
.page .article-content,
.page .content-flow {
  max-width: none;
  padding-inline: 0;
}

.entry-content img,
.article-content img,
.bp-article img {
  max-width: 100%;
  max-height: 520px;
  height: auto;
  border-radius: var(--radius);
}

.bp-thumb img,
.bp-media img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: inherit;
}

.entry-content figure img,
.article-content figure img,
.bp-article figure img {
  width: auto;
  max-width: 100%;
  max-height: 600px;
  display: block;
}

.entry-content img.bp-img--portrait,
.article-content img.bp-img--portrait,
.bp-article img.bp-img--portrait {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 420px;
  margin-inline: auto;
}

.entry-content img.bp-img--full,
.article-content img.bp-img--full,
.bp-article img.bp-img--full {
  display: block;
  width: 100%;
  max-height: 480px;
  object-position: center top;
}

.entry-content img.bp-img--thumb,
.article-content img.bp-img--thumb,
.bp-article img.bp-img--thumb {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 120px;
  border-radius: var(--radius-sm);
}

/* ----- Builder compat ----- */
@supports selector(:has(+ *)) {
  .single :is(.entry-content, .article-content) .gb-container:has(> p:first-child + ul.wp-block-list) {
    border-inline-start: 4px solid var(--bp-blue);
    background: var(--bp-bg-info-soft);
    border-radius: var(--radius);
    padding: var(--space-md) var(--space-lg);
    margin-block: var(--space-lg);
  }

  .single :is(.entry-content, .article-content) .gb-container:has(> p:first-child + ul.wp-block-list) > p:first-child {
    font-weight: 700;
    margin: 0 0 var(--space-xs);
  }

  .single :is(.entry-content, .article-content) .gb-container:has(> p:first-child + ul.wp-block-list) > ul.wp-block-list {
    list-style: none;
    margin: var(--space-sm) 0 0;
    padding-left: 0;
  }
}

/* ----- Archives génériques WordPress ----- */
.posts-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .posts-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

@media (min-width: 1100px) {
  .posts-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.75rem;
  }
}

.posts-list nav.navigation.pagination {
  grid-column: 1 / -1;
}

.posts-list .archive-item {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}

.posts-list .post-image {
  aspect-ratio: 4 / 3;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 0;
  margin: 0;
  background: var(--bp-surface-soft);
}

.posts-list .post-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.posts-list .entry-title {
  font-size: clamp(1.02rem, 1.8vw, 1.14rem);
  line-height: 1.25;
  margin: .5rem .95rem .2rem;
}

.posts-list .entry-summary {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .4rem;
  padding: .55rem .95rem .95rem;
}

.posts-list .entry-summary p {
  color: var(--bp-text-secondary);
  font-size: .94rem;
  line-height: 1.5;
  margin: 0;
}

.posts-list .read-more {
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-target);
  padding: .65rem 1rem;
  border-radius: .5rem;
  background: var(--bp-orange);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.posts-list .more-link {
  display: none !important;
}

/* Embed ratio stable */
.bp-embed,
.bp-embed-box {
  aspect-ratio: 16 / 9;
}

.bp-embed iframe,
.bp-embed-box iframe {
  width: 100%;
  height: 100%;
  min-height: unset;
  border: 0;
  display: block;
}


/* === FIX FOOTER GENERATEPRESS — À CONSERVER === */
#page,
.site {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100vh;
}

#content,
.site-content,
.content-area,
#main,
#main-content {
  display: block !important;
  float: none !important;
  width: 100% !important;
  flex: 1 1 auto !important;
}

.blog .site-main,
.archive .site-main {
  display: grid !important;
}

.single-post .inside-article,
.single-post .entry-content,
.single-post .article-content,
.page .inside-article,
.page .entry-content,
.page .article-content,
.bp-section {
  display: flow-root !important;
}

.site-footer,
.footer-widgets,
.inside-site-footer {
  clear: both !important;
  float: none !important;
  width: 100% !important;
  display: block !important;
  order: 3 !important;
  align-self: stretch !important;
}


/* ----- Page / mobile défensif ----- */
@media (max-width: 768px) {
  .page .entry-content,
  .page .article-content,
  .single .entry-content,
  .single .article-content {
    max-width: 100% !important;
    padding-inline: clamp(.75rem, 4vw, 1rem) !important;
  }

  .page :is(.entry-content, .article-content) .wp-block-columns {
    flex-wrap: wrap !important;
  }

  .page :is(.entry-content, .article-content) .wp-block-column {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  .page :is(.entry-content, .article-content) .gb-grid-wrapper {
    display: block !important;
  }

  .page :is(.entry-content, .article-content) .gb-grid-column {
    width: 100% !important;
    max-width: none !important;
  }

  .bp-actions,
  .bp-actions-row {
    align-items: stretch;
  }

  .bp-actions > *,
  .bp-actions-row > * {
    width: 100%;
    justify-content: center;
  }

  .bp-filters-grid {
    grid-template-columns: 1fr;
  }

  .entry-content img,
  .article-content img,
  .bp-article img {
    max-height: 360px;
  }

  .entry-content figure img,
  .article-content figure img,
  .bp-article figure img {
    max-height: 400px;
  }

}

@media (min-width: 760px) {
  

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

  .bp-results-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
  }
}

/* ==========================================================
   13. IMPRESSION
   ========================================================== */
@media print {
  .skip-link,
  .sticky-cta,
  .site-header,
  .site-footer,
  .footer-widgets,
  .bp-back-to-top {
    display: none !important;
  }

  body {
    color: #000000;
    background: #ffffff;
  }

  a {
    color: #000000 !important;
    text-decoration: underline !important;
  }

  .single-post .entry-content,
  .single-post .article-content,
  .bp-article {
    max-width: none;
    padding: 0;
  }
}

/* ==========================================================
   COMPOSANTS GÉNÉRIQUES
   Réutilisables et non métier.
   ========================================================== */

/* ===== 5. COMPOSANTS UI ===== */

/* Composants à privilégier dans les nouveaux HTML
.bp-box
.bp-card
.bp-listing-card
.bp-grid
.bp-form-grid
.bp-field
.bp-photo-gallery*
.bp-map-embed*
.bp-reviews
.bp-share

Éviter d'ajouter de nouveaux styles métier.
*/

/* ===== BADGES / PILLS / SIGNAUX ===== */
.bp-badge-pending {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  padding: var(--space-xs) var(--space-sm);
  background: #fef3c7;
  color: #92400e;
  border-radius: var(--radius);
  font-size: var(--text-xs);
  font-weight: 600;
  margin-bottom: var(--space-md);
}

.bp-badge-pending svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.bp-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #e8f2ff;
  color: var(--bp-info);
  font-size: 0.8rem;
  font-weight: 700;
}

.bp-pill--soft {
  background: #f4f7fb;
  color: var(--bp-text);
}

.bp-signal-grid {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.bp-signal-card {
  background: #ffffff;
  border: 1px solid var(--bp-border-soft);
  border-radius: 12px;
  padding: 10px;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.bp-signal-card h3 {
  margin: 0 0 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--bp-border-soft);
  color: var(--bp-info);
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.35;
}

.bp-signal-card p,
.bp-list-clean p {
  margin: 0;
}

.bp-list-clean {
  display: grid;
  gap: 4px;
  margin: 0;
}

.bp-list-clean strong {
  color: var(--bp-info);
  font-weight: 800;
}

.bp-list-clean--two-col {
  grid-template-columns: 1fr;
  gap: 4px 16px;
}

.bp-list-clean--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.bp-list-clean--inline p {
  display: inline-flex;
  align-items: center;
  padding: 6px 8px;
  border: 1px solid var(--bp-border-soft);
  border-radius: 10px;
  background: #f8fbff;
}

/* ===== HERO STRUCTURÉ GÉNÉRIQUE ===== */
.bp-hero-panel {
  position: relative;
  box-sizing: border-box;
  padding: clamp(9px, 1vw, 12px);
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--bp-border-muted);
  display: grid;
  gap: 10px;
}

.bp-hero-layout {
  display: grid;
  gap: 16px;
  align-items: start;
  grid-template-columns: 1fr;
}

.bp-hero-copy {
  display: grid;
  gap: 10px;
  justify-items: start;
  text-align: left;
}

.bp-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f8fafc;
  color: var(--bp-info);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.bp-hero-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  align-items: center;
  color: var(--bp-text-muted);
  font-size: 0.8rem;
}

.bp-hero-rail span {
  white-space: nowrap;
}

.bp-hero-strip {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  margin-top: 6px;
}

.bp-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

.bp-hero-actions .bp-btn--row {
  min-height: 44px;
  padding: 8px 12px;
}

.bp-btn--row-primary {
  background: var(--bp-info);
  color: #fff;
  border-color: var(--bp-info);
}

.bp-btn--row-primary:hover {
  background: var(--bp-blue-dark);
  color: #fff;
}

/* ----- Article / footer génériques ----- */
.bp-post-shell {
  padding-block: clamp(1rem, 2.2vw, 1.5rem) clamp(2rem, 4vw, 3rem);
}

.bp-post-header {
  display: grid;
  gap: .65rem;
  margin-bottom: 1rem;
}

.bp-post-title {
  margin: 0;
  font-size: clamp(1.95rem, 4.2vw, 2.8rem);
  line-height: 1.12;
  text-wrap: balance;
}

.bp-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .85rem;
  color: var(--bp-text-muted);
  font-size: var(--text-sm);
  line-height: 1.5;
}

.bp-post-meta a {
  color: inherit;
  text-decoration-color: color-mix(in srgb, currentColor 60%, transparent 40%);
}

.bp-post-thumb {
  max-width: min(100%, 540px);
  margin: 0 auto 1.35rem;
}

.bp-post-thumb img {
  width: auto;
  max-width: 100%;
  max-height: 420px;
  display: block;
  margin-inline: auto;
  border-radius: var(--radius-lg);
}

.bp-author-bio {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  margin-top: clamp(1.5rem, 3vw, 2rem);
}

.bp-author-bio__avatar {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.bp-author-bio__title {
  margin: 0 0 .2rem;
  font-size: 1rem;
}

.bp-author-bio__text {
  margin: 0;
  color: var(--bp-text-secondary);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.bp-post-footer {
  margin-top: 1.5rem;
  color: var(--bp-text-secondary);
  font-size: var(--text-sm);
}

.bp-post-footer > * + * {
  margin-top: .45rem;
}

.bp-post-nav {
  margin-top: 1.75rem;
  display: grid;
  gap: .85rem;
}

.bp-post-nav .nav-links {
  display: grid;
  gap: .7rem;
}

.bp-post-back {
  color: var(--bp-text-secondary);
  font-size: var(--text-sm);
}

.bp-empty-state {
  padding-block: clamp(2rem, 4vw, 3rem);
}

.bp-footer-brand {
  margin-bottom: .9rem;
}

.bp-footer-brand h2,
.bp-footer-brand h3 {
  margin: 0 0 .35rem;
}

.bp-footer-brand p,
.bp-footer-note,
.bp-footer-copy {
  margin: 0;
}

.bp-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem .85rem;
  line-height: 1.65;
}

.bp-footer-links a {
  text-decoration: none;
}

.bp-footer-note {
  color: var(--bp-text-secondary);
  font-style: italic;
}

.bp-footer-copy {
  color: var(--bp-text-muted);
  font-size: .84rem;
}

/* ===== MAP ===== */
.bp-map-embed {
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid var(--bp-border-soft);
  background: var(--bp-surface-soft);
}

.bp-map-embed iframe {
  display: block;
  width: 100%;
  height: 264px;
  border: 0;
}

.bp-map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.bp-map-note {
  margin: 0;
  color: var(--bp-text-muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.bp-map-embed--lazy {
  min-height: 300px;
  padding: 14px;
  border: 1px solid var(--bp-border-soft);
  border-radius: 16px;
  background: #f8fbff;
}

.bp-map-lazy-trigger {
  display: grid;
  gap: 8px;
  width: 100%;
  min-height: 216px;
  align-content: center;
  justify-items: start;
  padding: 18px;
  border: 0;
  border-radius: 14px;
  background: #ffffff;
  color: var(--bp-info);
  text-align: left;
  cursor: pointer;
}

.bp-map-lazy-trigger strong {
  font-size: 1rem;
  line-height: 1.2;
}

.bp-map-lazy-trigger span:last-child {
  color: var(--bp-text-muted);
  font-size: 0.86rem;
  line-height: 1.4;
}

.bp-map-lazy-eyebrow {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  background: #dcecff;
  color: var(--bp-info);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.bp-map-embed--lazy iframe {
  width: 100%;
  height: 300px;
  border: 0;
  border-radius: 14px;
}

/* ===== GALERIE PHOTO ===== */
.bp-photo-gallery {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 100%;
  gap: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  margin-top: 6px;
  padding-bottom: 2px;
  scrollbar-width: none;
}

.bp-photo-gallery::-webkit-scrollbar {
  display: none;
}

.bp-photo-gallery-wrap {
  display: grid;
  gap: 6px;
  position: relative;
  width: 100%;
  max-width: 520px;
  margin-inline: 0;
}

.bp-photo-gallery-wrap--single .bp-photo-gallery {
  overflow: hidden;
}

.bp-photo-gallery-nav {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  position: absolute;
  inset: 50% 8px auto 8px;
  transform: translateY(-50%);
  z-index: 2;
  pointer-events: none;
}

.bp-photo-gallery-arrow {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  pointer-events: auto;
}

.bp-photo-gallery-arrow:hover {
  background: transparent;
  color: #f8fbff;
}

.bp-photo-gallery-arrow:focus-visible,
.bp-photo-gallery-dots button:focus-visible {
  outline: 3px solid var(--bp-link);
  outline-offset: 2px;
}

.bp-photo-gallery__item {
  display: block;
  overflow: hidden;
  border-radius: 18px;
  background: var(--bp-surface-soft);
  aspect-ratio: 4 / 3;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  scroll-snap-align: start;
}

.bp-photo-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bp-photo-gallery-dots {
  position: absolute;
  inset: auto 0 10px 0;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 6px;
  pointer-events: none;
}

.bp-photo-gallery-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.45);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.25);
  pointer-events: auto;
}

.bp-photo-gallery-dot.is-active {
  width: 18px;
  background: rgba(255, 255, 255, 0.95);
}

.bp-photo-gallery-thumbs {
  display: none;
}

.bp-photo-gallery-thumb {
  padding: 0;
  border: 2px solid transparent;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.bp-photo-gallery-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bp-photo-gallery-thumb.is-active {
  border-color: var(--bp-info);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

/* ===== 6. FORMULAIRES ===== */
/* FORMULAIRES GÉNÉRIQUES */


.bp-form-grid--2cols {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}



.bp-field label {
  color: var(--bp-text-secondary);
  font-size: 0.82rem;
  font-weight: 800;
}

.bp-field input,
.bp-field textarea,
.bp-field select {
  width: 100%;
  min-height: 48px;
  padding: 0.8rem 0.9rem;
  border-radius: 14px;
  border: 1px solid var(--bp-border-soft);
  background: #fff;
  color: var(--bp-text);
  font: inherit;
}

.bp-field textarea {
  min-height: 120px;
  resize: vertical;
}

.bp-field input:focus-visible,
.bp-field textarea:focus-visible,
.bp-field select:focus-visible {
  outline: 3px solid var(--bp-link);
  outline-offset: 2px;
}

.bp-form-consent {
  margin: 0;
  color: var(--bp-text-muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.bp-form-consent label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.bp-char-count,
.bp-help {
  font-size: var(--text-xs);
  color: var(--text-secondary);
}

.bp-char-count {
  text-align: right;
}

/* ===== LISTING GÉNÉRIQUE ===== */
.bp-archive-shell,
.bp-archive-hero,
.bp-archive-results-head,
.bp-archive-pagination,
.bp-archive-progress,
.bp-archive-tools {
  max-width: 1120px;
  margin-inline: auto;
}

.bp-archive-hero {
  display: grid;
  gap: 12px;
  margin-bottom: 1rem;
  padding: 1rem;
  border-radius: 24px;
  background: #ffffff;
  border: 1px solid var(--bp-border-soft);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.bp-archive-eyebrow {
  margin: 0;
  width: fit-content;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: var(--bp-bg-info-soft);
  color: var(--bp-info);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.bp-archive-lead {
  margin: 0;
  max-width: 70ch;
  color: var(--bp-text-secondary);
  font-size: 1rem;
  line-height: 1.5;
}

.bp-archive-kpis {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.bp-archive-kpi {
  display: grid;
  gap: 4px;
  padding: 0.85rem 0.9rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid #e2e8f0;
  color: var(--bp-text-secondary);
  font-size: 0.88rem;
  line-height: 1.35;
}

.bp-archive-kpi strong {
  color: var(--bp-info);
  font-size: 1rem;
}

.bp-listing-grid {
  display: grid;
  gap: 14px;
}

.bp-listing-card {
  display: grid;
  gap: 0;
  border: 1px solid var(--bp-border-soft);
  border-radius: 22px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.bp-listing-card:hover {
  transform: translateY(-1px);
  border-color: var(--bp-border-info);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.bp-listing-card__thumb {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--bp-surface-soft);
  border-bottom: 1px solid var(--bp-border-soft);
}

.bp-listing-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bp-listing-card__body {
  padding: 1rem;
}

.bp-listing-card__title {
  margin: 0;
  font-size: clamp(1.14rem, 2vw, 1.28rem);
  line-height: 1.18;
  font-weight: 800;
}

.bp-listing-card__title a {
  color: var(--bp-text);
  text-decoration: none;
}

.bp-listing-card__title a:hover,
.bp-listing-card__title a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.bp-listing-card__meta {
  margin: 8px 0 0;
  color: var(--bp-text-muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.bp-listing-card__signal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.bp-listing-card__signal {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  min-height: 36px;
  padding: 0.45rem 0.65rem;
  border-radius: 12px;
  background: #f8fbff;
  border: 1px solid var(--bp-border-soft);
  color: var(--bp-info);
  font-size: 0.8rem;
  line-height: 1.25;
}

.bp-listing-card__signal strong {
  font-weight: 800;
}

.bp-listing-card__signal--accent {
  background: #ecfdf3;
  border-color: #ccead8;
  color: #166534;
}

.bp-listing-card__summary {
  margin: 12px 0 0;
  color: var(--bp-text);
  font-size: 0.96rem;
  line-height: 1.55;
}

.bp-listing-card__facts {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.bp-listing-card__facts p {
  margin: 0;
  color: var(--bp-text-secondary);
  font-size: 0.87rem;
  line-height: 1.4;
}

.bp-listing-card__facts strong {
  display: block;
  margin-bottom: 2px;
  color: var(--bp-info);
  font-size: 0.76rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.bp-listing-card__cta {
  justify-content: center;
  min-height: 46px;
  padding-inline: 1rem;
  background: var(--bp-info);
  color: #fff;
  box-shadow: none;
}

.bp-listing-card__cta:hover {
  background: var(--bp-blue-dark);
  color: #fff;
}

/* ===== REVIEWS GÉNÉRIQUES ===== */
.bp-reviews {
  display: grid;
  gap: 12px;
}

.bp-review-card {
  border-color: var(--bp-border-soft);
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.bp-review-form {
  margin-top: 8px;
}

/* ===== PARTAGE GÉNÉRIQUE ===== */
.bp-share {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
}

.bp-share .bp-btn--row,
.bp-share .bp-btn--outline {
  min-height: 44px;
  padding: 8px 14px;
}

/* ===== UTILITAIRES COMPLÉMENTAIRES ===== */
.bp-space-top-2xs {
  margin-top: 2px;
}

.bp-space-top-xs {
  margin-top: var(--space-xs);
}

/* ===== 9. RESPONSIVE ===== */
@media (max-width: 767px) {
  .bp-archive-hero {
    padding: 0.9rem;
    border-radius: 18px;
    gap: 10px;
  }

  .bp-archive-lead {
    font-size: 0.98rem;
    line-height: 1.55;
  }

  .bp-archive-kpis {
    display: none;
  }

  .bp-form-grid--2cols {
    grid-template-columns: 1fr;
  }

  .bp-hero-layout {
    gap: 12px;
  }

  .bp-hero-copy {
    gap: 8px;
  }

  .bp-hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .bp-hero-kicker {
    display: none;
  }

  .bp-hero-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-top: 2px;
  }

  .bp-pill {
    justify-content: center;
    min-height: 38px;
    font-size: 0.82rem;
  }

  .bp-photo-gallery {
    grid-auto-columns: 100%;
  }

  .bp-photo-gallery-arrow {
    width: 44px;
    height: 44px;
    font-size: 1.55rem;
  }

  .bp-map-embed--lazy {
    min-height: 250px;
    padding: 10px;
  }

  .bp-map-lazy-trigger {
    min-height: 180px;
    padding: 16px;
  }

  .bp-listing-card {
    border-radius: 18px;
  }

  .bp-listing-card__body {
    padding: 0.95rem;
  }

  .bp-share {
    display: grid;
    width: 100%;
    gap: 10px;
  }

  .bp-share .bp-btn--row,
  .bp-share .bp-btn--outline {
    width: 100%;
  }
}

@media (min-width: 768px) {
  .bp-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .bp-photo-gallery-wrap--single {
    max-width: 320px;
  }

  .bp-photo-gallery-wrap--multi {
    max-width: 760px;
  }

  .bp-photo-gallery-wrap--multi .bp-photo-gallery-nav,
  .bp-photo-gallery-wrap--multi .bp-photo-gallery-dots,
  .bp-photo-gallery-wrap--multi .bp-photo-gallery-thumbs,
  .bp-photo-gallery-wrap--multi .bp-photo-gallery-thumb.is-active {
    display: none;
  }

  .bp-photo-gallery-wrap--multi .bp-photo-gallery {
    display: grid;
    grid-auto-flow: unset;
    grid-auto-columns: unset;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    overflow: visible;
    scroll-snap-type: none;
  }

  .bp-photo-gallery-wrap--multi .bp-photo-gallery__item {
    aspect-ratio: 4 / 3;
    border-radius: 16px;
  }

  .bp-hero-layout {
    grid-template-columns: minmax(0, 1.2fr) minmax(340px, 420px);
    align-items: stretch;
    column-gap: 22px;
    row-gap: 12px;
  }

  .bp-list-clean--two-col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .bp-listing-card {
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
  }

  .bp-listing-card__thumb {
    aspect-ratio: auto;
    height: 100%;
  }

  .bp-listing-card__body {
    padding: 1.1rem;
  }

  .bp-listing-card__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* Bridge standard listing: à utiliser dans les nouveaux HTML */
.bp-listing-grid--posts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .bp-listing-grid--posts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem;
  }
}

@media (min-width: 1100px) {
  .bp-listing-grid--posts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3rem;
  }
}


/* Article scope helpers */
.article-content .bp-box + .bp-box,
.article-content .bp-box + .bp-section,
.article-content .bp-section + .bp-box,
.article-content .bp-section + .bp-section {
  margin-top: 0;
}

.article-content .bp-grid {
  margin-top: var(--space-md);
}

.article-content .sources-list,
.article-content .bp-checklist {
  margin-top: var(--space-md);
}


/* Consolidation légère des titres sans casser le legacy */
:is(.entry-content, .article-content, .page .entry-content) > :is(h1, h2, h3, h4) {
  font-family: var(--bp-font);
  font-weight: 700;
  color: var(--bp-text);
  line-height: 1.3;
  margin-block: var(--space-xl) var(--space-md);
}

:is(.entry-content, .article-content, .page .entry-content) h1 {
  font-size: var(--text-h1);
  contain: layout style;
}

:is(.entry-content, .article-content, .page .entry-content) h2 {
  font-size: var(--text-h2);
  contain: layout style;
}

:is(.entry-content, .article-content, .page .entry-content) h3 {
  font-size: var(--text-h3);
  contain: layout style;
}

:is(.entry-content, .article-content, .page .entry-content) h4 {
  font-size: var(--text-h4);
  contain: layout style;
}


/* Utilitaires complémentaires */
.bp-space-bottom-sm {
  margin-bottom: var(--space-sm);
}

.bp-space-bottom-md {
  margin-bottom: var(--space-md);
}

.bp-space-bottom-lg {
  margin-bottom: var(--space-lg);
}


.bp-visible-mobile {
  display: revert !important;
}

@media (min-width: 768px) {
  .bp-visible-mobile {
    display: none !important;
  }
}

.bp-hidden-mobile {
  display: none !important;
}

@media (min-width: 768px) {
  .bp-hidden-mobile {
    display: revert !important;
  }
}


/* FAQ et breadcrumb UI standards */
.bp-breadcrumb,
.breadcrumbs {
  display: block;
  font-size: var(--text-xs);
  color: var(--bp-text-soft);
  margin-bottom: var(--space-md);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.bp-breadcrumb a,
.breadcrumbs a {
  color: var(--bp-link);
  text-decoration: none;
}

.bp-breadcrumb a:hover,
.breadcrumbs a:hover {
  color: var(--bp-link-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.bp-breadcrumb__separator {
  margin-inline: var(--space-xs);
  color: var(--bp-text-soft);
}

.bp-faq {
  display: grid;
  gap: var(--space-sm);
}

.bp-faq__item {
  background: var(--bp-toc-bg);
  border: 1px solid var(--bp-toc-border);
  border-radius: var(--radius);
  padding: var(--space-md) var(--space-lg);
}

.bp-faq__item > h3,
.bp-faq__item > summary {
  margin: 0;
  color: var(--bp-text);
  font-size: var(--text-md);
  font-weight: 700;
  line-height: 1.4;
}

.bp-faq__item > p,
.bp-faq__item > div,
.bp-faq__item > .bp-faq__answer {
  margin-top: var(--space-sm);
  color: var(--bp-text-secondary);
  font-size: var(--text-sm);
}


/* Raffinements typographiques / ancres */
:is(h1, h2, h3) {
  text-wrap: balance;
}

[id] {
  scroll-margin-top: clamp(80px, 10vh, 120px);
}



/* === FAQ RESTORE — questions en gras + accordéon visible === */
.rank-math-block[id*="rank-math-faq"] {
  background: var(--bp-toc-bg);
  border: 1px solid var(--bp-toc-border);
  border-radius: var(--radius);
  padding: var(--space-md) var(--space-lg);
  margin: var(--space-xl) 0;
}

.rank-math-list-item {
  border-bottom: 1px solid var(--bp-toc-border);
  transition: background-color 0.3s ease;
}

.rank-math-list-item:last-child {
  border-bottom: none;
}

.rank-math-list-item.is-open {
  background: var(--bp-white);
  border-radius: var(--space-xs);
}

.rank-math-question {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: var(--touch-target);
  padding: var(--space-sm) var(--space-md);
  margin: 0;
  font-family: var(--bp-font);
  font-size: var(--text-md);
  font-weight: 700 !important;
  color: var(--bp-text);
  line-height: 1.4;
  text-align: left;
  background: transparent;
  border: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.rank-math-question::after {
  content: "+";
  flex-shrink: 0;
  margin-left: var(--space-md);
  font-size: 1.5em;
  font-weight: 400;
  color: var(--bp-orange);
  line-height: 1;
  transition: transform 0.3s ease;
}

.rank-math-list-item.is-open .rank-math-question::after {
  content: "−";
  transform: rotate(180deg);
}

.rank-math-answer {
  max-height: 0;
  opacity: 0;
  padding: 0 var(--space-md);
  overflow: hidden;
  transition:
    max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.4s ease-out,
    padding 0.4s ease-out;
  font-size: var(--text-sm);
  color: var(--bp-text-secondary);
  line-height: 1.6;
}

.rank-math-list-item.is-open .rank-math-answer {
  max-height: 2000px;
  opacity: 1;
  padding: var(--space-sm) var(--space-md) var(--space-md);
}

.rank-math-answer > *:first-child {
  margin-top: 0;
}

.rank-math-answer > *:last-child {
  margin-bottom: 0;
}

.rank-math-answer a {
  color: var(--bp-link);
  text-decoration: underline;
}

.rank-math-answer a:hover {
  color: var(--bp-orange);
}

@media (min-width: 768px) {
  .rank-math-block[id*="rank-math-faq"] {
    padding: var(--space-lg) var(--space-xl);
  }

  .rank-math-question {
    font-size: var(--text-lg);
    padding: var(--space-md) var(--space-lg);
  }

  .rank-math-answer {
    font-size: var(--text-md);
  }

  .rank-math-list-item.is-open .rank-math-answer {
    padding: var(--space-md) var(--space-lg) var(--space-lg);
  }
}

@media print {
  .rank-math-question::after {
    display: none;
  }

  .rank-math-answer {
    display: block !important;
    max-height: none !important;
    opacity: 1 !important;
    overflow: visible !important;
    padding: var(--space-sm) var(--space-md) var(--space-md) !important;
  }
}


/* Hero orange : image flottante */
.hero-orange .bp-thumb,
.hero-orange .bp-thumb--wide,
.hero-orange .bp-thumb--article,
.hero-orange .bp-thumb--portrait,
.hero-orange .bp-media--float,
.hero-orange .bp-float {
  animation: float 3s ease-in-out infinite;
}

.hero-orange .bp-thumb:hover,
.hero-orange .bp-thumb--wide:hover,
.hero-orange .bp-thumb--article:hover,
.hero-orange .bp-thumb--portrait:hover,
.hero-orange .bp-media--float:hover,
.hero-orange .bp-float:hover {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .hero-orange .bp-thumb,
  .hero-orange .bp-thumb--wide,
  .hero-orange .bp-thumb--article,
  .hero-orange .bp-thumb--portrait,
  .hero-orange .bp-media--float,
  .hero-orange .bp-float {
    animation: none !important;
  }
}



/* Hero warm / orange : image flottante sur la vraie structure homepage */
.bp-hero.bp-hero--warm .bp-media--float,
.bp-hero.bp-hero--warm .bp-thumb,
.bp-hero.bp-hero--warm .bp-thumb--wide,
.bp-hero.bp-hero--warm .bp-thumb--article,
.bp-hero.bp-hero--warm .bp-thumb--portrait,
.bp-hero.bp-hero--warm .bp-float {
  animation: float 3s ease-in-out infinite;
}

.bp-hero.bp-hero--warm .bp-media--float:hover,
.bp-hero.bp-hero--warm .bp-thumb:hover,
.bp-hero.bp-hero--warm .bp-thumb--wide:hover,
.bp-hero.bp-hero--warm .bp-thumb--article:hover,
.bp-hero.bp-hero--warm .bp-thumb--portrait:hover,
.bp-hero.bp-hero--warm .bp-float:hover {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .bp-hero.bp-hero--warm .bp-media--float,
  .bp-hero.bp-hero--warm .bp-thumb,
  .bp-hero.bp-hero--warm .bp-thumb--wide,
  .bp-hero.bp-hero--warm .bp-thumb--article,
  .bp-hero.bp-hero--warm .bp-thumb--portrait,
  .bp-hero.bp-hero--warm .bp-float {
    animation: none !important;
  }
}



/* Force float sur l'image exacte du hero warm homepage */
.bp-hero.bp-hero--warm img.bp-media--float {
  display: block;
  animation: float 3s ease-in-out infinite !important;
  will-change: transform;
  transform: translateZ(0);
}

.bp-hero.bp-hero--warm img.bp-media--float:hover {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .bp-hero.bp-hero--warm img.bp-media--float {
    animation: none !important;
  }
}
