.map-explorer {display:grid;grid-template-columns:350px minmax(0,1fr);height:calc(100dvh - 95px);min-height:660px;max-height:1050px;background:#fff;border-bottom:1px solid var(--line)}
.map-results {display:flex;flex-direction:column;min-height:0;background:#fff;z-index:4;border-right:1px solid var(--line)}
.map-results-head {padding:27px 23px 18px;border-bottom:1px solid var(--line)}
.map-results-head h1 {font:800 24px/1.2 Manrope,sans-serif;letter-spacing:-.8px;margin:9px 0 12px}
.map-result-summary {display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}
.map-sort-label {display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0;font-size:12px}
.map-sort-label select {max-width:185px;min-width:0;width:65%;font-size:12px}
.map-active-head {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.map-active-head .eyebrow {font-size:9px;letter-spacing:1.6px}
.map-active-tags,.map-summary-tags {display:flex;gap:6px;flex-wrap:wrap}
.map-active-tags span,.map-summary-tags span {background:#edf2de;color:#46581c;border-radius:20px;padding:6px 9px;font-size:10px;font-weight:600;overflow-wrap:anywhere}
.map-results-scroll {overflow:auto;padding:16px;flex:1;scrollbar-width:thin;overscroll-behavior:contain}
.map-result-card {padding:13px;border:1px solid var(--line);border-radius:18px;margin-bottom:12px;background:#fff;transition:border-color .2s,box-shadow .2s}
.map-result-card.selected {border-color:#718d22;box-shadow:0 0 0 2px #8da93025}
.map-result-top {display:grid;grid-template-columns:82px 1fr;gap:12px}
.map-result-image {position:relative;height:88px;border-radius:13px;overflow:hidden;background:#edf2de}
.map-result-image img {width:100%;height:100%;object-fit:cover}
.map-result-image>span {position:absolute;bottom:5px;left:5px;right:5px;border-radius:9px;background:#fffffff2;font-size:10px;text-align:center;padding:4px;color:#39431f}
.map-result-card .category {font-size:8px;letter-spacing:1.2px}
.map-result-card h2 {font:700 15px/1.4 Manrope,sans-serif;letter-spacing:-.2px;margin:5px 0}
.map-result-card h2 button {padding:0;text-align:left;min-height:32px}
.map-result-badge {display:inline-block;font-size:9px;background:#f0f3e6;color:#53632d;padding:5px 7px;border-radius:12px}
.map-result-price {font-size:12px;font-weight:700;margin:7px 0 0}
.map-result-address {font-size:11px;color:var(--muted);line-height:1.5;margin:14px 0 12px}
.map-open-place {background:#edf2de;color:#46581c;border-radius:25px;padding:11px 15px;width:100%;font-size:12px;font-weight:700;display:flex;justify-content:center;gap:10px;min-height:44px}
.map-open-place:hover {background:#dce8b4}
.map-stage {position:relative;min-width:0;isolation:isolate;overflow:hidden;background:#e4eadb}
.explorer-map {position:absolute;inset:0;z-index:1;width:100%;height:100%;background:#e4eadb}
.map-search-panel {position:absolute;top:22px;left:25px;right:65px;max-width:540px;padding:22px;border-radius:22px;background:#fffffff5;box-shadow:0 7px 32px #35421c20;z-index:500;max-height:calc(100% - 190px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}
.map-search-panel form>label {display:block;font-size:12px;font-weight:700;margin-bottom:10px}
.map-search-row {display:flex;gap:10px}
.map-search-row input {min-width:0;flex:1;border:1px solid #dbe4cd;border-radius:24px;padding:12px 15px;font-size:13px;background:#fff;color:var(--green)}
.map-search-row .btn {border-radius:25px;min-height:44px;padding:11px 20px}
.map-search-tools {display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:15px}
.map-filter-toggle {border:1px solid #dbe4cd;background:#fff;padding:9px 13px;border-radius:22px;font-size:12px;font-weight:600;min-height:40px;display:flex;gap:12px;align-items:center}
.map-filter-fields {display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.map-filter-fields[hidden] {display:none}
.map-filter-fields label {font-size:11px;font-weight:600}
.map-filter-fields input,.map-filter-fields select {display:block;width:100%;min-width:0;min-height:42px;border:1px solid #dbe4cd;border-radius:12px;padding:10px 12px;margin-top:7px;background:white;color:var(--green);font-size:12px}
.map-filter-fields .error {grid-column:1/-1;margin:0;font-size:11px}
.map-origin-row {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px;margin-top:14px;border-top:1px solid #edf0e7;padding-top:10px}
.map-origin-row>span {font-size:10px;color:var(--muted);max-width:260px;line-height:1.5}
.map-location-button {font-size:11px;font-weight:600;padding:8px 0;color:#526717;min-height:34px}
.map-location-status {font-size:11px;line-height:1.5;margin:8px 0 0;color:var(--muted)}
.map-search-area {position:absolute;top:265px;left:50%;transform:translateX(-50%);background:#fff;color:#46581c;z-index:501;border-radius:25px;border:1px solid #dbe4cd;box-shadow:0 3px 18px #0002;padding:12px 18px;white-space:nowrap;font-size:12px;font-weight:700}
.map-search-area[hidden],.map-tile-warning[hidden],.map-location-status[hidden],#map-price-error[hidden] {display:none}
.map-stage:has(.map-filter-fields:not([hidden])) .map-search-area {top:auto;bottom:150px}
.map-category-dock {position:absolute;left:22px;right:22px;bottom:40px;z-index:500;display:flex;gap:5px;padding:9px;background:#fffffff5;border-radius:22px;box-shadow:0 7px 28px #35421c20;overflow-x:auto;scrollbar-width:thin}
.map-category-dock button {display:flex;flex:1 0 86px;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px 7px;border-radius:17px;font-size:11px;min-height:77px;color:#53632d}
.map-category-dock button>span {font-size:23px;line-height:1}
.map-category-dock button.active {background:var(--brand);color:#242b0f;font-weight:700}
.map-category-dock button:hover {background:#edf2de}
.map-category-dock button.active:hover {background:#9bb93b}
.map-demo-note {position:absolute;bottom:16px;left:25px;max-width:calc(100% - 180px);z-index:500;font-size:9px;background:#ffffffe8;padding:4px 7px;border-radius:5px;color:#4b4945}
.map-tile-warning {position:absolute;bottom:150px;left:22px;right:22px;z-index:500;background:#fff7db;padding:12px;border-radius:12px;font-size:11px;max-width:420px}
.map-empty {text-align:center;padding:38px 15px;color:var(--muted)}
.map-empty>span {display:block;font-size:37px;color:var(--brand);margin-bottom:15px}
.map-empty h2 {font-size:19px;line-height:1.4;color:var(--green)}
.map-empty p {font-size:12px;line-height:1.7}
.explorer-pin {background:var(--brand);color:#242b0f;border:3px solid white;transition:background .2s,box-shadow .2s}
.explorer-pin.selected {background:#4b4945;color:white;box-shadow:0 0 0 6px #8da93055}
.map-close-results,.map-mobile-results {display:none}
@media(max-width:1100px) {.map-explorer {grid-template-columns:310px minmax(0,1fr)}.map-results-head {padding:22px 17px 16px}.map-search-panel {left:16px;top:16px;right:55px;padding:18px}.map-category-dock {left:16px;right:16px}.map-summary-tags span {font-size:9px}.map-search-row input {font-size:12px}.map-search-row .btn {padding:10px 14px}}
@media(max-width:800px) {
 .map-explorer {display:block;position:relative;height:calc(100dvh - 135px);min-height:680px;max-height:none}
 .map-stage {height:100%}.map-search-panel {left:12px;right:52px;top:15px;padding:17px;max-height:calc(100% - 220px);border-radius:18px}
 .map-search-row input {font-size:16px;padding:10px 12px;width:100%}.map-search-row {gap:7px}.map-search-row .btn {font-size:12px;padding:10px 13px}
 .map-search-panel form>label {font-size:11px}.map-filter-fields input,.map-filter-fields select {font-size:16px;padding:9px;min-height:44px}.map-filter-fields {gap:12px}
 .map-origin-row {gap:3px}.map-origin-row>span {font-size:9px}.map-location-button {font-size:10px}.map-summary-tags {gap:4px}.map-summary-tags span {font-size:9px;padding:5px 7px}
 .map-results {position:fixed;inset:135px 0 0;z-index:700;border-radius:25px 25px 0 0;box-shadow:0 -8px 45px #0002;border-right:0;visibility:hidden;transform:translateY(100%);transition:transform .25s,visibility .25s}
 .results-open .map-results {visibility:visible;transform:translateY(0)}.map-results-head {padding:20px 22px 15px}.map-results-head h1 {font-size:22px}
 .map-close-results {display:block;font-size:30px;min-width:44px;min-height:44px;margin-top:-40px}.map-sort-label {margin:12px 0}.map-sort-label select {font-size:14px}.map-results-scroll {padding:16px 20px}
 .map-result-card {padding:15px}.map-result-top {grid-template-columns:90px 1fr}.map-result-card h2 {font-size:16px}.map-result-card .category {font-size:9px}
 .map-mobile-results {display:block;position:absolute;bottom:153px;left:50%;transform:translateX(-50%);z-index:550;border-radius:25px;box-shadow:0 5px 20px #0002;white-space:nowrap}
 .map-mobile-results:hover {transform:translateX(-50%)}.map-mobile-results:active {transform:translateX(-50%) scale(.97)}
 .map-category-dock {bottom:38px;left:12px;right:12px;padding:7px;border-radius:18px}.map-category-dock button {min-height:75px;flex-basis:82px}
 .map-demo-note {left:12px;bottom:13px;font-size:8px}.map-search-area {top:265px;font-size:11px}.map-stage:has(.map-filter-fields:not([hidden])) .map-search-area {bottom:207px}.map-tile-warning {bottom:205px}
}
.map-result-social {display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--line);margin-top:12px;font-size:11px;color:var(--muted)}
.map-result-social .map-save {min-height:40px;min-width:44px;padding:6px 8px;display:flex;align-items:center;gap:6px;border-radius:18px;background:#f6f7f1;color:#53632d}
.map-save[aria-pressed="true"] {color:#7b3746;background:#f9edf0}
.map-save span {font-size:19px}.map-rating {color:#526717}.map-rating small {color:var(--muted)}
.review-section {margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.review-section h3 {font-size:20px}.review-summary {color:#526717;font-size:13px}.review-entry {padding:17px 0;border-bottom:1px solid var(--line)}
.review-entry header {position:static;height:auto;padding:0;background:none;box-shadow:none;border:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:12px;z-index:auto}
.review-entry header::after {display:none}.review-entry p {font-size:13px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.review-entry time {font-size:10px;color:var(--muted)}
.review-form {margin-top:20px;padding:18px;background:white;border:1px solid var(--line);border-radius:12px}.review-form .field {margin:10px 0}.review-form textarea {min-height:85px}.review-form .btn {margin-top:8px}
.detail-social {display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:10px 0 18px;font-size:13px}.detail-social .map-save {padding:9px 14px;border-radius:20px;background:#edf2de;min-height:44px}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.map-agenda-button {display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px 13px;border-radius:12px;margin-top:9px;background:#edf2de;color:#46581c;font-size:12px;font-weight:700;min-height:44px;text-align:left}
.map-agenda-button span {font-size:10px;font-weight:500}.map-agenda-button:hover {background:#dce8b4}
.map-search-area {top:320px}
.agenda-events {display:grid;gap:14px;margin-top:20px}.agenda-card {padding:22px;border:1px solid var(--line);border-radius:16px;background:white}.agenda-card h3 {margin:9px 0 12px}.agenda-date {font-size:14px;font-weight:700;color:#526717}.agenda-description {font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.agenda-card.cancelled {background:#f7f4ef}.agenda-card.cancelled .category {color:#914637}.agenda-empty {padding:35px 10px;text-align:center}.agenda-empty>span {font-size:40px;color:var(--brand)}
@media(max-width:800px){.map-search-panel {max-height:calc(100% - 230px)}.map-search-area {top:315px}.map-agenda-button {font-size:11px;padding:10px}.map-agenda-button span {font-size:9px}.agenda-card {padding:17px}}

/* Search and agenda belong to the results sidebar, keeping the map clear. */
.map-results {overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.map-results-head {flex-shrink:0}
.map-results-scroll {overflow:visible;flex:none}
.map-results .map-search-panel {position:static;max-width:none;max-height:none;overflow:visible;padding:20px 0 0;margin:0;border-radius:0;box-shadow:none;background:transparent}
.map-results .map-search-row {gap:6px}
.map-results .map-search-row input {font-size:12px;padding:11px 12px}
.map-results .map-search-row .btn {font-size:12px;padding:10px 13px}
.map-results .map-filter-summary {display:none}
.map-results .map-summary-tags {display:none}
.map-results .map-filter-fields {gap:10px}
.map-results .map-origin-row {display:block}
.map-results .map-origin-row>span {display:block}
.map-results .map-agenda-button {display:block;text-align:left;width:100%;line-height:1.5}
.map-results .map-agenda-button span {display:block;margin-top:3px}
.map-search-area {top:22px}
@media(max-width:800px) {
 .map-results .map-search-row input {font-size:16px}
 .map-search-area {top:16px}
 .map-mobile-results {bottom:153px}
}

/* Compact discovery controls. */
.map-results-head {padding:24px 22px 18px}
.map-results .map-search-panel {padding:0}
.map-compact-top {display:flex;align-items:center;gap:10px;margin-bottom:16px}
.map-canton-picker {display:flex;align-items:center;gap:8px;flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:0 10px;color:#718d22}
.map-canton-picker select {width:100%;min-width:0;border:0;background:transparent;padding:13px 0;font-size:14px;font-weight:700;color:var(--green)}
.map-compact-top .map-filter-toggle {border-radius:10px;padding:10px;gap:6px;white-space:nowrap}
.map-results .map-search-row {position:relative;margin-bottom:16px}
.map-results .map-search-row input {padding:13px 12px 13px 42px;font-size:14px;border-radius:12px;min-height:48px}
.map-search-icon {position:absolute;left:4px;top:2px;bottom:2px;width:36px;font-size:25px;color:var(--muted);z-index:1}
.map-results .map-agenda-button {display:flex;margin:0;font-size:13px;font-weight:500;padding:13px;border-radius:11px}
.map-results .map-agenda-button span {display:inline;margin:0;font-size:17px}
.map-results .map-filter-fields {margin:0 0 16px;padding:16px 0;border-top:0;border-bottom:1px solid var(--line)}
.map-results .map-filter-fields .map-sort-label {display:block;margin:0;font-size:11px}
.map-results .map-filter-fields .map-sort-label select {width:100%;max-width:none;font-size:12px}
.map-results .map-filter-fields .map-origin-row {grid-column:1/-1}
.map-active-head {margin:14px 0 8px;justify-content:flex-end}
.map-active-head[hidden] {display:none}
.map-active-tags:empty {display:none}
.map-active-tags {margin-top:8px}
.map-result-summary {margin-top:20px;font-size:12px}
.map-results .map-close-results {margin:0 0 10px auto;font-size:25px}
@media(max-width:800px) {
 .map-results .map-search-row input {font-size:16px}
 .map-canton-picker select {font-size:16px}
 .map-results-head {padding:16px 20px}
}
.map-result-top {display:block}
.map-result-image {height:170px;margin-bottom:13px}
.map-result-image>span {left:8px;right:auto;min-width:60px;padding:5px 9px}
.map-result-card h2 {font-size:17px}
@media(max-width:800px) {.map-result-top {display:block}.map-result-image {height:175px}}

/* Compact category markers and matching filter legend. */
.geo-pin.explorer-pin{box-sizing:border-box;border:0;background:transparent;color:white;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 5px #0004;font-size:0;padding:0}
.explorer-pin .map-pin-face{box-sizing:border-box;width:30px;height:30px;border:2px solid white;border-radius:50%;display:grid;place-items:center;color:white}
.explorer-pin svg{display:block;width:22px;height:22px;flex:none}
.geo-pin.explorer-pin.selected{background:transparent;color:white;box-shadow:0 0 0 3px #25331c80,0 2px 5px #0004}
.map-category-dock button>.map-category-symbol{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:white;font-size:0;flex:none}
.map-category-symbol svg{display:block;width:22px;height:22px}

.map-service-subcategories[hidden]{display:none}
.map-service-subcategories{position:absolute;bottom:152px;left:22px;right:22px;z-index:510;background:#fffffff5;border-radius:16px;padding:10px 12px;box-shadow:0 4px 16px #0002;max-height:180px;overflow:auto}
.map-service-options{display:flex;gap:7px;overflow-x:auto;padding-bottom:6px}
.map-service-options button{display:flex;align-items:center;gap:7px;flex:none;border:1px solid #d9dfd3;border-radius:24px;padding:6px 10px;background:white;font-size:12px;color:#273820}
.map-service-options button>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:white;flex:none}
.map-service-options button svg{width:20px;height:20px}
.map-service-options button.active{outline:2px solid #087e87;outline-offset:-2px;background:#eaf5f3}
.map-service-subcategories small{display:block;font-size:10px;color:#596255}
@media(max-width:700px){.map-service-subcategories{left:12px;right:12px;bottom:145px}}

.map-result-card h2 a{display:inline-block;min-height:32px}.map-result-card h2 a:hover{text-decoration:underline}.map-directions{background:#526717;color:#fff;margin-bottom:8px}.map-directions:hover{background:#3e5011}

.map-travel-modes{display:flex;gap:6px;margin-bottom:6px}.map-travel-modes a{flex:1;text-align:center;border:1px solid var(--line);border-radius:18px;padding:9px 3px;font-size:12px;font-weight:700;min-height:40px}.map-travel-modes a:hover{background:#edf2de}.map-route-note{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-bottom:10px}

#map-route-panel{flex:none;max-height:53vh;overflow:auto;border-bottom:1px solid var(--line)}.map-route-box{padding:15px;background:#f5f7ee}.map-route-heading{display:flex;justify-content:space-between;gap:10px}.map-route-heading h2{font-size:17px;margin:4px 0 12px}.map-route-heading small{font-size:10px;letter-spacing:1px}.map-route-heading button{font-size:26px;align-self:flex-start;min-width:36px;min-height:36px}.map-travel-modes button{flex:1;border:1px solid var(--line);border-radius:18px;padding:9px 3px;font-size:12px;min-height:40px;background:#fff}.map-travel-modes button.active{background:#526717;color:white}.map-route-start{font-size:12px}.map-route-origin-actions{display:flex;gap:6px}.map-route-origin-actions button{flex:1;font-size:11px;border:1px solid #bac899;border-radius:12px;min-height:40px;padding:6px}.map-route-privacy{display:block;font-size:10px;color:var(--muted);margin-top:8px}.map-route-status{font-size:12px;color:#46581c}.map-route-summary{display:flex;align-items:baseline;gap:12px;margin:12px 0}.map-route-summary strong{font-size:26px}.map-route-summary span{font-size:13px}.map-route-steps{font-size:12px;margin-top:12px}.map-route-steps summary{cursor:pointer;font-weight:700}.map-route-steps li{margin:10px 0}.map-route-steps li small{display:block;color:var(--muted)}.map-route-credit{font-size:10px;margin-top:12px}.map-route-credit a{text-decoration:underline}

#map-route-pick-hint{position:absolute;z-index:1000;top:85px;left:50%;transform:translateX(-50%);width:max-content;max-width:85%;padding:12px 18px;border-radius:12px;background:#fff;color:#263416;box-shadow:0 3px 18px #0003;font-weight:700;text-align:center;pointer-events:none}#map-route-pick-hint[hidden]{display:none}

.map-current-location{position:absolute;top:88px;right:10px;z-index:501;width:44px;height:44px;display:grid;place-items:center;background:#fff;color:#334437;border:1px solid #ddd;border-radius:10px;box-shadow:0 2px 8px #0003;cursor:pointer}
.map-current-location:disabled{opacity:.6;cursor:wait}
.map-live-location-status{position:absolute;top:86px;right:64px;z-index:501;max-width:min(280px,calc(100% - 85px));margin:0;padding:10px 12px;background:#fff;color:#334437;border-radius:10px;box-shadow:0 2px 8px #0002;font-size:12px;line-height:1.45}
.map-live-location-status[hidden]{display:none}
