/* ══════════════════════════════════════════════════════════════
   Zoolinko · Site public zoolinko.com (charte v1.1)
   ══════════════════════════════════════════════════════════════ */

body{background:var(--blanc);font-size:15px}
.pub-wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.pub-main{min-height:60vh}

.pub-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--sarcelle);display:block;margin-bottom:12px}
.pub-section{padding:84px 0;position:relative}
.pub-section.alt{background:var(--ecume)}
.pub-section h2{font-size:clamp(28px,4vw,40px);margin-bottom:10px}
.pub-lead{font-size:17px;max-width:640px;color:#2E5257}

/* ── Topbar ─────────────────────────────────────────────── */
.pub-topbar{position:sticky;top:0;z-index:500;background:rgba(252,254,254,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:box-shadow .3s var(--ease-soft),border-color .3s}
.pub-topbar.scrolled{border-color:var(--line);box-shadow:0 4px 24px rgba(11,46,51,.06)}
.pub-topbar-in{display:flex;align-items:center;gap:26px;height:72px}
.pub-logo{display:inline-flex;align-items:center;flex:none}
.pub-nav{display:flex;align-items:center;gap:4px;flex:1}
.pub-nav>a{font-weight:700;font-size:14.5px;color:var(--nuit);text-decoration:none;padding:8px 14px;border-radius:99px;transition:background .2s,color .2s}
.pub-nav>a:hover{background:var(--ecume);color:var(--sarcelle)}
.pub-nav-cta{display:none}
.pub-topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.pub-burger{display:none;border:none;background:var(--ecume);color:var(--sarcelle);width:40px;height:40px;border-radius:50%;font-size:16px;cursor:pointer}

/* sélecteur de langue */
.pub-lang{position:relative}
.pub-lang-btn{border:1.5px solid var(--line);background:var(--blanc);color:var(--nuit);font:inherit;font-weight:800;font-size:13px;border-radius:99px;padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:border-color .2s,background .2s}
.pub-lang-btn:hover{border-color:var(--turquoise);background:var(--ecume)}
.pub-lang-btn .fa-globe{color:var(--turquoise)}
.pub-lang-chev{font-size:10px;color:var(--txt2);transition:transform .25s var(--ease-zoo)}
.pub-lang.open .pub-lang-chev{transform:rotate(180deg)}
.pub-lang-menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--shadow-2);padding:6px;min-width:170px;opacity:0;transform:translateY(-6px) scale(.97);pointer-events:none;transition:opacity .22s var(--ease-soft),transform .28s var(--ease-zoo)}
.pub-lang.open .pub-lang-menu{opacity:1;transform:none;pointer-events:auto}
.pub-lang-menu button{width:100%;border:none;background:none;font:inherit;font-weight:700;font-size:14px;color:var(--nuit);text-align:left;padding:9px 12px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px}
.pub-lang-menu button:hover{background:var(--ecume)}
.pub-lang-menu button.on{color:var(--sarcelle)}
.pub-lang-menu button .fa-check{font-size:12px;color:var(--turquoise)}

