/* Dr Michael Solé — feuille de style du site (dérivée du design system "classical") */

:root {
  --color-bg: #f3f2f2;
  --color-surface: #eae9e9;
  --color-text: #201f1d;
  --color-accent: #b68235;
  --color-divider: rgba(32, 31, 29, 0.16);

  --color-neutral-600: #7d7979;
  --color-neutral-700: #605d5d;
  --color-neutral-800: #444141;

  --color-accent-100: #fff3e4;
  --color-accent-700: #7d5411;
  --color-accent-800: #5a3b0a;
  --color-accent-900: #3a270d;

  --font-heading: "Cormorant Garamond", Georgia, serif;
  --font-body: "Lora", Georgia, serif;
  --font-heading-weight: 600;

  --space-1: 5px;
  --space-2: 9px;
  --space-3: 14px;
  --space-4: 18px;
  --space-6: 28px;
  --space-8: 37px;

  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 7px;

  --shadow-sm: 0 1px 2px rgba(45, 43, 43, 0.14);
  --shadow-md: 0 3px 10px rgba(45, 43, 43, 0.16);

  --max-width: 1180px;
}

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

html { overflow-x: hidden; }

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
}

h1, h2, h3 { font-family: var(--font-heading); font-weight: var(--font-heading-weight); line-height: 1.12; margin: 0; }
h1 { font-size: clamp(32px, 4.2vw, 52px); }
h2 { font-size: 30px; margin-bottom: 28px; }

p { margin: 0; }

a { color: var(--color-accent-700); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: var(--color-accent-900); }

