/* Münster: sandstone, gables, Leezen and a little colour outside the lines. */
body{font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;background:#f6f0e4;background-image:radial-gradient(#c7bca844 .65px,transparent .65px);background-size:9px 9px}
.site-header{height:76px;background:#fffaf2;border-top:5px solid var(--red);border-bottom:0;padding:0 30px}.brand{font-size:27px;letter-spacing:-1.3px;color:var(--ink)}.brand-mark{background:var(--red);color:#fffaf2;border:0;transform:rotate(-5deg);border-radius:14px 10px 16px 10px;font-weight:900}.brand-mark span{color:var(--yellow);background:transparent;top:-9px;right:0}.brand-sub{color:var(--red);font-size:8px;letter-spacing:2px}.site-header nav{gap:26px;font-size:12px}.site-header nav .nav-active{color:var(--red);border-color:var(--red)}.city-label{font-size:11px;transform:rotate(-2deg);border-bottom:2px solid var(--yellow);padding:5px}.city-label .status-dot{background:var(--red)}
.city-hero{height:218px;position:relative;isolation:isolate;overflow:hidden;color:#fffaf2;background:#34544d url('./assets/muenster-prinzipalmarkt.jpg') center 56%/cover}.city-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#193d3be8 0%,#193d3bc4 27%,#193d3b28 65%,#193d3b05);z-index:-1}.hero-copy{padding:24px 38px}.hero-copy .eyebrow{color:#ffe89c;letter-spacing:2px;font-size:9px;margin-bottom:10px}.hero-copy h1{font-size:52px;line-height:.99;letter-spacing:-2px;font-weight:900;margin:0 0 13px;color:#fffaf2}.hero-copy mark{background:var(--yellow);color:#263e3a;padding:0 13px 2px 7px;display:inline-block;transform:rotate(-2deg);border-radius:5px 3px 9px 3px}.hero-copy>p:last-child{font-size:12px;line-height:1.5;margin:0;letter-spacing:.1px}.photo-credit{position:absolute;bottom:10px;right:18px;font-size:9px;padding:5px 8px;border-radius:4px;background:#183331c9;color:white;text-decoration:none}.photo-credit:hover{text-decoration:underline}.leeze-sticker{position:absolute;right:29%;top:25px;background:#eee2fc;color:#644a7d;width:108px;height:108px;border-radius:51% 46% 48% 44%;transform:rotate(11deg);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 0 #fff7,0 3px 14px #173c3530;border:2px dashed #a48ebf}.leeze-sticker svg{width:65px;height:48px}.leeze-sticker span{font-size:8px;letter-spacing:1px;font-weight:bold;margin-top:2px}.hero-location{position:absolute;right:30px;top:33px;transform:rotate(4deg);background:var(--red);color:#fffaf2;padding:13px 20px 14px;border-radius:3px 14px 3px 13px;font-size:14px;font-weight:700;line-height:1.4;box-shadow:4px 4px 0 #f9ce51}.hero-location>span{position:absolute;left:-30px;bottom:-18px;color:#fff3c0;font-size:43px;transform:rotate(42deg)}
.app-shell{height:calc(100dvh - 294px);grid-template-columns:385px 1fr;padding:14px;gap:14px;min-height:330px}.sidebar{background:#fffdf6;border:1px solid #dcd9c9;border-radius:17px 17px 12px 12px;box-shadow:0 3px 0 #d4c9b830}.discovery{padding:21px 21px 18px;border-bottom:1px dashed #d4cfc1;background:linear-gradient(#fffdf6,#fffaf2)}.discovery-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.discovery-title h2{font-size:22px;letter-spacing:-.9px;margin:0;font-weight:800}.discovery-title>span{font-size:30px;color:var(--red);transform:rotate(12deg);line-height:1}.discovery .intro{font-size:11px;margin-bottom:16px}.search-box{border:1.5px solid #afbbb0;border-radius:11px 11px 11px 3px;height:46px;box-shadow:3px 3px 0 #e9dfc9}.search-box input{font-size:12px}.search-box svg{color:var(--red)}.search-box:focus-within{border-color:var(--green);box-shadow:3px 3px 0 #cce3ce}.location-row button{font-weight:600;color:var(--green);font-size:10px}.section-label{margin-top:18px}.section-label>span{font-size:8px;letter-spacing:1px}.category-grid{gap:8px}.category-tile{background:var(--tint);border:1px solid transparent;border-bottom:3px solid #203e3a1c;min-height:68px;font-size:10px;border-radius:12px 12px 5px 12px;gap:4px;color:var(--tone);font-weight:700;transition:transform .16s,box-shadow .16s}.category-tile:nth-child(2n){border-radius:12px 5px 12px 12px}.category-tile:nth-child(3n){transform:rotate(1.3deg)}.category-tile .icon-wrap{color:var(--tone)}.category-tile svg{width:23px;height:23px;stroke-width:1.7}.category-tile:hover{background:var(--tint);transform:translateY(-3px) rotate(-1deg);border-color:var(--tone);box-shadow:0 4px 0 #203e3a14}.category-tile[aria-pressed=true]{background:var(--tone);color:white;border-color:var(--tone);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--tone);transform:rotate(-1deg)}.category-tile[aria-pressed=true] .icon-wrap{color:white}.category-chip{background:var(--tint);color:var(--tone);border:1px solid transparent;min-height:30px}.category-chip:hover{border-color:var(--tone)}.category-chip[aria-pressed=true]{background:var(--tone);border-color:var(--tone)}.results-section{padding:20px 16px}.result-top h2{font-size:19px;font-weight:800}.result-top h2 span{background:#f8e8b5;color:#634c20}.filter-row{border-bottom-style:dashed}.result-card{border-radius:12px 12px 12px 4px;border-left:3px solid var(--tint);padding:12px 10px;background:white;box-shadow:0 2px 0 #e6dfd430}.result-card:hover{border-color:var(--tone);border-left-width:3px;box-shadow:3px 3px 0 var(--tint);transform:translateX(1px)}.result-type{font-size:8px}.result-name{font-size:12px;letter-spacing:-.15px}.result-address{font-size:10px;line-height:1.6}.icon-wrap{border-radius:11px 11px 5px 11px}.result-arrow{color:var(--red)}.load-more{background:#f7df8a;border:1px solid #d7b64b;color:#4b422a;border-radius:20px;font-weight:700}.sidebar-footer{border-top:1px dashed var(--line);background:#f4eddd;padding:12px 21px}.sidebar-footer>span{font-weight:700;color:var(--green)}
.map-panel{border-radius:17px;overflow:hidden;border:1px solid #d6d7c2;box-shadow:0 3px 0 #d4c9b830}.map-caption{background:#fff7d7;border-color:#ead6a0;border-radius:4px 12px 12px 12px;font-size:10px;font-weight:700}.map-caption .status-dot{background:var(--red)}.map-top{top:16px;left:16px;right:16px}.map-button{background:#fffdf7;border-radius:20px;font-weight:700;padding:9px 13px}.map-button span{color:var(--red)}.area-button{background:var(--red);box-shadow:0 3px 0 #943532,0 6px 18px #0002;border:1px solid #ad3536;font-weight:700;font-size:11px}.map-key{bottom:60px;left:15px;border-radius:20px;background:#fffdf5;font-size:9px}.data-notice{left:15px;right:15px;bottom:18px;background:#f5ead0eb;border-color:#e4d4ae;border-radius:6px;font-size:9px;padding:8px 11px}.data-notice>span:first-child{color:var(--red)}.leaflet-control-scale{margin-left:17px!important;margin-bottom:100px!important}.leaflet-control-zoom{margin-right:17px!important;margin-bottom:99px!important;border-radius:11px!important;border-color:#fff9e6!important;box-shadow:3px 3px 0 #bcc4ad!important}.leaflet-control-zoom a{background:#fffdf5!important;color:var(--red)!important}.map-pin .pin-face{border-radius:15px 15px 15px 3px;box-shadow:2px 3px 0 #1c383629}.map-pin.cluster .pin-face{border:2px solid #fffdf3;background:#fff4cf;color:#57523b;box-shadow:2px 3px 0 #1c383630}.map-pin.cluster .pin-face b{font-size:11px}.leaflet-popup-content-wrapper{border-radius:13px;background:#fffaf0}.leaflet-popup-tip{background:#fffaf0}dialog{border:2px solid #e4d9b9;background:#fffaf2;border-radius:22px 22px 7px 22px}.detail-icon{border-radius:15px}.dialog-close{background:#f2dfd3;border-radius:50%;width:32px;height:32px;line-height:24px;color:var(--red);font-size:23px}.detail-actions a:first-child{background:var(--red);border-color:var(--red)}.detail-actions a,.detail-actions button{border-radius:20px}.document{background:#fffaf2}.document h1{color:var(--red)}.document .note{background:#f6e7b5}.document table{display:block;overflow-x:auto}.document .back{background:#e9e1f4;padding:9px 13px;border-radius:20px;text-decoration:none}.mobile-switch{background:#fff9e5;border:2px solid #fff;box-shadow:0 4px 0 #d6c9a8,0 6px 20px #173b3520}.mobile-switch button[aria-pressed=true]{background:var(--red)}
@media(min-width:1500px){.app-shell{grid-template-columns:415px 1fr}.discovery{padding:24px}.hero-copy{padding-left:43px}.hero-copy h1{font-size:56px}}
@media(max-width:1050px){.app-shell{grid-template-columns:340px 1fr;padding:11px;gap:11px}.hero-copy{padding-left:29px}.hero-copy h1{font-size:48px}.hero-location{right:25px;font-size:12px}.leeze-sticker{right:25%;width:95px;height:95px}.city-hero{background-position:center 55%}.discovery{padding:18px}.map-key{font-size:8px}}
@media(max-width:700px){.site-header{height:65px;padding:0 17px;border-top-width:4px}.brand{font-size:24px}.brand-sub{font-size:7px}.site-header nav{gap:0}.site-header nav button{font-size:10px}.city-hero{height:205px;background-position:57% 50%}.city-hero::before{background:linear-gradient(90deg,#193d3bdf,#193d3b44)}.hero-copy{padding:22px 22px}.hero-copy .eyebrow{font-size:8px;letter-spacing:1.4px}.hero-copy h1{font-size:44px;letter-spacing:-1.9px;margin-bottom:12px}.hero-copy>p:last-child{max-width:235px;font-size:11px;line-height:1.5}.leeze-sticker{width:72px;height:72px;right:16px;top:33px;border-width:1px;transform:rotate(14deg)}.leeze-sticker svg{width:46px;height:32px;stroke-width:3}.leeze-sticker span{font-size:6px}.hero-location{display:none}.photo-credit{font-size:7px;right:10px;bottom:8px;padding:3px 5px}.app-shell{height:calc(100dvh - 270px);padding:0;display:block;min-height:290px}.sidebar{border:0;border-radius:0;box-shadow:none;background:#fffaf2;height:100%;padding-bottom:65px}.discovery{padding:20px 20px 17px;background:#fffaf2}.discovery-title h2{font-size:23px}.category-tile{min-height:69px;font-size:11px}.results-section{padding:20px}.result-name{font-size:13px}.map-panel{border-radius:0;border:0;box-shadow:none;height:100%}.mobile-map .city-hero{display:none}.mobile-map .app-shell{height:calc(100dvh - 65px)}.map-key{bottom:128px;left:12px}.data-notice{bottom:84px;left:12px;right:12px}.leaflet-control-zoom{margin-bottom:170px!important}.leaflet-control-scale{margin-bottom:168px!important}.map-top{top:12px;left:12px;right:12px}.area-button{top:65px}.sidebar-footer{padding-bottom:22px}.document main{margin-top:30px}.document h1{font-size:35px}}
@media(max-width:350px){.hero-copy h1{font-size:39px}.hero-copy>p:last-child{max-width:205px}.leeze-sticker{width:62px;height:62px;right:13px;top:45px}.brand{font-size:22px}.site-header nav button{font-size:9px}.hero-copy .eyebrow{font-size:7px}.discovery{padding:18px 15px}}
@media(prefers-reduced-motion:reduce){.category-tile,.result-card{transition:none}.category-tile:hover,.result-card:hover{transform:none}}
