@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--cream:#f2efe7;--paper:#faf8f3;--ink:#1f2925;--muted:#6c716b;--line:#d8d3c7;--terracotta:#b86445;--olive:#53634f;--shadow:0 22px 60px rgba(54,47,37,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button{font:inherit}a{color:inherit}.topbar{height:82px;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(111,106,95,.17);background:rgba(250,248,243,.88);backdrop-filter:blur(16px);position:sticky;top:0;z-index:50}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:600;letter-spacing:-.02em}.brand-mark{width:38px;height:38px;border-radius:50% 50% 46% 54%;display:grid;place-items:center;background:var(--terracotta);color:#fff;font-family:'Playfair Display',serif;font-size:21px;transform:rotate(-5deg)}.top-meta{display:flex;align-items:center;gap:12px}.city-pill{height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.city-pill i{width:7px;height:7px;border-radius:50%;background:var(--terracotta)}.language-toggle{display:flex;background:#e5e1d7;border-radius:999px;padding:3px}.language-toggle button{border:0;background:transparent;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:600;color:#77766f;cursor:pointer}.language-toggle .active{background:var(--paper);color:var(--ink);box-shadow:0 2px 8px rgba(40,36,30,.08)}main{overflow:hidden}.intro{max-width:1240px;margin:auto;padding:clamp(64px,9vw,120px) clamp(20px,5vw,72px) clamp(52px,7vw,88px);display:grid;grid-template-columns:1fr auto;gap:50px;align-items:end;position:relative}.intro:before{content:'';position:absolute;width:360px;height:360px;border-radius:50%;background:#d8c39d30;filter:blur(3px);right:-120px;top:-100px;z-index:-1}.kicker{margin:0 0 16px;color:var(--terracotta);font-size:11px;font-weight:600;letter-spacing:.18em}.intro h1{margin:0;font:500 clamp(52px,7vw,92px)/.95 'Playfair Display',serif;letter-spacing:-.045em;white-space:pre-line}.lede{max-width:650px;margin:25px 0 0;color:var(--muted);font-size:clamp(16px,2vw,20px);line-height:1.65}.intro-stat{min-width:170px;padding:24px 26px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:var(--shadow)}.intro-stat strong{display:block;font:500 48px 'Playfair Display',serif}.intro-stat span,.intro-stat small{display:block}.intro-stat span{font-size:12px;font-weight:600}.intro-stat small{margin-top:8px;color:var(--muted);font-size:10px}.selector-section,.finder-section,.guide-section{max-width:1240px;margin:auto;padding:0 clamp(20px,5vw,72px) 90px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.section-title h2{margin:0;font:500 clamp(33px,4vw,48px) 'Playfair Display',serif;letter-spacing:-.025em}.text-button{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:5px;cursor:pointer}.category-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.category-card{min-height:158px;border:1px solid var(--line);border-radius:22px;background:var(--paper);padding:17px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden;cursor:pointer;transition:.25s}.category-card:before{content:'';position:absolute;inset:0;background:var(--category);opacity:0;transition:.25s}.category-card:hover{transform:translateY(-4px);box-shadow:0 15px 35px rgba(49,42,33,.09)}.category-card.selected{border-color:var(--category);color:#fff;transform:translateY(-4px);box-shadow:0 15px 35px color-mix(in srgb,var(--category) 25%,transparent)}.category-card.selected:before{opacity:1}.category-card>*{position:relative;z-index:1}.category-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--category);color:#fff;font:600 14px 'Playfair Display',serif}.category-copy{margin-top:auto}.category-copy strong,.category-copy small{display:block}.category-copy strong{font-size:14px;line-height:1.3}.category-copy small{margin-top:5px;color:var(--muted);font-size:11px}.selected .category-number{background:#ffffff26;border:1px solid #ffffff50}.selected .category-copy small{color:#ffffffc4}.selection-check{position:absolute;right:16px;top:17px;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:transparent;font-size:12px}.selected .selection-check{border-color:#ffffff70;color:#fff}.category-detail{min-height:50px;margin-top:15px;padding:13px 17px;border:1px solid var(--line);border-radius:15px;background:#eae6dc;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.category-detail p{margin:0}.detail-dot{width:8px;height:8px;border-radius:50%;background:var(--category,var(--terracotta));flex:none}.finder-heading{align-items:end}.filter-summary{color:var(--muted);font-size:13px;margin:10px 0 0}.map-key{color:var(--muted);font-size:11px}.finder-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr);min-height:650px;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow)}.map-shell{min-width:0;border-right:1px solid var(--line);background:#dedbd0}.map-toolbar{height:58px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;background:rgba(250,248,243,.94);border-bottom:1px solid var(--line)}.map-toolbar>div{display:flex;align-items:center;gap:10px}.map-toolbar strong{font-size:12px}.map-toolbar span{font-size:10px;color:var(--muted)}.zoom-controls button{width:31px;height:31px;border:1px solid var(--line);background:var(--paper);font-size:16px;cursor:pointer}.zoom-controls button:first-child{border-radius:9px 0 0 9px}.zoom-controls button:last-child{border-radius:0 9px 9px 0}.map-viewport{height:592px;position:relative;overflow:hidden;cursor:grab;background:#c9c5b9;touch-action:none;outline:none}.map-viewport:focus-visible{box-shadow:inset 0 0 0 3px #b8644580}.map-viewport.dragging{cursor:grabbing}.map-layer{position:absolute;left:0;top:0;width:100%;transform-origin:50% 50%;will-change:transform;user-select:none}.map-layer img{display:block;width:100%;height:auto;pointer-events:none;filter:saturate(.78) contrast(.95) brightness(1.02)}.map-layer:after{content:'';position:absolute;inset:0;pointer-events:none;background:rgba(248,242,225,.08)}.map-pin{position:absolute;transform:translate(-50%,-100%);width:38px;height:46px;border:0;background:transparent;cursor:pointer;z-index:3;filter:drop-shadow(0 5px 8px rgba(38,32,24,.34));transition:opacity .2s,filter .2s}.map-pin:before{content:'';position:absolute;left:4px;top:0;width:30px;height:30px;border:3px solid #fff;border-radius:50% 50% 50% 8px;background:var(--terracotta);transform:rotate(-45deg)}.map-pin span{position:absolute;left:7px;top:3px;width:24px;height:24px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:600;z-index:1}.map-pin:hover,.map-pin.active{filter:drop-shadow(0 7px 12px rgba(38,32,24,.5));z-index:5}.map-pin.active:before{background:var(--ink);scale:1.12}.map-pin.filtered-out{opacity:.13;pointer-events:none}.map-instruction{position:absolute;left:14px;bottom:14px;padding:8px 10px;border-radius:9px;background:rgba(31,41,37,.78);color:#fff;font-size:9px;letter-spacing:.03em;pointer-events:none}.results-panel{display:flex;flex-direction:column;min-height:0;background:#f8f5ef}.results-header{height:58px;padding:0 17px;border-bottom:1px solid var(--line);display:flex;align-items:center}.results-header span{font-size:9px;color:var(--terracotta);font-weight:600;letter-spacing:.14em}.results-header strong{display:block;margin-top:3px;font-size:12px}.location-list{padding:11px;display:flex;flex-direction:column;gap:9px;overflow:auto;max-height:592px}.location-card{width:100%;border:1px solid var(--line);border-radius:17px;background:var(--paper);padding:14px;display:grid;grid-template-columns:30px 1fr;gap:11px;text-align:left;color:var(--ink);cursor:pointer;transition:.2s}.location-card:hover,.location-card.active{border-color:#b88770;box-shadow:0 9px 25px rgba(51,44,35,.09);transform:translateY(-1px)}.location-number{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font:600 12px 'Playfair Display',serif}.location-content,.location-top{display:block}.location-top{position:relative;padding-right:42px}.location-top strong{font-size:12px}.location-top small{position:absolute;right:0;top:1px;color:var(--terracotta);font-size:9px}.address{display:block;margin-top:4px;color:var(--muted);font-size:10px}.chips{display:flex;flex-wrap:wrap;gap:4px;margin:11px 0}.category-chip{display:flex;align-items:center;gap:4px;padding:4px 6px 4px 4px;border-radius:999px;background:color-mix(in srgb,var(--category) 13%,white);color:color-mix(in srgb,var(--category) 80%,#222);font-size:8px;font-weight:600}.category-chip b{width:15px;height:15px;border-radius:50%;display:grid;place-items:center;background:var(--category);color:#fff;font-size:8px}.location-note{display:block;padding-top:9px;border-top:1px solid #e5e0d6;color:var(--muted);font-size:9px;line-height:1.45}.empty-state{margin:auto;padding:35px;text-align:center;color:var(--muted)}.empty-state span{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#e7e2d8;font-family:'Playfair Display',serif}.empty-state h3{color:var(--ink);font:500 20px 'Playfair Display',serif;margin-bottom:6px}.empty-state p{font-size:11px}.hidden{display:none!important}.guide-section{padding-top:18px}.guide-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.guide-grid article{padding:19px;border-top:3px solid var(--category);background:rgba(250,248,243,.65)}.guide-grid article>span{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--category);color:#fff;font-size:10px}.guide-grid strong{display:block;margin-top:22px;font-size:12px}.guide-grid p{color:var(--muted);font-size:10px;line-height:1.55}.source-note{display:flex;gap:9px;align-items:center;margin-top:18px;color:var(--muted);font-size:10px}.source-note>span:first-child{width:19px;height:19px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}footer{padding:35px clamp(20px,5vw,72px);border-top:1px solid var(--line);display:flex;align-items:center;gap:28px;background:var(--paper)}footer p{color:var(--muted);font-size:11px}footer .footer-links{margin-left:auto;display:flex;gap:9px;align-items:center;font-size:10px;color:var(--muted)}footer .brand-mark{width:30px;height:30px;font-size:16px}
@media(max-width:980px){.category-grid,.guide-grid{grid-template-columns:repeat(3,1fr)}.finder-layout{grid-template-columns:1fr}.map-shell{border-right:0;border-bottom:1px solid var(--line)}.location-list{max-height:none;display:grid;grid-template-columns:1fr 1fr}.results-panel{min-height:260px}}
@media(max-width:640px){.topbar{height:70px;padding:0 15px}.brand{font-size:14px}.city-pill{display:none}.intro{padding:56px 18px 45px;grid-template-columns:1fr}.intro h1{font-size:50px}.intro-stat{display:flex;align-items:center;gap:10px;padding:15px 18px}.intro-stat strong{font-size:35px}.intro-stat small{margin-left:auto}.selector-section,.finder-section,.guide-section{padding-inline:14px;padding-bottom:65px}.section-title{align-items:flex-start}.category-grid{grid-template-columns:1fr 1fr}.category-card{min-height:135px}.finder-heading{display:block}.map-key{margin-top:15px}.finder-layout{border-radius:20px}.map-viewport{height:440px}.location-list{grid-template-columns:1fr}.guide-grid{grid-template-columns:1fr}.guide-grid article{display:grid;grid-template-columns:35px 1fr;gap:8px}.guide-grid strong{margin-top:0}footer{display:block;text-align:center}footer .brand{justify-content:center}footer .footer-links{justify-content:center;margin-top:16px}}