.body-text {
  max-width: 760px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--color-neutral-800);
  margin: 0 0 18px;
}

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  cursor: pointer; text-decoration: none; min-height: 44px;
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 14px; line-height: 1.2;
  border-radius: var(--radius-md);
  padding: var(--space-2) calc(var(--space-3) * 1.2);
  border: 1px solid transparent;
}
.btn-primary {
  background: var(--color-accent); color: var(--color-bg); border-color: var(--color-accent);
  box-shadow: var(--shadow-sm);
}
.btn-primary:hover { background: var(--color-accent-800); border-color: var(--color-accent-800); color: var(--color-bg); box-shadow: var(--shadow-md); }
.btn-secondary { color: var(--color-text); border-color: var(--color-divider); }
.btn-secondary:hover { background: rgba(32, 31, 29, 0.07); }
.hero-phone { font-family: var(--font-body); font-weight: 400; }
.btn-ghost { color: var(--color-accent-700); padding-inline: var(--space-1); text-decoration: none; }
.btn-ghost:hover { background: rgba(182, 130, 53, 0.1); color: var(--color-accent-900); }
.btn-sfcd { background: #cb2a2d; color: #fff; border-color: #cb2a2d; }
.btn-sfcd:hover { background: #a82124; border-color: #a82124; }
.btn-snfcp { background: #005299; color: #fff; border-color: #005299; }
.btn-snfcp:hover { background: #003d73; border-color: #003d73; }

/* Mention "Doctolib" dans les CTA — logo officiel (tracé), recoloré en
   currentColor pour suivre la couleur du texte du bouton (thème du site) */
.doctolib-logo {
  display: inline-block;
  width: 62px; height: 15px;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0wLjEzIDMyNy42OCA4NjQuMTkgMjA4LjcyIj48cGF0aCBkPSJNNTUuOSA1MzYuNGMtNDIuOSAwLTQ5LjQtNS00Ny4yLTE0LjYgMS42LTYuOCAzNi43LTEzNy42IDM3LjUtMTQwLjYgMy41LTE0IDE4LjItMTAuNiAxOC44LTEwLjUuNC4xLjcuNS42LjktMS4zIDExLjItMjEuOSAxMjEuNy0yMi4xIDEyMy4xLTEuNyAxMC45IDAgMTIgMTMuNSAxMiA2Ni43IDAgOTAuOS00Ni4xIDk3LjUtODIuOSAxMS40LTYzLjgtNTEuMi04Mi45LTEzOC41LTc1LjEtLjguMS02LjYuNC05LjEtLjgtMy4zLTEuNi02LjEtNS42LTYuOC03LjgtLjMtLjgtLjMtMS42IDAtMi4xLjItLjMuNC0uNi43LS43IDI4LjItNSA2Ny40LTExLjcgOTIuNy05IDk1LjggMTAuMSA5NS44IDcwLjQgOTAuMiAxMDAuOS0zLjEgMTcuNy0xOS4zIDEwNy4yLTEyNy44IDEwNy4yek0zOTkuMyA0OTdjLTYuMiAyMS4xLTI1LjEgMzUuNy00Ny4xIDM2LjMtMTguNSAxLTM3LTkuNS00NS4xLTI1LjctMy4yLTYuMS01LTEyLjctNS43LTIwLjUtMi44IDEuMy01LjcgMi41LTguNiAzLjQtMy44IDEwLjctMTAuNCAyMC42LTE5LjUgMjcuNC0xOS41IDE0LjUtNDUuOSAxOC43LTY5LjYgNS43LTI5LjItMjAuMS0yNS42LTYwLjYtNS4yLTg0LjQgMjAuMy0yMy44IDU3LjYtMjcuOCA3Ni4zLTE2LjEgMTIuNyA4LjIgMTkuNSAyMi4zIDIxLjMgMzcgMi43LTEuOSA1LjEtNC4zIDcuOS03LjUgMi42LTMuMSA3LjctMTAuNyA3LjctMTAuNyAzLTQuNiA2LjctOC45IDEwLjgtMTIuNiA4LjYtNy41IDE5LjUtMTEuMiAzMC41LTExLjIgOS41IDAgMTkuMiAyLjggMjcuNiA4LjUgMi43IDEuOCAzLjQgMi44IDIuNSA0LjMtMS4yIDIuMi0yLjUgNC4yLTQuMSA2LjEtMyAzLjYtNi4xIDIuMy04LjIgMS40LS4zLS4xLS42LS4zLS45LS40LTkuNC0zLjMtMTcuMS0yLjYtMjUuMSAyLjItMTcuMyAxMC41LTE5LjkgMzAuOS0xNi43IDQ2LjUgMy4zIDE1LjkgMTIuMSAyMS4zIDE5IDIzIDEyLjYgMy4yIDI5LjUtMy42IDQwLjItMTYuMiAzLjItMy44IDguMS0xLjMgMTEuNiAxLjUuMi4xLjMuMi40LjMuNS42IDAgMS42IDAgMS43em0tMTMxLjUtNTMuNmMtMTIuOS0xNi0zNi4zLTEwLjYtNDkuNSA0LjItMTMuMiAxNC45LTEzLjQgMzkuMyAxIDQ5LjYgMTMuNSA5LjYgMzUgNC41IDQ1LjYtMTAuOSA3LjQtMTAuOCAxNC4xLTI5IDIuOS00Mi45ek01OTAuNiA0NzdjLTEuOCAxNS42LTkuOCAzMS40LTIyLjYgNDEtMTkuNSAxNC41LTQ1LjkgMTguNy02OS42IDUuNy0zLTIuMS01LjctNC40LTgtNi45LTQgMy42LTguNyA3LjItMTMuOSAxMC4zLTE1LjkgOS42LTM4LjEgNy4xLTUxLjgtNS43LTguNy03LjgtMTIuOS0yMC43LTExLjMtMzMuOCAxLjQtMTEuNiAxMS44LTUxLjYgMjEuNS04Ny40LTkuNS4zLTE3LjggMC0yMi40LTIuMi03LjQtMy42LTUuNi0xNS45LTQuOS0xOS40LjEtLjUuNi0uOSAxLjEtLjkgMy42IDAgMTcuMi0uMSAzMi4zLS4yIDYuMy0yMyAxMS4zLTQwLjMgMTEuMy00MC4zIDEuOC02LjEgOC41LTkuNCAxNC42LTkuNCAxLjIgMCAyLjMuMSAzLjQuNC40LjEuNi41LjUgMS0xLjYgOS45LTQuNyAyNy45LTguNCA0OC4zIDguMiAwIDE1LjYuMSAyMC42LjIgMTcuNi40IDQwLjggMS40IDQ1LjUgMS42LjUgMCAxIC40IDEuMS45LjUgMi4yLjkgNy43LTUuNCAxMS4zLTUuNCAzLTQ0LjYgNS44LTYyLjYgNy0xIC4xLTEuOS4xLTIuOS4yLTcuNSA0MS40LTE1LjUgODQuMy0xNS45IDg2LjItMiAxMCA0LjMgMTYuMSA5LjkgMTcuMyAxMC4zIDIuMiAxOC43LTIuMiAyNS43LTguNi0zLjktMTguNyAyLjItMzkuNyAxNC43LTU0LjQgMjAuMy0yMy44IDU3LjYtMjcuOCA3Ni4zLTE2LjEgMTcuNiAxMS41IDIzLjggMzQuMSAyMS4yIDUzLjl6bS0yOC0zMy42Yy0xMi45LTE2LTM2LjMtMTAuNi00OS41IDQuMi0xMy4yIDE0LjktMTMuNCAzOS4zIDEgNDkuNiAxMy41IDkuNiAzNSA0LjUgNDUuNi0xMC45IDcuNC0xMC44IDE0LjEtMjkgMi45LTQyLjl6bTE0NS4yLTUwLjFjNS44IDMuOCAxMy4xIDIgMTcuOC0xLjUgMy4yLTIuNCA1LjMtNi4zIDUuOC0xMC41LjYtNC40LS41LTEwLjYtNS40LTEzLjgtMS45LTEuMi00LjEtMS43LTYuNC0xLjctMy42IDAtNy4zIDEuMy0xMC4yIDMtLjkuNi0xLjYgMS4yLTIuMyAyLS40LjUtLjggMS4xLTEuMSAxLjctNC4xIDcuMi01IDE2LjEgMS44IDIwLjh6bTEzNC40IDMwYy0xMy4zLTguNC0zNi4yLTguNy01NS42LjUgNC4yLTIzLjEgMTMuMy04Ni41IDE0LjYtOTQuNS4xLS4zIDAtLjUtLjEtLjctLjEtLjItLjMtLjMtLjUtLjMtMS4xLS4yLTIuMi0uNC0zLjQtLjQtNi4xIDAtMTIuOCAzLjMtMTQuNiA5LjQgMCAwLTM1LjYgMTQzLjctMzYuOCAxNTAuNC04LjIgMTIuNy0xOC4xIDE3LjYtMjguOSAxNC4zLTktMi44LTguNS05LjctOC4yLTEzLjEuNS01LjQgOS44LTU4LjcgMTEuNS03MC42LjEtLjgtLjQtMS41LTEuMi0xLjctMS45LS4zLTMuOS0uNS01LjktLjUtNi42IDAtMTMuNCAyLjQtMTcuNCAxMi40LS4xLjQtMTEuOCA0MS4zLTE0IDUwLjEtLjMgMS4xLS41IDIuMi0uOCAzLjMtOC42IDEzLTIxLjkgMjQuNC00MS4xIDIwLjMtNS42LTEuMi0xMS44LTUuMy05LjktMTcuMy41LTMuMiAxOC4xLTEwNSAyMy4yLTEzNy41LjEtLjUtLjEtLjktLjUtMS0xLjEtLjMtMi4zLS40LTMuNC0uNC02LjEgMC0xMi43IDMuMy0xNC42IDkuNCAwIDAtMjguMSAxMDMuMS0zNC4xIDEzMi4yLTIuNyAxMi44LS44IDI1LjMgMTAuNiAzNS40IDEwLjYgOS41IDMxIDEyLjUgNDcuOSA1LjQgOS44LTQuMSAxOC0xMC44IDIzLjctMTYuNiA3LjQgMTQuOCAyNS4xIDI0LjQgNDEuNCAyMC41IDEyLjYtMyAyMi4yLTEyLjEgMjguNS0xOS43IDIuNSAzLjYgNS40IDYuOCA4LjUgOS4zIDE0LjUgMTEuNSAzNSAxMy42IDUzLjYgOC4xIDkuNC0yLjEgMTguNC02LjIgMjYuMi0xMiAxMi44LTkuNyAyMC45LTI1LjQgMjIuNi00MSAyLjYtMTkuOC0zLjctNDIuNC0yMS4zLTUzLjd6bS05LjIgNjUuM2MtMTAuNSAxNS40LTM0LjYgMjEuMi00OC4xIDExLjYtMTQuNS0xMC4zLTExLjctMzUuNSAxLjUtNTAuMyAxMy4yLTE0LjkgMzYuNi0yMC4yIDQ5LjUtNC4yIDExLjIgMTMuOCA0LjUgMzItMi45IDQyLjl6IiBmaWxsPSIjRkZGIi8+PC9zdmc+");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0wLjEzIDMyNy42OCA4NjQuMTkgMjA4LjcyIj48cGF0aCBkPSJNNTUuOSA1MzYuNGMtNDIuOSAwLTQ5LjQtNS00Ny4yLTE0LjYgMS42LTYuOCAzNi43LTEzNy42IDM3LjUtMTQwLjYgMy41LTE0IDE4LjItMTAuNiAxOC44LTEwLjUuNC4xLjcuNS42LjktMS4zIDExLjItMjEuOSAxMjEuNy0yMi4xIDEyMy4xLTEuNyAxMC45IDAgMTIgMTMuNSAxMiA2Ni43IDAgOTAuOS00Ni4xIDk3LjUtODIuOSAxMS40LTYzLjgtNTEuMi04Mi45LTEzOC41LTc1LjEtLjguMS02LjYuNC05LjEtLjgtMy4zLTEuNi02LjEtNS42LTYuOC03LjgtLjMtLjgtLjMtMS42IDAtMi4xLjItLjMuNC0uNi43LS43IDI4LjItNSA2Ny40LTExLjcgOTIuNy05IDk1LjggMTAuMSA5NS44IDcwLjQgOTAuMiAxMDAuOS0zLjEgMTcuNy0xOS4zIDEwNy4yLTEyNy44IDEwNy4yek0zOTkuMyA0OTdjLTYuMiAyMS4xLTI1LjEgMzUuNy00Ny4xIDM2LjMtMTguNSAxLTM3LTkuNS00NS4xLTI1LjctMy4yLTYuMS01LTEyLjctNS43LTIwLjUtMi44IDEuMy01LjcgMi41LTguNiAzLjQtMy44IDEwLjctMTAuNCAyMC42LTE5LjUgMjcuNC0xOS41IDE0LjUtNDUuOSAxOC43LTY5LjYgNS43LTI5LjItMjAuMS0yNS42LTYwLjYtNS4yLTg0LjQgMjAuMy0yMy44IDU3LjYtMjcuOCA3Ni4zLTE2LjEgMTIuNyA4LjIgMTkuNSAyMi4zIDIxLjMgMzcgMi43LTEuOSA1LjEtNC4zIDcuOS03LjUgMi42LTMuMSA3LjctMTAuNyA3LjctMTAuNyAzLTQuNiA2LjctOC45IDEwLjgtMTIuNiA4LjYtNy41IDE5LjUtMTEuMiAzMC41LTExLjIgOS41IDAgMTkuMiAyLjggMjcuNiA4LjUgMi43IDEuOCAzLjQgMi44IDIuNSA0LjMtMS4yIDIuMi0yLjUgNC4yLTQuMSA2LjEtMyAzLjYtNi4xIDIuMy04LjIgMS40LS4zLS4xLS42LS4zLS45LS40LTkuNC0zLjMtMTcuMS0yLjYtMjUuMSAyLjItMTcuMyAxMC41LTE5LjkgMzAuOS0xNi43IDQ2LjUgMy4zIDE1LjkgMTIuMSAyMS4zIDE5IDIzIDEyLjYgMy4yIDI5LjUtMy42IDQwLjItMTYuMiAzLjItMy44IDguMS0xLjMgMTEuNiAxLjUuMi4xLjMuMi40LjMuNS42IDAgMS42IDAgMS43em0tMTMxLjUtNTMuNmMtMTIuOS0xNi0zNi4zLTEwLjYtNDkuNSA0LjItMTMuMiAxNC45LTEzLjQgMzkuMyAxIDQ5LjYgMTMuNSA5LjYgMzUgNC41IDQ1LjYtMTAuOSA3LjQtMTAuOCAxNC4xLTI5IDIuOS00Mi45ek01OTAuNiA0NzdjLTEuOCAxNS42LTkuOCAzMS40LTIyLjYgNDEtMTkuNSAxNC41LTQ1LjkgMTguNy02OS42IDUuNy0zLTIuMS01LjctNC40LTgtNi45LTQgMy42LTguNyA3LjItMTMuOSAxMC4zLTE1LjkgOS42LTM4LjEgNy4xLTUxLjgtNS43LTguNy03LjgtMTIuOS0yMC43LTExLjMtMzMuOCAxLjQtMTEuNiAxMS44LTUxLjYgMjEuNS04Ny40LTkuNS4zLTE3LjggMC0yMi40LTIuMi03LjQtMy42LTUuNi0xNS45LTQuOS0xOS40LjEtLjUuNi0uOSAxLjEtLjkgMy42IDAgMTcuMi0uMSAzMi4zLS4yIDYuMy0yMyAxMS4zLTQwLjMgMTEuMy00MC4zIDEuOC02LjEgOC41LTkuNCAxNC42LTkuNCAxLjIgMCAyLjMuMSAzLjQuNC40LjEuNi41LjUgMS0xLjYgOS45LTQuNyAyNy45LTguNCA0OC4zIDguMiAwIDE1LjYuMSAyMC42LjIgMTcuNi40IDQwLjggMS40IDQ1LjUgMS42LjUgMCAxIC40IDEuMS45LjUgMi4yLjkgNy43LTUuNCAxMS4zLTUuNCAzLTQ0LjYgNS44LTYyLjYgNy0xIC4xLTEuOS4xLTIuOS4yLTcuNSA0MS40LTE1LjUgODQuMy0xNS45IDg2LjItMiAxMCA0LjMgMTYuMSA5LjkgMTcuMyAxMC4zIDIuMiAxOC43LTIuMiAyNS43LTguNi0zLjktMTguNyAyLjItMzkuNyAxNC43LTU0LjQgMjAuMy0yMy44IDU3LjYtMjcuOCA3Ni4zLTE2LjEgMTcuNiAxMS41IDIzLjggMzQuMSAyMS4yIDUzLjl6bS0yOC0zMy42Yy0xMi45LTE2LTM2LjMtMTAuNi00OS41IDQuMi0xMy4yIDE0LjktMTMuNCAzOS4zIDEgNDkuNiAxMy41IDkuNiAzNSA0LjUgNDUuNi0xMC45IDcuNC0xMC44IDE0LjEtMjkgMi45LTQyLjl6bTE0NS4yLTUwLjFjNS44IDMuOCAxMy4xIDIgMTcuOC0xLjUgMy4yLTIuNCA1LjMtNi4zIDUuOC0xMC41LjYtNC40LS41LTEwLjYtNS40LTEzLjgtMS45LTEuMi00LjEtMS43LTYuNC0xLjctMy42IDAtNy4zIDEuMy0xMC4yIDMtLjkuNi0xLjYgMS4yLTIuMyAyLS40LjUtLjggMS4xLTEuMSAxLjctNC4xIDcuMi01IDE2LjEgMS44IDIwLjh6bTEzNC40IDMwYy0xMy4zLTguNC0zNi4yLTguNy01NS42LjUgNC4yLTIzLjEgMTMuMy04Ni41IDE0LjYtOTQuNS4xLS4zIDAtLjUtLjEtLjctLjEtLjItLjMtLjMtLjUtLjMtMS4xLS4yLTIuMi0uNC0zLjQtLjQtNi4xIDAtMTIuOCAzLjMtMTQuNiA5LjQgMCAwLTM1LjYgMTQzLjctMzYuOCAxNTAuNC04LjIgMTIuNy0xOC4xIDE3LjYtMjguOSAxNC4zLTktMi44LTguNS05LjctOC4yLTEzLjEuNS01LjQgOS44LTU4LjcgMTEuNS03MC42LjEtLjgtLjQtMS41LTEuMi0xLjctMS45LS4zLTMuOS0uNS01LjktLjUtNi42IDAtMTMuNCAyLjQtMTcuNCAxMi40LS4xLjQtMTEuOCA0MS4zLTE0IDUwLjEtLjMgMS4xLS41IDIuMi0uOCAzLjMtOC42IDEzLTIxLjkgMjQuNC00MS4xIDIwLjMtNS42LTEuMi0xMS44LTUuMy05LjktMTcuMy41LTMuMiAxOC4xLTEwNSAyMy4yLTEzNy41LjEtLjUtLjEtLjktLjUtMS0xLjEtLjMtMi4zLS40LTMuNC0uNC02LjEgMC0xMi43IDMuMy0xNC42IDkuNCAwIDAtMjguMSAxMDMuMS0zNC4xIDEzMi4yLTIuNyAxMi44LS44IDI1LjMgMTAuNiAzNS40IDEwLjYgOS41IDMxIDEyLjUgNDcuOSA1LjQgOS44LTQuMSAxOC0xMC44IDIzLjctMTYuNiA3LjQgMTQuOCAyNS4xIDI0LjQgNDEuNCAyMC41IDEyLjYtMyAyMi4yLTEyLjEgMjguNS0xOS43IDIuNSAzLjYgNS40IDYuOCA4LjUgOS4zIDE0LjUgMTEuNSAzNSAxMy42IDUzLjYgOC4xIDkuNC0yLjEgMTguNC02LjIgMjYuMi0xMiAxMi44LTkuNyAyMC45LTI1LjQgMjIuNi00MSAyLjYtMTkuOC0zLjctNDIuNC0yMS4zLTUzLjd6bS05LjIgNjUuM2MtMTAuNSAxNS40LTM0LjYgMjEuMi00OC4xIDExLjYtMTQuNS0xMC4zLTExLjctMzUuNSAxLjUtNTAuMyAxMy4yLTE0LjkgMzYuNi0yMC4yIDQ5LjUtNC4yIDExLjIgMTMuOCA0LjUgMzItMi45IDQyLjl6IiBmaWxsPSIjRkZGIi8+PC9zdmc+");
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-size: contain; mask-size: contain;
  -webkit-mask-position: left center; mask-position: left center;
  vertical-align: -3px;
}
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* CTA d'en-tête et de pied de page : logo Doctolib seul, sans libellé */
.btn-icon-only { padding: var(--space-2) var(--space-4); }
.btn-icon-only .doctolib-logo { width: 78px; height: 19px; vertical-align: -4px; }

/* Cards */
.card {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-4); border-radius: var(--radius-md);
  border: 1px solid var(--color-divider);
}
.card-kicker { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent-700); margin: 0; }
.card-title { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 18px; line-height: 1.2; margin: 0; }
.card-body { margin: 0; font-size: 14px; color: var(--color-neutral-800); }
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }

/* Chips */
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.chip {
  display: inline-flex; align-items: center; min-height: 44px; padding: 6px 16px;
  border: 1px solid var(--color-accent); border-radius: var(--radius-md);
  font-family: var(--font-body); font-size: 14px; color: var(--color-accent-700);
  text-decoration: none;
}
.chip:hover { background: var(--color-accent-100); color: var(--color-accent-900); }

/* Layout helpers */
.section { max-width: var(--max-width); margin: 0 auto 64px; padding: 0 24px; }
.section-narrow { max-width: 760px; }

/* Header */
.site-header {
  border-bottom: 1px solid var(--color-divider);
  background: var(--color-bg);
  position: sticky; top: 0; z-index: 20;
}
.header-inner {
  max-width: var(--max-width); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 16px 24px;
}
.brand { text-decoration: none; display: flex; flex-direction: row; align-items: center; gap: 10px; line-height: 1.15; }
.brand-logo { width: 40px; height: 40px; flex-shrink: 0; }
.brand-text { display: flex; flex-direction: column; }
.brand-name { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 22px; color: var(--color-text); }
.brand-tag { font-family: var(--font-body); font-size: 12px; letter-spacing: 0.04em; color: var(--color-neutral-700); }

.nav-main { display: flex; align-items: center; gap: 18px; white-space: nowrap; }
.nav-main > a {
  text-decoration: none; color: var(--color-text); font-family: var(--font-body); font-size: 15px;
}
.nav-main > a:hover { color: var(--color-accent-700); }

