.pracs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.prac{background:#fff;border-radius:18px;overflow:hidden;border:1px solid var(--line);transition:transform .35s ease,box-shadow .35s ease;display:flex;flex-direction:column;position:relative}.prac:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.prac-featured{border:1.5px solid var(--deep);box-shadow:var(--shadow)}.dispo-strip{display:flex;align-items:center;gap:8px;padding:9px 16px;font-size:.82rem;font-weight:500;border-bottom:1px solid var(--line)}.dispo-strip.live{background:#e8f2ec;color:#2d7d5a}.dispo-strip.amber{background:#f9efdd;color:#8a5d18}.dispo-strip.muted{background:var(--cream);color:var(--muted)}.dispo-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.dispo-strip.live .dispo-dot{animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.55}}.prac-img{position:relative;aspect-ratio:5/4;background:#eee center/cover}.prac-img img{width:100%;height:100%;object-fit:cover}.badge-pro{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,#e8b547,#c89225);color:#1a1a1a;font-weight:600;font-size:.7rem;padding:5px 11px;border-radius:999px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 6px 14px -6px #e8b547b3;display:inline-flex;align-items:center;gap:5px}.badge-pro svg{width:11px;height:11px}.prac-body{padding:18px 20px 20px;flex:1;display:flex;flex-direction:column}.prac-name{font-family:Fraunces,serif;font-size:1.25rem;color:var(--deep);line-height:1.15}.prac-job{font-size:.88rem;color:var(--muted);margin-bottom:10px}.prac-blurb{font-size:.9rem;color:#2a2a2a;line-height:1.55;margin-bottom:18px}.prac-meta-loc{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem;margin-bottom:14px}.prac-meta-loc svg{width:14px;height:14px;flex-shrink:0}.prac-rating{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:.82rem;color:var(--ink)}.prac-rating .stars{display:flex;gap:1px;color:var(--highlight)}.prac-rating .stars svg{width:13px;height:13px}.prac-rating .num{font-weight:600}.prac-rating .count{color:var(--muted);font-weight:400}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}.chip{background:var(--sand);color:var(--ink);padding:4px 10px;border-radius:999px;font-size:.74rem;font-weight:500}.next-slot{display:flex;align-items:center;gap:10px;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:12px;font-size:.85rem}.next-slot svg{color:var(--primary);flex-shrink:0}.next-slot .lbl{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em}.next-slot .val{color:var(--ink);font-weight:600}.next-slot .col{display:flex;flex-direction:column;line-height:1.25}.prac-cta{margin-top:auto;display:grid;grid-template-columns:1fr auto;gap:8px;padding-top:14px;border-top:1px solid var(--line);position:relative;z-index:2}.btn-book{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 14px;border-radius:10px;background:var(--primary);color:#fff;font-size:.88rem;font-weight:500;transition:background .2s ease,transform .2s ease;position:relative;z-index:2}.btn-book:hover{background:var(--primary-deep);transform:translateY(-1px)}.btn-book svg{width:14px;height:14px}.btn-msg{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);transition:all .2s ease;position:relative;z-index:2}.btn-msg:hover{border-color:var(--deep);color:var(--deep);background:var(--cream)}.btn-msg svg{width:16px;height:16px}.btn-call-only{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;border-radius:10px;background:transparent;color:var(--deep);border:1.5px solid var(--deep);font-size:.9rem;font-weight:500;transition:all .2s ease;position:relative;z-index:2}.btn-call-only:hover{background:var(--deep);color:#fff}.btn-call-only svg{width:14px;height:14px}.prac-overlay{position:absolute;inset:0;z-index:1;border-radius:inherit}.prac-overlay:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}a.prac-fiche-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;padding:8px 14px;border-radius:999px;background:transparent;color:var(--deep);font-size:.82rem;font-weight:500;border:1px solid var(--line);transition:all .2s ease;position:relative;z-index:2;align-self:center}a.prac-fiche-link svg{transition:transform .2s ease}a.prac-fiche-link:hover{background:var(--deep);color:#fff;border-color:var(--deep)}a.prac-fiche-link:hover svg{transform:translate(3px)}.pracs .prac[data-row-hidden="1"]{display:none!important}.density-compact .pracs{grid-template-columns:repeat(4,1fr);gap:16px}.density-compact .prac{border-radius:14px}.density-compact .dispo-strip{padding:6px 12px;font-size:.72rem}.density-compact .prac-img{aspect-ratio:1/1}.density-compact .badge-pro{top:8px;right:8px;padding:3px 8px;font-size:.62rem}.density-compact .prac-body{padding:12px 14px 14px}.density-compact .prac-name{font-size:1.05rem}.density-compact .prac-job{font-size:.78rem;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.density-compact .prac-rating{font-size:.74rem;margin-bottom:8px;gap:4px}.density-compact .prac-rating .stars svg{width:11px;height:11px}.density-compact .prac-rating .count{display:none}.density-compact .chips,.density-compact .next-slot,.density-compact .prac-blurb,.density-compact .prac-meta-loc,.density-compact .prac-fiche-link{display:none!important}.density-compact .prac-cta{padding-top:10px;grid-template-columns:1fr auto;gap:6px}.density-compact .btn-book{padding:8px 10px;font-size:.78rem;border-radius:8px}.density-compact .btn-book svg{width:12px;height:12px}.density-compact .btn-msg{width:34px;height:34px;border-radius:8px}.density-compact .btn-msg svg{width:13px;height:13px}.density-compact .btn-call-only{padding:8px 10px;font-size:.78rem;border-radius:8px}@media (max-width:1100px){.density-compact .pracs{grid-template-columns:repeat(3,1fr)}}@media (max-width:780px){.density-compact .pracs{grid-template-columns:repeat(2,1fr)}}@media (max-width:460px){.density-compact .pracs{grid-template-columns:1fr}}@media (max-width:880px){.pracs{grid-template-columns:1fr}}@media (min-width:881px) and (max-width:1100px){.pracs{grid-template-columns:repeat(2,1fr)}}
