/* ═══════════════════════════════════════════════════════════════════════
   TRAININGPERF — PALETTE LOCK universel (rollout funnel)
   À inclure sur toute page pour aligner palette dark gold signature TP.
   2026-05-08
   ═══════════════════════════════════════════════════════════════════════ */

/* === TOKENS OVERRIDE : tout teal → gold + tout cream → dark navy === */
:root {
  --accent: #d4b56a !important;
  --accent-d: #b8943f !important;
  --accent-light: #e8c578 !important;
  --accent-2: #b8943f !important;
  --bg: #0a1521 !important;
  --bg-alt: #0f1f2d !important;
  --bg-card: #0a1521 !important;
  --text: #ffffff !important;
  --text-primary: #ffffff !important;
  --text2: rgba(255,255,255,0.72) !important;
  --text-secondary: rgba(255,255,255,0.6) !important;
  --border: rgba(255,255,255,0.08) !important;
}

/* === BASE bg-dark uniforme === */
body { background: #0a1521 !important; color: #fff; }
.section, .section-inner { background: #0a1521 !important; color: #fff !important; }
.section--alt, .section--alt2 { background: #0f1f2d !important; color: #fff !important; }
.section--dark { background: #0a1521 !important; }
.section--dark-2 { background: #050b13 !important; }
.section--gradient { background: linear-gradient(180deg, #0a1521 0%, #0f1f2d 100%) !important; }
.cta-section { background: #050b13 !important; }
.price-hero { background: #0f1f2d !important; }

/* === em italic = TOUT GOLD partout === */
.hero-title em,
.section-title em,
.cta-title em,
.cta-final em,
.manifeste-body em,
.proof-quote em,
.scan-card-title em,
.service-title em,
.faq-q em,
.about-content h2 em,
.section-text em,
.tpk-title em,
.tpk-cta-bandeau-title em,
.tpk-founder-name em,
.tpk-pull-quote-text em,
.tpk-freebie-name em,
.tpk-pull-quote-attr em,
em.gold {
  background: linear-gradient(135deg, #e8c578 0%, #d4b56a 50%, #b8943f 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-style: italic !important;
  color: transparent !important;
}

/* === Eyebrows = pill kit partout === */
.eyebrow,
.section-tag,
.service-eyebrow,
.hero-label,
.scan-card-label,
.scan-card-body .scan-card-label,
.price-card .tag,
.tag,
.matrix-eyebrow {
  display: inline-block !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #d4b56a !important;
  background: rgba(184,148,63,0.08) !important;
  border: 1px solid rgba(184,148,63,0.35) !important;
  border-radius: 100px !important;
  padding: 6px 14px !important;
  margin-bottom: 18px !important;
}
.eyebrow::before { display: none !important; }

/* === Titles homogènes === */
.section-title, .cta-title {
  color: #fff !important;
  font-family: 'Instrument Serif', serif !important;
  font-weight: 400 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.025em !important;
}
.section-lede, .section-text, .section-sub {
  color: rgba(255,255,255,0.72) !important;
  max-width: 720px !important;
}

/* === Cards dark uniformes === */
.service-card,
.parcours-step,
.proof-card,
.scan-card,
.scan-card-body,
.process-card,
.include-card,
.faq-card,
.collab-card,
.cred-card,
.editorial-item,
.marqueur-card {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 20px !important;
  color: #fff !important;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s, box-shadow 0.4s !important;
}
.service-card:hover,
.parcours-step:hover,
.proof-card:hover,
.scan-card:hover,
.process-card:hover,
.include-card:hover,
.editorial-item:hover,
.marqueur-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(184,148,63,0.3) !important;
  box-shadow: 0 24px 48px rgba(0,0,0,0.4) !important;
}
.service-card.featured {
  border-color: rgba(184,148,63,0.45) !important;
  background: linear-gradient(180deg, rgba(184,148,63,0.06), rgba(255,255,255,0.03) 60%) !important;
  box-shadow: 0 24px 48px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(184,148,63,0.2) !important;
}
.service-badge, .scan-card-badge {
  background: linear-gradient(135deg, #b8943f, #d4b56a) !important;
  color: #0a1521 !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  padding: 6px 16px !important;
  border-radius: 100px !important;
  font-weight: 600 !important;
  border: none !important;
}
.service-card h3, .service-title,
.parcours-step h3,
.proof-card .proof-quote, .proof-quote,
.scan-card-title,
.process-card h3,
.include-card h3,
.faq-card h3, .faq-q,
.collab-card h3,
.cred-card h3,
.editorial-item h3,
.marqueur-title {
  color: #fff !important;
  font-family: 'Instrument Serif', serif !important;
  font-weight: 400 !important;
  letter-spacing: -0.02em !important;
}
.service-card p,
.service-sub,
.service-list li,
.service-price-sub,
.parcours-step p,
.proof-author-name,
.proof-author-role,
.scan-card-desc,
.process-card p,
.include-card p,
.faq-a,
.collab-card p,
.cred-card p,
.editorial-item p,
.marqueur-desc {
  color: rgba(255,255,255,0.72) !important;
}
.service-price, .price-big, .scan-card-link, .price-amount,
.price-card .price, .matrix-price, .price-value {
  background: linear-gradient(135deg, #e8c578 0%, #d4b56a 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-weight: 400 !important;
  font-family: 'Instrument Serif', serif !important;
}
.price-card { background: rgba(255,255,255,0.03) !important; border: 1px solid rgba(255,255,255,0.08) !important; border-radius: 20px !important; padding: 36px 32px !important; color: #fff !important; }
.price-card.featured { border-color: rgba(184,148,63,0.45) !important; background: linear-gradient(180deg, rgba(184,148,63,0.06), rgba(255,255,255,0.03) 60%) !important; box-shadow: 0 24px 48px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(184,148,63,0.2) !important; }
.price-card h3 { color: #fff !important; }
.price-card ul li { color: rgba(255,255,255,0.78) !important; }
.disclaimer { color: rgba(255,255,255,0.5) !important; font-size: 12px !important; }

/* === Boutons === */
.btn-primary, .btn-hero--primary, .price-cta, .service-cta.featured,
.cta-final-btn {
  background: linear-gradient(135deg, #b8943f, #d4b56a) !important;
  color: #0a1521 !important;
  font-weight: 600 !important;
  box-shadow: 0 12px 32px rgba(184,148,63,0.35) !important;
  border: none !important;
}
.btn-primary:hover, .btn-hero--primary:hover, .price-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 48px rgba(184,148,63,0.5) !important;
}
.btn-ghost, .btn-hero--secondary {
  background: transparent !important;
  color: rgba(255,255,255,0.85) !important;
  border: 1px solid rgba(255,255,255,0.25) !important;
}
.btn-ghost:hover, .btn-hero--secondary:hover {
  border-color: #d4b56a !important;
  color: #d4b56a !important;
}
.service-cta {
  display: block !important;
  text-align: center !important;
  padding: 14px 24px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,0.06) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
  margin-top: 24px !important;
  transition: all 0.3s !important;
}
.service-card.featured .service-cta {
  background: linear-gradient(135deg, #b8943f, #d4b56a) !important;
  color: #0a1521 !important;
  border-color: transparent !important;
  font-weight: 600 !important;
}
.service-cta:hover { border-color: #d4b56a !important; }

/* === Nav glassy permanent === */
nav.tp-nav, nav.nav, .nav {
  background: rgba(10, 21, 33, 0.65) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
nav.tp-nav .tp-brand, nav .nav-logo, .nav-logo, .nav-brand { color: #fff !important; }
nav.tp-nav .tp-brand em, .nav-logo em, .nav-brand em { color: #d4b56a !important; }
nav.tp-nav .tp-links > li > a { color: rgba(255,255,255,0.78) !important; }
nav.tp-nav .tp-links > li > a:hover,
nav.tp-nav .tp-links > li > a.current { color: #d4b56a !important; }
nav.tp-nav .tp-cta, .nav-cta {
  background: linear-gradient(135deg, #b8943f, #d4b56a) !important;
  color: #0a1521 !important;
  font-weight: 600 !important;
}
nav .nav-hamburger span, nav.tp-nav .tp-burger span { background: #fff !important; }

/* === Footer === */
footer.tp-footer, footer.footer {
  background: #050b13 !important;
  border-top: 1px solid rgba(184,148,63,0.15) !important;
}
footer a:hover, footer.tp-footer a:hover, footer .footer-col a:hover { color: #d4b56a !important; }
footer .tp-footer-socials a:hover { background: #b8943f !important; border-color: #b8943f !important; color: #0a1521 !important; }

/* === Hero === */
.hero { background: #0a1521 !important; }
.hero-gradient { background: linear-gradient(180deg, transparent 0%, rgba(10,21,33,0.55) 65%, rgba(10,21,33,0.95) 100%), linear-gradient(90deg, rgba(10,21,33,0.78) 0%, rgba(10,21,33,0.55) 45%, rgba(10,21,33,0.38) 75%, rgba(10,21,33,0.28) 100%) !important; }

/* === STICKY URGENCY BAR (universel) === */
.tp-sticky-bar {
  position: fixed; bottom: 0; left: 0; right: 0;
  z-index: 50;
  background: linear-gradient(180deg, rgba(10,21,33,0.95), rgba(5,11,19,0.98));
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid rgba(184,148,63,0.35);
  padding: 12px 20px;
  display: flex; align-items: center; justify-content: center; gap: 16px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px; color: #fff;
  transform: translateY(100%);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 -12px 32px rgba(0,0,0,0.3);
}
.tp-sticky-bar.show { transform: translateY(0); }
.tp-sticky-bar-text { flex: 1; min-width: 0; line-height: 1.35; }
.tp-sticky-bar-text strong { color: #d4b56a; font-weight: 600; }
.tp-sticky-bar-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 22px;
  background: linear-gradient(135deg, #b8943f, #d4b56a);
  color: #0a1521 !important;
  border-radius: 100px;
  font-weight: 600; font-size: 13px;
  text-decoration: none; white-space: nowrap; flex-shrink: 0;
  transition: all 0.3s;
}
.tp-sticky-bar-cta:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(184,148,63,0.4); }
.tp-sticky-bar-close {
  background: none; border: none; cursor: pointer;
  color: rgba(255,255,255,0.5); font-size: 22px; line-height: 1;
  padding: 4px 8px; flex-shrink: 0; transition: color 0.3s;
}
.tp-sticky-bar-close:hover { color: #fff; }
@media (max-width: 540px) {
  .tp-sticky-bar { padding: 10px 14px; gap: 10px; }
  .tp-sticky-bar-text { font-size: 12px; }
  .tp-sticky-bar-cta { padding: 8px 14px; font-size: 12px; }
}
body.has-sticky-bar { padding-bottom: 80px; }

/* ═══════════════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATIONS — 320px à 768px
   Compactage des sections lourdes pour scroll fluide sur petit écran.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Sections — paddings resserrés */
  .tpk-section, .section { padding: clamp(56px, 10vw, 80px) 20px !important; }
  .tpk-wrap, .tpk-wrap-narrow, .wrap { padding: 0 !important; }

  /* Titles — typographie adaptée mobile */
  .tpk-title { font-size: clamp(28px, 8vw, 42px) !important; line-height: 1.1 !important; }
  .section-title { font-size: clamp(28px, 7vw, 40px) !important; line-height: 1.1 !important; }
  .tpk-lede, .section-lede { font-size: 15px !important; line-height: 1.6 !important; }
  .tpk-eyebrow, .eyebrow { font-size: 10px !important; padding: 5px 12px !important; margin-bottom: 14px !important; }

  /* Hero compact mobile */
  .hero, .tpk-hero { padding: 96px 20px 60px !important; }
  .hero-title { font-size: clamp(34px, 9vw, 56px) !important; line-height: 1.05 !important; }
  .hero-lede, .hero-lede-sub { font-size: 15px !important; line-height: 1.55 !important; }
  .hero-trust { gap: 10px !important; flex-wrap: wrap; }
  .hero-trust-item { font-size: 10px !important; }
  .hero-trust-item:not(:first-child)::before { display: none; }

  /* Image sections — stack vertical */
  .tpk-image-grid { gap: 28px !important; }
  .tpk-image-text { padding: 0 !important; }
  .tpk-image-frame { aspect-ratio: 16/10 !important; }
  .tpk-image-bullets li { padding: 10px 0 10px 24px !important; font-size: 14px !important; }

  /* Data viz — 2x2 grid au lieu de 4x1 */
  .tpk-data-viz { grid-template-columns: 1fr 1fr !important; gap: 1px !important; }
  .tpk-stat { padding: 24px 16px !important; }
  .tpk-stat-value { font-size: clamp(32px, 9vw, 48px) !important; }
  .tpk-stat-desc { font-size: 12px !important; line-height: 1.45 !important; }

  /* Pull quote — typographie réduite */
  .tpk-pull-quote { padding: 60px 20px !important; }
  .tpk-pull-quote-text { font-size: clamp(20px, 5.5vw, 28px) !important; line-height: 1.3 !important; }
  .tpk-pull-quote::before { font-size: clamp(80px, 18vw, 140px) !important; }

  /* Comparison tiers — stack 1 colonne */
  .tpk-comparison { grid-template-columns: 1fr !important; gap: 14px !important; }
  .tpk-tier { padding: 28px 22px !important; }

  /* Testimonials — carrousel cards plus petites */
  .tpk-testimonials-track { gap: 14px !important; padding: 8px 0 24px !important; }
  .tpk-testimonial { flex: 0 0 min(340px, 85vw) !important; padding: 28px 22px !important; }
  .tpk-testimonial-quote { font-size: 17px !important; }

  /* Founder — stack vertical */
  .tpk-founder { grid-template-columns: 1fr !important; gap: 32px !important; }
  .tpk-founder-portrait { aspect-ratio: 4/3 !important; }
  .tpk-founder-name { font-size: clamp(36px, 10vw, 56px) !important; }
  .tpk-founder-bio { font-size: 15px !important; line-height: 1.6 !important; }
  .tpk-founder-signature { font-size: 22px !important; }

  /* CTA Bandeau */
  .tpk-cta-bandeau { padding: 60px 20px !important; }
  .tpk-cta-bandeau-title { font-size: clamp(36px, 11vw, 64px) !important; }
  .tpk-cta-bandeau-sub { font-size: 17px !important; }
  .tpk-cta-bandeau-btn { padding: 14px 28px !important; font-size: 14px !important; }

  /* FAQ premium — paddings réduits */
  .tpk-faq-item summary { padding: 20px 40px 20px 0 !important; font-size: 17px !important; }
  .tpk-faq-item-answer { padding: 0 40px 24px 0 !important; font-size: 15px !important; }

  /* Freebie stack — 1 colonne sur mobile */
  .tpk-freebie-stack { grid-template-columns: 1fr !important; gap: 12px !important; }
  .tpk-freebie { padding: 24px 22px !important; }
  .tpk-freebie-name { font-size: 26px !important; }
  .tpk-freebie-desc { font-size: 13px !important; }

  /* Tableaux comparatifs — scroll horizontal sur mobile */
  table { display: block !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  table thead th, table tbody td { white-space: normal; }

  /* Cards anciennes (services premium, parcours, scan-card) */
  .service-card, .parcours-step, .proof-card, .scan-card-body {
    padding: 28px 22px !important;
  }
  .services-grid, .parcours-grid, .proof-grid, .scans-grid {
    gap: 14px !important;
  }

  /* Cas client avant/après — stack 1 col mobile */
  .tpk-section .tpk-wrap > div[style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

@media (max-width: 480px) {
  /* Très petit écran — encore plus compact */
  .tpk-section, .section { padding: 48px 18px !important; }
  .tpk-title { font-size: clamp(26px, 7.5vw, 34px) !important; }
  .hero-title { font-size: clamp(32px, 9vw, 44px) !important; }
  .tpk-hero, .hero { padding: 88px 18px 48px !important; }

  /* Data viz : 1 colonne sur très petit */
  .tpk-data-viz { grid-template-columns: 1fr !important; }

  /* Hero trust — afficher seulement les 3 premiers items */
  .hero-trust-item:nth-child(n+4) { display: none !important; }

  /* Sticky bar plus discrète */
  .tp-sticky-bar { padding: 8px 12px !important; gap: 8px !important; }
  .tp-sticky-bar-text { font-size: 11px !important; }
  .tp-sticky-bar-cta { padding: 7px 12px !important; font-size: 11px !important; }
}