.nav-dropdown { position: relative; }
.nav-dropdown-trigger {
  background: none; border: none; cursor: pointer; padding: 0;
  color: var(--color-text); font-family: var(--font-body); font-size: 15px;
  display: inline-flex; align-items: center; gap: 4px;
}
.nav-dropdown-panel {
  position: absolute; top: 100%; left: -16px; margin-top: 0;
  min-width: 220px; padding: 10px 0; display: none; flex-direction: column;
  background: var(--color-bg);
}
.nav-dropdown-panel a {
  padding: 8px 18px; text-decoration: none; color: var(--color-text);
  font-family: var(--font-body); font-size: 14px;
}
.nav-dropdown-panel a:hover { color: var(--color-accent-700); background: rgba(182, 130, 53, 0.08); }
.nav-dropdown.is-open .nav-dropdown-panel { display: flex; }

.header-actions { display: flex; align-items: center; gap: 12px; }
.hamburger {
  display: none; background: none; border: 1px solid var(--color-divider);
  border-radius: var(--radius-sm); width: 40px; height: 40px;
  align-items: center; justify-content: center; cursor: pointer;
  color: var(--color-text);
}

.mobile-panel {
  display: none; flex-direction: column; gap: 2px;
  padding: 8px 24px 20px; border-top: 1px solid var(--color-divider);
}
.mobile-panel a { padding: 10px 0; text-decoration: none; color: var(--color-text); font-family: var(--font-body); font-size: 15px; }
.mobile-panel .mobile-sublink { padding: 6px 0 6px 12px; font-size: 14px; }
.mobile-group-label {
  padding: 10px 0 2px; font-family: var(--font-body); font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-neutral-600);
}
.mobile-cta { margin-top: 12px; text-align: center; }
.site-header.is-mobile-open .mobile-panel { display: flex; }

