/* HDKN Carte des praticiens : habillage. Couleurs pilotees par --hcp-c1 (principale) et --hcp-c2 (accent). */
.hcp{
	--hcp-c1:#1F3A34; --hcp-c2:#B8925A;
	--hcp-ink:#16201D; --hcp-mute:#66706B; --hcp-line:#E7E2D8; --hcp-soft:#F7F4EE; --hcp-white:#fff;
	--hcp-r:20px; --hcp-h:660px;
	font-family:inherit; color:var(--hcp-ink); line-height:1.45; -webkit-font-smoothing:antialiased;
}
.hcp *,.hcp *::before,.hcp *::after{box-sizing:border-box}
.hcp svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hcp button{color:var(--hcp-ink);background:none;border:0;border-radius:0;padding:0;margin:0;box-shadow:none;min-height:0;width:auto;text-decoration:none;font-size:inherit;font-weight:inherit}
.hcp :where(button){font-family:inherit;color:inherit;cursor:pointer;line-height:1.2;text-transform:none;letter-spacing:0}
.hcp [hidden],.hcp .hcp-zone[hidden],.hcp .hcp-reset[hidden]{display:none!important}
.hcp .hcp-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* Cadre general */
.hcp .hcp-app{
	display:grid; grid-template-columns:minmax(330px,410px) 1fr; height:var(--hcp-h);
	background:var(--hcp-white); border:1px solid var(--hcp-line); border-radius:var(--hcp-r); overflow:hidden;
	box-shadow:0 1px 2px rgba(22,32,29,.04),0 30px 60px -36px rgba(22,32,29,.35);
}

