/* ==========================================================================
   LIVE EVENTS PRODUCTION — refresh 2026-10-31 (charge APRES style.css)
   Principes (ui-ux-pro-max) : contraste >= 4.5:1, cibles >= 44px, focus visible,
   pas d'emoji comme icone, mouvement discret + prefers-reduced-motion, mobile d'abord.
   Direction : cinema sombre, accent rouge #e8384f, Inter. Tout est reversible : supprimer ce fichier.
   ========================================================================== */
:root {
  --brand: #e8384f;          /* accent sur fond sombre (5,1:1 sur #05070d) */
  --brand-ink: #b91c36;      /* accent en TEXTE sur fond clair (6,1:1) */
  --ink: #0f172a;
  --ink-2: #334155;
  --muted: #475569;
  --paper: #f6f7fb;
  --line: #e2e8f0;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Typographie ---------- */
html { -webkit-text-size-adjust: 100%; }
body { line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-optical-sizing: auto; }
h1, h2, h3 { text-wrap: balance; letter-spacing: -.015em; }
h1 { letter-spacing: -.025em; }
p, li { text-wrap: pretty; }

/* ---------- Accessibilite ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
:focus-visible { outline: 3px solid #ff7a8c; outline-offset: 3px; border-radius: 4px; }
section[style*="#f9f9f9"] :focus-visible, .en-bref :focus-visible { outline-color: var(--brand-ink); }
.btn, .nav-cta, summary, .nav-burger { cursor: pointer; }
.btn, .nav-cta { min-height: 44px; }

/* ---------- Navigation ---------- */
.nav { background: rgba(5, 7, 13, .84); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid rgba(255, 255, 255, .08); }
.nav-links a:not(.nav-cta) { position: relative; padding: .5rem 0; }
.nav-links a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 0; bottom: .15rem; height: 2px; background: var(--brand); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.nav-links a:not(.nav-cta):hover::after, .nav-links a[aria-current="page"]::after { transform: scaleX(1); }
.nav-cta { box-shadow: 0 6px 18px rgba(232, 56, 79, .28); transition: background .2s, transform .2s var(--ease), box-shadow .2s; }
.nav-cta:hover { transform: translateY(-1px); box-shadow: 0 10px 26px rgba(232, 56, 79, .38); }
.nav-burger { background: transparent; border: 1px solid rgba(255, 255, 255, .24); border-radius: 10px; color: #fff; transition: background .2s; }
.nav-burger:hover { background: rgba(255, 255, 255, .07); }

/* ---------- Boutons, cartes ---------- */
.btn { transition: background .2s, color .2s, border-color .2s, transform .2s var(--ease), box-shadow .2s; }
.btn-primary { box-shadow: 0 6px 18px rgba(232, 56, 79, .28); }
.btn-primary:hover { box-shadow: 0 12px 30px rgba(232, 56, 79, .38); }
.btn:active { transform: translateY(0) scale(.98); }
.card { border-radius: 14px; background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .012)), var(--dark2); }
.card:hover { border-color: rgba(232, 56, 79, .5); transform: translateY(-3px); }
.highlight-box { background: rgba(232, 56, 79, .08); border-color: rgba(232, 56, 79, .25); border-left-color: var(--brand); }