@media (max-width: 1179px) {
  .nav-main, .nav-cta { display: none; }
  .hamburger { display: flex; }
}

/* Hero */
.hero {
  max-width: var(--max-width); margin: 0 auto; padding: 64px 24px 48px;
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 48px; align-items: center;
}
@media (max-width: 1179px) { .hero { grid-template-columns: 1fr; } }

.eyebrow {
  font-family: var(--font-body); font-size: 13px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--color-accent-700); margin: 0 0 14px;
}
.hero h1 { margin: 0 0 20px; color: var(--color-text); }
.hero-lead { font-size: 18px; line-height: 1.5; color: var(--color-neutral-800); margin: 0 0 24px; }
.hero-tagline { font-family: var(--font-heading); font-style: italic; font-size: 20px; color: var(--color-accent-700); margin: 0 0 4px; }
.hero-tagline-en { font-size: 15px; color: var(--color-neutral-600); margin: 0 0 32px; }
.body-text-en { font-style: italic; font-size: 15px; color: var(--color-neutral-600); margin: 8px 0 0; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* Image placeholders (à remplacer par de vraies photos) */
.img-frame { border-radius: var(--radius-md); overflow: hidden; }
.img-frame--framed { border-radius: 22px; border: 2px solid var(--color-accent); }
.photo-framed { border-radius: 22px; border: 2px solid var(--color-accent); overflow: hidden; margin-top: 20px; }
.photo-framed img { width: 100%; height: auto; display: block; }
.img-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.img-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.img-frame--portrait { aspect-ratio: 4 / 5; }
.img-frame--wide { aspect-ratio: 16 / 10; }
.img-placeholder {
  width: 100%; height: 100%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px;
  background: var(--color-surface); border: 2px dashed var(--color-divider);
  color: var(--color-neutral-700); text-align: center; padding: 24px;
  font-size: 13px;
}
.img-placeholder--logo {
  width: 120px; height: 64px; border-radius: var(--radius-sm); font-size: 11px; padding: 8px;
}
.logo-row { display: flex; gap: 20px; align-items: center; margin-top: 20px; }

/* Urgence */
.urgence-section { max-width: var(--max-width); margin: 0 auto 56px; padding: 0 24px; }
.urgence-card { border-color: #c28d41; flex-direction: row; gap: 16px; align-items: flex-start; }
.urgence-icon { flex-shrink: 0; margin-top: 2px; color: var(--color-accent-700); }
.urgence-card .card-title { margin: 0 0 6px; }

/* Expertise */
.expertise-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 28px; }

/* Pratique */
.pratique-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.pratique-more { margin-top: 24px; display: inline-block; }

/* Hospital section */
.hospital-section { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 48px; align-items: center; }
.hospital-section h2 { margin-bottom: 16px; }
@media (max-width: 1179px) { .hospital-section { grid-template-columns: 1fr; } }

/* Footer */
.site-footer { border-top: 1px solid var(--color-divider); background: var(--color-surface); margin-top: 32px; }
.footer-grid {
  max-width: var(--max-width); margin: 0 auto; padding: 48px 24px;
  display: grid; grid-template-columns: minmax(220px, 1fr) minmax(320px, 1.8fr) minmax(220px, 1fr); gap: 24px;
  align-items: stretch;
}
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr; }
}
.footer-grid > div {
  background: var(--color-bg);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.footer-name { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 20px; margin: 0 0 10px; }
.footer-brand { text-align: center; }
.footer-logo { display: block; width: fit-content; margin: 0 auto 18px; }
.footer-logo img { height: 112px; width: auto; display: block; }
.footer-text { font-size: 14px; line-height: 1.6; color: var(--color-neutral-700); margin: 0; }
.footer-label { font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-neutral-600); margin: 0 0 10px; }
.footer-sitemap { line-height: 1.8; color: var(--color-neutral-800); }
.footer-bottom {
  border-top: 1px solid var(--color-divider); padding: 18px 24px; text-align: center;
  font-size: 12px; color: var(--color-neutral-600);
}

