@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--ink:#15394a;--muted:#647984;--blue:#255bea;--blue-dark:#1745bd;--green:#2ca67e;--sage:#e8f2ed;--paper:#f7f9f7;--line:#dce6e8;--white:#fff;--amber:#f1b849;--shadow:0 16px 48px rgba(21,57,74,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fcfdfb;color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1220px;margin:auto;padding:0 28px}.skip{position:absolute;top:-80px;left:16px;z-index:3000;background:#fff;padding:10px 14px;border-radius:8px}.skip:focus{top:12px}.site-header{position:sticky;top:0;z-index:1100;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(14px);box-shadow:0 4px 20px rgba(21,57,74,.04)}.nav{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand img{display:block;width:248px;height:58px;object-fit:contain;object-position:left center}.nav nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:600}.nav nav a{color:#526a76}.nav nav a:hover{color:var(--blue);text-decoration:none}.nav-cta{padding:11px 15px;border:1px solid #d9e2fb;border-radius:9px;background:#f7f9ff!important;color:var(--blue)!important;box-shadow:0 7px 17px rgba(37,91,234,.09)}
h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.17;letter-spacing:-1.2px}h1{font-size:clamp(42px,5.2vw,67px);margin:22px 0 25px;letter-spacing:-3px}h2{font-size:clamp(28px,3vw,40px);margin:12px 0 14px}h3{font-size:21px;margin:0}.eyebrow{display:inline-flex;align-items:center;gap:9px;color:#647977;font-size:10px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase}.status-dot{width:7px;height:7px;border-radius:50%;background:#58a680;box-shadow:0 0 0 4px #e9f3eb}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;padding-top:68px;padding-bottom:64px}.hero-copy>p{max-width:610px;color:var(--muted);font-size:18px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:30px 0 22px}.button,button{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:0;border-radius:10px;background:var(--blue);color:#fff;padding:15px 22px;font:700 14px 'DM Sans';cursor:pointer;transition:.2s transform,.2s background,.2s box-shadow}.button:hover,button:hover{background:var(--blue-dark);text-decoration:none;transform:translateY(-1px);box-shadow:0 10px 24px rgba(37,91,234,.18)}button:disabled{cursor:wait;opacity:.62;transform:none}.text-link{font-size:14px;font-weight:700}.hero-reassurance{display:flex;gap:18px;flex-wrap:wrap;color:#667c75;font-size:11px}.hero-visual{padding:18px 0}.map-art{position:relative;height:450px;border-radius:90px 22px 22px 22px;overflow:hidden;background:linear-gradient(135deg,#eef6f1,#e6edfa);box-shadow:var(--shadow);border:1px solid #e1e9e7}.map-art:before{content:"";position:absolute;inset:0;background-image:linear-gradient(30deg,transparent 47%,rgba(255,255,255,.8) 48% 52%,transparent 53%),linear-gradient(-32deg,transparent 46%,rgba(255,255,255,.72) 47% 52%,transparent 53%);background-size:190px 150px,230px 180px}.street{position:absolute;height:18px;background:#fff;border:2px solid #d7e0e3;border-radius:20px;transform-origin:left center}.s1{width:520px;left:-50px;top:120px;transform:rotate(23deg)}.s2{width:430px;left:70px;top:315px;transform:rotate(-18deg)}.s3{width:330px;left:235px;top:50px;transform:rotate(76deg)}.block{position:absolute;border-radius:12px;background:#d5e6dd;border:2px solid #bad3c5}.b1{width:92px;height:58px;left:95px;top:55px;transform:rotate(8deg)}.b2{width:120px;height:72px;right:48px;top:130px;transform:rotate(-7deg)}.b3{width:85px;height:110px;left:125px;bottom:40px;transform:rotate(12deg)}.b4{width:130px;height:62px;right:68px;bottom:65px;transform:rotate(-10deg)}.candidate{position:absolute;display:grid;place-items:center;width:66px;height:66px;border:5px solid #fff;border-radius:50% 50% 50% 12px;transform:rotate(-45deg);color:#fff;background:var(--blue);box-shadow:0 13px 25px rgba(21,57,74,.26)}.candidate strong{transform:rotate(45deg);font:800 14px Manrope}.c1{left:45%;top:34%;background:var(--green)}.c2{left:22%;top:56%;width:54px;height:54px;background:#e0a83d}.c3{right:14%;top:50%;width:50px;height:50px;background:#768ca0}.match-card{position:absolute;left:30px;right:30px;bottom:22px;display:grid;grid-template-columns:auto 1fr;gap:2px 18px;padding:17px 20px;border:1px solid rgba(255,255,255,.9);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(21,57,74,.15);backdrop-filter:blur(10px)}.match-card small{grid-column:1/-1;color:#6e7f88;font-size:9px;font-weight:800;letter-spacing:1.2px}.match-card strong{font:750 15px Manrope}.match-card span{font-size:11px;color:var(--muted)}.source-strip{display:flex;justify-content:space-between;gap:24px;padding-top:21px;padding-bottom:21px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#697d77;font-size:12px}.tool-section{padding-top:70px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:28px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:450px;margin:0;color:var(--muted);font-size:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 32px rgba(21,57,74,.05)}.search-panel{padding:30px}.step-title{display:flex;align-items:center;gap:14px;margin-bottom:20px}.step-title>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf0ff;color:var(--blue);font:800 13px Manrope}.step-title small{display:block;margin-bottom:3px;color:#85959c;font-size:9px;font-weight:800;letter-spacing:1.5px}.filter-grid{display:grid;gap:16px}.location-grid{grid-template-columns:.8fr 1fr 1.15fr}.main-grid{grid-template-columns:repeat(3,1fr)}label{display:block;color:var(--ink);font-size:12px;font-weight:700}label>span{display:block;color:#71858f;font-size:10px;font-weight:500}.required{display:inline-block;margin-left:6px;color:#9c6224;font-size:9px;text-transform:uppercase;letter-spacing:.7px}input,select{width:100%;min-height:48px;margin-top:8px;padding:0 13px;border:1px solid #ccd9de;border-radius:9px;background:#fff;color:var(--ink);font:600 14px 'DM Sans'}input:focus,select:focus{outline:3px solid rgba(37,91,234,.13);border-color:var(--blue)}select:disabled{background:#f3f6f6;color:#8b999f}.divider{height:1px;margin:28px 0;background:var(--line)}.advanced{margin:25px 0 0;border:1px solid var(--line);border-radius:14px;background:#f8faf9}.advanced summary{padding:15px 17px;cursor:pointer;color:var(--ink);font-size:13px;font-weight:750;list-style:none}.advanced summary::-webkit-details-marker{display:none}.advanced summary:after{content:"+";float:right;display:grid;place-items:center;width:24px;height:24px;margin-top:-2px;border-radius:50%;background:#e8efff;color:var(--blue)}.advanced[open] summary:after{content:"−"}.advanced summary span{margin-left:8px;color:#849398;font-size:10px;font-weight:500}.advanced-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px;padding:2px 17px 17px}.date-fieldset{min-width:0;margin:0;padding:0;border:0}.date-fieldset legend{font-size:12px;font-weight:700}.date-fieldset p{margin:3px 0 8px;color:var(--muted);font-size:10px}.date-parts{display:grid;grid-template-columns:.8fr 1.2fr 1fr;gap:9px}.date-parts label{color:#72838b;font-size:10px}.date-parts select{margin-top:4px}.tolerance-field small{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-weight:400;line-height:1.55}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px}.form-footer p{margin:0;color:var(--muted);font-size:12px}.loading-card{display:flex;align-items:center;gap:15px;margin-top:18px;padding:17px 20px;border:1px solid #b9cbf7;border-radius:14px;background:linear-gradient(135deg,#eef3ff,#f1f8f4);box-shadow:0 8px 24px rgba(37,91,234,.08)}.loading-card[hidden]{display:none}.loading-card strong,.loading-card small{display:block}.loading-card small{margin-top:2px;color:var(--muted);font-size:11px}.spinner{width:27px;height:27px;border:3px solid #c9d5f6;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}.message{margin-top:16px}.message.error{padding:15px 18px;border:1px solid #f0c9c9;border-radius:12px;background:#fff2f1;color:#a23b3b}.message.notice{padding:15px 18px;border:1px solid #ead9ac;border-radius:12px;background:#fff9e9;color:#735c2d}@keyframes spin{to{transform:rotate(360deg)}}.results{padding-top:50px}.results[hidden]{display:none}.results-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:22px}.results-heading p{margin:0;color:var(--muted)}.legend-probability{display:flex;gap:14px;color:#687c85;font-size:11px}.legend-probability span{display:flex;align-items:center;gap:6px}.legend-probability i{width:9px;height:9px;border-radius:50%}.legend-probability .high{background:var(--green)}.legend-probability .medium{background:#e0a83d}.legend-probability .low{background:#7f93a0}#map{height:620px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#edf2ef;box-shadow:0 8px 30px rgba(21,57,74,.06)}.map-note{margin:10px 3px 35px;color:#71828a;font-size:11px}.candidate-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.candidate-toolbar h2{font-size:28px}.candidate-toolbar span{color:var(--muted);font-size:12px}.candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.candidate-card{position:relative;display:flex;flex-direction:column;min-height:310px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;transition:.2s transform,.2s box-shadow,.2s border-color}.candidate-card:hover{transform:translateY(-3px);border-color:#b8c7ed;box-shadow:0 14px 30px rgba(21,57,74,.09)}.candidate-card.best{border-color:#8fcdb7;background:linear-gradient(180deg,#f6fcf9,#fff 35%)}.probability-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.probability{display:flex;align-items:baseline;gap:5px}.probability strong{font:800 32px Manrope;color:var(--green);letter-spacing:-1px}.probability span{color:var(--muted);font-size:10px}.confidence{padding:5px 9px;border-radius:20px;background:#edf5f1;color:#39765f;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}.confidence.medium{background:#fff4d9;color:#8a6417}.confidence.low{background:#edf1f3;color:#667a85}.candidate-card h3{margin:16px 0 5px;font-size:18px;line-height:1.38;letter-spacing:-.45px}.candidate-meta{margin:0;color:var(--muted);font-size:12px}.candidate-date{align-self:flex-start;margin:10px 0 0;padding:5px 9px;border-radius:7px;background:#edf2ff;color:#365aa8;font-size:10px;font-weight:750}.candidate-systems{margin:10px 0 0;padding:9px 10px;border-radius:8px;background:#f3f7f5;color:#3b6255;font-size:10px;line-height:1.5}.candidate-systems[hidden]{display:none}.match-count{margin:12px 0 0;color:#315b4c;font:750 11px Manrope}.match-reasons{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 16px}.match-reasons span{padding:5px 8px;border-radius:6px;background:#edf4f1;color:#3e6f5e;font-size:9px;font-weight:700}.match-reasons span.different{background:#fff4df;color:#8a661f}.match-reasons span.missing{background:#f1f3f4;color:#78888f}.candidate-number{margin:auto 0 13px;color:#839198;font-size:10px}.candidate-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:13px;border-top:1px solid var(--line)}.candidate-actions button{padding:8px 10px;background:#edf2ff;color:var(--blue);font-size:11px}.candidate-actions button:hover{background:#dfe8ff;box-shadow:none}.candidate-actions a{font-size:11px;font-weight:750}.maps-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 9px;border-radius:8px;background:#f2f5f7;color:#23495b;text-align:center}.maps-link:hover{background:#e5ecef;text-decoration:none}.popup-maps-link{display:inline-flex;margin-top:10px;padding:7px 10px;border-radius:7px;background:#edf2ff;color:var(--blue);font-size:11px;font-weight:750}.popup-maps-link:hover{text-decoration:none;background:#dfe8ff}.score-marker{display:grid;place-items:center;width:42px;height:42px;border:4px solid #fff;border-radius:50%;background:var(--green);color:#fff;font:800 11px Manrope;box-shadow:0 7px 16px rgba(21,57,74,.35)}.score-marker.medium{background:#dfa83d}.score-marker.low{background:#768b98}.leaflet-popup-content-wrapper{border-radius:13px;box-shadow:0 10px 30px rgba(21,57,74,.22)}.popup-card{min-width:210px}.popup-card strong{display:block;color:var(--ink);font:750 14px Manrope}.popup-card .popup-score{margin:7px 0;color:var(--green);font:800 20px Manrope}.popup-card span{display:block;color:var(--muted);font-size:11px}.method-section{margin-top:80px;padding:75px 0;background:#eff5f1}.method-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:90px}.method-grid>div>p{max-width:450px;color:var(--muted)}.method-steps{display:grid;gap:20px;margin:0;padding:0;list-style:none}.method-steps li{display:flex;gap:18px}.method-steps li>span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:#fff;color:#4a7767;font:800 11px Manrope}.method-steps strong{font:750 15px Manrope}.method-steps p{margin:4px 0;color:var(--muted);font-size:12px}.limits-panel{padding-top:70px;padding-bottom:20px}.limit-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.limit-cards article{padding:22px;border:1px solid var(--line);border-radius:14px;background:#fff}.limit-cards strong{font:750 14px Manrope}.limit-cards p{margin:8px 0 0;color:var(--muted);font-size:12px}footer{margin-top:70px;padding:45px 0;background:#12384b;color:#d8e6ec}.footer-grid{display:flex;justify-content:space-between;gap:60px}.footer-grid img{display:block;width:240px;height:auto}.footer-grid p{max-width:370px;font-size:12px}.footer-grid>div:last-child{display:grid;align-content:start;gap:6px;min-width:230px}.footer-grid strong{color:#fff;font:700 13px Manrope}.footer-grid a{color:#d7e4ff;font-size:12px}
@media(max-width:980px){.nav nav{gap:16px}.hero{gap:35px}.map-art{height:400px}.filter-grid.main-grid{grid-template-columns:repeat(2,1fr)}.candidate-grid{grid-template-columns:repeat(2,1fr)}.method-grid{gap:45px}}
@media(max-width:760px){.wrap{padding-left:19px;padding-right:19px}.site-header{position:static}.nav{padding:13px 0;min-height:auto;flex-wrap:wrap}.brand img{width:218px;height:52px}.nav nav{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:13px 19px;padding-top:8px}.nav-cta{display:none}.hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:38px}.hero h1{font-size:44px;letter-spacing:-2px}.hero-copy>p{font-size:16px}.hero-visual{padding:0}.map-art{height:340px;border-radius:48px 15px 15px}.source-strip{flex-wrap:wrap;justify-content:flex-start}.tool-section{padding-top:45px}.section-heading,.results-heading{display:block}.section-heading>p{margin-top:12px}.search-panel{padding:20px}.location-grid,.main-grid,.advanced-grid{grid-template-columns:1fr}.form-footer{align-items:stretch;flex-direction:column}.form-footer button{width:100%}.results-heading .legend-probability{margin-top:15px}.candidate-grid,.limit-cards,.method-grid{grid-template-columns:1fr}.method-grid{gap:35px}.method-section{padding:50px 0}.footer-grid{display:block}.footer-grid>div+div{margin-top:28px}#map{height:500px}}
@media(max-width:470px){.date-parts{grid-template-columns:1fr}.candidate-grid{grid-template-columns:1fr}.hero h1{font-size:38px}.match-card{left:14px;right:14px}.candidate.c3{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.spinner{animation-duration:1.8s}}
.radius-control{margin-top:17px;padding:16px 18px 12px;border:1px solid #dbe5e8;border-radius:13px;background:linear-gradient(135deg,#f8faf9,#f5f8ff);transition:.2s opacity,.2s border-color}.radius-control.is-disabled{opacity:.55}.radius-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.radius-heading strong,.radius-heading small{display:block}.radius-heading strong{color:var(--ink);font-size:12px}.radius-heading small{margin-top:2px;color:var(--muted);font-size:10px;font-weight:400}.radius-heading output{flex:0 0 auto;min-width:64px;padding:5px 9px;border-radius:8px;background:#e8efff;color:var(--blue);font:800 12px Manrope;text-align:center}.radius-control input[type=range]{width:100%;min-height:22px;margin:10px 0 0;padding:0;border:0;border-radius:0;background:transparent;accent-color:var(--blue);cursor:pointer}.radius-control input[type=range]:disabled{cursor:not-allowed}.radius-scale{display:flex;justify-content:space-between;margin-top:-1px;color:#829198;font-size:9px}



/* Form reset action */
/* Neutral presentation when too few criteria have been supplied. */
.confidence.insufficient{font-size:10px;line-height:1.45;text-transform:none;letter-spacing:0;padding:8px 11px}
.popup-card .popup-score.insufficient{font-size:14px;line-height:1.45;color:#667a85}
.score-marker.insufficient{font-size:18px}
.legend-probability{flex-wrap:wrap}
.comparison-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.candidate-reference{color:#667a85;font:750 13px Manrope}
.explorer-mode{margin:0 0 24px;padding:14px 16px;border-radius:12px;background:#edf3ff;color:#34517c;font-size:13px}
.commune-count{margin:4px 0 10px;font:750 19px Manrope;color:var(--ink)}
.commune-distribution{margin:15px 0;font-size:12px}
.commune-grade-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.commune-grade{padding:4px 8px;border:1px solid #ccd9de;border-left-width:4px;border-radius:6px;background:#f8faf9}
.commune-card .candidate-actions{margin-top:auto}
.maps-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:0}
.candidate-actions{flex-wrap:wrap}
.maps-actions .maps-link{white-space:normal}
.maps-actions .maps-pin-link,.popup-maps-actions .maps-pin-link{font-size:10px;font-weight:500;color:#647b87}
.popup-maps-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.popup-maps-actions .popup-maps-link{margin-top:0}
.hero-visual .candidate{width:54px;height:54px;background:#768b98}
.match-count{color:#536d78}

.form-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:12px;flex-wrap:wrap;flex-shrink:0}
.form-actions button{min-height:48px;white-space:nowrap}
.form-actions .button-reset{background:#fff;color:var(--ink,#173846);border:1px solid var(--line,#dce5eb);box-shadow:none}
.form-actions .button-reset:hover{background:#f1f5f8;border-color:#afc0cc;box-shadow:none}
.form-actions .button-reset span{font-size:21px;font-weight:400;line-height:1}
.form-actions .button-reset:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media(max-width:980px){.form-footer{flex-wrap:wrap}.form-actions{flex-shrink:1}}
@media(max-width:760px){.form-actions{flex-direction:column;width:100%}.form-actions button{width:100%}}

/* Candidate correspondence percentages. */
.probability{flex-wrap:wrap;margin-bottom:12px}.probability.medium strong,.popup-card .popup-score.medium{color:#946b16}.probability.low strong,.popup-card .popup-score.low{color:#667a85}.score-marker{font-size:10px;white-space:nowrap}.hero-visual .candidate.c1{background:var(--green)}.hero-visual .candidate.c2{background:#dfa83d}
