/* MSP de l'Escaillon — refonte IDP13
   Charte : orange #FA9B00 et gris #78797D du logo. L'orange sert aux aplats et aux pictos ;
   le texte posé sur fond clair utilise l'orange foncé (contraste AA) ou l'encre.
   Tailles en rem : tout suit la taille de texte choisie (navigateur, zoom, boutons A / A+ / A++). */

@font-face { font-family: 'Atkinson'; src: url('fonts/atkinson-hyperlegible-next-latin-wght-normal.woff2') format('woff2'); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Atkinson'; src: url('fonts/atkinson-hyperlegible-next-latin-wght-italic.woff2') format('woff2'); font-weight: 200 800; font-style: italic; font-display: swap; }
@font-face { font-family: 'Bricolage'; src: url('fonts/bricolage-grotesque-latin-wght-normal.woff2') format('woff2'); font-weight: 200 800; font-display: swap; }

:root {
  --orange: #FA9B00;
  --orange-pale: #FFF3DF;
  --orange-texte: #9A5000;
  --encre: #1F2330;
  --ardoise: #262B39;
  --ardoise-2: #333A4C;
  --texte: #2A2E39;
  --doux: #555963;
  --gris-logo: #78797D;
  --fond: #FBF8F3;
  --blanc: #FFFFFF;
  --ligne: #E5DDD0;
  --vert: #1F7A4D;
  --rouge: #B3261E;
  --rayon: 1rem;
  --large: 76rem;
  --titres: 'Bricolage', 'Atkinson', system-ui, sans-serif;
  --corps: 'Atkinson', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ombre: 0 1px 2px rgb(31 35 48 / .06), 0 8px 24px -12px rgb(31 35 48 / .18);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
html.texte-plus { font-size: 112.5%; }
html.texte-plus-plus { font-size: 125%; }
body { margin: 0; background: var(--fond); color: var(--texte); font-family: var(--corps); font-size: 1.125rem; line-height: 1.6; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--orange-texte); text-underline-offset: .18em; text-decoration-thickness: .08em; }
a:hover { text-decoration-thickness: .14em; }
:focus-visible { outline: 3px solid var(--encre); outline-offset: 3px; box-shadow: 0 0 0 6px var(--orange); border-radius: .25rem; }
h1, h2, h3 { font-family: var(--titres); color: var(--encre); line-height: 1.15; letter-spacing: -.01em; margin: 0 0 .6em; text-wrap: balance; }
h1 { font-size: clamp(2.1rem, 1.4rem + 3vw, 3.6rem); font-weight: 700; }
h2 { font-size: clamp(1.6rem, 1.25rem + 1.4vw, 2.4rem); font-weight: 700; }
h3 { font-size: 1.3rem; font-weight: 700; }
p { margin: 0 0 1em; }
.visuellement-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.conteneur { width: min(100% - 2rem, var(--large)); margin-inline: auto; }
.surtitre { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; color: var(--orange-texte); margin-bottom: .8rem; }
.surtitre::before { content: ''; width: 1.6rem; height: .2rem; border-radius: 1rem; background: var(--orange); }
.evitement { position: absolute; left: 1rem; top: -10rem; z-index: 100; background: var(--encre); color: #fff; padding: .8rem 1.2rem; border-radius: .5rem; font-weight: 700; }
.evitement:focus { top: 1rem; }

/* Boutons */
.bouton { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 3rem; padding: .7rem 1.35rem; border-radius: 999px; border: 2px solid transparent; font: 700 1.05rem/1.2 var(--corps); text-decoration: none; cursor: pointer; transition: background .15s, color .15s, transform .15s; text-align: center; }
.bouton svg { width: 1.15em; height: 1.15em; flex: none; }
.bouton-orange { background: var(--orange); color: var(--encre); }
.bouton-orange:hover { background: #FFB43B; }
.bouton-encre { background: var(--encre); color: #fff; }
.bouton-encre:hover { background: var(--ardoise-2); }
.bouton-contour { border-color: currentColor; color: var(--encre); background: transparent; }
.bouton-contour:hover { background: var(--encre); color: #fff; border-color: var(--encre); }
.bouton:active { transform: translateY(1px); }
.externe::after { content: '\2197'; font-weight: 400; margin-left: -.15rem; }

/* Barre d'informations */
.barre { background: var(--ardoise); color: #EDEEF2; font-size: .95rem; }
.barre .conteneur { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.5rem; min-height: 2.75rem; padding-block: .35rem; }
.barre a { color: #fff; }
.barre-info { display: inline-flex; align-items: center; gap: .5rem; }
.barre-info .point { width: .6rem; height: .6rem; border-radius: 50%; background: var(--orange); flex: none; }
.barre-droite { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.25rem; }
.taille-texte { display: inline-flex; align-items: center; gap: .25rem; }
.taille-texte span { margin-right: .3rem; }
.taille-texte button { min-width: 2.5rem; min-height: 2rem; border: 1px solid #6B7186; border-radius: .4rem; background: transparent; color: #fff; font: 700 .9rem/1 var(--corps); cursor: pointer; }
.taille-texte button[aria-pressed="true"] { background: var(--orange); border-color: var(--orange); color: var(--encre); }
.taille-texte button:nth-of-type(2) { font-size: 1.05rem; }
.taille-texte button:nth-of-type(3) { font-size: 1.2rem; }

/* En-tête */
.entete { background: var(--blanc); border-bottom: 1px solid var(--ligne); position: sticky; top: 0; z-index: 50; }
.entete .conteneur { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; min-height: 5.25rem; padding-block: .4rem; }
html.texte-plus-plus .entete { position: static; }
.entete-logo { display: block; flex: none; }
.entete-logo img { display: block; height: 3.4rem; width: auto; }
.menu { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; margin-left: auto; }
.menu > a, .sous-menu-bouton { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.75rem; padding: .4rem .85rem; border-radius: .6rem; color: var(--encre); font: 600 1.05rem/1.2 var(--corps); text-decoration: none; background: none; border: 0; cursor: pointer; }
.menu > a:hover, .sous-menu-bouton:hover { background: var(--orange-pale); }
.menu a[aria-current="page"], .sous-menu-bouton.actif { box-shadow: inset 0 -3px 0 var(--orange); border-radius: .6rem .6rem 0 0; }
.sous-menu-bouton svg { width: .8rem; transition: transform .15s; }
.sous-menu-bouton[aria-expanded="true"] svg { transform: rotate(180deg); }
.sous-menu { position: relative; }
.sous-menu-liste { position: absolute; top: calc(100% + .5rem); left: -1rem; width: 22rem; background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); box-shadow: var(--ombre); padding: .6rem; list-style: none; margin: 0; display: none; }
.sous-menu-bouton[aria-expanded="true"] + .sous-menu-liste { display: block; }
.sous-menu-liste a { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem .8rem; border-radius: .6rem; color: var(--encre); text-decoration: none; font-weight: 600; }
.sous-menu-liste a:hover, .sous-menu-liste a[aria-current="page"] { background: var(--orange-pale); }
.sous-menu-liste small { color: var(--doux); font-weight: 400; }
.sous-menu-liste li.separe { border-top: 1px solid var(--ligne); margin-top: .4rem; padding-top: .4rem; }
.menu > a.bouton { background: var(--orange); color: var(--encre); padding: .6rem 1.2rem; border-radius: 999px; }
.menu > a.bouton:hover { background: #FFB43B; }
.entete-rdv { margin-left: .5rem; }
.menu-bouton { display: none; }

/* Pied de page */
.pied { background: var(--ardoise); color: #DADCE3; margin-top: 0; }
.pied a { color: #fff; }
.pied-haut { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2.5rem; padding-block: 3.5rem 2.5rem; }
.pied-haut > * { min-width: 0; }
.pied h2 { color: #fff; font-size: 1.05rem; font-family: var(--corps); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 1rem; }
.pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.pied-logo img { height: 4.2rem; width: auto; margin-bottom: 1.2rem; }
.pied-adresse { font-style: normal; }
.pied-tel { font-size: 1.35rem; font-weight: 700; text-decoration: none; display: inline-block; margin-top: .4rem; }
.pied-bas { border-top: 1px solid #424A5E; padding-block: 1.2rem; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .95rem; }
.pied-bas p { margin: 0; }
.pied-bas .droite { margin-left: auto; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.reseau { display: inline-flex; align-items: center; gap: .5rem; }
.reseau svg { width: 1.4rem; height: 1.4rem; fill: currentColor; }

/* Accueil : en-tête de page */
.une { padding-block: clamp(2.5rem, 5vw, 5rem) clamp(3rem, 6vw, 6rem); overflow: hidden; }
.une .conteneur { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.une-texte > * { min-width: 0; }
.une h1 em { font-style: normal; background: linear-gradient(transparent 62%, rgb(250 155 0 / .45) 62% 92%, transparent 92%); padding-inline: .08em; }
.une-intro { font-size: 1.25rem; color: var(--doux); max-width: 34rem; }
.une-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.8rem 0 2rem; }
.reperes { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.reperes li { display: flex; gap: .8rem; align-items: flex-start; }
.reperes svg { width: 1.6rem; height: 1.6rem; flex: none; color: var(--orange-texte); margin-top: .1rem; }
.reperes strong { color: var(--encre); }
.reperes span, .groupe-titre h2 { min-width: 0; overflow-wrap: break-word; }
h1, h2, h3 { overflow-wrap: break-word; hyphens: auto; }

/* Photo dans la maison du logo */
.maison-photo { position: relative; aspect-ratio: 292 / 294; width: 100%; max-width: 34rem; justify-self: end; }
.maison-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; clip-path: url(#forme-maison); }
.maison-photo .contour { position: absolute; inset: 0; transform: translate(-6%, 5%); color: var(--orange); z-index: -1; }
.maison-photo .contour svg { width: 100%; height: 100%; }
.maison-photo figcaption { position: absolute; right: -.5rem; bottom: 8%; background: var(--blanc); border-radius: .8rem; padding: .7rem 1rem; box-shadow: var(--ombre); font-size: .95rem; line-height: 1.35; max-width: 15rem; }
.maison-photo figcaption strong { display: block; color: var(--encre); }

/* Orientation : où aller ? */
.orientation { background: var(--blanc); border-block: 1px solid var(--ligne); padding-block: clamp(3rem, 6vw, 5rem); }
.orientation-tete { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2rem; }
.orientation-tete p { max-width: 32rem; color: var(--doux); margin: 0; }
.panneaux { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.panneau { position: relative; display: flex; flex-direction: column; gap: .4rem; padding: 1.6rem 1.6rem 1.4rem; border-radius: var(--rayon); background: var(--fond); border: 1px solid var(--ligne); min-width: 0; }
.panneau-num { font: 800 .9rem/1 var(--corps); letter-spacing: .08em; color: var(--orange-texte); }
.panneau h3 { margin: .2rem 0 .3rem; font-size: 1.35rem; }
.panneau p { margin: 0 0 1rem; }
.panneau .bouton { margin-top: auto; align-self: flex-start; }
.panneau-urgence { background: #FDF0EF; border-color: #F1C9C5; }
.panneau-urgence .panneau-num { color: var(--rouge); }
.numeros { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: auto; }
.numeros a { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 4.6rem; padding: .5rem .8rem; border-radius: .8rem; background: var(--blanc); border: 2px solid var(--rouge); color: var(--rouge); text-decoration: none; line-height: 1.1; }
.numeros strong { font: 800 1.6rem/1 var(--titres); }
.numeros small { font-size: .8rem; font-weight: 600; margin-top: .2rem; }

/* Annuaire (panneau d'entrée de la maison de santé) */
.annuaire { padding-block: clamp(3rem, 6vw, 5.5rem); }
.annuaire-panneau { background: var(--ardoise); color: #E9EAEE; border-radius: 1.5rem; padding: clamp(1.5rem, 4vw, 3rem); display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(1.5rem, 4vw, 3.5rem); position: relative; overflow: hidden; }
.annuaire-panneau > * { min-width: 0; }
.annuaire-panneau h2 { color: #fff; }
.annuaire-panneau .surtitre { color: #FFC46A; }
.annuaire-panneau p { color: #C9CCD6; }
.recherche label { display: block; font-weight: 700; color: #fff; margin-bottom: .5rem; }
.recherche-champ { position: relative; }
.recherche-champ svg { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); width: 1.3rem; height: 1.3rem; color: var(--doux); pointer-events: none; }
.recherche input { width: 100%; min-height: 3.4rem; padding: .7rem 1rem .7rem 3rem; border-radius: .8rem; border: 2px solid transparent; font: 1.1rem var(--corps); color: var(--encre); background: #fff; }
.recherche input:focus { outline: none; border-color: var(--orange); box-shadow: 0 0 0 4px rgb(250 155 0 / .35); }
.recherche-aide { font-size: .95rem; margin-top: .6rem; }
.resultats { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .5rem; max-height: 22rem; overflow: auto; }
.resultats li a { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2rem 1rem; padding: .7rem .9rem; border-radius: .7rem; background: var(--ardoise-2); color: #fff; text-decoration: none; }
.resultats li a:hover, .resultats li a:focus-visible { background: #424A60; }
.resultats small { color: #FFC46A; font-weight: 600; }
.etages { list-style: none; margin: 0; padding: 0; border-top: 1px solid #454C60; }
.etages li { border-bottom: 1px solid #454C60; }
.etages a { display: grid; grid-template-columns: 2.6rem 1fr auto; align-items: center; gap: 1rem; padding: .85rem .3rem; color: #fff; text-decoration: none; }
.etages a:hover .etage-nom { text-decoration: underline; text-decoration-color: var(--orange); }
.etage-picto { width: 2.6rem; height: 2.6rem; border-radius: .6rem; background: var(--ardoise-2); display: grid; place-items: center; color: var(--orange); }
.etage-picto svg { width: 1.5rem; height: 1.5rem; }
.etages .fleche { width: 1.4rem; height: 1.4rem; color: var(--orange); }
.etage-nom { font-weight: 700; font-size: 1.1rem; }
.etage-nom small { display: block; font-weight: 400; color: #B9BDC9; font-size: .92rem; }
.etage-compte { font: 700 .95rem/1 var(--corps); color: var(--encre); background: var(--orange); border-radius: 999px; padding: .35rem .7rem; white-space: nowrap; }

/* Qui sommes-nous */
.apropos { padding-block: clamp(3rem, 6vw, 5.5rem); background: var(--blanc); border-top: 1px solid var(--ligne); }
.apropos .conteneur { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.apropos .conteneur > * { min-width: 0; }
.apropos-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; position: sticky; top: 7rem; }
.apropos-photos img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--rayon); aspect-ratio: 4 / 5; }
.apropos-photos img:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
.centre { font-weight: 700; color: var(--encre); }
.missions { list-style: none; counter-reset: m; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1rem; }
.missions li { counter-increment: m; display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; align-items: start; padding: 1.1rem 1.2rem; border: 1px solid var(--ligne); border-radius: var(--rayon); background: var(--fond); }
.missions li::before { content: counter(m); display: grid; place-items: center; width: 3rem; height: 3rem; font: 800 1.3rem/1 var(--titres); color: var(--encre); background: var(--orange); clip-path: polygon(50% 0, 100% 42%, 100% 100%, 0 100%, 0 42%); padding-top: .5rem; }
.missions span { overflow-wrap: break-word; hyphens: auto; }
.missions strong { display: block; color: var(--encre); font-size: 1.15rem; }

/* Lettre d'information */
.lettre { padding-block: clamp(2.5rem, 5vw, 4rem); }
.lettre-boite { background: var(--orange); color: var(--encre); border-radius: 1.5rem; padding: clamp(1.5rem, 4vw, 2.8rem); display: grid; grid-template-columns: 1fr 1.2fr; gap: 2rem; align-items: center; }
.lettre-boite > * { min-width: 0; }
.lettre-boite h2 { margin-bottom: .3rem; }
.lettre-boite p { margin: 0; }
.lettre form { display: flex; flex-wrap: wrap; gap: .8rem; align-items: end; }
.lettre label { flex: 1 1 13rem; font-weight: 700; display: grid; gap: .3rem; }
.lettre input { min-height: 3.2rem; border: 2px solid var(--encre); border-radius: .7rem; padding: .6rem .9rem; font: 1.05rem var(--corps); background: #fff; color: var(--encre); width: 100%; }
.lettre .etat { flex-basis: 100%; margin: 0; font-weight: 700; }

/* Pages intérieures */
.page-tete { background: var(--orange-pale); border-bottom: 1px solid #F3DDB8; padding-block: clamp(2rem, 4vw, 3.5rem) clamp(2.2rem, 4vw, 3.5rem); position: relative; overflow: hidden; }
.page-tete .conteneur { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; }
.page-tete .conteneur > * { min-width: 0; }
.page-tete h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.1rem); margin-bottom: .4rem; }
.page-tete p { max-width: 44rem; font-size: 1.2rem; margin: .4rem 0 0; }
.page-tete-deco { position: absolute; right: max(1rem, calc((100% - var(--large)) / 2)); bottom: -4.5rem; width: 13rem; color: rgb(250 155 0 / .45); pointer-events: none; }
.fil { font-size: .95rem; margin-bottom: 1rem; }
.fil ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.fil li + li::before { content: '›'; margin-right: .3rem; color: var(--doux); }
.fil a { color: var(--texte); }
.page-tete-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.section { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.section + .section { padding-top: 0; }
.section-blanche { background: var(--blanc); border-block: 1px solid var(--ligne); }
.section + .section-blanche, .section-blanche + .section { padding-top: clamp(2.5rem, 5vw, 4.5rem); }
.intro-section { max-width: 46rem; color: var(--doux); }

/* Cartes des professionnels : portrait dans la maison du logo */
.equipe { list-style: none; margin: 0; padding: 0; display: grid; align-items: start; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: 1.25rem; }
.pro { background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.5rem 1.4rem 1.4rem; display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; min-width: 0; height: 100%; }
.pro-portrait { width: 6.5rem; aspect-ratio: 292 / 294; position: relative; margin-bottom: 1.1rem; flex: none; isolation: isolate; }
.pro-portrait img, .pro-portrait .initiales { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; clip-path: url(#forme-maison); }
.pro-portrait .initiales { display: grid; place-items: center; padding-top: 20%; background: var(--orange-pale); color: var(--orange-texte); font: 800 1.6rem/1 var(--titres); letter-spacing: .02em; }
.pro-portrait::after { content: ''; position: absolute; inset: 0; transform: translate(.45rem, .35rem); z-index: -1; background: var(--orange); clip-path: url(#forme-maison); opacity: .9; }
.pro h3 { font-size: 1.25rem; margin: 0; overflow-wrap: anywhere; }
.pro-metier { color: var(--doux); margin: 0 0 .8rem; }
.pro-actions { margin-top: .2rem; display: flex; flex-wrap: wrap; gap: .5rem; width: 100%; }
.pro-actions .bouton { min-height: 2.75rem; padding: .5rem 1rem; font-size: 1rem; }
.pro details { width: 100%; border-top: 1px solid var(--ligne); margin-top: .9rem; padding-top: .6rem; }
.pro summary { cursor: pointer; font-weight: 700; color: var(--encre); min-height: 2.75rem; display: flex; align-items: center; gap: .4rem; list-style: none; }
.pro summary::-webkit-details-marker { display: none; }
.pro summary::before { content: '+'; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--orange-pale); color: var(--orange-texte); font-weight: 800; }
.pro details[open] summary::before { content: '–'; }
.pro details p, .pro details ul { font-size: 1rem; margin: .4rem 0 .6rem; }
.pro details ul { padding-left: 1.1rem; }
.pro-contact { list-style: none; padding: 0 !important; display: grid; gap: .3rem; }
.groupe-titre { display: flex; align-items: center; gap: .8rem; margin: 3rem 0 1.3rem; }
.groupe-titre:first-child { margin-top: 0; }
.groupe-titre svg { width: 2.2rem; color: var(--orange); flex: none; }
.groupe-titre h2 { margin: 0; }

/* Fiche d'informations pratiques (labo, pharmacie, sages-femmes…) */
.pratique { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.pratique > * { min-width: 0; }
.pratique-photo { width: 100%; border-radius: var(--rayon); aspect-ratio: 4 / 3; object-fit: cover; }
.infos { background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.6rem; }
.infos h2 { font-size: 1.5rem; }
.infos dl { margin: 0; display: grid; gap: 1.1rem; }
.infos dt { font-weight: 800; color: var(--encre); display: flex; align-items: center; gap: .5rem; }
.infos dt svg { width: 1.3rem; height: 1.3rem; color: var(--orange-texte); flex: none; }
.infos dd { margin: .2rem 0 0; overflow-wrap: anywhere; }
.infos .note { font-size: 1rem; color: var(--doux); }
.pmr { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--encre); background: #E8F2EC; border-radius: 999px; padding: .35rem .9rem .35rem .45rem; }
.pmr svg { width: 1.6rem; height: 1.6rem; color: var(--vert); }

/* Permanence médicale */
.etapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; counter-reset: e; }
.etapes li { counter-increment: e; background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.5rem; min-width: 0; }
.etapes li::before { content: counter(e); display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--orange); color: var(--encre); font: 800 1.15rem/1 var(--titres); margin-bottom: .8rem; }
.applis { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: .8rem; }
.appli { display: grid; justify-items: center; gap: .7rem; background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1rem; }
.appli img.badge { height: 3rem; width: auto; }
.appli img.qr { width: 8rem; height: 8rem; }
.horaire-geant { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; font-family: var(--titres); color: var(--encre); }
.horaire-geant strong { font-size: clamp(2.6rem, 2rem + 3vw, 4.2rem); line-height: 1; }
.horaire-geant span { font-size: 1.3rem; font-weight: 600; }

/* Centre hospitalier */
.partenaire { display: grid; grid-template-columns: auto 1fr; gap: 2rem; align-items: center; background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.5rem 1.8rem; }
.partenaire > * { min-width: 0; }
.partenaire img { width: 11rem; }
.liste-coche { list-style: none; padding: 0; margin: 0 0 1.2rem; display: grid; gap: .6rem; }
.liste-coche li { position: relative; padding-left: 1.5rem; }
.liste-coche li::before { content: ''; position: absolute; left: 0; top: .45em; width: .8rem; height: .8rem; background: var(--orange); clip-path: polygon(50% 0, 100% 42%, 100% 100%, 0 100%, 0 42%); }

/* Actualités */
.articles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: 1.5rem; }
.article-carte { background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); overflow: hidden; height: 100%; display: flex; flex-direction: column; position: relative; }
.article-carte img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--orange-pale); }
.article-carte div { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .3rem; flex: 1; }
.article-carte time { color: var(--doux); font-size: .95rem; }
.article-carte h2 { font-size: 1.35rem; margin: 0 0 .3rem; }
.article-carte h2 a { color: var(--encre); text-decoration: none; }
.article-carte h2 a::after { content: ''; position: absolute; inset: 0; }
.article-carte:hover h2 a, .article-carte h2 a:focus-visible { text-decoration: underline; text-decoration-color: var(--orange); }
.article-carte p { margin: 0; }
.article { max-width: 44rem; margin-inline: auto; }
.article img { border-radius: var(--rayon); margin: .5rem 0 1.5rem; }
.article h2 { font-size: 1.45rem; margin-top: 2rem; }
.article-avertissement { background: #FFF8E6; border: 1px solid #F0D9A0; border-left: 6px solid var(--orange); border-radius: .7rem; padding: 1rem 1.2rem; margin-bottom: 2rem; }
.article-nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 3rem; border-top: 1px solid var(--ligne); padding-top: 1.5rem; }
.galerie { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1rem; }
.galerie img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; margin: 0; }

/* Équipe : choix de la catégorie */
.categories { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1.25rem; }
.categorie { position: relative; background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.5rem; height: 100%; display: flex; flex-direction: column; gap: .4rem; transition: border-color .15s, box-shadow .15s; }
.categorie:hover { border-color: var(--orange); box-shadow: var(--ombre); }
.categorie .etage-picto { background: var(--orange-pale); color: var(--orange-texte); margin-bottom: .5rem; }
.categorie h2 { font-size: 1.35rem; margin: 0; }
.categorie h2 a { color: var(--encre); text-decoration: none; }
.categorie h2 a::after { content: ''; position: absolute; inset: 0; border-radius: var(--rayon); }
.categorie p { margin: 0; color: var(--doux); }
.categorie .lien { margin-top: auto; padding-top: .6rem; font-weight: 700; color: var(--orange-texte); }

.contact-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1.25rem; }
.carte-lien { display: inline-block; margin-top: .3rem; }
.prose { max-width: 46rem; }
.prose h2 { font-size: 1.5rem; margin-top: 2rem; }
.a-completer { background: #FFF8E6; border: 1px dashed #D9A43A; border-radius: .4rem; padding: 0 .3rem; }

/* Écrans moyens */
@media (max-width: 68rem) {
  .menu-bouton { display: inline-flex; align-items: center; gap: .5rem; margin-left: auto; min-height: 2.75rem; padding: .4rem .9rem; border: 2px solid var(--encre); border-radius: 999px; background: var(--blanc); color: var(--encre); font: 700 1rem var(--corps); cursor: pointer; }
  .menu-bouton svg { width: 1.2rem; height: 1.2rem; }
  .menu { display: none; flex-wrap: nowrap; position: absolute; top: 100%; left: 0; right: 0; background: var(--blanc); border-bottom: 1px solid var(--ligne); box-shadow: var(--ombre); flex-direction: column; align-items: stretch; padding: 1rem; gap: .2rem; max-height: calc(100vh - 8rem); overflow: auto; }
  .menu.ouvert { display: flex; }
  .menu > a, .sous-menu-bouton { width: 100%; justify-content: space-between; font-size: 1.1rem; }
  .sous-menu-liste { position: static; width: auto; box-shadow: none; border: 0; padding: 0 0 0 1rem; }
  .entete-rdv { margin: .6rem 0 0; }
  .pied-haut { grid-template-columns: 1fr 1fr; }
  .une .conteneur, .annuaire-panneau, .apropos .conteneur, .lettre-boite, .pratique { grid-template-columns: 1fr; }
  .maison-photo { justify-self: center; max-width: 28rem; }
  .apropos-photos { position: static; }
  .panneaux, .etapes { grid-template-columns: 1fr; }
}
@media (max-width: 40rem) {
  body { font-size: 1.0625rem; }
  .entete .conteneur { min-height: 4.5rem; gap: .8rem; }
  .entete-logo img { height: 2.7rem; }
  .barre-droite { margin-left: 0; }
  .pied-haut { grid-template-columns: 1fr; }
  .pied-bas .droite { margin-left: 0; }
  .page-tete .conteneur { grid-template-columns: 1fr; }
  .page-tete-deco { width: 9rem; right: -2.5rem; }
  .partenaire { grid-template-columns: 1fr; }
  .une-actions .bouton { flex: 1 1 100%; }
  .maison-photo { width: 92%; justify-self: end; }
  .maison-photo figcaption { right: 0; }
  .barre { font-size: .9rem; }
  .taille-texte span { display: none; }
  .etages a { grid-template-columns: 2.6rem 1fr; }
  .etages .etage-compte, .etages .fleche { grid-column: 2; justify-self: start; }
  .apropos .conteneur > div:last-child { order: -1; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
@media print { .barre, .entete, .lettre, .pied { display: none; } body { background: #fff; } }

/* Textes agrandis (zoom texte du téléphone, A+ / A++, 200 %) : rien ne doit déborder */
.etages a > *, .resultats a > *, .pro > *, .panneau > * { min-width: 0; overflow-wrap: anywhere; }
.equipe li { scroll-margin-top: 7rem; }
.equipe li:target .pro { border-color: var(--orange); box-shadow: 0 0 0 3px var(--orange); }