/* Carte "Contact & rendez-vous" — fiche façon i3ps : photo + nom, puis 4 boutons
   qui se touchent (bordures partagées, pas d'espace) au lieu de cartes séparées. */
.footer-grid > .footer-contact-card { padding: 0; overflow: hidden; justify-content: flex-start; }
.footer-doctor {
  display: flex; align-items: center; gap: 14px;
  padding: var(--space-4) var(--space-4) var(--space-3);
  flex-shrink: 0;
}
.footer-doctor-photo {
  width: 64px; height: 64px; border-radius: 50%; flex-shrink: 0;
  object-fit: cover; object-position: 50% 18%;
  border: 2px solid var(--color-bg);
  box-shadow: 0 0 0 1px var(--color-divider);
}
.footer-doctor-name { font-family: var(--font-heading); font-weight: var(--font-heading-weight); font-size: 19px; color: var(--color-text); margin: 0 0 2px; }
.footer-doctor-role { font-size: 13px; color: var(--color-neutral-600); margin: 0; }

.footer-channels {
  display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr);
  border-top: 1px solid var(--color-divider);
  flex: 1 1 auto;
}
.footer-channel {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px;
  border-right: 1px solid var(--color-divider);
  border-bottom: 1px solid var(--color-divider);
  text-decoration: none;
  transition: background-color 0.2s ease;
}
.footer-channel:nth-child(2n) { border-right: none; }
.footer-channel:nth-child(3), .footer-channel:nth-child(4) { border-bottom: none; }
.footer-channel:nth-child(3) { border-bottom-left-radius: var(--radius-lg); }
.footer-channel:nth-child(4) { border-bottom-right-radius: var(--radius-lg); }
.footer-channel:hover { background: var(--color-accent-100); }
.footer-channel-icon { width: 20px; height: 20px; flex-shrink: 0; color: var(--color-accent-700); }
.footer-channel-whatsapp .footer-channel-icon { color: #25d366; }
.footer-channel-label { display: block; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-neutral-600); margin-bottom: 3px; }
.footer-channel-value { display: block; font-size: 14px; font-weight: 600; color: var(--color-text); }
.footer-channel:hover .footer-channel-value { color: var(--color-accent-900); }
.footer-channel.is-copied { background: var(--color-accent-100); }
.footer-channel.is-copied .footer-channel-value { color: var(--color-accent-900); }