.map-page-section{padding-top:42px}.add-more-callout{margin:0 0 34px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#f1ece2,#e8e1d5);display:flex;align-items:center;justify-content:space-between;gap:20px}.add-more-callout>div span,.add-more-callout>div small{display:block}.add-more-callout>div span{font:500 20px 'Playfair Display',serif}.add-more-callout>div small{margin-top:4px;color:var(--muted);font-size:11px}.back-button{border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;padding:11px 16px;font-size:11px;font-weight:600;cursor:pointer;transition:.2s}.back-button:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(31,41,37,.18)}.compact-filters{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 18px}.compact-filters button{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:var(--paper);padding:6px 11px 6px 6px;color:var(--ink);cursor:pointer;font-size:9px}.compact-filters button span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--category);color:#fff;font-size:9px}.compact-filters button.selected{border-color:var(--category);background:color-mix(in srgb,var(--category) 10%,white)}
.selection-action{margin-top:20px;display:flex;align-items:center;justify-content:flex-end;gap:14px}.selection-action small{color:var(--muted);font-size:10px;order:-1}.primary-action{min-width:260px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;padding:15px 19px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:12px;font-weight:600;cursor:pointer;box-shadow:0 10px 24px rgba(31,41,37,.16);transition:.2s}.primary-action:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 30px rgba(31,41,37,.22)}.primary-action:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}
@media(max-width:640px){.map-page-section{padding-top:22px}.add-more-callout{align-items:flex-start;flex-direction:column}.back-button{width:100%}.compact-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.compact-filters button{flex:none}.selection-action{align-items:stretch;flex-direction:column}.selection-action small{order:0;text-align:center}.primary-action{width:100%;min-width:0}}
