/* ============================ Header ============================ */
.hdr{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.hdr.is-scrolled{border-bottom-color:var(--line);box-shadow:0 4px 20px rgba(15,42,74,.05)}
.hdr-in{display:flex;align-items:center;gap:24px;height:72px}
.hdr-nav{display:flex;gap:2px;margin-left:auto}
.hdr-link{background:none;border:0;padding:8px 12px;border-radius:8px;font-size:14px;font-weight:500;color:var(--ink-2);white-space:nowrap}
.hdr-link:hover{background:var(--bg-mute);color:var(--navy)}
.hdr-cta{display:flex;gap:6px;align-items:center}
.hdr-burger{display:none;margin-left:auto}
.mnav{position:fixed;inset:0;background:#fff;z-index:100;display:flex;flex-direction:column;animation:fade .15s}
.mnav-top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.mnav-list{display:grid;padding:12px 12px;overflow:auto}
.mnav-list button{display:flex;justify-content:space-between;align-items:center;background:none;border:0;border-bottom:1px solid var(--line);padding:18px 10px;font-size:18px;font-weight:500;color:var(--navy);text-align:left;min-height:56px}
.mnav-foot{margin-top:auto;display:grid;gap:10px;padding:20px}
@media (max-width:1180px){.hdr-nav{display:none}.hdr-cta{margin-left:auto}}
@media (max-width:640px){.hdr-cta{display:none}.hdr-burger{display:inline-flex}}

/* ============================ Hero commun ============================ */
.hero{position:relative;overflow:hidden}
.hpoints{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:14px;font-weight:500}
.hpoints li{display:flex;align-items:center;gap:8px}
.hp-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-600)}
.float-card{position:absolute;background:#fff;border-radius:16px;padding:12px 16px 12px 12px;box-shadow:var(--sh-3);border:1px solid var(--line)}
.fc-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center}

/* Recherche du hero */
.hsearch{display:flex;align-items:stretch;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh-2);padding:8px;gap:4px}
.hs-cell{display:grid;flex:1;min-width:0;padding:6px 14px;border-radius:14px;cursor:pointer;transition:background .15s;gap:0}
.hs-cell:hover{background:var(--bg-soft)}
.hs-cell + .hs-cell{border-left:1px solid var(--line)}
.hs-lab{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em}
.hs-cell select,.hs-cell input{border:0;background:transparent;font-size:15px;font-weight:500;color:var(--navy);padding:2px 0;outline:none;width:100%;appearance:none;cursor:pointer}
.hs-cell input{cursor:text}
.hs-cell:focus-within{background:var(--blue-50)}
.hs-btn{--h:auto;min-height:56px;border-radius:14px!important;padding:0 24px}
@media (max-width:720px){
  .hsearch{flex-direction:column;padding:10px}
  .hs-cell + .hs-cell{border-left:0;border-top:1px solid var(--line)}
  .hs-cell{padding:10px 12px}
  .hs-btn{min-height:52px}
}

/* ---------- Hero A ---------- */
.heroA{padding:56px 0 96px;background:
  radial-gradient(900px 500px at 88% 10%, color-mix(in oklab,var(--teal) 10%,transparent), transparent 60%),
  radial-gradient(700px 500px at 0% 100%, color-mix(in oklab,var(--blue) 7%,transparent), transparent 60%)}
.heroA-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}
.heroA-copy{display:grid;gap:26px}
.heroA-visual{position:relative;justify-self:center;width:min(480px,100%);aspect-ratio:4/5}
.heroA-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 30%;border-radius:240px 240px 32px 32px;box-shadow:var(--sh-3)}
.heroA-ring{position:absolute;inset:-22px -22px auto auto;width:78%;aspect-ratio:1;border-radius:50%;border:2px dashed color-mix(in oklab,var(--teal) 45%,transparent)}
@media (max-width:980px){.heroA-grid{grid-template-columns:1fr;gap:48px}.heroA-visual{width:min(400px,86%)}}