/* Doctolib reprend le même style neutre que les cases Téléphone et WhatsApp
   (pas de fond de couleur) pour ne pas ressortir en pied de page. Le survol
   garde l'effet distinctif : légère élévation, ombre, et reflet qui balaie
   le bouton, en plus du changement de fond commun aux autres cases. */
.footer-channel-doctolib {
  justify-content: center;
  position: relative; overflow: hidden; z-index: 0;
  transition: transform 0.3s var(--home-ease), background-color 0.3s var(--home-ease), box-shadow 0.3s var(--home-ease);
}
.footer-channel-doctolib:hover {
  background: var(--color-accent-100);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  z-index: 1;
}
.footer-channel-doctolib::after {
  content: "";
  position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(115deg, transparent, rgba(182, 130, 53, 0.35), transparent);
  transform: skewX(-20deg);
  transition: left 0.65s var(--home-ease);
  pointer-events: none;
}
.footer-channel-doctolib:hover::after { left: 130%; }
.footer-channel-doctolib .doctolib-logo { width: 92px; height: 22px; color: var(--color-accent-700); }
@media (prefers-reduced-motion: reduce) {
  .footer-channel-doctolib::after { display: none; }
}
@media (max-width: 560px) {
  .footer-channels { grid-template-columns: 1fr; }
  .footer-channel:nth-child(2n) { border-right: 1px solid var(--color-divider); }
  .footer-channel:nth-child(3) { border-bottom: 1px solid var(--color-divider); border-radius: 0; }
  .footer-channel:nth-child(4) { border-bottom-left-radius: 0; border-bottom-right-radius: var(--radius-lg); }
}

/* Fil d'Ariane */
.breadcrumb { max-width: 900px; margin: 0 auto; padding: 24px 24px 0; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; font-size: 13px; color: var(--color-neutral-600); }
.breadcrumb a { color: var(--color-neutral-600); text-decoration: none; }
.breadcrumb a:hover { color: var(--color-accent-700); }
.breadcrumb li[aria-current] { color: var(--color-text); }

/* Article pathologie */
.pathology-article { max-width: 900px; margin: 0 auto; padding: 24px 24px 64px; }
.pathology-article h1 { font-size: clamp(30px, 4vw, 44px); margin: 0 0 12px; }
.pathology-lead { font-size: 18px; color: var(--color-neutral-700); margin: 0 0 36px; }
.pathology-article h2 { font-size: 24px; margin: 0 0 12px; }
.pathology-article h3 { font-size: 18px; color: var(--color-accent-700); margin: 22px 0 8px; }
.pathology-article h3:first-child { margin-top: 0; }
.pathology-article section { margin-bottom: 32px; }
.pathology-article p { font-size: 16px; line-height: 1.7; text-align: justify; color: var(--color-neutral-800); margin: 0 0 16px; }
.pathology-article p:last-child { margin-bottom: 0; }
.pathology-article ul { font-size: 16px; line-height: 1.8; color: var(--color-neutral-800); margin: 0 0 16px; padding-left: 20px; }
.pathology-article ul:last-child { margin-bottom: 0; }

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

