/* Dr Pierre MARTINOT — feuille de style du site public
   Reprise fidèle de la charte d'origine (thème Kadence). */
:root {
  --teal: #217279;
  --text: #2d3748;
  --text-soft: #4a5568;
  --heading-dark: #1a202c;
  --bg: #f7fafc;
  --band: #c5d0d8;
  --white: #fff;
  --pill: #edf2f7;
  --container: 1290px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  font-size: 17px;
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
a { color: var(--teal); }
a:hover { color: var(--heading-dark); }
img { max-width: 100%; height: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 0; background: #fff; padding: 8px 14px; z-index: 100; }
.skip-link:focus { left: 8px; top: 8px; }
.container { max-width: var(--container); margin: 0 auto; padding: 0 24px; width: 100%; }

/* ---------- En-tête ---------- */
.top-bar { background: var(--band); border-bottom: 2px solid var(--teal); }
.top-inner { display: flex; justify-content: center; align-items: center; min-height: 41px; }
.phone-pill {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--text); text-decoration: none; font-size: 16px; line-height: 1.2;
  padding: 6px 8px; border-radius: 3px; background: transparent; transition: background .2s;
}
.phone-pill:hover { color: var(--heading-dark); background: #fff; }
.phone-pill svg { color: var(--heading-dark); }
.main-bar { background: var(--white); border-bottom: 2px solid var(--teal); }
.main-inner { display: flex; align-items: center; justify-content: space-between; min-height: 80px; }
.brand { text-decoration: none; display: flex; flex-direction: column; }
.site-title { color: var(--teal); font-size: 20px; font-weight: 700; line-height: 1.2; }
.site-description { color: var(--text-soft); font-size: 14px; font-weight: 700; line-height: 1.4; margin-top: 6px; }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; }
.site-nav a {
  display: block; padding: 10.8px; text-decoration: none;
  color: var(--text-soft); font-size: 18px; font-weight: 600; line-height: 1.6;
  transition: color .2s;
}
.site-nav a:hover, .site-nav a.current { color: var(--heading-dark); }
.menu-toggle { display: none; background: none; border: 0; color: var(--text-soft); padding: 8px; cursor: pointer; }

/* ---------- Contenu ---------- */
.content-area { margin: 80px 0; flex: 1 0 auto; }
.entry { background: var(--white); border-radius: 4px; box-shadow: 0 15px 15px -10px rgba(0, 0, 0, .05); }
.entry-inner { padding: 32px; }
.blk + .blk { margin-top: 20px; }
.blk-title h2 { color: var(--teal); font-size: 28px; font-weight: 700; line-height: 1.5; margin: 0 0 24px; }
.blk-title.is-underlined { border-bottom: 1px solid var(--teal); margin-bottom: 32px; }
.blk-title.is-underlined h2 { margin: 0; padding-bottom: 2px; }
.rich p { margin: 0 0 32px; }
.rich ul, .rich ol { margin: 0 0 32px; padding-left: 2em; }
.rich li { margin: 0; }
.rich h3, .rich h4 { color: var(--teal); margin: 0 0 16px; line-height: 1.4; }
.rich hr { border: 0; border-top: 1px solid var(--teal); width: 62%; margin: 0 auto 32px; }
.rich > :last-child { margin-bottom: 0; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.w-narrow { max-width: 66.666%; margin-left: auto; margin-right: auto; }
.w-inset { padding-left: 10%; padding-right: 8%; }

/* Colonnes texte + média */
.blk-cols { display: flex; align-items: flex-start; gap: 64px; padding: 25px 0; }
.blk-cols .col-text { flex: 1 1 75%; min-width: 0; }
.blk-cols .col-media { flex: 0 0 calc(25% - 48px); min-width: 0; }
.blk-cols.ratio-66 .col-media { flex-basis: calc(33.333% - 43px); }
.blk-cols.ratio-60 .col-media { flex-basis: calc(40% - 38px); }
.blk-cols.ratio-50 { gap: 30px; }
.blk-cols.ratio-50 .col-media, .blk-cols.ratio-50 .col-text { flex: 1 1 50%; }
.blk-cols.side-left { flex-direction: row-reverse; }
.blk-cols.no-media .col-text { flex-basis: 100%; }

/* Images */
.fig { margin: 0 auto; }
.fig img { display: block; margin: 0 auto; }
.fig-shadow img { box-shadow: 0 0 10px 0 var(--heading-dark); }
.fig figcaption { font-size: 15.3px; margin-top: 7.65px; line-height: 1.6; }
.blk-image { text-align: center; }
.blk-image .fig { display: block; }
.blk-sep hr { border: 0; border-top: 1px solid var(--teal); margin: 20px auto; }

/* Carte */
.map { position: relative; height: 450px; background: #e9eef2; border-radius: 3px; overflow: hidden; }
.map iframe { border: 0; width: 100%; height: 100%; display: block; }
.map-consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 20px; gap: 12px; font-size: 15px; }
.map-consent p { margin: 0; }
.btn-map { background: var(--teal); color: #fff; border: 0; border-radius: 3px; padding: 10px 18px; font: inherit; font-weight: 600; cursor: pointer; }
.btn-map:hover { background: #185a60; }

/* ---------- Pied de page ---------- */
.site-footer { background: var(--band); border-top: 2px solid var(--teal); text-align: center; }
.site-footer p { margin: 0; padding: 9px 0; font-size: 15px; line-height: 1.8; }
.site-footer a { color: var(--text); }
.site-footer a:hover { color: var(--teal); }

/* ---------- Bandeau cookies ---------- */
.cookie-notice { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; background: rgba(50, 50, 58, .95); color: #fff; font-size: 13px; line-height: 21px; font-weight: 600; text-align: center; }
.cookie-notice[hidden] { display: none; }
.cookie-inner { position: relative; padding: 15px 50px; }
.cookie-inner p { margin: 0 0 10px; }
.cookie-actions { display: flex; justify-content: center; gap: 10px; }
.cookie-btn { background: var(--teal); color: #fff; border: 0; border-radius: 15px; padding: 5px 10px; font: inherit; font-size: 13px; cursor: pointer; min-width: 30px; }
.cookie-btn:hover { background: #185a60; }
.cookie-close { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); background: none; border: 0; color: #fff; opacity: .5; font-size: 22px; cursor: pointer; }
.cookie-close:hover { opacity: 1; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 2px solid var(--teal); box-shadow: 0 8px 12px rgba(0, 0, 0, .08); z-index: 50; }
  .site-nav.open { display: block; }
  .site-nav ul { flex-direction: column; }
  .site-nav a { padding: 12px 24px; border-top: 1px solid #edf2f7; }
  .main-bar { position: relative; }
  .content-area { margin: 40px 0; }
}
@media (max-width: 767px) {
  .container { padding: 0 16px; }
  .entry-inner { padding: 24px 20px; }
  .blk-cols, .blk-cols.side-left { flex-direction: column; gap: 24px; }
  .blk-cols .col-media, .blk-cols .col-text { flex: 1 1 auto; width: 100%; }
  .blk-cols .col-media .fig { max-width: 300px; }
  .w-narrow { max-width: none; }
  .w-inset { padding-left: 0; padding-right: 0; }
  .blk-title h2 { font-size: 24px; }
  .map { height: 320px; }
  .cookie-inner { padding: 15px 36px; }
}