/* ---------- Hero : pages interieures compactes, badge sans emoji ---------- */
.hero:has(nav[aria-label="Fil d'Ariane"]) { min-height: 0; padding: 7.5rem 0 3.5rem; align-items: flex-end; }
@media (max-width: 640px) { .hero:has(nav[aria-label="Fil d'Ariane"]) { padding: 6rem 0 2.5rem; } }
.hero:has(nav[aria-label="Fil d'Ariane"]) > .container { width: 100%; max-width: 880px; }
.hero-badge-new { display: inline-flex; align-items: center; gap: .5rem; }
.hero-badge-new > span[aria-hidden="true"] { display: none; }
.hero-badge-new::before {
  content: ""; flex: none; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6.5A2.5 2.5 0 0 1 6.5 4h7A2.5 2.5 0 0 1 16 6.5V9l4.2-2.4a.8.8 0 0 1 1.2.7v9.4a.8.8 0 0 1-1.2.7L16 15v2.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 4 17.5z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6.5A2.5 2.5 0 0 1 6.5 4h7A2.5 2.5 0 0 1 16 6.5V9l4.2-2.4a.8.8 0 0 1 1.2.7v9.4a.8.8 0 0 1-1.2.7L16 15v2.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 4 17.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hero-badge { background: rgba(232, 56, 79, .12); border-color: rgba(232, 56, 79, .42); color: #ff8fa0; }
.hero-badge > span[aria-hidden="true"] { display: none; }
.hero-badge::before {
  content: ""; flex: none; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6.5A2.5 2.5 0 0 1 6.5 4h7A2.5 2.5 0 0 1 16 6.5V9l4.2-2.4a.8.8 0 0 1 1.2.7v9.4a.8.8 0 0 1-1.2.7L16 15v2.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 4 17.5z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6.5A2.5 2.5 0 0 1 6.5 4h7A2.5 2.5 0 0 1 16 6.5V9l4.2-2.4a.8.8 0 0 1 1.2.7v9.4a.8.8 0 0 1-1.2.7L16 15v2.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 4 17.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Sections claires (contenu) : lisibilite et contraste ---------- */
section[style*="#f9f9f9"] { background: var(--paper) !important; }
section[style*="#f9f9f9"] .container.page-content { max-width: 880px; }
section[style*="#f9f9f9"] h2 { color: var(--ink); margin: 2.75rem 0 .9rem; }
section[style*="#f9f9f9"] h2:first-child { margin-top: 0; }
section[style*="#f9f9f9"] h3 { color: var(--brand-ink); }
section[style*="#f9f9f9"] p, section[style*="#f9f9f9"] li { color: var(--ink-2); max-width: 72ch; }
section[style*="#f9f9f9"] a:not(.btn) { color: var(--brand-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
section[style*="#f9f9f9"] a:not(.btn):hover { text-decoration-thickness: 2px; }
section[style*="#f9f9f9"] summary { min-height: 44px; display: flex; align-items: center; }
details { transition: border-color .2s, box-shadow .2s; }
details[open] { box-shadow: 0 6px 20px rgba(15, 23, 42, .06); }

/* ---------- Bloc « En bref » (reponse courte + faits cles) ---------- */
.en-bref { background: #fff; border-bottom: 1px solid var(--line); padding: 2.25rem 0; }
.en-bref__inner { max-width: 880px; margin: 0 auto; padding: 0 1.5rem; }
.en-bref h2 { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-ink); margin: 0 0 .65rem; }
.en-bref__lead { font-size: 1.1rem; line-height: 1.55; color: var(--ink); max-width: 72ch; margin: 0 0 1.25rem; font-weight: 500; }
.en-bref__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .75rem; list-style: none; margin: 0 0 1.1rem; padding: 0; }
.en-bref__facts li { background: var(--paper); border: 1px solid var(--line); border-left: 3px solid var(--brand); border-radius: 10px; padding: .8rem 1rem; color: var(--ink-2); font-size: .92rem; line-height: 1.5; max-width: none; }
.en-bref__facts strong { display: block; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: .2rem; }
.en-bref a { color: var(--brand-ink); text-decoration: underline; text-underline-offset: 3px; }
.en-bref__date { margin: 0; font-size: .82rem; color: var(--muted); max-width: none; }

/* ---------- Barre d'action mobile (Devis / Appeler) ---------- */
.mobile-cta { display: none; }
@media (max-width: 768px) {
  .mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; display: flex; gap: .6rem; padding: .6rem .8rem calc(.6rem + env(safe-area-inset-bottom)); background: rgba(5, 7, 13, .94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-top: 1px solid rgba(255, 255, 255, .1); }
  .mobile-cta a { flex: 1; min-height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 10px; font-weight: 700; font-size: .95rem; text-decoration: none; -webkit-tap-highlight-color: transparent; }
  .mobile-cta__main { background: var(--brand); color: #05070d; }
  .mobile-cta__main:hover { color: #05070d; }
  .mobile-cta__call { flex: 0 0 36%; color: #fff; border: 1px solid rgba(255, 255, 255, .32); }
  .mobile-cta__call:hover { color: #fff; }
  body.has-cta { padding-bottom: 76px; }
  body.has-cta #wa-float { bottom: 88px; right: 14px; }
  .nav-links.open { background: rgba(13, 17, 23, .98); }
  .nav-links.open a:not(.nav-cta) { font-size: 1.1rem; padding: .85rem 0; border-bottom: 1px solid rgba(255, 255, 255, .07); width: 100%; }
}

/* ---------- Alignement des colonnes (desktop) ---------- */
@media (min-width: 900px) {
  .en-bref__inner { padding-left: 0; padding-right: 0; }
  .hero:has(nav[aria-label="Fil d'Ariane"]) > .container { padding-left: 0; padding-right: 0; }
}
@media (max-width: 899px) { .en-bref__inner { padding-left: 1rem; padding-right: 1rem; } }