.pathology-schema { margin-top: 20px; }
.pathology-schema img { width: 100%; height: auto; display: block; }
.pathology-schema-row { display: flex; gap: 20px; margin-top: 20px; flex-wrap: wrap; }
.pathology-schema-row img,
.pathology-schema-row > a { flex: 1 1 260px; width: 100%; max-width: 340px; height: auto; display: block; margin: 0 auto; }
.pathology-schema-row > a img { max-width: none; }

.schema-zoom { display: block; cursor: zoom-in; }
.schema-zoom-hint {
  margin: 8px 0 0; font-size: 12px; color: var(--color-neutral-600);
  text-align: center; font-style: italic;
}

/* Section pathologie avec photo d'illustration */
.pathology-media-row { display: flex; gap: 32px; align-items: flex-start; flex-wrap: wrap; }
.pathology-media-row > div:first-child { flex: 1 1 380px; }
.pathology-media-img { flex: 0 0 200px; width: 200px; margin-top: 0; }
@media (max-width: 640px) { .pathology-media-img { flex-basis: 100%; width: 100%; max-width: 280px; margin: 0 auto; } }

/* Fiche patient société savante */
.fiche-patient-row {
  display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap;
}
.fiche-patient-logo { height: 108px; width: auto; flex-shrink: 0; }
.fiche-patient-logo--sfcd { height: 150px; }
@media (max-width: 560px) { .fiche-patient-row { justify-content: center; text-align: center; } }

/* Sociétés savantes référencées (votre-medecin.html) */
.societes-row {
  display: flex; align-items: center; justify-content: center; gap: 36px;
  margin-top: 24px; flex-wrap: wrap;
}
.societes-row img { height: 56px; width: auto; flex-shrink: 0; }
.societes-row .logo-sfcd { height: 130px; }
@media (max-width: 560px) {
  .societes-row { flex-direction: column; gap: 24px; }
}

/* Consignes post-opératoires — mises en avant dans un encart dédié */
.consignes-postop {
  background: var(--color-accent-100);
  border: 1px solid var(--color-accent);
  border-left: 5px solid var(--color-accent);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: var(--shadow-sm);
}
.consignes-postop-header { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.consignes-postop-icon { color: var(--color-accent-800); flex-shrink: 0; }
.consignes-postop h2 { margin: 0; color: var(--color-accent-900); }
.consignes-postop p, .consignes-postop ul { color: var(--color-accent-900); }
.consignes-item { padding: 18px 0; border-top: 1px solid rgba(90, 59, 10, 0.18); }
.consignes-item:first-child { padding-top: 0; border-top: none; }
.consignes-item:last-child { padding-bottom: 0; }
.consignes-item h3 {
  display: flex; align-items: center; gap: 10px;
  font-size: 19px; font-weight: 700; color: var(--color-accent); margin: 0 0 10px;
}
.consignes-item h3::before {
  content: "?";
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%;
  background: var(--color-accent); color: var(--color-bg);
  font-family: var(--font-body); font-size: 13px; font-weight: 700;
}
.consignes-item p, .consignes-item ul { margin: 0; }
.callout { border-color: #c28d41; }
.callout .card-body { margin: 0; }
.callout-icon { flex-direction: row; gap: 12px; align-items: flex-start; }
.callout-icon-svg { flex-shrink: 0; margin-top: 2px; color: #c28d41; }

.cross-links { margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--color-divider); }
.cross-links h2 { font-size: 20px; margin: 0 0 16px; }
.cross-links-row { display: flex; flex-wrap: wrap; gap: 10px; }

.construction-card { text-align: center; padding: var(--space-8) var(--space-4); }
.construction-card p { margin: 0 0 20px; }
.construction-card .btn { margin: 0 6px; }

/* Simple page header/footer (pages de contenu) */
.simple-header { border-bottom: 1px solid var(--color-divider); background: var(--color-bg); }
.simple-footer-inner {
  max-width: var(--max-width); margin: 0 auto; padding: 32px 24px;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; align-items: center;
}

/* Page "Votre médecin" */
.doctor-section { max-width: 760px; margin: 0 auto 56px; padding: 0 24px; }
.doctor-section h2 { font-size: 24px; margin: 40px 0 16px; }
.doctor-section h2:first-of-type { margin-top: 0; }
.doctor-list { font-size: 16px; line-height: 1.9; color: var(--color-neutral-800); margin: 0; padding-left: 20px; }

/* Page "Informations pratiques" */
.info-block { margin-bottom: 40px; }
.info-map { margin: 16px auto 0; max-width: 560px; }
.info-block h2 { font-size: 22px; margin: 0 0 16px; }
.schedule-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.schedule-table td { padding: 8px 0; border-bottom: 1px solid var(--color-divider); }
.schedule-table td:last-child { text-align: right; color: var(--color-neutral-700); }
