.recherche-page{display:flex;flex-direction:column}.toolbar{position:sticky;top:64px;z-index:40;background:var(--surface-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:14px 0 12px}.toolbar-row{display:flex;align-items:center;gap:12px;width:min(100% - 32px,80rem);margin:0 auto}.search-input{flex:1;max-width:560px;position:relative}.search-input input{width:100%;padding:11px 14px 11px 42px;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s;font-family:var(--font-body);color:var(--text)}.search-input input:focus{border-color:var(--eau-500);box-shadow:0 0 0 4px #0891b21a}.search-input:before{content:"";position:absolute;top:50%;left:14px;width:16px;height:16px;transform:translateY(-50%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a9aa8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat center/contain}.btn-near-me{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--eau-700);color:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:0;cursor:pointer;transition:background .15s,transform .1s;white-space:nowrap}.btn-near-me:hover{background:var(--eau-800)}.btn-near-me:active{transform:scale(.98)}.btn-filters{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;color:var(--eau-700);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s;white-space:nowrap}.btn-filters:hover{border-color:var(--eau-500);background:var(--eau-50)}.btn-filters .badge{background:var(--corail);color:#fff;font-size:11px;font-weight:700;padding:1px 7px;border-radius:var(--radius-pill);margin-left:2px}.chips{display:flex;gap:8px;width:min(100% - 32px,80rem);margin:11px auto 0;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.chips::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;background:#fff;border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);font-size:12.5px;font-weight:500;color:var(--text-secondary);white-space:nowrap;cursor:pointer;transition:all .15s}.chip:hover{border-color:var(--eau-500);color:var(--eau-700)}.chip.active{background:var(--eau-700);border-color:var(--eau-700);color:#fff}.chip.active:hover{background:var(--eau-800);border-color:var(--eau-800)}.search-area{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);width:min(100% - 32px,80rem);margin:18px auto 24px;background:#fff;border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-md,0 2px 8px rgba(0,0,0,.06),0 12px 30px rgba(8,145,178,.08));overflow:hidden;height:calc(100dvh - 219px);min-height:520px;max-height:88vh}.results-pane{overflow-y:auto;min-height:0;padding:18px 24px 24px;scroll-behavior:smooth}.results-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;padding:0 2px}.count-text{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--text);letter-spacing:-.01em}.count-text em{font-style:italic;color:var(--eau-600)}.sort-select{padding:7px 11px;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;font-size:12.5px;font-weight:500;color:var(--text-secondary);outline:none;cursor:pointer;font-family:var(--font-body)}.sort-select:hover{border-color:var(--eau-500)}.results-list{display:flex;flex-direction:column;gap:10px}.card{display:block;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm,0 1px 3px rgba(0,0,0,.04),0 4px 12px rgba(8,145,178,.05));transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s,border-color .18s;position:relative;text-decoration:none;color:inherit}.card:hover{transform:translateY(-2px);border-color:var(--eau-300);box-shadow:var(--shadow-md,0 2px 8px rgba(0,0,0,.06),0 12px 30px rgba(8,145,178,.08))}.card.highlight{border-color:var(--eau-500);background:linear-gradient(to right,#e0f8ff66,#fff 40%)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:5px}.card-title{font-family:var(--font-display);font-size:16.5px;font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.3}.card:hover .card-title{color:var(--eau-700)}.card-rating{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:600;color:var(--or,#d4a72c);white-space:nowrap;flex-shrink:0}.card-meta{font-size:12.5px;color:var(--text-muted);margin-bottom:7px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.card-meta .dot{color:var(--text-muted);opacity:.5}.card-meta .dist{display:inline-flex;align-items:center;gap:3px;color:var(--eau-700);font-weight:500}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}.card-features{display:flex;gap:6px;font-size:14px;flex-wrap:wrap}.card-features span{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--eau-50);border-radius:6px;font-size:12px}.card-price{font-size:14.5px;font-weight:700;color:var(--eau-700);white-space:nowrap}.card-price small{font-size:11px;font-weight:500;color:var(--text-muted)}.nearby-banner{background:linear-gradient(to right,#fef3c7,#fef9c3);border:1px solid #fde68a;border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:12px;font-size:13px;color:#92400e;display:flex;align-items:center;gap:8px}.empty-state{padding:40px 20px;text-align:center;color:var(--text-muted)}.empty-state strong{color:var(--text);font-family:var(--font-display);font-size:18px;display:block;margin-bottom:6px}.btn-load-more{display:block;margin:24px auto 0;padding:12px 28px;background:var(--eau-700);color:#fff;border:0;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:background .15s}.btn-load-more:hover{background:var(--eau-800)}.map-pane{position:relative;min-height:0;border-left:1px solid var(--border);background:#e8eef0;overflow:hidden;display:flex;flex-direction:column}.map-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;background:#fff;border-bottom:1px solid var(--border)}.map-header-count{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--text-secondary)}.map-header-count strong{color:var(--eau-700);font-weight:700}.btn-recenter{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--eau-50);color:var(--eau-700);border:1px solid var(--eau-200);border-radius:var(--radius-pill);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s;font-family:var(--font-body)}.btn-recenter:hover{background:var(--eau-100);border-color:var(--eau-300)}#recherche-map{flex:1;width:100%}.map-overlay-search-zone{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:401;display:none}.map-overlay-search-zone.show{display:flex;gap:8px;animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.btn-research-zone{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;background:var(--eau-700);color:#fff;border:0;border-radius:var(--radius-pill);font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-md,0 2px 8px rgba(0,0,0,.1));transition:transform .1s,background .15s;font-family:var(--font-body)}.btn-research-zone:hover{background:var(--eau-800)}.btn-research-zone:active{transform:scale(.97)}.btn-cancel-zone{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff;color:var(--text-muted);border:0;border-radius:50%;box-shadow:var(--shadow-sm);font-size:14px;font-weight:700;cursor:pointer}.leaflet-popup-content-wrapper{border-radius:var(--radius-sm)}.leaflet-popup-content{margin:12px 14px;font-family:var(--font-body);font-size:13px}.leaflet-popup-content strong{font-family:var(--font-display);font-weight:600;display:block;margin-bottom:3px;color:var(--text)}.leaflet-popup-content small{color:var(--text-muted)}.leaflet-popup-content a{display:inline-block;margin-top:6px;color:var(--eau-700);font-weight:600;font-size:12px;text-decoration:none}.pool-marker{width:30px;height:36px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.pool-marker svg{width:100%;height:100%}.pool-marker-good{color:var(--menthe,#2dd4a8)}.pool-marker-default{color:var(--eau-600)}.pool-marker-low{color:#94a3b8}.pool-marker-hover svg{transform:scale(1.25);transform-origin:center bottom;color:var(--corail,#e8604c)}.drawer-backdrop{position:fixed;inset:0;background:#04202c73;backdrop-filter:blur(2px);z-index:100;opacity:0;pointer-events:none;transition:opacity .25s}.drawer-backdrop.show{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:100vw;background:var(--sable-50);z-index:101;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.32,.72,0,1);box-shadow:-12px 0 40px #04202c2e}.drawer.show{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border);background:#fff}.drawer-title{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.01em}.drawer-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:0;background:none;border-radius:50%;color:var(--text-muted);font-size:20px;cursor:pointer;transition:background .15s}.drawer-close:hover{background:var(--eau-50);color:var(--eau-700)}.drawer-body{flex:1;overflow-y:auto;padding:8px 24px 24px}.filter-section{border-bottom:1px solid var(--border);padding:18px 0}.filter-section:last-child{border-bottom:0}.filter-section h3{font-family:var(--font-display);font-weight:600;font-size:15px;margin:0 0 12px;letter-spacing:-.005em;color:var(--eau-800)}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.filter-grid.single{grid-template-columns:1fr}.checkbox-pill{display:flex;align-items:center;gap:9px;padding:9px 12px;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;user-select:none}.checkbox-pill:hover{border-color:var(--eau-300);background:var(--eau-50)}.checkbox-pill input{appearance:none;width:16px;height:16px;flex-shrink:0;border:1.5px solid var(--border-strong);border-radius:4px;background:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s;margin:0}.checkbox-pill input:checked{background:var(--eau-700);border-color:var(--eau-700)}.checkbox-pill input:checked:before{content:"";width:9px;height:9px;background: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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center/contain}.checkbox-pill:has(input:checked){border-color:var(--eau-700);background:var(--eau-50);color:var(--eau-800);font-weight:600}.radio-row{display:flex;flex-direction:column;gap:8px}.radio-pill{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.radio-pill input{appearance:none;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border-strong);background:#fff;display:grid;place-items:center;margin:0}.radio-pill input:checked{border-color:var(--eau-700)}.radio-pill input:checked:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--eau-700)}.radio-pill:has(input:checked){border-color:var(--eau-700);background:var(--eau-50);color:var(--eau-800);font-weight:600}.select-input{width:100%;padding:9px 12px;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;font-size:13px;outline:none;font-family:var(--font-body);color:var(--text)}.range-row{display:flex;gap:6px}.range-pill{flex:1;padding:9px 0;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:12.5px;font-weight:500;color:var(--text-secondary);text-align:center;cursor:pointer;transition:all .15s;font-family:var(--font-body)}.range-pill:hover{border-color:var(--eau-300)}.range-pill.active{background:var(--eau-700);border-color:var(--eau-700);color:#fff;font-weight:600}.drawer-footer{padding:14px 24px;background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px}.btn-reset{font-size:13px;font-weight:600;color:var(--text-muted);padding:10px 0;border:0;background:none;cursor:pointer;font-family:var(--font-body)}.btn-reset:hover{color:var(--corail,#e8604c)}.btn-apply{flex:1;padding:13px 24px;background:var(--eau-700);color:#fff;border:0;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:background .15s}.btn-apply:hover{background:var(--eau-800)}.fab-map{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:none;align-items:center;gap:8px;padding:13px 22px;background:var(--eau-800);color:#fff;border:0;border-radius:var(--radius-pill);font-size:14px;font-weight:600;box-shadow:0 8px 28px #0891b266,0 2px 8px #04202c33;z-index:40;cursor:pointer;font-family:var(--font-body);transition:transform .15s,background .15s}.fab-map:hover{background:var(--eau-700)}.fab-map:active{transform:translate(-50%) scale(.96)}.map-mobile-close,.map-mobile-back{display:none}@media(max-width:767px){.toolbar{top:60px}}@media(max-width:1023px){.search-area{grid-template-columns:1fr;height:auto;min-height:0;max-height:none;margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible;width:100%}.results-pane{height:auto;overflow:visible;padding:14px 16px 100px}.map-pane{display:none}.map-pane.mobile-open{display:flex;position:fixed;inset:0;z-index:200;height:100vh;height:100dvh;border:0}.map-pane.mobile-open .map-header{padding:14px 18px}.map-pane.mobile-open .map-mobile-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:#fff;border:1.5px solid var(--border-strong);border-radius:50%;color:var(--text);font-size:20px;line-height:1;box-shadow:var(--shadow-md,0 2px 8px rgba(0,0,0,.1));margin-right:4px;cursor:pointer}.map-pane.mobile-open .map-mobile-close:active{transform:scale(.94)}.map-pane.mobile-open .map-mobile-back{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:inline-flex!important;align-items:center;gap:8px;padding:13px 22px;background:#fff;color:var(--eau-800);border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);font-size:14px;font-weight:600;box-shadow:0 8px 28px #04202c2e;z-index:401;cursor:pointer;font-family:var(--font-body)}.map-pane.mobile-open .map-mobile-back:active{transform:translate(-50%) scale(.96)}.fab-map{display:flex}.toolbar{padding:12px 0}.toolbar-row{gap:8px}.btn-near-me span,.btn-filters span:not(.badge){display:none}.btn-near-me,.btn-filters{padding:10px 13px}.results-header{flex-direction:column;align-items:flex-start;gap:8px}.count-text{font-size:18px}.drawer{width:100vw}}@media(max-width:639px){.filter-grid{grid-template-columns:1fr}}.results-list .card{opacity:0;animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) forwards}.results-list .card:nth-child(1){animation-delay:.04s}.results-list .card:nth-child(2){animation-delay:.08s}.results-list .card:nth-child(3){animation-delay:.12s}.results-list .card:nth-child(4){animation-delay:.16s}.results-list .card:nth-child(5){animation-delay:.2s}.results-list .card:nth-child(6){animation-delay:.24s}.results-list .card:nth-child(7){animation-delay:.28s}.results-list .card:nth-child(8){animation-delay:.32s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