/* Panneau de gauche */
.hcp .hcp-panel{display:flex;flex-direction:column;min-height:0;background:var(--hcp-white);border-right:1px solid var(--hcp-line)}
.hcp .hcp-tools{padding:22px 22px 14px;display:flex;flex-direction:column;gap:14px;border-bottom:1px solid var(--hcp-line)}
.hcp .hcp-searchrow{display:flex;gap:8px}
.hcp .hcp-search{flex:1;min-width:0;display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border:1px solid var(--hcp-line);border-radius:14px;background:var(--hcp-soft);transition:border-color .2s,box-shadow .2s,background .2s}
.hcp .hcp-search:focus-within{border-color:var(--hcp-c1);background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--hcp-c1) 12%,transparent)}
.hcp .hcp-search svg{color:var(--hcp-mute)}
.hcp .hcp-search input{flex:1;min-width:0;border:0!important;outline:0;background:transparent!important;box-shadow:none!important;height:46px!important;padding:0!important;margin:0;font:inherit;font-size:16px;color:var(--hcp-ink)}
.hcp .hcp-search input::placeholder{color:#9AA19D}
.hcp .hcp-locate{color:var(--hcp-ink);display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 14px;border:1px solid var(--hcp-line);border-radius:14px;background:#fff;font-size:14px;font-weight:600;white-space:nowrap;transition:all .2s}
.hcp .hcp-locate:hover,.hcp .hcp-locate:focus{border-color:var(--hcp-c1);color:var(--hcp-c1);background:#fff}
.hcp .hcp-locate.is-on{background:var(--hcp-c1);border-color:var(--hcp-c1);color:#fff}
.hcp .hcp-locate.is-load svg{animation:hcp-spin 1s linear infinite}
@keyframes hcp-spin{to{transform:rotate(360deg)}}
.hcp .hcp-chips{display:flex;flex-wrap:wrap;gap:6px}
.hcp .hcp-chip{color:var(--hcp-ink);height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--hcp-line);background:#fff;font-size:13.5px;font-weight:500;transition:all .2s}
.hcp .hcp-chip:hover,.hcp .hcp-chip:focus{border-color:var(--hcp-c2);background:#fff;color:var(--hcp-ink)}
.hcp .hcp-chip.is-on{background:var(--hcp-ink);border-color:var(--hcp-ink);color:#fff}
.hcp .hcp-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 22px;background:var(--hcp-soft);border-bottom:1px solid var(--hcp-line)}
.hcp .hcp-count{margin:0!important;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--hcp-mute)}
.hcp .hcp-reset:hover,.hcp .hcp-reset:focus{background:none!important;color:var(--hcp-ink)!important}
.hcp .hcp-reset{color:var(--hcp-c1)!important;border:0;background:none;padding:0;font-size:13px;font-weight:600;color:var(--hcp-c1);text-decoration:underline;text-underline-offset:3px}

/* Liste */
.hcp .hcp-list{list-style:none;margin:0!important;padding:10px!important;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--hcp-line) transparent}
.hcp .hcp-card{position:relative;display:flex;gap:14px;padding:16px;margin:0 0 6px!important;border-radius:16px;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s;list-style:none}
.hcp .hcp-card::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:3px;background:var(--hcp-c2);transform:scaleY(0);transition:transform .25s}
.hcp .hcp-card:hover,.hcp .hcp-card.is-survol{background:var(--hcp-soft)}
.hcp .hcp-card:focus-visible{outline:2px solid var(--hcp-c1);outline-offset:2px}
.hcp .hcp-card.is-actif{background:#fff;border-color:var(--hcp-line);box-shadow:0 14px 30px -22px rgba(22,32,29,.45)}
.hcp .hcp-card.is-actif::before{transform:scaleY(1)}
.hcp .hcp-card__av{flex:0 0 52px;width:52px;height:52px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--hcp-c1) 10%,#fff);color:var(--hcp-c1);font-weight:700;font-size:16px;letter-spacing:.04em}
.hcp .hcp-card__av img{width:100%;height:100%;object-fit:cover}
.hcp .hcp-card__body{min-width:0;flex:1}
.hcp .hcp-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.hcp .hcp-card__nom{margin:0!important;font-family:inherit;font-size:16.5px!important;line-height:1.25!important;font-weight:700;color:var(--hcp-ink);letter-spacing:0;text-transform:none}
.hcp .hcp-dist{flex:0 0 auto;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--hcp-c1);color:#fff}
.hcp .hcp-card__struct{margin:2px 0 0!important;font-size:13.5px;color:var(--hcp-mute)}
.hcp .hcp-card__lieu,.hcp .hcp-card__depl{display:flex;align-items:center;gap:6px;margin:8px 0 0!important;font-size:13.5px}
.hcp .hcp-card__lieu svg,.hcp .hcp-card__depl svg{width:15px;height:15px;color:var(--hcp-c2)}
.hcp .hcp-cp{color:var(--hcp-mute)}
.hcp .hcp-card__depl{color:var(--hcp-mute);margin-top:6px!important}
.hcp .hcp-card__tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.hcp .hcp-tag{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:999px;background:var(--hcp-soft);border:1px solid var(--hcp-line);font-size:12px;font-weight:500;color:var(--hcp-ink)}
.hcp .hcp-tag--cert{background:color-mix(in srgb,var(--hcp-c2) 14%,#fff);border-color:color-mix(in srgb,var(--hcp-c2) 40%,#fff);color:color-mix(in srgb,var(--hcp-c2) 55%,#000);font-weight:600}
.hcp .hcp-tag--cert svg{width:14px;height:14px}
.hcp .hcp-card__actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.hcp .hcp-act{color:var(--hcp-ink);display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--hcp-line);background:#fff;font-size:13px;font-weight:600;color:var(--hcp-ink)!important;text-decoration:none!important;transition:all .2s}
.hcp .hcp-act svg{width:15px;height:15px}
.hcp .hcp-act:hover,.hcp .hcp-act:focus{background:#fff;border-color:var(--hcp-c1);color:var(--hcp-c1)!important}
.hcp .hcp-act--voir{display:none}
.hcp .hcp-empty{list-style:none;padding:36px 22px;text-align:center;color:var(--hcp-mute);font-size:14px}
.hcp .hcp-empty__t{color:var(--hcp-ink);font-weight:700;font-size:15px}
.hcp .hcp-empty .hcp-btn{margin-top:8px}

/* Boutons */
.hcp .hcp-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 14px;border-radius:12px;border:1px solid var(--hcp-line);background:#fff;font-size:13.5px;font-weight:600;color:var(--hcp-ink)!important;text-decoration:none!important;transition:all .2s}
.hcp .hcp-btn svg{width:16px;height:16px}
.hcp .hcp-btn:hover,.hcp .hcp-btn:focus-visible{border-color:var(--hcp-c1);color:var(--hcp-c1)!important}
.hcp .hcp-btn--plein{background:var(--hcp-c1);border-color:var(--hcp-c1);color:#fff!important}
.hcp .hcp-btn--plein:hover,.hcp .hcp-btn--plein:focus-visible{background:var(--hcp-ink);border-color:var(--hcp-ink);color:#fff!important}

/* Carte */
.hcp .hcp-mapwrap{position:relative;min-height:0;background:#EAE6DE}
.hcp .hcp-map{position:absolute;inset:0;z-index:1;background:#EAE6DE}
.hcp .hcp-map.is-adouci .leaflet-tile-pane{filter:grayscale(1) sepia(.18) contrast(.9) brightness(1.06)}
.hcp .leaflet-container{font:inherit}
.hcp .leaflet-control-zoom{border:0!important;box-shadow:0 10px 24px -14px rgba(22,32,29,.5)!important;border-radius:14px!important;overflow:hidden;margin:0 18px 22px 0!important}
.hcp .leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important;color:var(--hcp-ink)!important;border-bottom-color:var(--hcp-line)!important;font-size:18px!important}
.hcp .leaflet-control-attribution{background:rgba(255,255,255,.8)!important;font-size:10.5px;border-top-left-radius:8px;padding:2px 8px}
.hcp .hcp-zone{color:var(--hcp-ink);position:absolute;z-index:500;top:18px;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px;border-radius:999px;border:0;background:#fff;font-size:14px;font-weight:600;box-shadow:0 12px 28px -14px rgba(22,32,29,.55);animation:hcp-in .3s ease}
.hcp .hcp-zone[hidden]{display:none}
.hcp .hcp-zone:hover{background:var(--hcp-ink);color:#fff}
@keyframes hcp-in{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}

/* Marqueurs */
.hcp .hcp-marker{background:none!important;border:0!important}
.hcp .hcp-pin{position:relative;display:block;width:38px;height:38px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--hcp-c1);border:3px solid #fff;box-shadow:0 8px 16px -6px rgba(22,32,29,.55);transition:transform .25s cubic-bezier(.2,.8,.3,1.4),background .2s}
.hcp .hcp-pin__in{position:absolute;inset:0;display:grid;place-items:center;transform:rotate(45deg);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.03em}
.hcp .hcp-marker:hover .hcp-pin,.hcp .hcp-marker.is-survol .hcp-pin{transform:rotate(-45deg) scale(1.12);background:var(--hcp-c2)}
.hcp .hcp-marker.is-actif .hcp-pin{background:var(--hcp-c2);transform:rotate(-45deg) scale(1.2)}
.hcp .hcp-marker.is-actif{z-index:1000!important}
.hcp .hcp-cluster{background:none!important}
.hcp .hcp-cluster span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--hcp-c1);color:#fff;font-weight:700;font-size:14px;box-shadow:0 0 0 6px color-mix(in srgb,var(--hcp-c1) 22%,transparent),0 0 0 12px color-mix(in srgb,var(--hcp-c1) 10%,transparent);transition:transform .2s}
.hcp .hcp-cluster:hover span{transform:scale(1.08)}
.hcp .hcp-moi span{display:block;width:22px;height:22px;border-radius:50%;background:#2E7CF6;border:4px solid #fff;box-shadow:0 0 0 0 rgba(46,124,246,.45);animation:hcp-pulse 2s infinite}
@keyframes hcp-pulse{70%{box-shadow:0 0 0 16px rgba(46,124,246,0)}100%{box-shadow:0 0 0 0 rgba(46,124,246,0)}}

/* Info-bulle */
.hcp .hcp-popup .leaflet-popup-content-wrapper{padding:0;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px -20px rgba(22,32,29,.55)}
.hcp .hcp-popup .leaflet-popup-content{margin:0;width:auto!important;min-width:260px}
.hcp .hcp-popup .leaflet-popup-tip{box-shadow:none}
.hcp .hcp-popup a.leaflet-popup-close-button{top:8px!important;right:8px!important;width:30px!important;height:30px!important;border-radius:50%;background:rgba(255,255,255,.92)!important;color:var(--hcp-ink)!important;font:20px/30px sans-serif!important;z-index:2}
.hcp .hcp-pop__img{height:130px;overflow:hidden}
.hcp .hcp-pop__img img{width:100%;height:100%;object-fit:cover;display:block}
.hcp .hcp-pop__in{padding:16px 18px 18px}
.hcp .hcp-pop__nom{margin:8px 0 0!important;font-size:18px;font-weight:700;line-height:1.2;color:var(--hcp-ink)}
.hcp .hcp-pop__struct{margin:2px 0 0!important;font-size:13.5px;color:var(--hcp-mute)}
.hcp .hcp-pop__lieu{margin:6px 0 0!important;font-size:13.5px;font-weight:600}
.hcp .hcp-pop__txt{margin:10px 0 0!important;font-size:13.5px;line-height:1.55;color:#3D4642}
.hcp .hcp-pop__btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.hcp .hcp-pop__btns .hcp-btn{flex:1 1 0;min-width:0}
.hcp .hcp-pop__btns .hcp-btn{padding:0 6px;font-size:12.5px;white-space:nowrap;gap:5px}
.hcp .hcp-pop__btns .hcp-btn--plein{font-size:14px;min-height:44px}
.hcp .hcp-pop__btns .hcp-btn--plein{flex-basis:100%}
.hcp .hcp-popup .hcp-tag--cert{margin:0}

/* Ecran de consentement */
.hcp .hcp-gate{position:absolute;inset:0;z-index:600;display:grid;place-items:center;padding:24px;text-align:center;background:linear-gradient(135deg,var(--hcp-soft),#EAE6DE)}
.hcp .hcp-gate__in{max-width:340px}
.hcp .hcp-gate__in>svg{width:44px;height:44px;color:var(--hcp-c2)}
.hcp .hcp-gate__title{margin:12px 0 6px!important;font-size:18px;font-weight:700}
.hcp .hcp-gate__txt{margin:0 0 16px!important;font-size:14px;color:var(--hcp-mute)}

/* Bascule mobile */
.hcp .hcp-switch{display:none}

@media (max-width:1100px){
	.hcp .hcp-app{grid-template-columns:340px 1fr}
	.hcp .hcp-locate span{display:none}
	.hcp .hcp-locate{width:48px;padding:0;justify-content:center}
}
@media (max-width:899px){
	.hcp .hcp-app{display:flex;flex-direction:column;height:auto;position:relative}
	.hcp .hcp-panel{border-right:0}
	.hcp .hcp-list{max-height:none;overflow:visible;padding:8px!important}
	.hcp .hcp-mapwrap{display:none;height:72vh;min-height:420px}
	.hcp .hcp-app[data-vue="carte"] .hcp-mapwrap{display:block}
	.hcp .hcp-app[data-vue="carte"] .hcp-list,.hcp .hcp-app[data-vue="carte"] .hcp-meta{display:none}
	.hcp .hcp-act--voir{display:inline-flex}
	.hcp .hcp-switch{display:flex;position:sticky;bottom:16px;z-index:700;margin:0 auto 16px;padding:5px;gap:4px;border-radius:999px;background:var(--hcp-ink);box-shadow:0 14px 30px -14px rgba(0,0,0,.6);align-self:center}
	.hcp .hcp-switch button{display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:#fff;font-size:14px;font-weight:600}
	.hcp .hcp-switch button:hover,.hcp .hcp-switch button:focus{background:rgba(255,255,255,.12);color:#fff}
	.hcp .hcp-switch button[aria-selected="true"]{background:#fff;color:var(--hcp-ink)}
	.hcp .hcp-tools{padding:16px 14px 12px}
	.hcp .hcp-meta{padding:10px 16px}
	.hcp .hcp-card{padding:14px}
}
@media (prefers-reduced-motion:reduce){
	.hcp *{transition:none!important;animation:none!important}
}
