/* === STRUCTURE & LAYOUT === */
.container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; }
.container-header { display: flex; justify-content: space-between; align-items: center; }
.content { padding: 2rem 1rem; }
.row { display: flex; flex-wrap: wrap; gap: 1rem; }
.col-md-6 { width: 50%; }
.columns-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.fade-in { animation: fadeIn 1s ease-in-out both; }
.bg-light { background-color: #f7f9fb; }
.bg-alt { background-color: #eef5fb; }
/* === TYPOGRAPHIE & TITRES === */
h1, h2, h3 { font-weight: 700; line-height: 1.3; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.highlight { background: yellow; }
.emphasis { font-style: italic; }
/* === NAVIGATION & CONVERSION === */
.site-header { background: #fff; border-bottom: 1px solid #eee; padding: 0.5rem 1rem; }
.site-nav { display: flex; gap: 1rem; }
.burger-menu span { background: #333; height: 3px; display: block; margin: 5px 0; }
.cta-button {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.75rem 1.5rem;
  background-color: #007BFF;
  color: white;
  border-radius: 4px;
  text-decoration: none;
  font-weight: bold;
}
.cta-link { color: #005bb5; text-decoration: none; }
.cta-sticky { position: fixed; bottom: 0; width: 100%; background: #0074d9; color: white; }
/* === CONTENU ÉDITORIAL & CLINIQUE === */
.hero-section, .hero {
  position: relative;
  width: 100%;
  height: 60vh;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.card-info { border: 1px solid #ccc; padding: 1rem; border-radius: 6px; background: #fff; }
.image-block img { max-width: 100%; height: auto; display: block; }
.blockquote { font-style: italic; margin: 1rem 0; border-left: 4px solid #ccc; padding-left: 1rem; }
.quote-patient { font-size: 0.9rem; color: #666; }
.encart-rdv, .encart-comparatif { background: #e8f0fe; padding: 1rem; border-radius: 6px; }
/* === SECTIONS PAGES HTML === */
.presentation, .approche, .philosophie, .consultation, .douleur, .sport {
  padding: 2rem 1rem;
  max-width: 1200px;
  margin: 0 auto;
}
.temoignages { padding: 2rem 1rem; background-color: #f7f9fb; }
/* === FAQ & DÉTAILS === */
.faq-block { border-top: 1px solid #ddd; padding-top: 1rem; }
.faq-item { margin-bottom: 1rem; }
.faq-title { font-weight: 600; cursor: pointer; }
.faq-content { display: none; padding-top: 0.5rem; }
details summary { cursor: pointer; font-weight: bold; }
/* === COMPOSANTS FONCTIONNELS === */
.timeline-step { display: flex; align-items: center; }
.step-icon { width: 40px; height: 40px; background: #0074d9; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.grid-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
.link-card { border: 1px solid #ddd; border-radius: 6px; padding: 1rem; background: white; }
.image-encadre { border: 1px solid #ccc; padding: 0.5rem; background: #fff; }
.hover-scale:hover { transform: scale(1.05); transition: 0.3s ease; }
.zoom-hover:hover { transform: scale(1.02); }
/* === BLOCS HTML === */
.bloc-symptomes, .bloc-approche, .bloc-causes, .bloc-focus, .bloc-video, .bloc-temoignages,
.bloc-traitement, .bloc-tx, .bloc-education, .bloc-maillage-interne {
  padding: 2rem 1rem; margin: 2rem 0; background: #ffffff;
  border: 1px solid #ddd; border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.bloc-symptomes h2, .bloc-approche h2, .bloc-causes h2, .bloc-focus h2, .bloc-video h2,
.bloc-temoignages h2, .bloc-traitement h2, .bloc-tx h2, .bloc-education h2,
.bloc-maillage-interne h2 {
  font-size: 1.25rem; font-weight: 700; margin-bottom: 1rem;
}
.bloc-video iframe, .video-responsive iframe {
  width: 100%; height: 360px; max-width: 100%; border: none; display: block;
}
/* === FOOTER === */
.site-footer, footer.infos {
  background-color: #f7f9fb; padding: 2rem 1rem; font-size: 0.95rem; color: #333;
  border-top: 2px solid #e0e0e0;
}
.footer-top, .footer-middle { text-align: center; margin-bottom: 1rem; }
.footer-middle ul { list-style: none; padding: 0; margin: 0; }
.footer-middle li { display: inline-block; margin: 0.5rem 1rem; }
.footer-middle a {
  color: #005bb5; text-decoration: none; font-weight: 500;
  background-color: rgba(238, 245, 251, 0.85);
  padding: 0.4rem 0.8rem; border-radius: 6px; display: inline-block;
}
.footer-middle a:hover { background-color: rgba(215, 232, 249, 0.95); }
.footer-bottom { text-align: center; font-size: 0.85rem; color: #444; }
@media (max-width: 480px) {
  .footer-middle li { display: block; margin: 0.5rem 0; }
}
/* === ACCESSIBILITÉ === */
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); border: 0;
}
a:focus, button:focus, .cta-button:focus, .burger-menu:focus {
  outline: 3px solid #ffbf47; outline-offset: 2px;
}
.skip-link {
  position: absolute; top: -40px; left: 0;
  background: #0074d9; color: white;
  padding: 8px 16px; z-index: 1000;
  transition: top 0.3s ease;
}
.skip-link:focus { top: 0; }

/* === STYLES AJOUTÉS : MANQUANTS DETECTÉS === */
.bloc-action { /* TODO: style pour .bloc-action */ }

.bloc-alternative-chirurgie { /* TODO: style pour .bloc-alternative-chirurgie */ }

.faq { /* TODO: style pour .faq */ }

.faq-list { /* TODO: style pour .faq-list */ }

.focus-visible { /* TODO: style pour .focus-visible */ }

.h1 { /* TODO: style pour .h1 */ }

.h2 { /* TODO: style pour .h2 */ }

.has-dropdown { /* TODO: style pour .has-dropdown */ }

.header-intro { /* TODO: style pour .header-intro */ }

.image-block { /* TODO: style pour .image-block */ }

.internal-links { /* TODO: style pour .internal-links */ }

.intro { /* TODO: style pour .intro */ }

.logo { /* TODO: style pour .logo */ }

.mentions { /* TODO: style pour .mentions */ }

.nav-cta { /* TODO: style pour .nav-cta */ }

.nav-level-1 { /* TODO: style pour .nav-level-1 */ }

.nav-level-2 { /* TODO: style pour .nav-level-2 */ }

.reference-block { /* TODO: style pour .reference-block */ }

.v16 { /* TODO: style pour .v16 */ }

.video-block { /* TODO: style pour .video-block */ }

.video-responsive { /* TODO: style pour .video-responsive */ }

.slider-narratif {
  display: flex;
  overflow-x: auto;
  gap: 1rem;
  padding: 2rem 0;
}
.carte-slider {
  min-width: 240px;
  background: white;
  padding: 1rem;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  flex: 0 0 auto;
}
.liens-utiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}
.card {
  background: #fff;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  margin-bottom: 2rem;
}
.temoignage {
  background: #f1f4f7;
  padding: 1.5rem;
  border-left: 4px solid #004a88;
  font-style: italic;
  border-radius: 10px;
}
.temoignage-nom {
  text-align: right;
  margin-top: 0.5rem;
  font-weight: 500;
}
.icon-symptome::before {
  content: '';
  display: inline-block;
  background-image: url("data:image/svg+xml;utf8,<svg fill='black' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='10'/></svg>");
  width: 20px;
  height: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.5rem;
  vertical-align: middle;
}
.bouton-principal {
  display: inline-block;
  background-color: #004a88;
  color: #fff;
  padding: 0.8rem 1.2rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  margin-top: 1rem;
}

/* === PATCH : COMPLÉMENTS BLOCS MANQUANTS === */
.slider-narratif {
  display: flex;
  overflow-x: auto;
  gap: 1rem;
  padding: 2rem 0;
}
.slider-narratif .carte-slider {
  min-width: 240px;
  background: white;
  padding: 1rem;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  flex: 0 0 auto;
}
.liens-utiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}
.liens-utiles .item {
  background: white;
  padding: 1rem;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  text-align: center;
}
.card {
  background: #fff;
  padding: 2rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  margin-bottom: 2rem;
}
.card h3 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}
blockquote.temoignage {
  background: #f1f4f7;
  padding: 1.5rem;
  border-left: 4px solid #004a88;
  font-style: italic;
  border-radius: 10px;
}
.temoignage-nom {
  text-align: right;
  margin-top: 0.5rem;
  font-weight: 500;
}
.icon-symptome::before {
  content: '';
  display: inline-block;
  background-image: url("data:image/svg+xml;utf8,<svg fill='black' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='10'/></svg>");
  width: 20px;
  height: 20px;
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.5rem;
  vertical-align: middle;
}
a.bouton-principal {
  display: inline-block;
  background-color: #004a88;
  color: #fff;
  padding: 0.8rem 1.2rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  margin-top: 1rem;
}