/* =====================================================================
   VIMA — styles dynamiques communs (accueil, le centre, pages intérieures)
   Classes préfixées « acc- » : indépendantes de la compilation Tailwind.
   ===================================================================== */
:root {
    --acc-vert: var(--color-primary, #476b59);
    --acc-vert-fonce: color-mix(in oklab, var(--acc-vert) 72%, #0d1a14);
    --acc-fond: var(--color-background, #fbfaf6);
    --acc-teinte: color-mix(in oklab, var(--acc-vert) 7%, var(--acc-fond));
    --acc-encre: var(--color-foreground, #1f2a24);
    --acc-doux: var(--color-muted-foreground, #5f6b64);
    --acc-carte: var(--color-card, #ffffff);
    --acc-bord: var(--color-border, #e2e6e0);
    --acc-sable: var(--color-accent, #e5d9bd);
    --acc-ombre: 0 1px 2px rgb(20 40 30 / .05), 0 12px 30px -14px rgb(20 40 30 / .22);
    --acc-ombre-forte: 0 2px 6px rgb(20 40 30 / .06), 0 28px 56px -20px rgb(20 40 30 / .34);
    --acc-courbe: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Apparitions au défilement ---------- */
.acc-js [data-reveal] {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition: opacity .9s var(--acc-courbe), transform .9s var(--acc-courbe), translate .4s var(--acc-courbe), box-shadow .4s ease;
    transition-delay: calc(var(--i, 0) * 110ms), calc(var(--i, 0) * 110ms), 0s, 0s;
}
.acc-js [data-reveal="gauche"] { transform: translate3d(-40px, 0, 0); }
.acc-js [data-reveal="droite"] { transform: translate3d(40px, 0, 0); }
.acc-js [data-reveal="zoom"] { transform: scale(.93); }
.acc-js [data-reveal].is-visible { opacity: 1; transform: none; }

/* ---------- Éléments communs ---------- */
.acc-section { position: relative; overflow: hidden; padding: 5.5rem 0 7.5rem; }
@media (min-width: 1024px) { .acc-section { padding: 7rem 0 9.5rem; } }
.acc-section > .mx-auto { position: relative; z-index: 1; }
.acc-teinte { background: var(--acc-teinte); }
.acc-vague { position: absolute; left: 0; bottom: -1px; width: 100%; height: clamp(36px, 6vw, 90px); display: block; z-index: 1; pointer-events: none; }
.acc-vague--teinte { fill: var(--acc-teinte); }
.acc-vague--fond { fill: var(--acc-fond); }
.acc-deco { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.acc-deco::before, .acc-deco::after { content: ""; position: absolute; border-radius: 50%; }
.acc-deco::before { width: 42rem; height: 42rem; right: -16rem; top: -14rem; background: radial-gradient(closest-side, color-mix(in oklab, var(--acc-sable) 60%, transparent), transparent); }
.acc-deco::after { width: 36rem; height: 36rem; left: -14rem; bottom: -12rem; background: radial-gradient(closest-side, color-mix(in oklab, var(--acc-vert) 16%, transparent), transparent); }

.acc-entete { display: grid; gap: 1.25rem; align-items: end; }
@media (min-width: 1024px) { .acc-entete { grid-template-columns: 1.25fr .75fr; gap: 4rem; } }
.acc-entete--lien > :last-child { justify-self: start; }
@media (min-width: 1024px) { .acc-entete--lien > :last-child { justify-self: end; } }

.acc-lien { margin-top: 1.25rem; display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 600; color: var(--acc-vert); text-decoration: none; }
.acc-lien svg { width: .9rem; height: .9rem; transition: translate .3s var(--acc-courbe); }
.acc-lien:hover svg, .acc-pole:hover .acc-lien svg { translate: 4px 0; }
.acc-lien--carte::after { content: ""; position: absolute; inset: 0; z-index: 3; border-radius: inherit; }
.acc-lien--carte:focus-visible { outline: none; }
.acc-lien--carte:focus-visible::after { outline: 3px solid var(--acc-vert); outline-offset: 3px; }

.acc-bouton { display: inline-flex; align-items: center; gap: .5rem; height: 2.75rem; padding: 0 1.4rem; border-radius: 999px; font-size: .875rem; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background .3s, color .3s, translate .3s var(--acc-courbe), box-shadow .3s; }
.acc-bouton svg { width: 1rem; height: 1rem; transition: translate .3s var(--acc-courbe); }
.acc-bouton:hover { translate: 0 -2px; }
.acc-bouton:hover svg { translate: 3px 0; }
.acc-bouton--contour { border: 1px solid color-mix(in oklab, var(--acc-vert) 35%, var(--acc-bord)); background: var(--acc-carte); color: var(--acc-vert); box-shadow: var(--acc-ombre); }
.acc-bouton--contour:hover { background: var(--acc-vert); color: #fff; }
.acc-bouton--blanc { background: #fff; color: var(--acc-vert); box-shadow: 0 10px 24px -12px rgb(0 0 0 / .4); }
.acc-bouton--verre { border: 1px solid rgb(255 255 255 / .3); color: #fff; background: rgb(255 255 255 / .08); }
.acc-bouton--verre:hover { background: rgb(255 255 255 / .16); }

.acc-icone { display: inline-grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: 1rem; background: color-mix(in oklab, var(--acc-vert) 12%, transparent); color: var(--acc-vert); transition: background .35s, color .35s; }
.acc-icone svg { width: 1.25rem; height: 1.25rem; }

/* ---------- 1. Bandeau d'accueil ---------- */
.acc-hero { position: relative; isolation: isolate; overflow: hidden; padding: 7rem 0 7rem; background: var(--acc-fond); }
@media (min-width: 1024px) { .acc-hero { padding: 8.5rem 0 9rem; } }
.acc-hero__fond { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.acc-blob { position: absolute; border-radius: 50%; filter: blur(64px); opacity: .6; animation: acc-derive 22s ease-in-out infinite alternate; }
.acc-blob--1 { width: 36rem; height: 36rem; top: -12rem; right: -10rem; background: color-mix(in oklab, var(--acc-vert) 32%, transparent); }
.acc-blob--2 { width: 30rem; height: 30rem; bottom: -10rem; left: -12rem; background: color-mix(in oklab, var(--acc-sable) 85%, transparent); animation-duration: 27s; }
.acc-blob--3 { width: 20rem; height: 20rem; top: 38%; left: 38%; background: color-mix(in oklab, var(--acc-vert) 14%, transparent); animation-duration: 32s; animation-direction: alternate-reverse; }
.acc-hero__points { position: absolute; inset: 0; opacity: .55; background-image: radial-gradient(color-mix(in oklab, var(--acc-vert) 30%, transparent) 1px, transparent 1.4px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(ellipse 60% 55% at 72% 42%, #000 15%, transparent 72%); mask-image: radial-gradient(ellipse 60% 55% at 72% 42%, #000 15%, transparent 72%); }

.acc-hero__grille { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .acc-hero__grille { grid-template-columns: 1.05fr .95fr; gap: 4rem; } }
.acc-hero__visuel { order: -1; }
@media (min-width: 1024px) { .acc-hero__visuel { order: 0; } }
.acc-hero__titre { margin-top: 1.25rem; font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem); line-height: 1.07; letter-spacing: -.025em; }
.acc-hero__titre em { font-style: normal; color: var(--acc-vert); position: relative; isolation: isolate; white-space: nowrap; }
.acc-hero__titre em::after { content: ""; position: absolute; left: -.05em; right: -.05em; bottom: .06em; height: .3em; z-index: -1; border-radius: .2em; background: color-mix(in oklab, var(--acc-sable) 90%, transparent); transform-origin: left; animation: acc-souligne 1.1s .7s var(--acc-courbe) both; }
.acc-hero__intro { margin-top: 1.4rem; max-width: 36rem; font-size: 1.0625rem; line-height: 1.7; }

.acc-acces { display: grid; gap: .75rem; margin-top: 2.25rem; }
@media (min-width: 640px) { .acc-acces { grid-template-columns: repeat(3, 1fr); } }
.acc-acces a { display: flex; align-items: center; gap: .75rem; padding: .85rem .95rem; border-radius: 1.25rem; text-decoration: none; color: var(--acc-encre); background: color-mix(in oklab, var(--acc-carte) 82%, transparent); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.acc-acces a:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); border-color: color-mix(in oklab, var(--acc-vert) 40%, var(--acc-bord)); }
.acc-acces a:hover .acc-icone { background: var(--acc-vert); color: #fff; }
.acc-acces .acc-icone { width: 2.5rem; height: 2.5rem; border-radius: .9rem; }
.acc-acces .acc-icone svg { width: 1.1rem; height: 1.1rem; }
.acc-acces__titre { display: block; font-size: .875rem; font-weight: 600; line-height: 1.2; }
.acc-acces__detail { display: block; margin-top: .15rem; font-size: .75rem; line-height: 1.3; color: var(--acc-doux); }

.acc-compo { position: relative; width: 100%; max-width: 36rem; margin-inline: auto; aspect-ratio: 1.12; }
@media (max-width: 1023px) { .acc-compo { max-width: 30rem; } }
.acc-compo__anneau { position: absolute; left: 50%; top: 50%; width: 88%; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; border: 1.5px dashed color-mix(in oklab, var(--acc-vert) 32%, transparent); animation: acc-tourne 80s linear infinite; }
.acc-compo__anneau::after { content: ""; position: absolute; top: 13%; left: 13%; width: .75rem; height: .75rem; border-radius: 50%; background: var(--acc-vert); box-shadow: 0 0 0 6px color-mix(in oklab, var(--acc-vert) 18%, transparent); }
.acc-compo__logo { position: absolute; z-index: 1; left: 6%; right: 6%; top: 50%; translate: 0 -50%; padding: clamp(1rem, 3vw, 2rem); border-radius: 2rem; background: color-mix(in oklab, var(--acc-carte) 88%, transparent); border: 1px solid rgb(255 255 255 / .7); box-shadow: var(--acc-ombre-forte); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: transform .6s var(--acc-courbe); }
.acc-compo__logo:hover { transform: scale(1.03); }
.acc-compo__logo img { display: block; width: 100%; height: auto; }
.acc-compo__photo { position: absolute; z-index: 2; margin: 0; width: 36%; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 1.25rem; border: 5px solid var(--acc-carte); background: var(--acc-teinte); box-shadow: var(--acc-ombre-forte); translate: 0 var(--py, 0px); }
.acc-compo__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.acc-compo__photo--a { top: 0; right: 0; rotate: 6deg; animation: acc-flotte 7s ease-in-out infinite; }
.acc-compo__photo--b { bottom: 0; left: 0; width: 32%; rotate: -5deg; animation: acc-flotte 8s 1.2s ease-in-out infinite; }
.acc-compo__pastille { position: absolute; z-index: 3; right: 3%; bottom: 7%; display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1rem; border-radius: 999px; background: var(--acc-vert); color: #fff; font-size: .8rem; font-weight: 600; box-shadow: var(--acc-ombre-forte); animation: acc-flotte 6s .6s ease-in-out infinite; }
.acc-compo__pastille svg { width: 1rem; height: 1rem; }

/* ---------- 2. Trois pôles (grille asymétrique) ---------- */
.acc-bento { display: grid; gap: 1.25rem; margin-top: 3rem; }
@media (min-width: 1024px) { .acc-bento { grid-template-columns: 1.15fr 1fr; gap: 1.5rem; margin-top: 3.5rem; } .acc-pole--grand { grid-row: span 2; } }
.acc-pole { position: relative; overflow: hidden; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
.acc-pole:hover { translate: 0 -4px; box-shadow: var(--acc-ombre-forte); }
.acc-pole img { transition: transform 1s var(--acc-courbe); }
.acc-pole:hover img { transform: scale(1.06); }
.acc-pole:hover .acc-icone { background: var(--acc-vert); color: #fff; }
.acc-pole__num { position: absolute; top: 1.1rem; right: 1.4rem; z-index: 2; font-size: 3.25rem; font-weight: 700; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.5px color-mix(in oklab, var(--acc-vert) 40%, transparent); pointer-events: none; }
.acc-pole__titre { font-size: 1.35rem; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--acc-encre); margin-top: 1rem; }
.acc-pole__texte { margin-top: .6rem; font-size: .9rem; line-height: 1.6; color: var(--acc-doux); }

.acc-pole--grand { display: flex; align-items: flex-end; min-height: 26rem; border: 0; color: #fff; }
@media (min-width: 1024px) { .acc-pole--grand { min-height: 34rem; } }
.acc-pole--grand .acc-pole__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.acc-pole__voile { position: absolute; inset: 0; background: linear-gradient(to top, color-mix(in oklab, var(--acc-vert-fonce) 94%, transparent) 0%, color-mix(in oklab, var(--acc-vert-fonce) 60%, transparent) 40%, transparent 72%); }
.acc-pole--grand .acc-pole__corps { z-index: 1; padding: 2rem; max-width: 32rem; }
@media (min-width: 1024px) { .acc-pole--grand .acc-pole__corps { padding: 2.5rem; } }
.acc-pole--grand .acc-pole__num { left: 1.75rem; right: auto; top: 1.5rem; font-size: 5rem; -webkit-text-stroke-color: rgb(255 255 255 / .8); }
.acc-pole--grand .acc-icone { background: rgb(255 255 255 / .16); color: #fff; border: 1px solid rgb(255 255 255 / .25); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.acc-pole--grand .acc-pole__titre { color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.25rem); }
.acc-pole--grand .acc-pole__texte { color: rgb(255 255 255 / .86); font-size: 1rem; }
.acc-pole--grand .acc-lien { color: #fff; }

.acc-pole--ligne { display: grid; }
@media (min-width: 640px) { .acc-pole--ligne { grid-template-columns: 42% 1fr; } }
.acc-pole__media { position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: var(--acc-teinte); }
@media (min-width: 640px) { .acc-pole__media { aspect-ratio: auto; min-height: 15.5rem; } }
.acc-pole__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.acc-pole--ligne .acc-pole__corps { display: flex; flex-direction: column; align-items: flex-start; padding: 1.75rem 1.75rem 1.6rem; }
.acc-pole--ligne .acc-lien { margin-top: auto; padding-top: 1.1rem; }

/* ---------- 3. Parcours patients et proches ---------- */
.acc-parcours { position: relative; list-style: none; margin: 3rem 0 0; padding: 0 0 0 3.4rem; display: grid; gap: 1.5rem; }
.acc-parcours::before { content: ""; position: absolute; left: 1.3rem; top: 1rem; bottom: 1rem; width: 2px; border-radius: 2px; background: linear-gradient(var(--acc-vert), color-mix(in oklab, var(--acc-vert) 12%, transparent)); transform-origin: top; transform: scaleY(0); transition: transform 1.6s var(--acc-courbe); }
html:not(.acc-js) .acc-parcours::before, .acc-parcours.is-visible::before { transform: none; }
.acc-etape { position: relative; display: flex; flex-direction: column; }
.acc-etape__num { position: absolute; left: -3.4rem; top: .9rem; z-index: 1; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; font-size: .85rem; font-weight: 700; color: var(--acc-vert); background: var(--acc-carte); border: 2px solid var(--acc-vert); box-shadow: 0 0 0 6px var(--acc-fond); transition: background .35s, color .35s; }
.acc-etape:hover .acc-etape__num { background: var(--acc-vert); color: #fff; }
.acc-etape__carte { position: relative; flex: 1; display: flex; flex-direction: column; overflow: hidden; border-radius: 1.5rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); color: inherit; text-decoration: none; transition: translate .4s var(--acc-courbe), box-shadow .4s, border-color .4s; }
.acc-etape__carte:hover { translate: 0 -4px; box-shadow: var(--acc-ombre-forte); border-color: color-mix(in oklab, var(--acc-vert) 30%, var(--acc-bord)); }
.acc-etape__carte:focus-visible { outline: 3px solid var(--acc-vert); outline-offset: 3px; }
.acc-etape__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--acc-teinte); }
.acc-etape__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--acc-courbe); }
.acc-etape__carte:hover .acc-etape__media img { transform: scale(1.06); }
.acc-etape__corps { flex: 1; display: flex; flex-direction: column; padding: 1.3rem 1.35rem 1.4rem; }
.acc-etape__tete { display: flex; align-items: center; gap: .75rem; }
.acc-etape__tete .acc-icone { width: 2.4rem; height: 2.4rem; border-radius: .85rem; }
.acc-etape__tete .acc-icone svg { width: 1.1rem; height: 1.1rem; }
.acc-etape__carte:hover .acc-icone { background: var(--acc-vert); color: #fff; }
.acc-etape__titre { margin: 0; font-size: 1.05rem; font-weight: 600; line-height: 1.25; letter-spacing: -.01em; color: var(--acc-encre); }
.acc-etape__texte { margin-top: .7rem; font-size: .85rem; line-height: 1.55; color: var(--acc-doux); }
.acc-etape__plus { margin-top: auto; padding-top: 1rem; display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; font-weight: 600; color: var(--acc-vert); }
.acc-etape__plus svg { width: .9rem; height: .9rem; transition: translate .3s var(--acc-courbe); }
.acc-etape__carte:hover .acc-etape__plus svg { translate: 4px 0; }
@media (min-width: 640px) and (max-width: 1023px) {
    .acc-etape__carte { flex-direction: row; }
    .acc-etape__media { width: 40%; flex: none; aspect-ratio: auto; min-height: 11rem; }
}
@media (min-width: 1024px) {
    .acc-parcours { grid-template-columns: repeat(4, 1fr); padding: 4.5rem 0 0; margin-top: 3.5rem; }
    .acc-parcours::before { left: 1.3rem; right: 1.3rem; top: 1.3rem; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, var(--acc-vert), color-mix(in oklab, var(--acc-vert) 15%, transparent)); transform-origin: left; transform: scaleX(0); }
    .acc-etape__num { left: 0; top: -4.5rem; }
    .acc-etape:nth-child(even) { padding-top: 2.75rem; }
}

/* ---------- 4. Le Centre VIMA ---------- */
.acc-filigrane { position: absolute; left: -1.5rem; bottom: -2.5rem; z-index: 0; font-size: clamp(8rem, 20vw, 19rem); line-height: 1; font-weight: 700; font-style: italic; letter-spacing: -.03em; color: color-mix(in oklab, var(--acc-vert) 8%, transparent); pointer-events: none; user-select: none; translate: 0 var(--py, 0px); }
.acc-centre { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .acc-centre { grid-template-columns: 1fr 1.1fr; gap: 5rem; } }
.acc-atouts { display: grid; gap: 1.1rem; }
@media (min-width: 1024px) { .acc-atout:nth-child(2) { margin-left: 2.5rem; } .acc-atout:nth-child(3) { margin-left: 5rem; } }
.acc-atout { position: relative; display: flex; align-items: flex-start; gap: 1rem; padding: 1.4rem 1.5rem; border-radius: 1.5rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
.acc-atout:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); }
.acc-atout:hover .acc-icone { background: var(--acc-vert); color: #fff; }
.acc-atout__titre { font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--acc-encre); }
.acc-atout__texte { margin-top: .3rem; font-size: .84rem; line-height: 1.6; color: var(--acc-doux); }
.acc-atout--fort { border: 0; padding-right: 5rem; background: linear-gradient(135deg, var(--acc-vert), var(--acc-vert-fonce)); }
.acc-atout--fort .acc-atout__titre { color: #fff; }
.acc-atout--fort .acc-atout__texte { color: rgb(255 255 255 / .85); }
.acc-atout--fort .acc-icone, .acc-atout--fort:hover .acc-icone { background: rgb(255 255 255 / .16); color: #fff; }
.acc-atout__grec { position: absolute; right: 1.25rem; top: .8rem; font-size: 1.9rem; font-style: italic; line-height: 1; color: rgb(255 255 255 / .35); }

/* ---------- 5. Équipe et partenaires ---------- */
.acc-duo { display: grid; gap: 1.25rem; }
@media (min-width: 1024px) { .acc-duo { grid-template-columns: 5fr 7fr; gap: 1.5rem; } }
.acc-equipe { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 22rem; padding: 2.25rem; border-radius: 1.75rem; color: #fff; background: linear-gradient(150deg, var(--acc-vert), var(--acc-vert-fonce)); box-shadow: var(--acc-ombre-forte); }
@media (min-width: 1024px) { .acc-equipe { padding: 2.75rem; } }
.acc-equipe__motif { position: absolute; inset: 0; background-size: contain; background-position: center; background-repeat: no-repeat; opacity: .4; }
.acc-equipe__anneaux { position: absolute; right: -6rem; top: -6rem; width: 20rem; height: 20rem; pointer-events: none; }
.acc-equipe__anneaux span { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgb(255 255 255 / .22); animation: acc-onde 6s ease-out infinite; }
.acc-equipe__anneaux span:nth-child(2) { animation-delay: 2s; }
.acc-equipe__anneaux span:nth-child(3) { animation-delay: 4s; }
.acc-equipe__corps { position: relative; }
.acc-equipe .acc-icone { background: rgb(255 255 255 / .16); color: #fff; border: 1px solid rgb(255 255 255 / .25); }
.acc-equipe__titre { margin-top: 1.25rem; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem); font-weight: 600; line-height: 1.15; letter-spacing: -.02em; }
.acc-equipe__texte { margin-top: .8rem; max-width: 26rem; font-size: .9rem; line-height: 1.65; color: rgb(255 255 255 / .82); }
.acc-equipe .acc-bouton { margin-top: 1.6rem; }

.acc-partenaires { position: relative; overflow: hidden; display: grid; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
@media (min-width: 768px) { .acc-partenaires { grid-template-columns: 1.4fr .9fr; } }
.acc-partenaires__corps { padding: 2.25rem; display: flex; flex-direction: column; align-items: flex-start; }
@media (min-width: 1024px) { .acc-partenaires__corps { padding: 2.75rem; } }
.acc-partenaires__titre { margin-top: 1.25rem; font-size: clamp(1.45rem, 1.15rem + .9vw, 1.85rem); font-weight: 600; line-height: 1.2; letter-spacing: -.02em; color: var(--acc-encre); }
.acc-puces { list-style: none; margin: 1.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.acc-puces li > * { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .85rem; border-radius: 999px; font-size: .78rem; font-weight: 500; color: var(--acc-encre); background: var(--acc-teinte); border: 1px solid color-mix(in oklab, var(--acc-vert) 14%, transparent); text-decoration: none; }
.acc-puces a { transition: background .3s, color .3s; }
.acc-puces a:hover { background: var(--acc-vert); color: #fff; }
.acc-puces li > *::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: var(--acc-vert); opacity: .7; }
.acc-puces a:hover::before { background: #fff; }
.acc-partenaires__texte { margin-top: 1.1rem; font-size: .88rem; line-height: 1.6; color: var(--acc-doux); }
.acc-partenaires__visuel { position: relative; display: grid; place-items: center; min-height: 14rem; padding: 2rem; background: radial-gradient(circle at 50% 55%, color-mix(in oklab, var(--acc-sable) 55%, var(--acc-carte)) 0%, var(--acc-teinte) 70%); }
.acc-partenaires__visuel img { width: 100%; max-width: 15rem; max-height: 16rem; object-fit: contain; animation: acc-flotte 9s ease-in-out infinite; }


/* ---------- Emplacements photos à compléter ----------
   Une photo absente est masquée sur le site en ligne.
   En aperçu local (Pinegrow, fichier ouvert sur le Mac, ou adresse terminée par ?apercu),
   un cadre hachuré indique le nom du fichier attendu. */
.acc-manquante { display: none !important; }
.acc-apercu .acc-manquante { display: grid !important; place-items: center; padding: .75rem; text-align: center; border: 2px dashed color-mix(in oklab, var(--acc-vert) 55%, transparent); background: repeating-linear-gradient(45deg, var(--acc-teinte) 0 10px, var(--acc-carte) 10px 20px); color: var(--acc-vert); font: 600 .72rem/1.35 system-ui, sans-serif; }
.acc-apercu .acc-manquante > * { display: none !important; }
.acc-apercu .acc-manquante::after { content: attr(data-etiquette); white-space: pre-line; }
.acc-apercu .acc-equipe .acc-manquante { border-color: rgb(255 255 255 / .6); color: #fff; background: repeating-linear-gradient(45deg, rgb(255 255 255 / .08) 0 10px, transparent 10px 20px); }

.acc-equipe { flex-direction: column; align-items: stretch; justify-content: flex-end; }
.acc-equipe__corps { margin-top: auto; }
.acc-equipe__photo { position: relative; z-index: 1; margin: 0 0 1.75rem; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 1.25rem; border: 1px solid rgb(255 255 255 / .25); box-shadow: 0 18px 40px -20px rgb(0 0 0 / .5); }
.acc-equipe__photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--acc-courbe); }
.acc-equipe:hover .acc-equipe__photo img { transform: scale(1.04); }
.acc-equipe__tete { display: flex; align-items: center; gap: .9rem; }
.acc-portraits { list-style: none; margin: 0; padding: 0; display: flex; }
.acc-portraits li { width: 2.9rem; height: 2.9rem; margin-left: -.65rem; border-radius: 50%; overflow: hidden; border: 2px solid #fff; box-shadow: 0 6px 14px -6px rgb(0 0 0 / .45); background: var(--acc-vert-fonce); transition: translate .3s var(--acc-courbe); }
.acc-portraits li:first-child { margin-left: 0; }
.acc-portraits li:hover { translate: 0 -3px; }
.acc-portraits img { display: block; width: 100%; height: 100%; object-fit: cover; }
.acc-apercu .acc-portraits li.acc-manquante { padding: 0; border-style: dashed; font-size: .62rem; }

.acc-facade { position: relative; margin: 1.75rem 0 0; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 1.5rem; box-shadow: var(--acc-ombre-forte); }
.acc-facade img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--acc-courbe); }
.acc-facade:hover img { transform: scale(1.04); }
.acc-facade__legende { position: absolute; left: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .85rem; border-radius: 999px; font-size: .78rem; font-weight: 600; color: var(--acc-encre); background: color-mix(in oklab, var(--acc-carte) 88%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--acc-ombre); }
.acc-facade__legende svg { width: .95rem; height: .95rem; color: var(--acc-vert); }

.acc-logos { list-style: none; margin: 1.4rem 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 1.75rem; }
html:not(.acc-apercu) .acc-logos:not(:has(li:not(.acc-manquante))) { display: none; }
.acc-logos li { height: 2.6rem; display: flex; align-items: center; }
.acc-logos img { height: 100%; width: auto; max-width: 7.5rem; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .3s, opacity .3s; }
.acc-logos li:hover img { filter: none; opacity: 1; }
.acc-apercu .acc-logos li.acc-manquante { width: 7rem; padding: .25rem; border-radius: .6rem; font-size: .62rem; }

/* ---------- 6. Appel final ---------- */
.acc-cta .acc-flotte { animation: acc-derive 16s ease-in-out infinite alternate; }
.acc-cta .acc-flotte + .acc-flotte { animation-duration: 21s; animation-direction: alternate-reverse; }

/* ---------- Animations ---------- */
@keyframes acc-derive { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(3rem, -2rem) scale(1.08); } 100% { transform: translate(-2rem, 2.5rem) scale(.95); } }
@keyframes acc-flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes acc-tourne { to { rotate: 360deg; } }
@keyframes acc-souligne { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes acc-onde { 0% { transform: scale(.55); opacity: 0; } 25% { opacity: 1; } 100% { transform: scale(1.35); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
    .acc-js [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
    .acc-blob, .acc-flotte, .acc-compo__photo, .acc-compo__pastille, .acc-compo__anneau, .acc-equipe__anneaux span, .acc-partenaires__visuel img, .acc-hero__titre em::after { animation: none !important; }
    .acc-parcours::before { transform: none !important; transition: none !important; }
}

/* =====================================================================
   PAGES INTÉRIEURES (le-centre.html et suivantes)
   ===================================================================== */

/* ---------- Photos à remplacer (image-blanche.png) ----------
   En aperçu local (Pinegrow, fichier ouvert sur le Mac, ou ?apercu dans l'adresse),
   chaque image blanche affiche le type de photo attendu. En ligne, elle reste blanche. */
.acc-photo { position: relative; background: var(--acc-carte); }
.acc-apercu .acc-photo:has(> img[src$="image-blanche.png"])::after {
    content: "Photo à ajouter\A" attr(data-photo);
    white-space: pre-line; position: absolute; inset: .6rem; z-index: 2; display: grid; place-items: center; padding: 1rem; text-align: center;
    border: 2px dashed color-mix(in oklab, var(--acc-vert) 45%, transparent); border-radius: calc(1.5rem - .6rem);
    font: 600 .8rem/1.45 system-ui, sans-serif; color: var(--acc-vert); pointer-events: none;
}

/* ---------- En-tête de page ---------- */
.acc-page-hero { position: relative; isolation: isolate; overflow: hidden; padding: 7rem 0 3.5rem; background: var(--acc-fond); }
@media (min-width: 1024px) { .acc-page-hero { padding: 8.5rem 0 4.5rem; } }
.acc-page-hero__grille { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .acc-page-hero__grille { grid-template-columns: 1.1fr .9fr; gap: 4.5rem; } }
.acc-page-hero__titre { margin-top: 1.25rem; font-size: clamp(2.3rem, 1.4rem + 3.2vw, 3.75rem); line-height: 1.05; letter-spacing: -.025em; }
.acc-page-hero__titre em { font-style: normal; color: var(--acc-vert); background: linear-gradient(color-mix(in oklab, var(--acc-sable) 90%, transparent), color-mix(in oklab, var(--acc-sable) 90%, transparent)) no-repeat 0 88% / 100% .28em; -webkit-box-decoration-break: clone; box-decoration-break: clone; animation: acc-souligne-fond 1.1s .7s var(--acc-courbe) both; }
@keyframes acc-souligne-fond { from { background-size: 0 .28em; } to { background-size: 100% .28em; } }
.acc-page-hero__intro { margin-top: 1.4rem; max-width: 38rem; font-size: 1.0625rem; line-height: 1.7; }

.acc-sommaire { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.acc-sommaire a { display: inline-flex; align-items: center; gap: .55rem; padding: .45rem .95rem .45rem .45rem; border-radius: 999px; font-size: .8rem; font-weight: 500; color: var(--acc-encre); text-decoration: none; background: color-mix(in oklab, var(--acc-carte) 85%, transparent); border: 1px solid var(--acc-bord); box-shadow: 0 1px 2px rgb(20 40 30 / .05); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: translate .3s var(--acc-courbe), border-color .3s, color .3s; }
.acc-sommaire a > span { display: grid; place-items: center; width: 1.55rem; height: 1.55rem; border-radius: 50%; font-size: .66rem; font-weight: 700; background: color-mix(in oklab, var(--acc-vert) 12%, transparent); color: var(--acc-vert); transition: background .3s, color .3s; }
.acc-sommaire a:hover { translate: 0 -2px; color: var(--acc-vert); border-color: color-mix(in oklab, var(--acc-vert) 40%, var(--acc-bord)); }
.acc-sommaire a:hover > span { background: var(--acc-vert); color: #fff; }

.acc-vitrine { position: relative; width: 100%; max-width: 32rem; margin-inline: auto; padding: 0 0 1.75rem 1.75rem; }
.acc-vitrine__cadre { position: absolute; left: 0; bottom: 0; width: 72%; height: 72%; border-radius: 2rem; border: 1.5px dashed color-mix(in oklab, var(--acc-vert) 35%, transparent); }
.acc-vitrine__photo { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 2rem; box-shadow: var(--acc-ombre-forte); translate: 0 var(--py, 0px); }
@media (min-width: 1024px) { .acc-vitrine__photo { aspect-ratio: 4 / 5; } }
.acc-vitrine__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.acc-vitrine__badge { position: absolute; z-index: 3; left: 0; bottom: 3.25rem; display: flex; align-items: center; gap: .8rem; padding: .85rem 1.15rem .85rem .85rem; border-radius: 1.25rem; background: var(--acc-carte); box-shadow: var(--acc-ombre-forte); animation: acc-flotte 7s ease-in-out infinite; }
.acc-vitrine__badge .acc-icone { width: 2.6rem; height: 2.6rem; border-radius: .9rem; background: var(--acc-vert); color: #fff; }
.acc-vitrine__badge small { display: block; font-size: .7rem; color: var(--acc-doux); }
.acc-vitrine__badge strong { display: block; font-size: .95rem; line-height: 1.2; color: var(--acc-encre); }
.acc-vitrine__pastille { position: absolute; z-index: 3; right: -.25rem; top: 1.5rem; display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .95rem; border-radius: 999px; font-size: .76rem; font-weight: 600; color: #fff; background: var(--acc-vert); box-shadow: var(--acc-ombre-forte); animation: acc-flotte 8s 1s ease-in-out infinite; }
.acc-vitrine__pastille svg { width: .95rem; height: .95rem; }

/* ---------- Identité ---------- */
.acc-identite-grille { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .acc-identite-grille { grid-template-columns: 1fr 1.1fr; gap: 4.5rem; } }
.acc-identite { position: relative; overflow: hidden; padding: 2.25rem; border-radius: 2rem; color: #fff; background: linear-gradient(150deg, var(--acc-vert), var(--acc-vert-fonce)); box-shadow: var(--acc-ombre-forte); }
@media (min-width: 1024px) { .acc-identite { padding: 2.75rem; } }
.acc-identite__grec { position: absolute; right: -1rem; bottom: -2.2rem; font-size: clamp(6rem, 12vw, 9.5rem); font-style: italic; font-weight: 700; line-height: 1; color: rgb(255 255 255 / .09); pointer-events: none; }
.acc-identite__surtitre { font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .18em; color: rgb(255 255 255 / .7); }
.acc-identite__logo { display: inline-block; margin-top: 1.1rem; padding: .7rem 1rem; border-radius: 1rem; background: #fff; box-shadow: 0 12px 24px -14px rgb(0 0 0 / .5); }
.acc-identite__logo img { display: block; height: 3.5rem; width: auto; }
.acc-identite__titre { position: relative; margin-top: 1.4rem; font-size: clamp(1.9rem, 1.3rem + 1.8vw, 2.6rem); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; }
.acc-identite__texte { position: relative; margin-top: .9rem; max-width: 28rem; font-size: .92rem; line-height: 1.65; color: rgb(255 255 255 / .85); }
.acc-identite .acc-ondes { right: -7rem; top: -7rem; }
.acc-ondes { position: absolute; width: 20rem; height: 20rem; pointer-events: none; }
.acc-ondes span { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgb(255 255 255 / .22); animation: acc-onde 6s ease-out infinite; }
.acc-ondes span:nth-child(2) { animation-delay: 2s; }
.acc-ondes span:nth-child(3) { animation-delay: 4s; }
.acc-lead { font-size: 1.1rem; line-height: 1.7; color: var(--acc-encre); }
.acc-identite-droite .acc-atouts { margin-top: 1.5rem; }
@media (min-width: 1024px) { .acc-identite-droite .acc-atout:nth-child(2) { margin-left: 2.5rem; } }

/* ---------- Galerie des lieux ---------- */
.acc-galerie { display: grid; gap: 1rem; margin-top: 3rem; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 11rem; }
.acc-galerie__item--grand { grid-column: 1 / -1; grid-row: span 2; }
@media (min-width: 1024px) { .acc-galerie { grid-template-columns: 1.4fr 1fr 1fr; grid-auto-rows: 14.5rem; gap: 1.25rem; margin-top: 3.5rem; } .acc-galerie__item--grand { grid-column: 1; grid-row: span 2; } }
.acc-galerie__item { position: relative; margin: 0; overflow: hidden; border-radius: 1.5rem; box-shadow: var(--acc-ombre); }
.acc-galerie__item:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); }
.acc-galerie__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--acc-courbe); }
.acc-galerie__item:hover img { transform: scale(1.06); }
.acc-galerie__item figcaption { position: absolute; z-index: 3; left: .75rem; bottom: .75rem; padding: .45rem .85rem; border-radius: 999px; font-size: .76rem; font-weight: 600; color: var(--acc-encre); background: color-mix(in oklab, var(--acc-carte) 90%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); box-shadow: var(--acc-ombre); transition: translate .4s var(--acc-courbe); }
.acc-galerie__item:hover figcaption { translate: 4px 0; }
.acc-galerie__item--grand figcaption { left: 1.1rem; bottom: 1.1rem; font-size: .85rem; padding: .55rem 1rem; }

/* ---------- Parcours à 3 étapes (trois pôles) ---------- */
@media (min-width: 1024px) { .acc-parcours--3 { grid-template-columns: repeat(3, 1fr); gap: 1.75rem; } }
.acc-etape__liste { list-style: none; margin: 1rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--acc-bord); display: grid; gap: .45rem; }
.acc-etape__liste li { display: flex; align-items: flex-start; gap: .6rem; font-size: .82rem; line-height: 1.45; color: var(--acc-encre); }
.acc-etape__liste li::before { content: ""; flex: none; width: .4rem; height: .4rem; margin-top: .42rem; border-radius: 50%; background: var(--acc-vert); }

/* ---------- Polyclinique du Sidobre ---------- */
.acc-sidobre { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .acc-sidobre { grid-template-columns: 1.1fr .9fr; gap: 4.5rem; } }
.acc-plateau { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; }
.acc-plateau li { display: flex; align-items: center; gap: .7rem; padding: .75rem .9rem; border-radius: 1.1rem; font-size: .84rem; font-weight: 600; color: var(--acc-encre); background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); transition: translate .3s var(--acc-courbe), box-shadow .3s; }
.acc-plateau li:hover { translate: 0 -2px; box-shadow: var(--acc-ombre-forte); }
.acc-plateau .acc-icone { width: 2.2rem; height: 2.2rem; border-radius: .75rem; }
.acc-plateau .acc-icone svg { width: 1.05rem; height: 1.05rem; }
.acc-plateau li.acc-plateau--fort { background: linear-gradient(135deg, var(--acc-vert), var(--acc-vert-fonce)); color: #fff; border: 0; }
.acc-plateau li.acc-plateau--fort .acc-icone { background: rgb(255 255 255 / .16); color: #fff; }
.acc-sidobre__visuel { position: relative; padding: 0 1.5rem 1.5rem 0; }
.acc-sidobre__visuel::before { content: ""; position: absolute; right: 0; bottom: 0; width: 70%; height: 70%; border-radius: 2rem; background: color-mix(in oklab, var(--acc-sable) 70%, transparent); }
.acc-sidobre__photo { position: relative; margin: 0; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 2rem; box-shadow: var(--acc-ombre-forte); }
@media (min-width: 1024px) { .acc-sidobre__photo { aspect-ratio: 4 / 5; } }
.acc-sidobre__photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--acc-courbe); }
.acc-sidobre__photo:hover img { transform: scale(1.04); }
.acc-sidobre__photo .acc-facade__legende { z-index: 3; }

/* ---------- Partenaires ---------- */
.acc-sous-titre { display: flex; align-items: center; gap: 1rem; margin-top: 3.5rem; font-size: 1.25rem; font-weight: 600; letter-spacing: -.01em; color: var(--acc-encre); }
.acc-sous-titre::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--acc-bord), transparent); }
.acc-grille-partenaires { display: grid; gap: 1.25rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .acc-grille-partenaires { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .acc-grille-partenaires--3 { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } .acc-grille-partenaires--2 { gap: 1.5rem; } }
.acc-partenaire { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: 1.5rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
.acc-partenaire:hover { translate: 0 -4px; box-shadow: var(--acc-ombre-forte); }
.acc-partenaire__logo { display: grid; place-items: center; height: 10rem; padding: 1.25rem; background: linear-gradient(160deg, var(--acc-teinte), var(--acc-carte)); border-bottom: 1px solid var(--acc-bord); overflow: hidden; }
.acc-partenaire__logo img { width: 100%; height: 100%; object-fit: contain; border-radius: .75rem; transition: transform .8s var(--acc-courbe); }
.acc-partenaire:hover .acc-partenaire__logo img { transform: scale(1.06); }
.acc-partenaire__corps { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 1.4rem 1.5rem 1.5rem; }
.acc-partenaire__tete { display: flex; align-items: center; gap: .8rem; }
.acc-partenaire__tete .acc-icone { width: 2.5rem; height: 2.5rem; border-radius: .9rem; }
.acc-partenaire__tete .acc-icone svg { width: 1.15rem; height: 1.15rem; }
.acc-partenaire:hover .acc-icone { background: var(--acc-vert); color: #fff; }
.acc-partenaire__titre { margin: 0; font-size: 1.08rem; font-weight: 600; line-height: 1.25; color: var(--acc-encre); }
.acc-partenaire__texte { margin-top: .75rem; font-size: .86rem; line-height: 1.6; color: var(--acc-doux); }
.acc-partenaire .acc-puces { margin-top: 1rem; }
.acc-partenaire .acc-lien { margin-top: auto; padding-top: 1.1rem; }
@media (min-width: 768px) {
    .acc-partenaire--large { display: grid; grid-template-columns: 38% 1fr; }
    .acc-partenaire--large .acc-partenaire__logo { height: auto; min-height: 15rem; border-bottom: 0; border-right: 1px solid var(--acc-bord); }
}
.acc-partenaire--nous { border: 1.5px solid color-mix(in oklab, var(--acc-vert) 45%, transparent); }
.acc-partenaire__etiquette { position: absolute; z-index: 2; top: .9rem; left: .9rem; padding: .35rem .75rem; border-radius: 999px; font-size: .7rem; font-weight: 600; color: #fff; background: var(--acc-vert); box-shadow: var(--acc-ombre); }

@media (prefers-reduced-motion: reduce) {
    .acc-vitrine__badge, .acc-vitrine__pastille, .acc-ondes span, .acc-page-hero__titre em { animation: none !important; }
}

/* =====================================================================
   PAGE 404 et éléments complémentaires
   ===================================================================== */
.acc-bouton--plein { background: var(--acc-vert); color: #fff; box-shadow: 0 12px 24px -12px color-mix(in oklab, var(--acc-vert) 70%, transparent); }
.acc-bouton--plein:hover { background: var(--acc-vert-fonce); }
.acc-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

.acc-404 { position: relative; width: 100%; max-width: 30rem; margin-inline: auto; text-align: center; }
.acc-404__chiffres { display: flex; align-items: center; justify-content: center; gap: .04em; font-size: clamp(6.5rem, 16vw, 11rem); font-weight: 700; line-height: 1; letter-spacing: -.04em; }
.acc-404__chiffres > span:not(.acc-404__zero) { background: linear-gradient(160deg, var(--acc-vert), var(--acc-vert-fonce)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.acc-404__zero { position: relative; display: grid; place-items: center; width: .78em; height: .95em; }
.acc-404__zero::before { content: ""; position: absolute; inset: .06em .02em; border-radius: 50%; border: .11em solid var(--acc-vert); }
.acc-404__anneau { position: absolute; inset: -.04em -.1em; border-radius: 50%; border: 2px dashed color-mix(in oklab, var(--acc-vert) 40%, transparent); animation: acc-tourne 24s linear infinite; }
.acc-404__boussole { position: relative; display: grid; place-items: center; width: .34em; height: .34em; border-radius: 50%; background: color-mix(in oklab, var(--acc-sable) 85%, var(--acc-carte)); color: var(--acc-vert); }
.acc-404__boussole svg { width: 62%; height: 62%; animation: acc-cherche 4.5s ease-in-out infinite; }
.acc-404__chemin { display: block; width: 100%; height: auto; margin-top: 1.5rem; overflow: visible; }
.acc-404__trace { fill: none; stroke: color-mix(in oklab, var(--acc-vert) 55%, transparent); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 2 10; animation: acc-marche 1.6s linear infinite; }
.acc-404__point { fill: var(--acc-vert); }
.acc-404__point--vide { fill: var(--acc-carte); stroke: var(--acc-vert); stroke-width: 2.5; }
.acc-404__inconnu circle { fill: var(--acc-carte); stroke: var(--acc-sable); stroke-width: 3; }
.acc-404__inconnu .acc-404__halo { fill: color-mix(in oklab, var(--acc-sable) 60%, transparent); stroke: none; transform-box: fill-box; transform-origin: center; animation: acc-pulse 2.4s ease-out infinite; }
.acc-404__inconnu text { font: 700 18px/1 Georgia, serif; fill: var(--acc-vert); }
.acc-404__etiquette { font: 600 12px/1 system-ui, sans-serif; fill: var(--acc-doux); }
@keyframes acc-cherche { 0%, 100% { rotate: -25deg; } 30% { rotate: 40deg; } 60% { rotate: -10deg; } }
@keyframes acc-marche { to { stroke-dashoffset: -24; } }
@keyframes acc-pulse { 0% { transform: scale(.7); opacity: .9; } 100% { transform: scale(1.9); opacity: 0; } }

.acc-grille-cartes { list-style: none; margin: 3rem 0 0; padding: 0; display: grid; gap: 1.25rem; }
@media (min-width: 1024px) { .acc-grille-cartes { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
.acc-grille-cartes > li { display: flex; flex-direction: column; }
.acc-grille-cartes .acc-etape__media { position: relative; }

.acc-liens-utiles { margin-top: 3rem; }
.acc-liens-utiles__titre { font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--acc-doux); }
.acc-liens-utiles .acc-sommaire { margin-top: 1rem; }
.acc-sommaire a > span svg { width: .8rem; height: .8rem; }

@media (prefers-reduced-motion: reduce) {
    .acc-404__anneau, .acc-404__boussole svg, .acc-404__trace, .acc-404__inconnu .acc-404__halo { animation: none !important; }
}

/* =====================================================================
   PAGES « PATIENTS ET PROCHES » (accompagner-un-proche.html…)
   ===================================================================== */
.acc-teinte .acc-etape__num { box-shadow: 0 0 0 6px var(--acc-teinte); }
div.acc-etape__carte:hover { translate: 0 -3px; }

.acc-duo-texte { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .acc-duo-texte { grid-template-columns: 1fr 1fr; gap: 4.5rem; } }
.acc-cadre-photo { position: relative; margin-top: 1.75rem; padding: 0 1.25rem 1.25rem 0; }
.acc-cadre-photo::before { content: ""; position: absolute; right: 0; bottom: 0; width: 70%; height: 70%; border-radius: 1.75rem; background: color-mix(in oklab, var(--acc-sable) 70%, transparent); }
.acc-cadre-photo--vert::before { background: color-mix(in oklab, var(--acc-vert) 18%, transparent); }
.acc-cadre-photo > figure, .acc-cadre-photo > img { position: relative; display: block; margin: 0; width: 100%; border-radius: 1.75rem; overflow: hidden; box-shadow: var(--acc-ombre-forte); }
.acc-cadre-photo img { display: block; width: 100%; height: auto; transition: transform 1.2s var(--acc-courbe); }
.acc-cadre-photo:hover img { transform: scale(1.03); }

.acc-conseils { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
@media (min-width: 640px) { .acc-conseils { grid-template-columns: repeat(2, 1fr); } }
.acc-conseils li { position: relative; display: flex; align-items: flex-start; gap: .85rem; padding: 1.1rem 1.15rem; border-radius: 1.25rem; font-size: .88rem; line-height: 1.55; color: var(--acc-encre); background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); transition: translate .35s var(--acc-courbe), box-shadow .35s; }
.acc-conseils li:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); }
.acc-conseils li:hover .acc-icone { background: var(--acc-vert); color: #fff; }
.acc-conseils .acc-icone { width: 2.4rem; height: 2.4rem; border-radius: .85rem; }
.acc-conseils .acc-icone svg { width: 1.1rem; height: 1.1rem; }
.acc-conseils a { color: var(--acc-vert); font-weight: 600; }
.acc-conseils li.acc-conseils--fort { background: linear-gradient(135deg, var(--acc-vert), var(--acc-vert-fonce)); color: #fff; border: 0; }
.acc-conseils li.acc-conseils--fort .acc-icone { background: rgb(255 255 255 / .16); color: #fff; }
@media (min-width: 640px) { .acc-conseils li.acc-conseils--large { grid-column: 1 / -1; } }

.acc-encart { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; padding: 1.2rem 1.4rem; border-radius: 1.5rem; background: var(--acc-carte); border: 1.5px dashed color-mix(in oklab, var(--acc-vert) 35%, transparent); font-size: .92rem; line-height: 1.55; color: var(--acc-encre); }
.acc-encart a { color: var(--acc-vert); font-weight: 600; }

.acc-partenaire__logo--photo { padding: 0; }
.acc-partenaire__logo--photo img { object-fit: cover; border-radius: 0; }
.acc-partenaire--sans-logo .acc-partenaire__corps { padding-top: 1.6rem; }
.acc-tel-gros { display: inline-flex; align-items: center; gap: .5rem; margin-top: .9rem; padding: .55rem 1rem; border-radius: 999px; font-size: 1rem; font-weight: 700; letter-spacing: .02em; color: var(--acc-vert); background: var(--acc-teinte); text-decoration: none; transition: background .3s, color .3s; }
.acc-tel-gros:hover { background: var(--acc-vert); color: #fff; }
.acc-tel-gros svg { width: 1rem; height: 1rem; }

/* =====================================================================
   PAGE ACTUALITÉS — vignettes discrètes, réseaux sociaux, calendrier
   ===================================================================== */
@media (min-width: 1024px) { .acc-page-hero__grille--etroite { grid-template-columns: 1.4fr .6fr; } }

/* Vignette : petite image d'illustration encadrée */
.acc-vignette { position: relative; width: 100%; max-width: 22rem; margin-inline: auto; padding: 0 1rem 1rem 0; }
.acc-vignette--petite { max-width: 18rem; }
.acc-vignette::before { content: ""; position: absolute; right: 0; bottom: 0; width: 75%; height: 75%; border-radius: 1.5rem; background: color-mix(in oklab, var(--acc-sable) 70%, transparent); }
.acc-vignette > figure { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 1.5rem; box-shadow: var(--acc-ombre-forte); rotate: -2deg; transition: rotate .5s var(--acc-courbe); }
.acc-vignette:hover > figure { rotate: 0deg; }
.acc-vignette > figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.acc-apercu .acc-vignette .acc-photo:has(> img[src$="image-blanche.png"])::after { font-size: .7rem; inset: .4rem; }
.acc-vignette .acc-vitrine__badge { left: -1.25rem; bottom: -.5rem; }
@media (max-width: 1023px) { .acc-vignette .acc-vitrine__badge { left: 0; } }

/* Réseaux sociaux */
.acc-reseaux { display: grid; gap: 1.5rem; margin-top: 3rem; }
@media (min-width: 1280px) { .acc-reseaux { grid-template-columns: 1fr 1fr; align-items: start; } }
.acc-reseau { overflow: hidden; padding: 1.25rem; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
@media (min-width: 640px) { .acc-reseau { padding: 1.5rem; } }
.acc-reseau__tete { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1.1rem; }
.acc-reseau__nom { font-size: 1.05rem; font-weight: 600; color: var(--acc-encre); }
.acc-reseau--instagram .acc-icone { background: linear-gradient(135deg, #f58529, #dd2a7b 55%, #8134af); color: #fff; }
.acc-reseau--facebook .acc-icone { background: #1877f2; color: #fff; }
.acc-direct { margin-left: auto; display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .75rem; border-radius: 999px; font-size: .7rem; font-weight: 600; color: var(--acc-doux); background: var(--acc-teinte); }
.acc-direct::before { content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: #22a35a; animation: acc-vif 2s ease-out infinite; }
@keyframes acc-vif { 0% { box-shadow: 0 0 0 0 rgb(34 163 90 / .55); } 100% { box-shadow: 0 0 0 8px rgb(34 163 90 / 0); } }

/* Calendrier des campagnes */
.acc-frise { list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: .45rem; }
@media (min-width: 768px) { .acc-frise { grid-template-columns: repeat(12, 1fr); } }
.acc-frise li > * { display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: .65rem .2rem .55rem; border-radius: 1rem; font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--acc-doux); background: color-mix(in oklab, var(--acc-carte) 70%, transparent); border: 1px solid var(--acc-bord); text-decoration: none; transition: translate .3s var(--acc-courbe), background .3s, color .3s, border-color .3s; }
.acc-frise li > span { opacity: .5; }
.acc-frise li > a { color: var(--acc-encre); background: var(--acc-carte); box-shadow: var(--acc-ombre); }
.acc-frise li > a:hover { translate: 0 -3px; border-color: color-mix(in oklab, var(--acc-vert) 40%, var(--acc-bord)); }
.acc-frise__points { display: flex; gap: 3px; height: .45rem; }
.acc-frise__points i { width: .45rem; height: .45rem; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(0 0 0 / .12); }
.acc-frise li > .is-actuel { background: var(--acc-vert); color: #fff; border-color: var(--acc-vert); }
.acc-frise li > .is-actuel i { box-shadow: 0 0 0 1.5px #fff; }

.acc-mois-grille { display: grid; gap: 1rem; margin-top: 1.5rem; }
@media (min-width: 640px) { .acc-mois-grille { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .acc-mois-grille { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } }
@media (min-width: 1280px) { .acc-mois-grille { grid-template-columns: repeat(4, 1fr); } }
.acc-mois { position: relative; padding: 1.3rem 1.3rem 1.4rem; border-radius: 1.5rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); scroll-margin-top: 7rem; }
.acc-mois:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); }
.acc-mois__tete { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.acc-mois__nom { margin: 0; font-size: 1.15rem; font-weight: 600; color: var(--acc-encre); }
.acc-mois__num { font-size: 2.1rem; font-weight: 700; line-height: 1; color: transparent; -webkit-text-stroke: 1.2px color-mix(in oklab, var(--acc-vert) 35%, transparent); }
.acc-mois__liste { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; }
.acc-campagne { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .8rem .4rem .6rem; border-radius: 999px; border: 1px solid; font-size: .76rem; font-weight: 600; line-height: 1.25; }
.acc-campagne svg { flex: none; width: .9rem; height: .9rem; }
.acc-mois.is-actuel { border: 2px solid var(--acc-vert); box-shadow: var(--acc-ombre-forte); }
.acc-mois.is-actuel::after { content: "Ce mois-ci"; position: absolute; top: -.7rem; right: 1rem; padding: .25rem .65rem; border-radius: 999px; font-size: .68rem; font-weight: 600; color: #fff; background: var(--acc-vert); }

@media (prefers-reduced-motion: reduce) { .acc-direct::before { animation: none; } }

/* Fiches Google mises en avant (page Actualités) */
.acc-google { position: relative; overflow: hidden; margin-top: 2.5rem; padding: 1.6rem; border-radius: 1.75rem; background: linear-gradient(135deg, var(--acc-carte), color-mix(in oklab, var(--acc-sable) 35%, var(--acc-carte))); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre-forte); scroll-margin-top: 7rem; }
@media (min-width: 1024px) { .acc-google { display: grid; grid-template-columns: .8fr 1.2fr; gap: 2rem; align-items: center; padding: 2rem 2.25rem; } }
.acc-google::before { content: ""; position: absolute; right: -4rem; top: -4rem; width: 14rem; height: 14rem; border-radius: 50%; border: 1px dashed color-mix(in oklab, var(--acc-vert) 30%, transparent); animation: acc-tourne 60s linear infinite; pointer-events: none; }
.acc-google__titre { margin: .9rem 0 0; font-size: clamp(1.35rem, 1.1rem + .8vw, 1.7rem); font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--acc-encre); }
.acc-google__intro { margin-top: .5rem; font-size: .9rem; line-height: 1.6; color: var(--acc-doux); }
.acc-google__grille { position: relative; display: grid; gap: .9rem; margin-top: 1.25rem; }
@media (min-width: 640px) { .acc-google__grille { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .acc-google__grille { margin-top: 0; } }
.acc-google__carte { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.15rem; border-radius: 1.25rem; text-decoration: none; color: var(--acc-encre); background: var(--acc-carte); border: 1.5px solid color-mix(in oklab, var(--acc-vert) 25%, var(--acc-bord)); box-shadow: var(--acc-ombre); transition: translate .35s var(--acc-courbe), box-shadow .35s, border-color .35s; }
.acc-google__carte:hover { translate: 0 -3px; border-color: var(--acc-vert); box-shadow: var(--acc-ombre-forte); }
.acc-google__carte .acc-icone { width: 3rem; height: 3rem; border-radius: 1rem; background: var(--acc-vert); color: #fff; }
.acc-google__carte strong { display: block; font-size: .95rem; line-height: 1.3; }
.acc-google__carte small { display: block; margin-top: .2rem; font-size: .76rem; line-height: 1.35; color: var(--acc-doux); }
.acc-google__fleche { margin-left: auto; flex: none; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; color: var(--acc-vert); background: var(--acc-teinte); transition: background .3s, color .3s, rotate .35s var(--acc-courbe); }
.acc-google__fleche svg { width: 1rem; height: 1rem; }
.acc-google__carte:hover .acc-google__fleche { background: var(--acc-vert); color: #fff; rotate: 45deg; }
@media (prefers-reduced-motion: reduce) { .acc-google::before { animation: none; } }

/* =====================================================================
   PAGE « APRÈS LES TRAITEMENTS »
   ===================================================================== */
@media (min-width: 1024px) { .acc-duo-texte--inverse > :first-child { order: 2; } }
.acc-vignette--gauche { margin: 1.75rem 0 0; }
@media (max-width: 1023px) { .acc-vignette--gauche { margin-inline: auto; } }

/* Rythme du suivi : des points qui s'espacent */
.acc-rythme { margin-top: 1.25rem; padding: 1.2rem 1.4rem 1.3rem; border-radius: 1.5rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
.acc-rythme__legende { display: flex; justify-content: space-between; gap: 1rem; font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--acc-doux); }
.acc-rythme__piste { position: relative; height: 2.2rem; margin: .35rem .5rem 0; }
.acc-rythme__piste::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--acc-vert), color-mix(in oklab, var(--acc-vert) 15%, transparent)); }
.acc-rythme__piste i { position: absolute; top: 50%; width: .85rem; height: .85rem; margin: -.425rem 0 0 -.425rem; border-radius: 50%; background: var(--acc-vert); box-shadow: 0 0 0 4px var(--acc-carte); transform: scale(0); transition: transform .5s var(--acc-courbe); transition-delay: calc(var(--n, 0) * 140ms + 300ms); }
.acc-rythme.is-visible .acc-rythme__piste i, html:not(.acc-js) .acc-rythme__piste i { transform: scale(1); }
.acc-rythme__texte { margin-top: .55rem; font-size: .85rem; line-height: 1.5; color: var(--acc-encre); }

/* Deux cartes côte à côte : soutien + droit à l'oubli */
.acc-duo-cartes { display: grid; gap: 1.25rem; }
@media (min-width: 1024px) { .acc-duo-cartes { grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch; } }
.acc-duo-cartes > .acc-partenaire { scroll-margin-top: 7rem; }
.acc-oubli { position: relative; overflow: hidden; padding: 2rem; border-radius: 1.75rem; color: #fff; background: linear-gradient(150deg, var(--acc-vert), var(--acc-vert-fonce)); box-shadow: var(--acc-ombre-forte); scroll-margin-top: 7rem; }
@media (min-width: 1024px) { .acc-oubli { padding: 2.25rem 2.5rem; } }
.acc-oubli .acc-ondes { right: -8rem; bottom: -8rem; }
.acc-oubli__tete { position: relative; display: flex; align-items: center; gap: .8rem; }
.acc-oubli__tete .acc-icone { width: 2.5rem; height: 2.5rem; border-radius: .9rem; background: rgb(255 255 255 / .16); color: #fff; }
.acc-oubli__titre { margin: 0; font-size: 1.08rem; font-weight: 600; }
.acc-oubli__chiffre { position: relative; margin-top: 1.1rem; font-size: clamp(3.4rem, 2.6rem + 3vw, 4.8rem); font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.acc-oubli__chiffre small { margin-left: .35rem; font-size: .34em; font-weight: 600; letter-spacing: 0; opacity: .85; }
.acc-oubli p { position: relative; margin-top: .8rem; font-size: .92rem; line-height: 1.6; color: rgb(255 255 255 / .88); }
.acc-oubli strong { color: #fff; }
.acc-oubli .acc-bouton { position: relative; margin-top: 1.25rem; }

/* Raccourcis compacts avec petite vignette (page 404…) */
.acc-raccourcis { list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 768px) { .acc-raccourcis { grid-template-columns: repeat(3, 1fr); gap: 1.25rem; } }
.acc-raccourci { position: relative; display: flex; align-items: center; gap: 1rem; height: 100%; padding: .9rem 1rem .9rem .9rem; border-radius: 1.4rem; text-decoration: none; color: var(--acc-encre); background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); transition: translate .35s var(--acc-courbe), box-shadow .35s, border-color .35s; }
.acc-raccourci:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); border-color: color-mix(in oklab, var(--acc-vert) 35%, var(--acc-bord)); }
.acc-raccourci__vignette { position: relative; flex: none; width: 5.25rem; height: 5.25rem; margin: 0; overflow: hidden; border-radius: 1rem; background: var(--acc-teinte); border: 1px solid var(--acc-bord); }
.acc-raccourci__vignette img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--acc-courbe); }
.acc-raccourci:hover .acc-raccourci__vignette img { transform: scale(1.08); }
.acc-apercu .acc-raccourci__vignette.acc-photo:has(> img[src$="image-blanche.png"])::after { inset: .25rem; padding: .2rem; font-size: .55rem; line-height: 1.25; border-radius: .75rem; }
.acc-raccourci__texte { flex: 1; min-width: 0; }
.acc-raccourci__titre { display: flex; align-items: center; gap: .45rem; margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.25; }
.acc-raccourci__titre svg { flex: none; width: 1rem; height: 1rem; color: var(--acc-vert); }
.acc-raccourci__detail { margin-top: .3rem; font-size: .8rem; line-height: 1.45; color: var(--acc-doux); }
.acc-raccourci__fleche { flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; color: var(--acc-vert); background: var(--acc-teinte); transition: background .3s, color .3s, translate .3s var(--acc-courbe); }
.acc-raccourci__fleche svg { width: .95rem; height: .95rem; }
.acc-raccourci:hover .acc-raccourci__fleche { background: var(--acc-vert); color: #fff; translate: 3px 0; }

/* =====================================================================
   COMPOSANTS DES PAGES INTÉRIEURES (lot 3 : soins, équipe, contact…)
   ===================================================================== */
.acc-section[id], .acc-section [id] { scroll-margin-top: 7rem; }
.acc-section--serree { padding-bottom: 5rem; }
@media (min-width: 1024px) { .acc-section--serree { padding-bottom: 6.5rem; } }
.acc-texte p + p { margin-top: 1rem; }
.acc-texte p { line-height: 1.7; color: var(--acc-doux); }
.acc-texte a, .acc-lien-texte { color: var(--acc-vert); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* Chronologie verticale (étapes d'une séance, d'une consultation…) */
.acc-chrono { position: relative; list-style: none; margin: 0; padding: 0 0 0 3.25rem; display: grid; gap: 1rem; counter-reset: chrono; }
.acc-chrono::before { content: ""; position: absolute; left: 1.2rem; top: 1.2rem; bottom: 1.2rem; width: 2px; border-radius: 2px; background: linear-gradient(var(--acc-vert), color-mix(in oklab, var(--acc-vert) 12%, transparent)); transform-origin: top; transform: scaleY(0); transition: transform 1.6s var(--acc-courbe); }
html:not(.acc-js) .acc-chrono::before, .acc-chrono.is-visible::before { transform: none; }
.acc-chrono > li { position: relative; counter-increment: chrono; padding: 1.15rem 1.35rem 1.25rem; border-radius: 1.35rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); transition: translate .35s var(--acc-courbe), box-shadow .35s, border-color .35s; }
.acc-chrono > li:hover { translate: 4px 0; box-shadow: var(--acc-ombre-forte); border-color: color-mix(in oklab, var(--acc-vert) 30%, var(--acc-bord)); }
.acc-chrono > li::before { content: counter(chrono, decimal-leading-zero); position: absolute; left: -3.25rem; top: 1rem; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; font-size: .78rem; font-weight: 700; color: var(--acc-vert); background: var(--acc-carte); border: 2px solid var(--acc-vert); box-shadow: 0 0 0 5px var(--acc-fond); transition: background .3s, color .3s; }
.acc-teinte .acc-chrono > li::before { box-shadow: 0 0 0 5px var(--acc-teinte); }
.acc-chrono > li:hover::before { background: var(--acc-vert); color: #fff; }
.acc-chrono__titre { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.3; color: var(--acc-encre); }
.acc-chrono__texte { margin-top: .4rem; font-size: .86rem; line-height: 1.6; color: var(--acc-doux); }
.acc-chrono__texte a { color: var(--acc-vert); font-weight: 600; }
.acc-chrono__duree { display: inline-flex; margin-left: .5rem; padding: .15rem .55rem; border-radius: 999px; font-size: .68rem; font-weight: 600; vertical-align: middle; color: var(--acc-vert); background: var(--acc-teinte); }
@media (min-width: 1024px) {
    .acc-chrono--grille { padding: 3.6rem 0 0; grid-template-columns: repeat(var(--n, 4), 1fr); gap: 1.25rem; }
    .acc-chrono--grille::before { left: 1.2rem; right: 1.2rem; top: 1.2rem; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, var(--acc-vert), color-mix(in oklab, var(--acc-vert) 15%, transparent)); transform-origin: left; transform: scaleX(0); }
    .acc-chrono--grille > li::before { left: 0; top: -3.6rem; }
    .acc-chrono--grille > li:hover { translate: 0 -4px; }
}

/* Questions fréquentes */
.acc-faq { display: grid; gap: .75rem; }
.acc-faq details { border-radius: 1.25rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); transition: border-color .3s, box-shadow .3s; }
.acc-faq details[open] { border-color: color-mix(in oklab, var(--acc-vert) 40%, var(--acc-bord)); box-shadow: var(--acc-ombre-forte); }
.acc-faq summary { position: relative; display: flex; align-items: center; gap: 1rem; padding: 1.1rem 3.6rem 1.1rem 1.35rem; list-style: none; cursor: pointer; font-size: .98rem; font-weight: 600; line-height: 1.35; color: var(--acc-encre); }
.acc-faq summary::-webkit-details-marker { display: none; }
.acc-faq summary::after { content: "+"; position: absolute; right: 1rem; top: 50%; translate: 0 -50%; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; font-size: 1.25rem; font-weight: 500; line-height: 1; color: var(--acc-vert); background: var(--acc-teinte); transition: rotate .35s var(--acc-courbe), background .3s, color .3s; }
.acc-faq details[open] summary::after { rotate: 45deg; background: var(--acc-vert); color: #fff; }
.acc-faq summary:focus-visible { outline: 3px solid var(--acc-vert); outline-offset: 2px; border-radius: 1.25rem; }
.acc-faq details > div { padding: 0 1.35rem 1.25rem; font-size: .9rem; line-height: 1.65; color: var(--acc-doux); }
.acc-faq details > div a { color: var(--acc-vert); font-weight: 600; }

/* Tableau */
.acc-tableau { overflow: hidden; border-radius: 1.5rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
.acc-tableau table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.acc-tableau thead th { padding: 1rem 1.35rem; text-align: left; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: #fff; background: linear-gradient(135deg, var(--acc-vert), var(--acc-vert-fonce)); }
.acc-tableau tbody th, .acc-tableau tbody td { padding: 1rem 1.35rem; text-align: left; vertical-align: top; line-height: 1.55; border-top: 1px solid var(--acc-bord); }
.acc-tableau tbody th { width: 46%; font-weight: 600; color: var(--acc-encre); }
.acc-tableau tbody td { color: var(--acc-doux); }
.acc-tableau tbody td strong { color: var(--acc-encre); }
.acc-tableau tbody tr { transition: background .25s; }
.acc-tableau tbody tr:hover { background: var(--acc-teinte); }
.acc-tableau a { color: var(--acc-vert); font-weight: 600; }
.acc-tableau tr.acc-tableau--alerte th { color: #9b2c2c; }
.acc-tableau tr.acc-tableau--alerte th::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-right: .55rem; border-radius: 50%; background: #c53030; vertical-align: middle; }
@media (max-width: 639px) {
    .acc-tableau thead { display: none; }
    .acc-tableau tbody tr { display: block; padding: .9rem 1.1rem; border-top: 1px solid var(--acc-bord); }
    .acc-tableau tbody tr:first-child { border-top: 0; }
    .acc-tableau tbody th, .acc-tableau tbody td { display: block; width: auto; padding: 0; border: 0; }
    .acc-tableau tbody td { margin-top: .3rem; }
}

/* Encadré d'urgence (15 / 112) */
.acc-urgence { position: relative; overflow: hidden; display: grid; gap: 1.25rem; align-items: center; padding: 1.5rem; border-radius: 1.75rem; background: linear-gradient(135deg, #fff5f4, #fde8e6); border: 1.5px solid #f3c2bd; box-shadow: var(--acc-ombre); }
@media (min-width: 768px) { .acc-urgence { grid-template-columns: auto 1fr auto; gap: 1.75rem; padding: 1.6rem 2rem; } }
.acc-urgence__icone { position: relative; display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 1.1rem; color: #fff; background: #c53030; box-shadow: 0 10px 22px -10px rgb(197 48 48 / .7); }
.acc-urgence__icone::after { content: ""; position: absolute; inset: 0; border-radius: inherit; animation: acc-alerte 2.2s ease-out infinite; }
.acc-urgence__icone svg { width: 1.5rem; height: 1.5rem; }
.acc-urgence__titre { margin: 0; font-size: 1.05rem; font-weight: 700; line-height: 1.35; color: #7f1d1d; }
.acc-urgence p { margin-top: .35rem; font-size: .88rem; line-height: 1.6; color: #7a3b36; }
.acc-urgence__numeros { display: flex; gap: .6rem; }
.acc-urgence__numeros a { display: grid; place-items: center; min-width: 4.2rem; height: 4.2rem; padding: 0 .8rem; border-radius: 1.2rem; font-size: 1.6rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; color: #c53030; background: #fff; border: 1.5px solid #f3c2bd; text-decoration: none; transition: translate .3s var(--acc-courbe), background .3s, color .3s; }
.acc-urgence__numeros a small { display: block; margin-top: .2rem; font-size: .58rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #a15a54; }
.acc-urgence__numeros a:hover { translate: 0 -3px; background: #c53030; color: #fff; }
.acc-urgence__numeros a:hover small { color: #ffe4e1; }
@keyframes acc-alerte { 0% { box-shadow: 0 0 0 0 rgb(197 48 48 / .5); } 100% { box-shadow: 0 0 0 14px rgb(197 48 48 / 0); } }

/* Détail d'un traitement : 4 mini-cartes */
.acc-details { display: grid; gap: .85rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .acc-details { grid-template-columns: repeat(2, 1fr); } }
.acc-details > div { position: relative; padding: 1.15rem 1.2rem 1.2rem; border-radius: 1.25rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); transition: translate .35s var(--acc-courbe), box-shadow .35s; }
.acc-details > div:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); }
.acc-details h4 { display: flex; align-items: center; gap: .6rem; margin: 0; font-size: .92rem; font-weight: 600; line-height: 1.3; color: var(--acc-encre); }
.acc-details h4 .acc-icone { width: 2.1rem; height: 2.1rem; border-radius: .75rem; }
.acc-details h4 .acc-icone svg { width: 1rem; height: 1rem; }
.acc-details > div:hover .acc-icone { background: var(--acc-vert); color: #fff; }
.acc-details p { margin-top: .55rem; font-size: .84rem; line-height: 1.6; color: var(--acc-doux); }

/* Vidéo encadrée */
.acc-video { margin: 0; overflow: hidden; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre-forte); }
.acc-video video, .acc-video iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #0d1a14; border: 0; }
.acc-video figcaption { display: flex; align-items: center; gap: .7rem; padding: .95rem 1.25rem; font-size: .82rem; line-height: 1.5; color: var(--acc-doux); }
.acc-video figcaption .acc-icone { width: 2.2rem; height: 2.2rem; border-radius: .8rem; }
.acc-video figcaption .acc-icone svg { width: 1rem; height: 1rem; }

/* Chiffre clé */
.acc-chiffre { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.35rem; border-radius: 1.5rem; color: #fff; background: linear-gradient(135deg, var(--acc-vert), var(--acc-vert-fonce)); box-shadow: var(--acc-ombre-forte); }
.acc-chiffre__valeur { flex: none; font-size: clamp(2.2rem, 1.8rem + 1.6vw, 3rem); font-weight: 700; line-height: 1; letter-spacing: -.03em; }
.acc-chiffre__valeur small { font-size: .45em; font-weight: 600; opacity: .85; }
.acc-chiffre__texte { font-size: .86rem; line-height: 1.5; color: rgb(255 255 255 / .88); }
.acc-vignette .acc-chiffre { position: absolute; z-index: 3; left: -1.25rem; bottom: -.75rem; max-width: 16rem; padding: .85rem 1.1rem; animation: acc-flotte 7s ease-in-out infinite; }
.acc-vignette .acc-chiffre .acc-chiffre__valeur { font-size: 2rem; }
.acc-vignette .acc-chiffre .acc-chiffre__texte { font-size: .76rem; }
@media (max-width: 1023px) { .acc-vignette .acc-chiffre { left: 0; } }

/* Citation / devise */
.acc-citation { position: relative; margin: 0; padding: 1.75rem 1.75rem 1.75rem 2rem; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
.acc-citation::before { content: "“"; position: absolute; left: 1rem; top: -.6rem; font-family: Georgia, serif; font-size: 5.5rem; line-height: 1; color: color-mix(in oklab, var(--acc-vert) 30%, transparent); }
.acc-citation p { position: relative; font-size: 1.12rem; font-style: italic; line-height: 1.65; color: var(--acc-encre); }
.acc-citation footer { margin-top: .9rem; font-size: .8rem; font-weight: 600; color: var(--acc-vert); }

/* Équipe : cartes membres avec petit portrait */
.acc-membres { list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); }
@media (min-width: 1024px) { .acc-membres { gap: 1.25rem; } }
.acc-membre { position: relative; display: flex; align-items: center; gap: 1rem; height: 100%; padding: 1rem 1.15rem 1rem 1rem; border-radius: 1.4rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); transition: translate .35s var(--acc-courbe), box-shadow .35s, border-color .35s; }
.acc-membre:hover { translate: 0 -3px; box-shadow: var(--acc-ombre-forte); border-color: color-mix(in oklab, var(--acc-vert) 35%, var(--acc-bord)); }
.acc-membre__portrait { position: relative; flex: none; width: 4.75rem; height: 4.75rem; margin: 0; overflow: hidden; border-radius: 50%; background: var(--acc-teinte); border: 3px solid var(--acc-carte); box-shadow: 0 0 0 1.5px color-mix(in oklab, var(--acc-vert) 30%, transparent), 0 8px 18px -10px rgb(20 40 30 / .45); }
.acc-membre__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--acc-courbe); }
.acc-membre:hover .acc-membre__portrait img { transform: scale(1.08); }
.acc-apercu .acc-membre__portrait.acc-photo:has(> img[src$="image-blanche.png"])::after { inset: .2rem; padding: .15rem; border-radius: 50%; font-size: .5rem; line-height: 1.2; }
.acc-membre__nom { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.25; color: var(--acc-encre); }
.acc-membre__role { display: inline-flex; margin-top: .35rem; padding: .2rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 600; color: var(--acc-vert); background: var(--acc-teinte); }
.acc-membre__texte { margin-top: .4rem; font-size: .78rem; line-height: 1.45; color: var(--acc-doux); }
.acc-membre a { color: inherit; text-decoration: none; }

/* Grand portrait (fiche médecin) */
.acc-portrait-grand { position: relative; width: 100%; max-width: 20rem; margin-inline: auto; padding: 0 1rem 1rem 0; }
.acc-portrait-grand::before { content: ""; position: absolute; right: 0; bottom: 0; width: 80%; height: 80%; border-radius: 2rem; background: color-mix(in oklab, var(--acc-sable) 70%, transparent); }
.acc-portrait-grand > figure { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 2rem; box-shadow: var(--acc-ombre-forte); }
.acc-portrait-grand > figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.acc-portrait-grand .acc-vitrine__badge { left: -1.25rem; bottom: 1.5rem; }
@media (max-width: 1023px) { .acc-portrait-grand .acc-vitrine__badge { left: 0; } }

/* Fiche d'informations (RPPS, secteur…) */
.acc-fiche { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
@media (min-width: 640px) { .acc-fiche { grid-template-columns: repeat(2, 1fr); } }
.acc-fiche li { display: flex; align-items: center; gap: .85rem; padding: .95rem 1.1rem; border-radius: 1.2rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
.acc-fiche .acc-icone { width: 2.4rem; height: 2.4rem; border-radius: .85rem; }
.acc-fiche .acc-icone svg { width: 1.1rem; height: 1.1rem; }
.acc-fiche small { display: block; font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--acc-doux); }
.acc-fiche strong { display: block; margin-top: .1rem; font-size: .92rem; line-height: 1.35; color: var(--acc-encre); }

/* Bloc « pathologies » (boutons interactifs conservés) */
.acc-patho { padding: 1.6rem; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid color-mix(in oklab, var(--acc-vert) 22%, var(--acc-bord)); box-shadow: var(--acc-ombre); }
@media (min-width: 1024px) { .acc-patho { padding: 2rem 2.25rem; } }
.acc-patho__tete { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.1rem; }
.acc-patho__titre { margin: 0; font-size: 1.05rem; font-weight: 600; color: var(--acc-encre); }

/* Carte (plan d'accès) */
.acc-plan { position: relative; overflow: hidden; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre-forte); }
.acc-plan iframe { display: block; width: 100%; height: 22rem; border: 0; }
@media (min-width: 1024px) { .acc-plan iframe { height: 26rem; } }
.acc-plan__legende { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: 1rem 1.25rem; border-top: 1px solid var(--acc-bord); font-size: .88rem; color: var(--acc-encre); }
.acc-plan__legende .acc-bouton { margin-left: auto; height: 2.4rem; }

/* Horaires */
.acc-horaires { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: .45rem; }
.acc-horaires li { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: .65rem .2rem; border-radius: 1rem; font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; text-align: center; color: var(--acc-encre); background: var(--acc-carte); border: 1px solid var(--acc-bord); }
.acc-horaires li span { font-size: .66rem; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--acc-doux); }
.acc-horaires li.is-ferme { opacity: .55; }
.acc-horaires li.is-partiel { border-color: color-mix(in oklab, var(--acc-vert) 30%, var(--acc-bord)); background: var(--acc-teinte); }

/* Pages de texte (mentions légales, confidentialité) */
.acc-legal { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 1024px) { .acc-legal { grid-template-columns: 16rem 1fr; gap: 3.5rem; } }
.acc-legal__nav { display: none; }
@media (min-width: 1024px) { .acc-legal__nav { display: block; position: sticky; top: 7rem; } }
.acc-legal__nav ol { list-style: none; margin: .9rem 0 0; padding: 0; display: grid; gap: .25rem; counter-reset: legal; }
.acc-legal__nav a { display: flex; gap: .6rem; padding: .45rem .7rem; border-radius: .8rem; font-size: .82rem; line-height: 1.35; color: var(--acc-doux); text-decoration: none; counter-increment: legal; transition: background .25s, color .25s; }
.acc-legal__nav a::before { content: counter(legal, decimal-leading-zero); flex: none; font-size: .7rem; font-weight: 700; color: var(--acc-vert); padding-top: .1rem; }
.acc-legal__nav a:hover { background: var(--acc-teinte); color: var(--acc-encre); }
.acc-legal__blocs { display: grid; gap: 1rem; }
.acc-legal__bloc { padding: 1.5rem 1.6rem; border-radius: 1.5rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); scroll-margin-top: 7rem; }
@media (min-width: 1024px) { .acc-legal__bloc { padding: 1.9rem 2.1rem; } }
.acc-legal__bloc h2 { display: flex; align-items: center; gap: .8rem; margin: 0 0 .9rem; font-size: 1.2rem; font-weight: 600; line-height: 1.3; color: var(--acc-encre); }
.acc-legal__bloc h2 .acc-icone { width: 2.4rem; height: 2.4rem; border-radius: .85rem; }
.acc-legal__bloc h2 .acc-icone svg { width: 1.1rem; height: 1.1rem; }
.acc-legal__bloc h3 { margin: 1.1rem 0 .4rem; font-size: .98rem; font-weight: 600; color: var(--acc-encre); }
.acc-legal__bloc p, .acc-legal__bloc li { font-size: .9rem; line-height: 1.7; color: var(--acc-doux); }
.acc-legal__bloc p + p { margin-top: .7rem; }
.acc-legal__bloc ul { margin: .6rem 0 0; padding-left: 1.2rem; }
.acc-legal__bloc li + li { margin-top: .3rem; }
.acc-legal__bloc a { color: var(--acc-vert); font-weight: 600; word-break: break-word; }
.acc-legal__bloc strong { color: var(--acc-encre); }

/* Liste à puces stylée (remplace liste-vima dans les cartes) */
.acc-liste { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .55rem; }
.acc-liste li { position: relative; padding-left: 1.6rem; font-size: .9rem; line-height: 1.6; color: var(--acc-encre); }
.acc-liste li::before { content: ""; position: absolute; left: .1rem; top: .5rem; width: .7rem; height: .7rem; border-radius: 50%; background: color-mix(in oklab, var(--acc-vert) 18%, transparent); box-shadow: inset 0 0 0 3px var(--acc-vert); }
.acc-liste--coche li::before { top: .25rem; width: 1.05rem; height: 1.05rem; box-shadow: none; background: var(--acc-vert) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 70% no-repeat; }
.acc-liste--alerte li::before { background: #c53030; box-shadow: 0 0 0 3px #fde8e6; top: .55rem; width: .55rem; height: .55rem; }
.acc-liste a { color: var(--acc-vert); font-weight: 600; }
.acc-liste--2 { gap: .6rem 1.5rem; }
@media (min-width: 640px) { .acc-liste--2 { grid-template-columns: repeat(2, 1fr); } }

/* Carte encadrée simple (bloc de texte) */
.acc-bloc { position: relative; padding: 1.6rem 1.6rem 1.7rem; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre); }
@media (min-width: 1024px) { .acc-bloc { padding: 2rem 2.1rem; } }
.acc-bloc__tete { display: flex; align-items: center; gap: .85rem; }
.acc-bloc__titre { margin: 0; font-size: 1.15rem; font-weight: 600; line-height: 1.3; color: var(--acc-encre); }
.acc-bloc--vert { color: #fff; border: 0; background: linear-gradient(150deg, var(--acc-vert), var(--acc-vert-fonce)); box-shadow: var(--acc-ombre-forte); overflow: hidden; }
.acc-bloc--vert .acc-bloc__titre, .acc-bloc--vert strong { color: #fff; }
.acc-bloc--vert .acc-icone { background: rgb(255 255 255 / .16); color: #fff; }
.acc-bloc--vert p, .acc-bloc--vert li { color: rgb(255 255 255 / .88); }
.acc-bloc--vert .acc-liste:not(.acc-liste--coche) li::before { background: rgb(255 255 255 / .2); box-shadow: inset 0 0 0 3px #fff; }
.acc-bloc--vert .acc-liste--coche li::before { background-color: rgb(255 255 255 / .22); }
.acc-bloc--vert a:not(.acc-bouton) { color: #fff; }
.acc-bloc--vert .acc-ondes { right: -8rem; top: -8rem; }
.acc-bloc--alerte { border: 1.5px solid #f3c2bd; background: linear-gradient(160deg, #fff, #fff5f4); }
.acc-bloc--alerte .acc-icone { background: #fde8e6; color: #c53030; }
.acc-bloc > p { margin-top: .9rem; font-size: .9rem; line-height: 1.65; color: var(--acc-doux); }
.acc-bloc--vert > p { color: rgb(255 255 255 / .88); }

/* Étiquette « à privilégier » sur une carte */
.acc-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .65rem; border-radius: 999px; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #fff; background: var(--acc-vert); }
.acc-partenaire--fort { border: 2px solid var(--acc-vert); box-shadow: var(--acc-ombre-forte); }
.acc-copie { display: block; margin-top: .75rem; padding: .6rem .8rem; border-radius: .9rem; font-size: .78rem; font-weight: 600; word-break: break-all; color: var(--acc-vert); background: var(--acc-teinte); text-decoration: none; }
.acc-copie:hover { background: var(--acc-vert); color: #fff; }

@media (prefers-reduced-motion: reduce) {
    .acc-urgence__icone::after, .acc-vignette .acc-chiffre { animation: none !important; }
    .acc-chrono::before { transform: none !important; transition: none !important; }
}
.acc-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* =====================================================================
   COMPLÉMENTS PAR PAGE (lot 3)
   ===================================================================== */
/* =====================================================================
   PAGE CONTACT — compléments (à fusionner dans vima-dynamique.css)
   ===================================================================== */
/* Carte + colonne d'informations (adresse, horaires) */
.acc-contact-grille { display: grid; gap: 1.25rem; }
@media (min-width: 1024px) { .acc-contact-grille { grid-template-columns: 1.3fr 1fr; gap: 1.5rem; align-items: stretch; } }
.acc-contact-grille .acc-plan iframe { height: 100%; min-height: 22rem; }
.acc-contact-infos { display: grid; gap: 1.25rem; align-content: start; }
@media (min-width: 1024px) { .acc-contact-infos { gap: 1.5rem; } }
.acc-contact-infos .acc-horaires { margin-top: 1.1rem; }
.acc-contact-note { font-size: .82rem !important; }
.acc-bloc .acc-copie { margin-top: 1rem; font-size: .9rem; }

/* Horaires : cinq colonnes, en liste sur petit écran */
.acc-horaires--contact li span { line-height: 1.35; }
.acc-horaires--contact .acc-sep { display: none; font-style: normal; }
@media (max-width: 639px) {
    .acc-horaires--contact { grid-template-columns: 1fr; gap: .4rem; }
    .acc-horaires--contact li { flex-direction: row; justify-content: space-between; padding: .6rem .9rem; text-align: left; }
    .acc-horaires--contact li span { font-size: .78rem; text-align: right; }
    .acc-horaires--contact li span br { display: none; }
    .acc-horaires--contact .acc-sep { display: inline; }
}

/* Grille de quatre cartes (accès) */
@media (min-width: 1024px) { .acc-grille-partenaires--4 { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; } }

/* Lien dans l'encadré d'urgence */
.acc-urgence p a { color: #9b2c2c; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* =====================================================================
   PAGE « DR RODOLPHE PAULON » (dr-rodolphe-paulon.html)
   ===================================================================== */
/* Fiche d'informations sur une seule colonne (3 éléments) */
@media (min-width: 640px) { .acc-fiche--1 { grid-template-columns: 1fr; } }
/* Devise (bloc « à valider ») un peu détachée du texte */
.acc-texte .a-valider { margin-top: 1.5rem; }
/* Portrait de l'en-tête : taille modérée */
.acc-page-hero .acc-portrait-grand { max-width: 17rem; }
@media (max-width: 1023px) { .acc-page-hero .acc-portrait-grand { max-width: 14rem; } }
/* Bloc des pathologies : ne jamais déborder de sa colonne (mobile) */
.acc-patho { min-width: 0; }
.acc-patho .pathologies-liste { display: flex; flex-wrap: wrap; gap: .5rem; }

/* =====================================================================
   PAGE « ENTRE LES SÉANCES » — compléments (à fusionner dans vima-dynamique.css)
   ===================================================================== */
/* Horaires dans une carte relais */
.acc-horaire-note { display: flex; align-items: flex-start; gap: .6rem; margin-top: 1rem; padding: .8rem .95rem; border-radius: 1rem; font-size: .8rem; line-height: 1.55; color: var(--acc-encre); background: var(--acc-teinte); border-left: 3px solid var(--acc-vert); }
.acc-horaire-note strong { color: var(--acc-vert); }
.acc-horaire-note__icone { flex: none; display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: .6rem; color: var(--acc-vert); background: var(--acc-carte); }
.acc-horaire-note__icone svg { width: .9rem; height: .9rem; }
.acc-partenaire .acc-tel-gros { margin-top: 1rem; }

/* Renvoi sous la liste des signes d'alerte */
.acc-alerte-renvoi { margin-top: 1.25rem !important; padding-top: 1rem; border-top: 1px dashed #f3c2bd; font-size: .84rem !important; color: #7a3b36 !important; }
.acc-alerte-renvoi a { color: #c53030; font-weight: 700; }

/* =====================================================================
   PAGE « NOTRE ÉQUIPE » (equipe.html) — carte du fondateur
   ===================================================================== */
.acc-fondateur { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 1.75rem; }
.acc-fondateur__portrait { position: relative; flex: none; width: 8.5rem; height: 8.5rem; margin: 0; overflow: hidden; border-radius: 50%; background: rgb(255 255 255 / .16); border: 4px solid rgb(255 255 255 / .28); box-shadow: 0 18px 36px -18px rgb(0 0 0 / .55); }
@media (min-width: 1024px) { .acc-fondateur__portrait { width: 10rem; height: 10rem; } }
.acc-fondateur__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--acc-courbe); }
.acc-identite:hover .acc-fondateur__portrait img { transform: scale(1.08); }
.acc-fondateur .acc-identite__titre { margin-top: .6rem; }
.acc-fondateur .acc-identite__texte { margin-top: .5rem; }

/* =====================================================================
   PAGES LÉGALES (mentions-legales.html, confidentialite.html)
   Compléments à fusionner dans vima-dynamique.css — définis une seule fois ici,
   utilisés par les deux pages.
   ===================================================================== */
/* Petit emblème décoratif dans le bandeau (remplace la photo) */
.acc-legal-embleme { position: relative; display: grid; place-items: center; width: 11rem; aspect-ratio: 1; margin-inline: auto; }
@media (max-width: 1023px) { .acc-legal-embleme { display: none; } }
.acc-legal-embleme__anneau { position: absolute; inset: 0; border-radius: 50%; border: 1.5px dashed color-mix(in oklab, var(--acc-vert) 35%, transparent); animation: acc-tourne 60s linear infinite; }
.acc-legal-embleme__anneau::after { content: ""; position: absolute; top: 12%; left: 12%; width: .65rem; height: .65rem; border-radius: 50%; background: var(--acc-vert); box-shadow: 0 0 0 5px color-mix(in oklab, var(--acc-vert) 18%, transparent); }
.acc-legal-embleme__icone { position: relative; display: grid; place-items: center; width: 5.5rem; height: 5.5rem; border-radius: 1.6rem; color: #fff; background: linear-gradient(150deg, var(--acc-vert), var(--acc-vert-fonce)); box-shadow: .7rem .7rem 0 color-mix(in oklab, var(--acc-sable) 80%, transparent), var(--acc-ombre-forte); rotate: -6deg; }
.acc-legal-embleme__icone svg { width: 2.4rem; height: 2.4rem; }
@media (prefers-reduced-motion: reduce) { .acc-legal-embleme__anneau { animation: none; } }

/* Le sommaire collant (.acc-legal__nav) ne fonctionne pas dans une .acc-section (overflow: hidden crée
   un conteneur de défilement : le sommaire est décalé de 7rem et ne colle pas). « clip » coupe sans créer
   de conteneur de défilement. */
.acc-section--legal { overflow: clip; }

/* =====================================================================
   PAGE « NOTRE APPROCHE » (notre-approche.html)
   ===================================================================== */
/* Bandeau « Rencontrer l'équipe » (encart compact en fin de page) */
.acc-encart--equipe { flex-wrap: wrap; gap: 1.1rem 1.5rem; margin-top: 4.5rem; padding: 1.5rem 1.75rem; box-shadow: var(--acc-ombre); }
.acc-encart--equipe > div { flex: 1 1 20rem; min-width: 0; }
.acc-encart__titre { margin: 0; font-size: 1.2rem; font-weight: 600; line-height: 1.3; letter-spacing: -.01em; color: var(--acc-encre); text-wrap: balance; }
.acc-encart--equipe p { margin-top: .35rem; font-size: .9rem; line-height: 1.55; color: var(--acc-doux); }
/* Espacement du bloc « à valider » sous les cartes de coordination */
.acc-a-valider-zone { margin-top: 2.5rem; }
/* Le bouton plein garde son texte blanc (sinon écrasé par « .acc-encart a ») */
.acc-encart--equipe a.acc-bouton--plein { color: #fff; font-weight: 600; }

/* =====================================================================
   PAGE « PATIENTS ET PROCHES » (patients-et-proches.html)
   ===================================================================== */

/* Parcours en six étapes : 3 colonnes × 2 rangées sur grand écran,
   un trait relie les pastilles de chaque rangée ; images réduites. */
@media (max-width: 639px), (min-width: 1024px) {
    .acc-parcours--6 .acc-etape__media { aspect-ratio: 2 / 1; }
}
@media (min-width: 1024px) {
    .acc-parcours--6 { grid-template-columns: repeat(3, 1fr); gap: 6.75rem 1.75rem; }
    .acc-parcours--6::before { display: none; }
    .acc-parcours--6 .acc-etape::before { content: ""; position: absolute; top: calc(-3.2rem - 1px); left: 1.3rem; right: -1.75rem; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--acc-vert), color-mix(in oklab, var(--acc-vert) 30%, transparent)); transform-origin: left; transform: scaleX(0); transition: transform 1.2s var(--acc-courbe) .25s; }
    .acc-parcours--6 .acc-etape:nth-child(3n)::before { right: 0; background: linear-gradient(90deg, var(--acc-vert), transparent); }
    html:not(.acc-js) .acc-parcours--6 .acc-etape::before, .acc-parcours--6 .acc-etape.is-visible::before { transform: none; }
}

/* Mini-vignette illustrée par une icône (raccourcis sans photo) */
.acc-raccourci__vignette--icone { display: grid; place-items: center; width: 4.5rem; height: 4.5rem; color: var(--acc-vert); background: linear-gradient(150deg, var(--acc-teinte), color-mix(in oklab, var(--acc-sable) 45%, var(--acc-carte))); }
.acc-raccourci__vignette--icone svg { width: 1.75rem; height: 1.75rem; transition: transform .6s var(--acc-courbe); }
.acc-raccourci:hover .acc-raccourci__vignette--icone { background: var(--acc-vert); color: #fff; }
.acc-raccourci:hover .acc-raccourci__vignette--icone svg { transform: scale(1.08); }

@media (prefers-reduced-motion: reduce) {
    .acc-parcours--6 .acc-etape::before { transform: none !important; transition: none !important; }
}
@media (max-width: 639px) {
    .acc-raccourci__vignette--icone { width: 3.5rem; height: 3.5rem; border-radius: .9rem; }
    .acc-raccourci__vignette--icone svg { width: 1.4rem; height: 1.4rem; }
}

/* =====================================================================
   PAGE « VOTRE SÉANCE EN HÔPITAL DE JOUR » (seance-hopital-de-jour.html)
   ===================================================================== */

/* Petites cartes « confort » : icône, titre et texte ; 4 colonnes en grand écran */
.acc-conseils__titre { margin: 0; font-size: .98rem; font-weight: 600; line-height: 1.3; color: var(--acc-encre); }
.acc-conseils__texte { margin-top: .35rem; font-size: .84rem; line-height: 1.6; color: var(--acc-doux); }
.acc-conseils li.acc-conseils--fort .acc-conseils__titre { color: #fff; }
.acc-conseils li.acc-conseils--fort .acc-conseils__texte { color: rgb(255 255 255 / .86); }
@media (min-width: 1024px) {
    .acc-conseils--4 { grid-template-columns: repeat(4, 1fr); gap: 1rem; }
    .acc-conseils--4 li { flex-direction: column; gap: .9rem; padding: 1.3rem 1.25rem 1.4rem; }
}

/* =====================================================================
   PAGE « TRAITEMENTS » — ajout
   Schéma explicatif (TMX.png) : affiché en entier (pas de recadrage),
   dans une carte blanche de taille limitée, pour rester lisible sans être énorme.
   ===================================================================== */
.acc-schema { position: relative; width: 100%; max-width: 30rem; margin: 0 auto; padding: 1rem 1rem .85rem; border-radius: 1.75rem; background: var(--acc-carte); border: 1px solid var(--acc-bord); box-shadow: var(--acc-ombre-forte); }
.acc-schema img { display: block; width: 100%; height: auto; max-height: 24rem; object-fit: contain; border-radius: 1rem; }
.acc-schema figcaption { display: flex; align-items: center; gap: .6rem; margin-top: .8rem; padding: 0 .25rem; font-size: .8rem; line-height: 1.45; color: var(--acc-doux); }
.acc-schema figcaption .acc-icone { width: 2rem; height: 2rem; border-radius: .7rem; }
.acc-schema figcaption .acc-icone svg { width: .95rem; height: .95rem; }

/* Bloc des pathologies : peut rétrécir dans la grille (petits écrans) et les boutons passent à la ligne */
.acc-patho { min-width: 0; }
.acc-patho .pathologies-liste { flex-wrap: wrap; }