/* ---------- Hero B ---------- */
.heroB{background:var(--navy);padding:0 0 0}
.heroB-bg{position:absolute;inset:0 0 120px 0;overflow:hidden}
.heroB-bg img{position:absolute;right:0;top:0;height:100%;width:62%;object-fit:cover;object-position:40% 30%}
.heroB-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 38%,color-mix(in oklab,var(--navy) 70%,transparent) 58%,color-mix(in oklab,var(--navy) 10%,transparent) 100%)}
.heroB-in{position:relative;padding:96px 24px 180px}
.heroB-copy{display:grid;gap:26px;max-width:640px}
.heroB-search{position:relative;margin-top:-120px;padding-bottom:40px}
.heroB::after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;background:#fff}
.heroB-search{z-index:2}
.heroB-card{background:#fff;border-radius:24px;box-shadow:var(--sh-3);padding:24px;border:1px solid var(--line)}
.heroB-card .hsearch{box-shadow:none;background:var(--bg-soft);border-color:var(--line)}
.heroB-card .hs-cell:hover{background:#fff}
@media (max-width:860px){.heroB-bg img{width:100%;opacity:.35}.heroB-bg::after{background:linear-gradient(180deg,color-mix(in oklab,var(--navy) 60%,transparent),var(--navy))}.heroB-in{padding:64px 24px 160px}}

/* ---------- Hero C ---------- */
.heroC{padding:64px 0 0;text-align:center;background:linear-gradient(180deg,var(--bg-soft),#fff 70%)}
.heroC-pattern{position:absolute;inset:0;opacity:.5;background-image:
  radial-gradient(circle at 1px 1px, color-mix(in oklab,var(--blue) 22%,transparent) 1.2px, transparent 0);
  background-size:26px 26px;mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,#000 30%,transparent 75%)}
.heroC-in{position:relative;display:grid;justify-items:center;gap:26px;max-width:960px}
.heroC-in .h-display{font-size:clamp(34px,5.6vw,66px)}
.heroC-arches{position:relative;display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:20px;align-items:end;margin-top:56px}
.arch{margin:0;overflow:hidden;border-radius:999px 999px 24px 24px;box-shadow:var(--sh-2);background:var(--bg-mute)}
.arch img{width:100%;height:100%;object-fit:cover}
.a1{height:300px}.a2{height:400px}.a3{height:300px}
.a1{background:var(--teal-strong)}.a3{background:var(--blue)}
.a2 img{object-position:50% 30%}
.heroC-arches .float-card{z-index:2}
@media (max-width:760px){.heroC-arches{grid-template-columns:1fr 1fr}.a2{grid-column:1/-1;grid-row:1;height:300px}.a1,.a3{height:200px}.heroC-arches .float-card{display:none}}

/* ============================ Recherche ============================ */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:var(--sh-1);margin-bottom:24px}
.filters .input{height:44px;width:auto;min-width:150px}
.f-q{position:relative;flex:1 1 260px;display:flex;align-items:center}
.f-q svg{position:absolute;left:14px;color:var(--muted)}
.f-q .input{width:100%;padding-left:42px}
.chip-toggle{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 14px;border:1.5px solid var(--line-2);border-radius:999px;font-size:14px;font-weight:500;color:var(--ink-2);cursor:pointer;user-select:none}
.chip-toggle input{accent-color:var(--blue);width:16px;height:16px}
.chip-toggle:has(input:checked){border-color:var(--blue);background:var(--blue-50);color:var(--blue-600)}
.res-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-weight:500;color:var(--ink-3);flex-wrap:wrap}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:20px}
.dcard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:16px;transition:box-shadow .2s,border-color .2s,transform .2s}
.dcard:hover{box-shadow:var(--sh-2);border-color:var(--line-2)}
.dcard-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:13.5px;color:var(--ink-3)}
.dcard-meta li{display:flex;align-items:center;gap:7px;min-width:0}
.dcard-meta svg{color:var(--muted)}
.dcard-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--line);margin-top:auto;flex-wrap:wrap}
.dcard-next{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-3)}
@media (max-width:420px){.dgrid{grid-template-columns:1fr}.filters .input{flex:1 1 140px}}