/* ── Hero ───────────────────────────────────────────────── */
.pub-hero{background:var(--grad);color:#fff;position:relative;overflow:hidden}
.pub-hero .blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;pointer-events:none}
.pub-hero .blob.b1{width:520px;height:520px;background:#8FE3D6;top:-160px;right:-120px}
.pub-hero .blob.b2{width:420px;height:420px;background:#BFE9FA;bottom:-180px;left:-110px}
.pub-hero .paws{position:absolute;inset:0;opacity:.07;background-image:radial-gradient(circle 3px at 30px 30px,#fff 98%,transparent);background-size:90px 90px}
.pub-hero-in{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:88px 0 96px}
.pub-hero .tag{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;border:1px solid rgba(255,255,255,.4);border-radius:99px;padding:7px 16px;display:inline-block;margin-bottom:24px}
.pub-hero h1{font-size:clamp(34px,4.6vw,54px);font-weight:500;color:#fff;margin-bottom:16px}
.pub-hero p{font-size:17.5px;max-width:540px;opacity:.94;margin-bottom:30px}
.pub-hero-ctas{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.btn-light{background:#fff;color:var(--sarcelle);box-shadow:0 8px 22px rgba(11,46,51,.18)}
.btn-light:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 30px rgba(11,46,51,.24)}
.btn-outline-light{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.75)}
.btn-outline-light:hover{background:rgba(255,255,255,.12)}
.pub-hero-note{font-size:13px;opacity:.85;margin-top:16px;display:flex;align-items:center;gap:8px}
.pub-hero-visual{position:relative}
.pub-hero-visual .frame{border-radius:var(--r-l);overflow:hidden;box-shadow:0 24px 60px rgba(11,46,51,.3);transform:rotate(1.2deg);aspect-ratio:16/9}
.pub-hero-visual .frame img{display:block;width:100%;height:100%;object-fit:cover}
.pub-hero-chip{position:absolute;left:-18px;bottom:26px;background:var(--blanc);color:var(--nuit);border-radius:var(--r-m);box-shadow:var(--shadow-2);padding:12px 16px;display:flex;align-items:center;gap:12px;animation:pub-float 4s var(--ease-soft) infinite}
.pub-hero-chip .ic{width:40px;height:40px;border-radius:12px;background:#DDF4F0;color:#0E7C6B;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}
.pub-hero-chip b{display:block;font-size:14px}
.pub-hero-chip small{color:var(--txt2);font-size:12px}
@keyframes pub-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ── Cartes fonctionnalités ─────────────────────────────── */
.pub-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.pub-feat{background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m);padding:28px;transition:transform .35s var(--ease-zoo),box-shadow .35s var(--ease-soft)}
.pub-feat:hover{transform:translateY(-5px);box-shadow:var(--shadow-2)}
.pub-feat .ic{width:52px;height:52px;border-radius:16px;background:var(--ecume);color:var(--sarcelle);display:flex;align-items:center;justify-content:center;font-size:21px;margin-bottom:18px}
.pub-feat h3{font-size:19px;margin-bottom:8px}
.pub-feat p{color:#2E5257;font-size:14.5px}

/* ── Section vétérinaires ───────────────────────────────── */
.pub-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-top:36px}
.pub-split .visual{border-radius:var(--r-l);overflow:hidden;box-shadow:var(--shadow-2);aspect-ratio:16/9}
.pub-split .visual.sq{aspect-ratio:1/1;width:100%;max-width:440px;justify-self:center}
.pub-split .visual img{display:block;width:100%;height:100%;object-fit:cover}
.pub-checklist{list-style:none;margin:22px 0}
.pub-checklist li{padding:9px 0 9px 34px;position:relative;font-size:15px}
.pub-checklist li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:50%;background:#DDF4F0;color:#0E7C6B;font-size:11px;display:flex;align-items:center;justify-content:center}
.pub-founder{background:var(--blanc);border-radius:var(--r-m);padding:26px;box-shadow:var(--shadow-1);border-top:5px solid transparent;border-image:var(--grad) 1;margin-top:26px}
.pub-founder h3{font-size:19px;display:flex;align-items:center;gap:10px;margin-bottom:8px}
.pub-founder h3 .pill{font-size:11px}
.pub-founder p{color:#2E5257;font-size:14.5px;margin-bottom:6px}

/* ── Tarifs ─────────────────────────────────────────────── */
.pub-free-banner{margin-top:34px;background:var(--grad);color:#fff;border-radius:var(--r-m);padding:20px 28px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-1)}
.pub-free-banner i{font-size:24px}
.pub-free-banner b{font-size:16px;display:block}
.pub-free-banner span{opacity:.92;font-size:14px}
.pub-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.pub-plans-2{grid-template-columns:repeat(2,1fr);max-width:860px;margin-top:36px}
.pub-plan-contact{margin-top:18px;padding-top:16px;border-top:1px dashed #E4F1EF}
.pub-plan-contact p{font-size:13.5px;color:var(--txt2);margin-bottom:12px}
.pub-plan{background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m);padding:30px;position:relative;display:flex;flex-direction:column;transition:transform .35s var(--ease-zoo),box-shadow .35s var(--ease-soft)}
.pub-plan:hover{transform:translateY(-5px);box-shadow:var(--shadow-2)}
.pub-plan.hot{border:2px solid var(--turquoise);box-shadow:var(--shadow-1)}
.pub-plan .hot-pill{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--grad);color:#fff;font-size:11.5px;font-weight:800;border-radius:99px;padding:5px 14px;white-space:nowrap}
.pub-plan h3{font-size:20px;margin-bottom:4px}
.pub-plan .price{font-family:var(--font-display);font-size:40px;font-weight:600;color:var(--sarcelle);line-height:1.1;margin:10px 0 2px}
.pub-plan .price small{font-family:var(--font-ui);font-size:14px;color:var(--txt2);font-weight:600}
.pub-plan .soon{margin:6px 0 18px}
.pub-plan ul{list-style:none;margin-top:6px}
.pub-plan li{padding:8px 0 8px 28px;position:relative;font-size:14px;border-bottom:1px dashed #E4F1EF}
.pub-plan li:last-child{border-bottom:none}
.pub-plan li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:9px;color:var(--turquoise);font-size:12px}
.pub-plan li.off{color:var(--txt3)}
.pub-plan li.off::before{content:"\f068";color:#C6DBD9}

/* ── Apps mobiles ───────────────────────────────────────── */
.pub-store-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.pub-store{display:inline-flex;align-items:center;gap:11px;border:1.5px solid var(--line);border-radius:14px;padding:10px 18px;background:var(--blanc);color:var(--nuit);text-decoration:none}
.pub-store i{font-size:24px;color:var(--sarcelle)}
.pub-store small{display:block;font-size:10.5px;color:var(--txt2);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.pub-store b{font-size:14.5px}

/* ── CTA final ──────────────────────────────────────────── */
.pub-cta-final{background:var(--grad);border-radius:var(--r-l);padding:56px 48px;color:#fff;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-2)}
.pub-cta-final .paws{position:absolute;inset:0;opacity:.08;background-image:radial-gradient(circle 3px at 30px 30px,#fff 98%,transparent);background-size:80px 80px}
.pub-cta-final>*{position:relative}
.pub-cta-final h2{color:#fff;margin-bottom:10px}
.pub-cta-final p{opacity:.94;max-width:520px;margin:0 auto 26px}
.pub-cta-final .pub-hero-ctas{justify-content:center}

/* ── FAQ (landing) ──────────────────────────────────────── */
.pub-faq{margin-top:34px;display:flex;flex-direction:column;gap:12px;max-width:820px}
.pub-faq details{background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;transition:box-shadow .3s var(--ease-soft)}
.pub-faq details[open]{box-shadow:var(--shadow-1)}
.pub-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;font-weight:800;font-size:15.5px}
.pub-faq summary::-webkit-details-marker{display:none}
.pub-faq summary i{color:var(--turquoise);font-size:13px;transition:transform .3s var(--ease-zoo);flex:none}
.pub-faq details[open] summary i{transform:rotate(180deg)}
.pub-faq details p{padding:0 22px 20px;color:#2E5257;font-size:14.5px}

/* ── Pages internes : en-tête ───────────────────────────── */
.pub-pagehead{background:var(--grad);color:#fff;padding:64px 0 56px;position:relative;overflow:hidden}
.pub-pagehead .paws{position:absolute;inset:0;opacity:.07;background-image:radial-gradient(circle 3px at 30px 30px,#fff 98%,transparent);background-size:90px 90px}
.pub-pagehead .pub-wrap{position:relative;z-index:2}
.pub-pagehead .pub-eyebrow{color:rgba(255,255,255,.85)}
.pub-pagehead h1{font-size:clamp(28px,4vw,42px);font-weight:500;color:#fff;margin-bottom:10px}
.pub-pagehead p{font-size:16.5px;max-width:640px;opacity:.94}

/* ── Annuaire ───────────────────────────────────────────── */
.pub-searchbar{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;position:relative;z-index:2}
.pub-searchbar .input-icon{flex:1;min-width:240px}
.pub-searchbar .input,.pub-searchbar .select{border:none;box-shadow:0 6px 20px rgba(11,46,51,.14)}
.pub-searchbar .select{max-width:240px}
.pub-dir-count{color:var(--txt2);font-size:13.5px;font-weight:700;margin:26px 0 14px}
.pub-clinics{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.pub-clinic-card{background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m);padding:24px;display:flex;flex-direction:column;gap:12px;transition:transform .35s var(--ease-zoo),box-shadow .35s var(--ease-soft)}
.pub-clinic-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.pub-clinic-card .head{display:flex;align-items:flex-start;gap:14px}
.pub-clinic-card .avatar{width:52px;height:52px;border-radius:16px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.pub-clinic-card h3{font-size:19px;margin-bottom:2px}
.pub-clinic-card .loc{color:var(--txt2);font-size:13.5px;display:flex;align-items:center;gap:6px}
.pub-clinic-card .pills{display:flex;gap:7px;flex-wrap:wrap}
.pub-clinic-card .meta{color:var(--txt2);font-size:13px;display:flex;flex-direction:column;gap:5px}
.pub-clinic-card .meta i{width:16px;color:var(--turquoise)}
.pub-clinic-card .foot{margin-top:auto;display:flex;justify-content:flex-end}

/* vétos de garde */
.pub-oncall{margin-top:64px}
.pub-oncall-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:24px}
.pub-oncall-card{background:var(--blanc);border-radius:var(--r-m);padding:24px;border-left:5px solid var(--corail);box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:10px}
.pub-oncall-card h3{font-size:18px}
.pub-oncall-card .until{color:var(--txt2);font-size:13px;display:flex;align-items:center;gap:7px}
.pub-oncall-card .tel{display:inline-flex;align-items:center;gap:10px;background:var(--grad-sos);color:#fff;font-weight:800;border-radius:99px;padding:11px 22px;text-decoration:none;font-size:15.5px;box-shadow:0 6px 18px rgba(231,111,81,.3);transition:transform .25s var(--ease-zoo)}
.pub-oncall-card .tel:hover{transform:translateY(-2px)}
.pub-disclaimer{margin-top:22px;background:#FBF0DC;color:#8A5E10;border-radius:var(--r-s);padding:13px 18px;font-size:13px;display:flex;gap:10px;align-items:flex-start}
.pub-disclaimer i{margin-top:2px}

/* ── Fiche cabinet ──────────────────────────────────────── */
.pub-clinic-head{background:var(--grad);color:#fff;padding:56px 0;position:relative;overflow:hidden}
.pub-clinic-head .paws{position:absolute;inset:0;opacity:.07;background-image:radial-gradient(circle 3px at 30px 30px,#fff 98%,transparent);background-size:90px 90px}
.pub-clinic-head .pub-wrap{position:relative;z-index:2}
.pub-clinic-head .back{color:rgba(255,255,255,.85);text-decoration:none;font-size:13.5px;font-weight:700;display:inline-flex;align-items:center;gap:8px;margin-bottom:20px}
.pub-clinic-head .back:hover{color:#fff}
.pub-clinic-head h1{font-size:clamp(28px,4vw,42px);font-weight:500;color:#fff;margin:10px 0 8px}
.pub-clinic-head .loc{font-size:16px;opacity:.92;display:flex;align-items:center;gap:8px}
.pub-clinic-head .pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.pill-light{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.35)}
.pub-clinic-body{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;align-items:start;padding:48px 0 84px}
.pub-clinic-col{display:flex;flex-direction:column;gap:20px}
.pub-panel{background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m);padding:26px}
.pub-panel h2{font-size:19px;display:flex;align-items:center;gap:10px;margin-bottom:16px}
.pub-panel h2 i{color:var(--turquoise);font-size:17px}
.pub-hours{width:100%;border-collapse:collapse;font-size:14px}
.pub-hours td{padding:8px 0;border-bottom:1px dashed #E4F1EF}
.pub-hours tr:last-child td{border-bottom:none}
.pub-hours td:first-child{font-weight:700}
.pub-hours td:last-child{text-align:right;font-family:var(--font-mono);font-size:12.5px;color:#41686C}
.pub-hours tr.today td{color:var(--sarcelle)}
.pub-hours .closed{color:var(--txt3)}
.pub-contact-list{list-style:none;display:flex;flex-direction:column;gap:12px}
.pub-contact-list li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px}
.pub-contact-list li i{width:34px;height:34px;border-radius:10px;background:var(--ecume);color:var(--sarcelle);display:flex;align-items:center;justify-content:center;font-size:14px;flex:none}
.pub-contact-list a{font-weight:700}
.pub-team{display:flex;flex-direction:column;gap:14px}
.pub-team .vet{display:flex;align-items:center;gap:13px}
.pub-team .vet small{display:block;color:var(--txt2)}
.pub-book-panel{background:var(--ecume);border:none;text-align:center}
.pub-book-panel p{color:var(--txt2);font-size:13px;margin-top:12px}
.pub-emergency{background:#FDEDE7;border:none}
.pub-emergency h2 i{color:var(--corail)}

/* ── Contact ────────────────────────────────────────────── */
.pub-form-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;align-items:start;padding:48px 0 84px}
.hp-field{position:absolute;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden}
.pub-aside-card{background:var(--ecume);border-radius:var(--r-m);padding:28px}
.pub-aside-card h3{font-size:19px;margin-bottom:10px}
.pub-aside-card p{color:#2E5257;font-size:14.5px;margin-bottom:18px}

/* ── Animal perdu ───────────────────────────────────────── */
.pub-lost-banner{background:var(--grad-sos);color:#fff;text-align:center;padding:14px 20px;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;gap:10px}
.pub-lost-wrap{max-width:680px;margin:0 auto;padding:40px 24px 84px}
.pub-lost-card{background:var(--blanc);border-radius:var(--r-l);box-shadow:var(--shadow-2);overflow:hidden}
.pub-lost-card .head{background:var(--grad);padding:28px 28px 60px;color:#fff;position:relative}
.pub-lost-card .head .zid{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;opacity:.85}
.pub-lost-card .avatar{width:96px;height:96px;border-radius:50%;background:#fff;position:absolute;bottom:-48px;left:28px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);border:4px solid #fff;overflow:hidden;font-size:36px;color:var(--turquoise)}
.pub-lost-card .avatar img{width:100%;height:100%;object-fit:cover}
.pub-lost-card .body{padding:62px 28px 28px}
.pub-lost-card h1{font-size:30px;margin-bottom:4px}
.pub-lost-card .sub{color:var(--txt2);font-size:15px;margin-bottom:20px}
.pub-lost-kv{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;font-size:14.5px;margin-bottom:20px}
.pub-lost-kv b{display:block;font-family:var(--font-mono);font-weight:500;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--txt3);margin-bottom:2px}
.pub-lost-intro{background:var(--ecume);border-radius:var(--r-s);padding:14px 18px;font-size:14.5px;color:#2E5257}
.pub-sighting{margin-top:26px}
.pub-sighting-open{width:100%;font-size:16px;padding:16px 28px}
.pub-sighting-form{background:var(--blanc);border:1px solid var(--line);border-radius:var(--r-m);padding:26px;margin-top:18px}
.pub-sighting-form h2{font-size:20px;margin-bottom:6px}
.pub-sighting-form>p{color:var(--txt2);font-size:13.5px;margin-bottom:18px}
.pub-geo-row{display:flex;gap:10px;align-items:flex-start}
.pub-geo-row .f-group{flex:1}
.pub-geo-btn{flex:none;margin-top:0}
.pub-geo-ok{display:none;align-items:center;gap:8px;font-size:13px;color:#0E7C6B;font-weight:700;margin-top:6px}
.pub-geo-ok.show{display:flex}
.pub-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}

/* page privée */
.pub-private{max-width:560px;margin:0 auto;padding:90px 24px;text-align:center}
.pub-private .ic{width:84px;height:84px;border-radius:50%;background:var(--ecume);color:var(--sarcelle);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 24px}
.pub-private h1{font-size:30px;margin-bottom:12px}
.pub-private p{color:#2E5257;margin-bottom:28px}

/* ── Pages légales ──────────────────────────────────────── */
.pub-legal-wrap{max-width:760px;margin:0 auto;padding:48px 24px 90px}
.pub-legal-wrap .updated{color:var(--txt3);font-size:13px;font-family:var(--font-mono);margin-bottom:22px}
.pub-legal-wrap .intro{font-size:16px;color:#2E5257;margin-bottom:34px}
.pub-legal-wrap h2{font-size:21px;margin:34px 0 10px}
.pub-legal-wrap p{color:#2E5257;font-size:15px}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width:1000px){
  .pub-hero-in{grid-template-columns:1fr;gap:44px;padding:64px 0 76px}
  .pub-hero-visual{max-width:560px}
  .pub-grid-3{grid-template-columns:repeat(2,1fr)}
  .pub-split{grid-template-columns:1fr;gap:36px}
  .pub-plans{grid-template-columns:1fr;max-width:480px;margin-left:auto;margin-right:auto}
  .pub-clinic-body{grid-template-columns:1fr}
  .pub-form-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
  .pub-cta-desktop{display:none}
  .pub-burger{display:flex;align-items:center;justify-content:center}
  .pub-nav{position:fixed;top:72px;left:0;right:0;background:var(--blanc);border-bottom:1px solid var(--line);box-shadow:0 18px 40px rgba(11,46,51,.12);flex-direction:column;align-items:stretch;gap:2px;padding:14px 20px 20px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .25s var(--ease-soft),transform .3s var(--ease-zoo)}
  .pub-nav.open{transform:none;opacity:1;pointer-events:auto}
  .pub-nav>a{padding:13px 14px;font-size:15.5px}
  .pub-nav-cta{display:block;margin-top:10px}
  .pub-nav-cta .btn{width:100%}
}
@media (max-width:640px){
  .pub-section{padding:60px 0}
  .pub-grid-3{grid-template-columns:1fr}
  .pub-clinics{grid-template-columns:1fr}
  .pub-oncall-list{grid-template-columns:1fr}
  .pub-lost-kv{grid-template-columns:1fr}
  .pub-two-cols{grid-template-columns:1fr}
  .pub-geo-row{flex-direction:column}
  .pub-cta-final{padding:44px 24px}
  .pub-hero-chip{left:10px}
  .pub-searchbar .select{max-width:none;width:100%}
}

/* ══════════════════════════════════════════════════════════════
   Footer pro « Le Fil » + micro-animations
   ══════════════════════════════════════════════════════════════ */
.pub-footer{position:relative;background:var(--nuit);color:#BFDCDA;padding:72px 0 34px;overflow:hidden}
.pub-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,#0E7C7B,#17B3A6,#6EC6E6,#17B3A6,#0E7C7B);background-size:220% 100%;
  animation:filFlow 9s linear infinite}
@keyframes filFlow{0%{background-position:0 0}100%{background-position:220% 0}}
.pub-footer .pub-wrap{position:relative;z-index:2}
.pub-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:44px;margin-bottom:44px}
.pub-footer-brand p{margin:16px 0 0;font-size:14px;max-width:300px;color:#9EC4C1}
.pub-footer-logo{display:inline-block;transition:transform .4s var(--ease-zoo)}
.pub-footer-logo:hover{transform:rotate(-2deg) scale(1.04)}
.pub-footer-grid>div>b{display:block;color:#fff;font-size:12px;font-family:var(--font-mono);
  font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px}
.pub-footer-grid>div>a{display:block;color:#BFDCDA;text-decoration:none;font-size:14px;padding:5px 0;
  position:relative;width:fit-content;transition:color .25s,transform .3s var(--ease-zoo)}
.pub-footer-grid>div>a::before{content:"\f1b0";font-family:"Font Awesome 6 Free";font-weight:900;
  font-size:9px;color:var(--turquoise);position:absolute;left:-16px;top:11px;opacity:0;
  transform:translateX(-6px) rotate(-30deg);transition:opacity .25s,transform .35s var(--ease-zoo)}
.pub-footer-grid>div>a:hover{color:#fff;transform:translateX(16px)}
.pub-footer-grid>div>a:hover::before{opacity:1;transform:none}
.pub-footer-social{margin-top:22px;display:flex;align-items:center;gap:10px}
.pub-footer-social b{color:#fff;font-size:12px;font-family:var(--font-mono);font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;margin-right:4px}
.pub-footer-social a{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);color:#CFF5EF;font-size:15px;text-decoration:none;
  border:1px solid rgba(255,255,255,.12);transition:transform .3s var(--ease-zoo),background .25s,color .25s}
.pub-footer-social a:hover{background:var(--turquoise);color:#fff;transform:translateY(-4px) rotate(8deg)}
.pub-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.1);padding-top:22px;font-size:12.5px;color:#8FB5B2}
.pub-footer-managed{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em}
.pub-footer-paws{position:absolute;right:-10px;bottom:-16px;z-index:1;pointer-events:none;color:rgba(255,255,255,.05);}
.pub-footer-paws i{position:absolute;animation:pawStep 6s var(--ease-soft) infinite}
.pub-footer-paws .p1{right:30px;bottom:170px;font-size:26px;transform:rotate(-24deg);animation-delay:0s}
.pub-footer-paws .p2{right:86px;bottom:120px;font-size:30px;transform:rotate(-12deg);animation-delay:.5s}
.pub-footer-paws .p3{right:40px;bottom:66px;font-size:34px;transform:rotate(-28deg);animation-delay:1s}
.pub-footer-paws .p4{right:104px;bottom:14px;font-size:38px;transform:rotate(-10deg);animation-delay:1.5s}
.pub-footer-paws .p5{right:36px;bottom:-30px;font-size:44px;transform:rotate(-26deg);animation-delay:2s}
@keyframes pawStep{0%,100%{opacity:.4}12%{opacity:1}}

/* FAQ : dépliage fluide + rebond du chevron */
.pub-faq details p{overflow:hidden}
.pub-faq details.anim p{animation:faqOpen .45s var(--ease-zoo)}
@keyframes faqOpen{0%{opacity:0;transform:translateY(-8px);max-height:0}100%{opacity:1;transform:none;max-height:400px}}
.pub-faq summary:hover{color:var(--sarcelle)}
.pub-faq summary:hover i{animation:chevBounce .55s var(--ease-zoo)}
@keyframes chevBounce{0%,100%{transform:translateY(0)}45%{transform:translateY(5px) scale(1.25)}}
.pub-faq details[open] summary i{transform:rotate(180deg)}
.pub-faq details[open]{border-color:var(--turquoise)}

@media (max-width:900px){.pub-footer-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media (max-width:560px){.pub-footer-grid{grid-template-columns:1fr}.pub-footer-bottom{flex-direction:column;align-items:flex-start}}
