:root{--paper:#faf4e9;--land:#f4ead7;--water:#e7ece9;--ink:#252d2c;--muted:#606660;--line:#d8d3c7;--accent:#a43b27;--white:#fffdf7;--focus:#125f63;--rail:360px;--serif:'Source Serif 4',Georgia,serif;--sans:'Source Sans 3',Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;height:100%;color:var(--ink);background:var(--paper);font-family:var(--sans)}button,input,select{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-underline-offset:3px}button{border:0;background:none}button:hover,a:hover{color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:4px}::selection{background:#ecd0a9;color:var(--ink)}input{caret-color:var(--accent)}[hidden]{display:none!important}svg:not(.leaflet-zoom-animated){width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}button{min-height:36px}*{scrollbar-width:thin;scrollbar-color:#aaa99b transparent}
.atlas{height:100dvh;min-height:520px;display:grid;grid-template-columns:var(--rail) minmax(0,1fr);overflow:hidden}.index{z-index:700;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.masthead{padding:28px 28px 22px}.wordmark{font:13px var(--sans);font-weight:700;text-decoration:none;letter-spacing:.01em;display:inline-flex;align-items:center;gap:8px}.brand-dot{height:7px;width:7px;border-radius:50%;background:var(--accent)}h1{font:normal 48px/.98 var(--serif);letter-spacing:-.035em;margin:29px 0 16px;text-wrap:balance}.masthead p{font-size:14px;line-height:1.5;color:var(--muted)}.filters{padding:0 24px}.search-label{font-size:12px;font-weight:700;display:block;margin-bottom:8px}.search-box{display:flex;align-items:center;gap:9px;border:1px solid #93988b;background:var(--white);padding:0 12px}.search-box:focus-within{outline:2px solid var(--focus);outline-offset:2px}.search-box svg{width:17px;flex-shrink:0}.search-box input{border:0;outline:none!important;background:transparent;width:100%;height:43px;min-width:0;font-size:14px}.search-box input::placeholder{color:#70766e}.filter-row{display:flex;gap:8px;align-items:center;font-size:12px;padding:9px 0 11px}.filter-row label{color:var(--muted)}select{border:0;background:transparent;font-weight:600;min-height:34px;max-width:125px}.filter-row #clear{margin-left:auto;color:var(--accent);text-decoration:underline}.index-tabs{display:flex;border-bottom:1px solid var(--line);gap:18px;font-size:12px}.index-tabs button{padding:11px 0;min-height:42px;color:var(--muted);position:relative}.index-tabs button.active{color:var(--ink);font-weight:700}.index-tabs button.active:after{content:'';height:2px;background:var(--accent);position:absolute;bottom:-1px;left:0;right:0}.index-tabs span{margin-left:3px;font-variant-numeric:tabular-nums}.results-top{display:flex;align-items:center;justify-content:space-between;padding:10px 24px 7px;font-size:11px;color:var(--muted);gap:8px}.results-top button{font-size:11px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;min-height:30px;padding:0}.results{overflow:auto;flex:1;padding:0 24px 10px;min-height:0}.result{display:block;text-align:left;width:100%;padding:15px 0;border-bottom:1px solid var(--line);transition:color .15s}.result.selected{color:var(--accent)}.result-place{font:21px/1.2 var(--serif);display:block;margin-bottom:6px;overflow-wrap:anywhere}.result-city{display:block;font-size:11px;color:var(--muted);margin:0 0 8px}.result-guests{display:block;font-size:12px;line-height:1.45}.result-guests em{font-style:normal;color:var(--muted)}.result .result-arrow{float:right;font-size:17px;margin-left:8px}.empty{padding:26px 0;line-height:1.6;font-size:14px}.empty strong{display:block;font:24px var(--serif);margin-bottom:9px}.empty button{display:block;text-decoration:underline;margin-top:12px;padding:0;color:var(--accent)}.index-footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:11px 24px;font-size:10px;gap:8px}.index-footer button{font-size:10px;padding:0;min-height:28px}.index-footer a{text-decoration:none}
.map-stage{position:relative;min-width:0;overflow:hidden;background:var(--water)}#map{height:100%;width:100%;background:var(--water);font-family:var(--sans)}.leaflet-container{background:var(--water)}.leaflet-tile-pane{filter:saturate(.52)}.map-heading{position:absolute;z-index:600;left:24px;right:24px;top:22px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;gap:15px}.map-heading>span{font:italic 21px var(--serif);color:#43514a;text-shadow:0 1px 4px var(--water)}#world{pointer-events:auto;background:var(--white);padding:8px 12px;display:flex;align-items:center;gap:7px;font-size:11px;border:1px solid #c8cebf;white-space:nowrap;min-height:38px}.map-key{position:absolute;z-index:600;left:24px;bottom:32px;display:flex;align-items:center;gap:6px;font-size:10px;background:var(--white);padding:9px 12px;color:var(--muted);border:1px solid #d2d7cb;pointer-events:none}.key-pin{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:2px}.key-cluster{margin-left:13px;width:19px;height:19px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:white;font-size:10px}.cluster-marker{background:transparent;border:0}.cluster-dot{height:100%;width:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--white);background:var(--accent);border:2px solid #fffaf0;box-shadow:0 2px 6px #5e4e3426}.cluster-dot:hover{background:#703523}.leaflet-control-zoom{box-shadow:none!important;border:1px solid #c8cebf!important;border-radius:0!important;margin-right:24px!important;margin-top:78px!important}.leaflet-control-zoom a{background:var(--white)!important;color:var(--ink)!important;font-weight:400!important;width:32px!important;height:32px!important;border-radius:0!important}.leaflet-control-attribution{font-size:9px!important;background:#fffdf7de!important;color:#586357!important;max-width:100%}.leaflet-popup-content-wrapper{border-radius:3px;box-shadow:0 5px 22px #363b3428;background:var(--white);color:var(--ink)}.leaflet-popup-tip{background:var(--white)}.leaflet-popup-content{margin:18px 20px;width:260px!important;line-height:1.5}.preview h3{font:26px/1.05 var(--serif);margin-bottom:5px}.preview .place{font-size:11px;color:var(--muted);margin-bottom:15px}.preview .guest{font-size:12px;font-weight:700;margin-bottom:5px}.preview .order{font-size:13px;margin:0 0 12px}.preview .preview-more{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px}.preview a,.preview button{color:var(--accent);padding:0;text-decoration:underline;font-size:11px}.preview .shared{font-size:12px;margin-bottom:12px;color:var(--muted)}
.detail{position:absolute;top:78px;right:24px;bottom:60px;width:min(385px,calc(100% - 48px));z-index:650;background:var(--white);box-shadow:0 8px 32px #333d3424;overflow:auto;padding:27px 27px 0}.close{position:absolute;right:12px;top:10px;font-size:25px;font-weight:300;line-height:1;padding:0;width:34px;height:34px;z-index:1}.detail h2{font:35px/1.07 var(--serif);letter-spacing:-.025em;padding-right:16px;margin:8px 0 9px;text-wrap:balance;overflow-wrap:anywhere}.detail-address{font-size:12px;line-height:1.6;color:var(--muted);margin-bottom:16px}.location-link{display:inline-flex;gap:5px;align-items:center;font-size:11px;margin-bottom:22px;color:var(--accent)}.visit{padding:23px 0;border-top:1px solid var(--line)}.visit time{font-size:10px;color:var(--muted);display:block;margin-bottom:11px;font-variant-numeric:tabular-nums}.visit h3{font:25px/1.13 var(--serif);margin-bottom:12px;text-wrap:balance}.visit p,.visit ul{font-size:14px;line-height:1.55;margin:0 0 14px;padding:0}.visit ul{list-style:none}.visit li{padding:3px 0}.visit li+li{border-top:1px solid #ece8dd}.visit .shared{color:var(--muted);font-size:12px}.visit .order-note{font-size:12px;color:var(--muted)}.visit .article-link{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--accent);margin-top:5px;padding:5px 0}.visit .article-link svg{width:14px;height:14px}.location-note{font-size:10px;line-height:1.6;color:var(--muted);border-top:1px solid var(--line);padding:18px 0 25px}.about{position:absolute;top:78px;left:24px;max-height:calc(100% - 132px);overflow:auto;z-index:680;width:min(450px,calc(100% - 48px));padding:32px;background:var(--white);box-shadow:0 8px 32px #333d3424}.about h2{font:34px/1.1 var(--serif);margin-bottom:22px;max-width:300px}.about p{font-size:14px;line-height:1.6;margin:14px 0}.about a{font-size:12px;color:var(--accent)}.map-error{position:absolute;top:75px;left:25px;right:25px;z-index:690;background:var(--paper);padding:18px;font-size:13px;border:1px solid var(--line)}
@media(min-width:1500px){:root{--rail:390px}.masthead{padding:35px 32px 28px}h1{font-size:57px}.filters,.results{padding-left:30px;padding-right:30px}.results-top{padding-left:30px;padding-right:30px}.result{padding-top:19px;padding-bottom:19px}.result-place{font-size:23px}.detail{width:410px}}
@media(max-width:850px){:root{--rail:310px}.masthead{padding:23px 22px 18px}h1{font-size:43px;margin-top:24px}.filters,.results{padding-left:20px;padding-right:20px}.map-heading>span{display:none}.map-heading{justify-content:flex-end}.detail{left:16px;right:16px;width:auto;top:75px;bottom:40px;padding:24px 22px 0}.map-key{left:15px;bottom:35px;font-size:9px;padding:7px}.index-footer{padding-left:20px;padding-right:20px}}
@media(max-width:850px){.atlas{display:flex;flex-direction:column;min-height:560px;overflow:auto}.map-stage{order:0;height:48dvh;min-height:280px;flex-shrink:0}.index{order:1;border-right:0;border-top:1px solid var(--line);flex:1;min-height:365px;overflow:visible}.masthead{padding:18px 20px 10px;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.wordmark{font-size:11px;width:100%;margin-bottom:10px}h1{font-size:34px;line-height:1.05;margin:0}h1 br{display:none}.masthead p{font-size:11px;line-height:1.35;max-width:110px}.filters{padding:6px 20px 0}.search-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.search-box input{height:41px;font-size:16px}.filter-row{padding:2px 0 5px}.results-top{padding:6px 20px 0}.results{overflow:visible;padding-bottom:0;min-height:130px}.result{padding:13px 0}.result-place{font-size:23px}.result-city{display:inline;margin-right:12px}.result-guests{display:inline;font-size:12px}.index-footer{margin-top:15px;padding-top:12px;padding-bottom:12px}.map-heading{top:13px;left:15px;right:15px}.map-heading>span{display:block;font-size:18px}.map-heading{justify-content:space-between}#world{padding:5px 8px;font-size:10px}.leaflet-control-zoom{margin-top:66px!important;margin-right:15px!important}.map-key{bottom:22px;left:12px}.map-key .key-cluster{margin-left:7px}.detail{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-height:70dvh;padding:23px 24px 0;z-index:1000;border-top:1px solid var(--line);box-shadow:0 -5px 26px #333d3424}.detail h2{font-size:32px}.about{position:fixed;left:12px;right:12px;top:16px;width:auto;max-height:calc(100dvh - 32px);z-index:1010;padding:29px}.leaflet-popup-content{width:230px!important;margin:15px}.preview h3{font-size:23px}.map-error{top:65px;left:15px;right:15px}.leaflet-control-attribution{font-size:8px!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Readable labels and attribution at every viewport. */
.index-footer,.index-footer button,.results-top,.results-top button,.result-city,.map-key,#world,.preview .place,.preview .guest,.preview .preview-more,.preview a,.preview button,.location-link,.visit time,.location-note{font-size:12px}.leaflet-control-attribution{font-size:11px!important;font-family:var(--sans)!important}.map-key{bottom:42px}.map-heading>span{font-size:18px}.key-cluster{font-size:11px}.map-stage{font-family:var(--sans)}
@media(max-width:850px){.masthead p{font-size:12px;max-width:none;margin-top:8px}.masthead{display:block}.wordmark{display:inline-flex}.map-key{bottom:38px}.map-heading>span{max-width:195px;font-size:16px}}

.unplaced-summary{padding:0 24px 9px;margin:0;color:var(--muted);font-size:12px;line-height:1.5}.result-status{display:block;margin-top:8px;color:var(--accent);font-size:12px;line-height:1.4}@media(max-width:850px){.unplaced-summary{padding-left:20px;padding-right:20px}}

/* One menu with original-currency prices beside the food. */
.visit .meal-items{list-style:none;padding:0;margin:0}.visit .meal-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:10px 0;border-bottom:1px solid #ece8dd;font-size:14px;line-height:1.45}.meal-label{overflow-wrap:anywhere}.meal-price{text-align:right;font-variant-numeric:tabular-nums;max-width:150px}.meal-price small{display:block;font-size:11px;line-height:1.35;color:var(--muted);margin-top:3px}.meal-unpriced{color:var(--muted)}.visit .table-heading{font-family:var(--sans);font-size:15px;line-height:1.4;margin:24px 0 4px;font-weight:600}.visit .meal-group{font-size:11px;font-weight:600;color:var(--muted);padding:12px 0 3px;border:0}.meal-charge,.meal-discount,.meal-donation{color:var(--muted)}.meal-total{margin:20px 0 12px;padding-top:16px;border-top:1px solid var(--line)}.bill-total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:13px}.bill-total>span{color:var(--muted)}.bill-total strong{font-size:20px;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}.visit .bill-note{font-size:12px;line-height:1.5;color:var(--muted);margin:9px 0}.price-notes{margin-top:10px}.price-notes summary{font-size:12px;color:var(--muted);cursor:pointer}.price-notes summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.bill-components{font-size:12px;margin:12px 0}.bill-components>div{display:flex;justify-content:space-between;gap:14px;padding:5px 0}.bill-components dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.bill-components dt{color:var(--muted)}.preview .preview-bill{font-size:12px;border-top:1px solid var(--line);padding-top:9px;margin:12px 0;display:flex;justify-content:space-between;gap:12px}.preview-bill span{color:var(--muted)}.preview-bill strong{font-variant-numeric:tabular-nums;text-align:right}.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}
/* Keep Leaflet controls beneath the detail and its close button. */
#map{z-index:0}