/* Réservation */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}
.tabs button{background:none;border:0;padding:10px 14px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--blue);border-bottom-color:var(--blue)}
.seg-opt{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border:1.5px solid var(--line-2);border-radius:14px;background:#fff;font-weight:500;color:var(--ink-2);flex-wrap:wrap}
.seg-opt small{font-size:12px;color:var(--muted);width:100%;margin-top:-6px}
.seg-opt[data-on="true"]{border-color:var(--blue);background:var(--blue-50);color:var(--blue-600)}
.seg-opt:disabled{opacity:.5;cursor:not-allowed}
.mini-lab{font-size:13px;font-weight:600;color:var(--navy);margin-bottom:8px}
.day-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.day-chip{flex:none;display:grid;justify-items:center;gap:0;min-width:64px;padding:8px 6px;border:1.5px solid var(--line-2);border-radius:14px;background:#fff;font-size:12px;color:var(--muted);text-transform:capitalize}
.day-chip b{font-size:20px;color:var(--navy);line-height:1.3}
.day-chip[data-on="true"]{border-color:var(--blue);background:var(--blue);color:rgba(255,255,255,.85)}
.day-chip[data-on="true"] b{color:#fff}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.slot{height:44px;border:1.5px solid var(--line-2);border-radius:10px;background:#fff;font-weight:500;color:var(--navy)}
.slot:hover:not(:disabled){border-color:var(--blue)}
.slot[data-on="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.slot:disabled{background:var(--bg-mute);color:var(--muted-2);text-decoration:line-through;cursor:not-allowed;border-color:transparent}
.bk-sum{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border-radius:16px;background:var(--bg-soft);flex-wrap:wrap}
.dl{display:grid;grid-template-columns:180px 1fr;gap:10px 16px;margin:0;font-size:14px}
.dl dt{color:var(--muted)}.dl dd{margin:0;color:var(--navy);font-weight:500}
@media (max-width:520px){.dl{grid-template-columns:1fr}.dl dd{margin-bottom:6px}}

/* ============================ Services ============================ */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.svc{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px;border-radius:20px;background:#fff;border:1px solid var(--line);color:inherit;text-decoration:none!important;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease-out)}
.svc:hover{border-color:var(--line-2);box-shadow:var(--sh-2);transform:translateY(-2px) scale(1.015)}
.svc h3{font-size:17px}
.svc p{font-size:14px;color:var(--ink-3)}
.svc-ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:6px}
.t-blue{background:var(--blue-50);color:var(--blue)}
.t-teal{background:var(--teal-50);color:var(--teal-600)}
.t-red{background:var(--red-50);color:var(--red)}
.svc-more{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--blue);opacity:0;transform:translateX(-4px);transition:.2s}
.svc:hover .svc-more,.svc:focus-visible .svc-more{opacity:1;transform:none}
.svc-hero{grid-row:span 2;background:linear-gradient(160deg,var(--blue),color-mix(in oklab,var(--blue) 70%,var(--navy)));color:#fff;border:0;justify-content:flex-end;min-height:280px;overflow:hidden}
.svc-hero::before{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;border:40px solid rgba(255,255,255,.08)}
.svc-hero h3{color:#fff;font-size:24px}
.svc-hero p{color:rgba(255,255,255,.82);font-size:15px}
.svc-hero .svc-ic{background:rgba(255,255,255,.15);color:#fff;position:absolute;top:26px;left:26px}
.svc-hero .svc-more{color:#fff;opacity:1;transform:none}
@media (max-width:1080px){.svc-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:780px){.svc-grid{grid-template-columns:repeat(2,1fr)}.svc-hero{grid-row:auto;grid-column:1/-1;min-height:220px}}
@media (max-width:500px){.svc-grid{grid-template-columns:1fr}.svc{padding:20px}.svc-more{opacity:1;transform:none}}

/* ============================ Étapes ============================ */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:s}
.step{position:relative;background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px;display:grid;gap:12px;align-content:start}
.step:not(:last-child)::after{content:"";position:absolute;top:62px;right:-24px;width:24px;height:2px;background:repeating-linear-gradient(90deg,var(--line-2) 0 6px,transparent 6px 10px)}
.step-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.step-n{font-size:44px;font-weight:700;color:color-mix(in oklab,var(--blue) 18%,#fff);line-height:1;letter-spacing:-.04em}
.step-ic{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--teal-50);color:var(--teal-600)}
.step h3{font-size:20px}
.step p{color:var(--ink-3);font-size:15px}
@media (max-width:860px){.steps{grid-template-columns:1fr}.step:not(:last-child)::after{display:none}}

/* ============================ Médecins ============================ */
.doc-sec{background:var(--navy);position:relative;overflow:hidden}
.doc-sec::before{content:"";position:absolute;left:-200px;bottom:-200px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,color-mix(in oklab,var(--teal) 30%,transparent),transparent 65%)}
.doc-grid{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
.doc-copy{display:grid;gap:18px;align-content:start}
.doc-mock{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:18px;display:grid;gap:8px;margin-top:10px;max-width:440px}
.dm-row{display:flex;justify-content:space-between;align-items:center;color:#fff;font-weight:600;font-size:14px;margin-bottom:4px}
.dm-item{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:10px;background:rgba(255,255,255,.07);border-radius:12px;padding:10px 12px;color:rgba(255,255,255,.85);font-size:14px}
.dm-item b{color:#fff}
.dm-type{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(127,227,214,.15);color:#7FE3D6}
.doc-feats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.doc-feats li{display:flex;gap:14px;padding:20px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09)}
.doc-feats h3{color:#fff;font-size:16px;margin-bottom:4px}
.doc-feats p{color:rgba(255,255,255,.68);font-size:14px}
.df-ic{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:rgba(127,227,214,.14);color:#7FE3D6}
@media (max-width:980px){.doc-grid{grid-template-columns:1fr;gap:40px}}
@media (max-width:560px){.doc-feats{grid-template-columns:1fr}}

/* ============================ Téléconsultation ============================ */
.tele-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.tele-visual{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sh-3);background:var(--navy)}
.tele-visual img{width:100%;height:100%;object-fit:cover}
.tele-bar{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:12px;padding:10px;border-radius:999px;background:rgba(15,42,74,.6);backdrop-filter:blur(10px)}
.tb-btn{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);color:#fff}
.tb-end{background:var(--red)}
.tele-self{position:absolute;right:18px;top:18px;width:96px;height:128px;border-radius:16px;background:linear-gradient(160deg,#35506F,#1C3553);border:2px solid rgba(255,255,255,.5);display:grid;place-items:center;color:rgba(255,255,255,.6)}
.req{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.req li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2);padding:12px;border-radius:12px;background:var(--bg-soft)}
.req svg{color:var(--teal-600);margin-top:2px}
@media (max-width:980px){.tele-grid{grid-template-columns:1fr;gap:40px}.tele-visual{aspect-ratio:16/11}}
@media (max-width:520px){.req{grid-template-columns:1fr}}

/* ============================ Confiance ============================ */
.trust-top{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:40px;flex-wrap:wrap}
.trust-links{display:grid;gap:6px;font-weight:500;font-size:14px}
.trust-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.trust-grid li{background:#fff;padding:28px;display:grid;gap:8px;align-content:start}
.trust-grid svg{color:var(--blue);margin-bottom:6px}
.trust-grid h3{font-size:16px}
.trust-grid p{font-size:14px;color:var(--ink-3)}
@media (max-width:900px){.trust-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.trust-grid{grid-template-columns:1fr}}

.partners{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;align-items:center}
.partners img{max-height:56px;margin:auto;filter:grayscale(1);opacity:.7;transition:.2s}
.partners img:hover{filter:none;opacity:1}
@media (max-width:760px){.partners{grid-template-columns:repeat(2,1fr)}}

/* ============================ FAQ ============================ */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}
.faq-contact{display:grid;gap:10px;margin-top:24px}
.faq-contact a{display:flex;gap:10px;align-items:center;font-weight:500;padding:14px 16px;border:1px solid var(--line);border-radius:14px;color:var(--navy)}
.faq-contact a:hover{border-color:var(--blue);text-decoration:none}
.faq-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.faq-cats button{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:#fff;font-size:13px;font-weight:500;color:var(--ink-3)}
.faq-cats button[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.faq-list{display:grid;gap:10px}
.faq-item{border:1px solid var(--line);border-radius:16px;background:#fff;transition:border-color .2s,box-shadow .2s}
.faq-item[data-open="true"]{border-color:var(--line-2);box-shadow:var(--sh-1)}
.faq-item h3{font-size:16px;font-weight:600}
.faq-item button{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;background:none;border:0;padding:20px 22px;text-align:left;color:var(--navy);font-weight:600;font-size:16px;min-height:56px}
.faq-plus{transition:transform .2s;color:var(--blue)}
.faq-item[data-open="true"] .faq-plus{transform:rotate(45deg)}
.faq-a{padding:0 22px 20px;color:var(--ink-3);font-size:15px}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr;gap:32px}}

/* ============================ CTA / Footer ============================ */
.cta-final{position:relative;overflow:hidden;border-radius:32px;padding:64px;background:linear-gradient(120deg,var(--blue),color-mix(in oklab,var(--blue) 50%,var(--teal)) 60%,var(--teal));display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.cta-mark{position:absolute;right:-60px;bottom:-80px;width:340px;opacity:.12;filter:brightness(10)}
.cta-btns{position:relative;display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:640px){.cta-final{padding:36px 24px;border-radius:24px}}
.footer{background:var(--navy);color:rgba(255,255,255,.75);padding:72px 0 28px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px}
.footer h3{color:#fff;font-size:14px;font-weight:600;margin-bottom:14px}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:14px}
.footer a,.footer ul button{color:rgba(255,255,255,.75);background:none;border:0;padding:0;font-size:14px;text-align:left}
.footer a:hover,.footer ul button:hover{color:#fff;text-decoration:underline}
.foot-sos{display:inline-flex;gap:8px;align-items:center;font-size:13px;padding:8px 12px;border-radius:10px;background:rgba(235,87,87,.14);color:#FFC9C9;width:fit-content}
.foot-sos b{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);margin-top:48px;padding-top:24px;font-size:13px;color:rgba(255,255,255,.5)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

@media (max-width:640px){.section{padding:72px 0}.sec-head{margin-bottom:32px}.wrap{padding:0 18px}}

/* =====================================================================
   MOTION DESIGN — chorégraphie de la landing
   Principes : calme, rassurant, fonctionnel. Durées 400–700 ms, easing
   doux (--ease), petits déplacements (≤ 20 px), jamais de rebond.
   Accessibilité : tout est neutralisé avec prefers-reduced-motion
   (règle globale dans tokens.css + garde-fous ci-dessous).
   ===================================================================== */
:root{--t-rv:.6s}

@keyframes rise{from{opacity:0;transform:translateY(20px)}}
@keyframes soft-in{from{opacity:0;transform:scale(.96)}}
@keyframes card-in{from{opacity:0;transform:translateY(14px) scale(.94)}}
@keyframes flash-ring{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--blue) 45%,transparent)}100%{box-shadow:0 0 0 14px transparent}}

/* ---------- 1. Entrée du hero (au chargement, pas au scroll) ---------- */
.hero-seq > *{animation:rise var(--t-rv) var(--ease-out) both}
.hero-seq > *{animation-duration:.55s}
.hero-seq > :nth-child(1){animation-delay:0s}
.hero-seq > :nth-child(2){animation-delay:.06s}
.hero-seq > :nth-child(3){animation-delay:.12s}
.hero-seq > :nth-child(4){animation-delay:.18s}
.hero-seq > :nth-child(5){animation-delay:.24s}
.hero-seq > :nth-child(6){animation-delay:.3s}
.hero-visual-in{animation:soft-in .7s var(--ease-out) .05s both}
.hero-card-in{animation:rise .8s var(--ease-out) .45s both}
.heroA-ring{animation:soft-in 1.2s var(--ease-out) .5s backwards}
/* Cartes d'aperçu produit : entrée unique, puis immobiles (pas de flottement permanent) */
.heroA .float-card,.heroC .float-card{animation:card-in .6s var(--ease-out) .85s backwards}
.heroA .float-card:last-child,.heroC .float-card:last-child{animation-delay:1.05s}
/* Recherche du hero en cours */
.hsearch.is-busy{border-color:color-mix(in oklab,var(--blue) 35%,var(--line))}
.hsearch.is-busy .hs-cell{opacity:.6;transition:opacity .2s}
.hs-btn[disabled]{opacity:1;cursor:progress}
.hs-btn .spin{border-color:#fff;border-right-color:transparent}

/* ---------- 2. Apparition au scroll (générique) ---------- */
.rv{--rv-delay:0ms}
/* Animation (fill: backwards) plutôt que transition : une fois jouée, elle
   ne touche plus au transform, donc les hovers existants restent intacts. */
@media (prefers-reduced-motion:no-preference){
  .js-rv .rv:not(.is-in){opacity:0}
  .js-rv .rv.is-in{animation:rise var(--t-rv) var(--ease-out) var(--rv-delay) backwards}
}

/* ---------- 3. « Comment ça marche » : étapes séquentielles ---------- */
@media (prefers-reduced-motion:no-preference){
  /* trait pointillé qui se « dessine » vers l'étape suivante */
  .js-rv .step.rv::after{transform:scaleX(0);transform-origin:left center;transition:transform .5s var(--ease-out) calc(var(--rv-delay) + .45s)}
  .js-rv .step.rv.is-in::after{transform:none}
  /* icône : léger zoom après l'apparition de la carte */
  .js-rv .step.rv .step-ic{transform:scale(.7);opacity:0;transition:transform .55s var(--ease-out) calc(var(--rv-delay) + .2s),opacity .4s calc(var(--rv-delay) + .2s),background-color .3s}
  .js-rv .step.rv.is-in .step-ic{transform:none;opacity:1}
  /* numéro : passe du pâle à la couleur de marque */
  .js-rv .step.rv .step-n{transition:color .8s var(--ease) calc(var(--rv-delay) + .3s)}
}
.step.rv.is-in .step-n{color:color-mix(in oklab,var(--blue) 32%,#fff)}
.step{transition:border-color .2s,box-shadow .2s}
.step:hover{border-color:var(--line-2);box-shadow:var(--sh-2)}
.step:hover .step-ic{background:var(--teal-strong);color:#fff}

/* ---------- 4. Recherche : chargement et arrivée des résultats ---------- */
.res-head{position:relative}
.res-count{display:inline-flex;align-items:center;gap:10px}
.res-count .spin{width:14px;height:14px;color:var(--blue)}
.res-head.is-loading::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--blue),transparent);background-size:40% 100%;background-repeat:no-repeat;overflow:hidden;animation:indet-bg 1.1s ease-in-out infinite}
@keyframes indet-bg{from{background-position:-40% 0}to{background-position:140% 0}}
.dcard-in{display:grid;animation:rise .5s var(--ease-out) var(--rv-delay,0ms) backwards}
.dcard-in > .dcard{height:100%}
.dcard:hover{transform:translateY(-2px) scale(1.015)}
.filters-flash .filters{animation:flash-ring 1.2s var(--ease-out)}

/* ---------- 5. Tableau de bord médecin (aperçu vivant) ---------- */
.dm-live{display:inline-flex;align-items:center;gap:8px}
.dm-pulse{width:8px;height:8px;border-radius:50%;background:#7FE3D6;box-shadow:0 0 0 4px rgba(127,227,214,.18)}
.dm-item{position:relative;overflow:hidden}
.dm-item > span:nth-child(2){display:flex;align-items:center;gap:8px;min-width:0}
.dm-tag{font-size:12px;font-weight:600;padding:2px 7px;border-radius:999px;background:rgba(127,227,214,.16);color:#7FE3D6;white-space:nowrap}
.dm-now{background:rgba(127,227,214,.10);box-shadow:inset 0 0 0 1px rgba(127,227,214,.25)}
.dm-progress{position:absolute;left:0;bottom:0;height:2px;width:62%;background:#7FE3D6;transform-origin:left;opacity:.8}
.dm-notif{display:flex;align-items:center;gap:10px;margin-top:4px;padding:10px 12px;border-radius:12px;background:#fff;color:var(--ink-2);font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.dm-notif b{color:var(--navy)}
.dm-notif-ic{width:26px;height:26px;flex:none;border-radius:8px;display:grid;place-items:center;background:var(--blue-50);color:var(--blue)}
@media (prefers-reduced-motion:no-preference){
  .js-rv .doc-mock.rv .dm-item,.js-rv .doc-mock.rv .dm-notif{opacity:0;transform:translateX(-12px);transition:opacity .5s var(--ease-out) var(--rv-delay),transform .5s var(--ease-out) var(--rv-delay)}
  .js-rv .doc-mock.rv .dm-notif{transform:translateY(10px) scale(.97)}
  .js-rv .doc-mock.rv.is-in .dm-item,.js-rv .doc-mock.rv.is-in .dm-notif{opacity:1;transform:none}
  .js-rv .doc-mock.rv .dm-progress{transform:scaleX(0);transition:transform 1.6s var(--ease) .7s}
  .js-rv .doc-mock.rv.is-in .dm-progress{transform:none}
}

/* ---------- 6. Petites attentions ---------- */
.faq-item[data-open="true"] .faq-a{animation:rise .35s var(--ease-out)}
@media (prefers-reduced-motion:no-preference){
  .js-rv .tele-visual.rv .tele-bar{opacity:0;transform:translate(-50%,16px);transition:opacity .5s .5s,transform .6s var(--ease-out) .5s}
  .js-rv .tele-visual.rv.is-in .tele-bar{opacity:1;transform:translateX(-50%)}
  .js-rv .tele-visual.rv .tele-self{opacity:0;transform:scale(.85);transition:opacity .5s .7s,transform .6s var(--ease-out) .7s}
  .js-rv .tele-visual.rv.is-in .tele-self{opacity:1;transform:none}
}

/* ---------- Mouvement réduit : garde-fous explicites ---------- */
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1!important}
  .heroA-ring,.float-card{animation:none!important}
  .res-head.is-loading::after{animation:none!important;background:var(--blue);opacity:.35}
  html{scroll-behavior:auto!important}
}

/* Correctif : la pastille « démo » ne s'étire plus sur toute la largeur de l'en-tête */
.sec-head > .demo-tag{justify-self:start}
.sec-head.center > .demo-tag{justify-self:center}

/* ==========================================================================
   STRUCTURE INSPIRÉE D'AHEAD HEALTH
   ========================================================================== */
/* Bande partenaires, compacte, juste sous le hero */
.partners-band{padding:36px 0 8px}
.partners-lab{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:18px}

/* 4 valeurs */
.values{padding:40px 0 24px}
.values-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.values-grid li{padding:28px 24px 8px 0;display:grid;gap:8px;align-content:start}
.values-grid li + li{padding-left:24px;border-left:1px solid var(--line)}
.values-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--blue-50);color:var(--blue);margin-bottom:6px}
.values-grid h3{font-size:17px}
.values-grid p{font-size:14px;color:var(--ink-3)}
@media (max-width:980px){.values-grid{grid-template-columns:1fr 1fr}.values-grid li:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:560px){.values-grid{grid-template-columns:1fr}.values-grid li,.values-grid li + li{padding:20px 0 4px;border-left:0;border-top:1px solid var(--line)}.values-grid li:first-child{border-top:0}}

/* Formules */
.lplans{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch}
.lplan{display:flex;flex-direction:column;gap:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;transition:transform .2s var(--ease-out),box-shadow .2s,border-color .2s}
.lplan:hover{transform:translateY(-2px) scale(1.015);box-shadow:var(--sh-2);border-color:var(--line-2)}
.lplan-free{border-color:color-mix(in oklab,var(--blue) 35%,var(--line));box-shadow:0 0 0 1px color-mix(in oklab,var(--blue) 20%,transparent)}
.lplan-top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.lplan-top h3{font-size:18px}
.lplan-price{display:flex;align-items:baseline;gap:6px}
.lplan-price b{font-size:32px;color:var(--navy);letter-spacing:-.02em;line-height:1}
.lplan-price span{font-size:13px;color:var(--muted)}
.lplan ul{list-style:none;margin:0;padding:16px 0 0;border-top:1px solid var(--line);display:grid;gap:10px;font-size:14px;color:var(--ink-2);flex:1}
.lplan li{display:flex;gap:8px;align-items:flex-start}
.lplan li svg{color:var(--teal-600);flex:none;margin-top:3px}
.lplans-note{text-align:center;font-size:13px;color:var(--muted);margin-top:20px}
@media (max-width:1080px){.lplans{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.lplans{grid-template-columns:1fr}}

/* Carrousel « Dans votre compte » */
.svc-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px;flex-wrap:wrap}
.svc-nav{display:flex;gap:8px}
.svc-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,272px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 18px;scrollbar-width:thin;overscroll-behavior-x:contain}
.svc-row .svc{scroll-snap-align:start;min-height:250px}
.svc-row .svc-hero{grid-row:auto;min-height:250px}
.svc-row .svc-hero h3{font-size:20px}
.svc-row:focus-visible{box-shadow:var(--focus);border-radius:12px}
@media (max-width:640px){.svc-nav{display:none}.svc-row{grid-auto-columns:78%}}

/* Paiement */
.pay-sec{padding-block:72px}
.pay-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.pay-ops{display:flex;flex-wrap:wrap;gap:10px}
.pay-op{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 18px;border-radius:14px;background:#fff;border:1px solid var(--line);font-weight:600;color:var(--navy);font-size:15px}
.pay-op svg{color:var(--blue)}
.pay-op.is-soon{color:var(--muted);background:var(--bg-soft)}
.pay-op.is-soon svg{color:var(--muted-2)}
.pay-op small{font-size:12px;font-weight:600;color:var(--muted);margin-left:2px}
.pay-op.is-cmu svg{color:var(--teal-600)}
@media (max-width:900px){.pay-grid{grid-template-columns:1fr;gap:24px}}

/* CTA final en bannière photo */
.cta-photo{background:var(--navy);min-height:360px}
.cta-bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.cta-photo::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,color-mix(in oklab,var(--navy) 94%,transparent) 30%,color-mix(in oklab,var(--navy) 55%,transparent) 70%,color-mix(in oklab,var(--navy) 25%,transparent))}
.cta-photo > div{position:relative;z-index:2}

/* Correctif mobile (antérieur) : le long bouton médecin élargissait la section */
@media (max-width:980px){.doc-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.doc-copy .btn{white-space:normal;height:auto;min-height:56px;padding-block:12px;text-align:center;line-height:1.3}}

/* Raccourcis de recherche sous le CTA du hero */
.hero-quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:-8px}
.hero-quick > span{font-size:13px;font-weight:500;color:var(--muted)}

/* Paiement intégré aux formules */
.lplans-pay{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin-top:16px}
.lplans-pay-l{font-size:14px;font-weight:500;color:var(--muted);margin-right:4px}
.lplans-pay .pay-op{height:40px;padding:0 14px;font-size:14px;border-radius:12px}

/* Mobile : moins de hauteur, même contenu */
@media (max-width:560px){
  .values-grid{grid-template-columns:1fr 1fr;gap:0}
  .values-grid li,.values-grid li + li{padding:16px 10px 12px;border-left:0;border-top:1px solid var(--line)}
  .values-grid li:nth-child(even){border-left:1px solid var(--line)}
  .values-grid li:nth-child(-n+2){border-top:0}
  .values-grid p{font-size:13px}
  .values-grid h3{font-size:15px}
  .lplans{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;margin-inline:-18px;padding-inline:18px;scroll-padding-inline:18px}
  .lplan{scroll-snap-align:start}
  .doc-feats li{padding:14px}
  .doc-feats{grid-template-columns:1fr 1fr;gap:10px}
  .doc-feats p{display:none}
  .doc-feats h3{font-size:14px;margin:0}
  .trust-grid li{padding:20px}
}
/* Rythme vertical un peu plus serré sur la landing (sections hors parcours) */
main .section{padding-block:88px}
@media (max-width:640px){main .section{padding-block:56px}}

/* v12 : liens du pied de page assez grands au toucher */
.footer ul{gap:0}
.footer ul a,.footer ul button{display:inline-flex;align-items:center;min-height:44px}
