@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
:root{--ink:#173a34;--ink-soft:#45655d;--sage:#dcece5;--paper:#faf8f2;--coral:#ef6b45;--line:#bed1c7;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}header{height:82px;display:flex;align-items:center;justify-content:space-between;max-width:1160px;margin:auto;padding:0 24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;text-decoration:none}.brand-logo{display:block;width:210px;height:auto}header p{font-size:14px;color:var(--ink-soft)}main{max-width:1060px;margin:auto;padding:75px 24px 60px}.hero{max-width:700px}.eyebrow{font:11px 'DM Mono';letter-spacing:1.15px;color:#5a7b70;margin:0 0 12px}h1,h2,h3{margin:0;font-family:'Playfair Display'}h1{font-size:clamp(48px,7vw,76px);line-height:1.02;letter-spacing:-1.5px}.hero>p:last-child{font-size:19px;line-height:1.55;max-width:620px;color:var(--ink-soft)}.panel{background:var(--sage);padding:32px;margin-top:55px;border-radius:6px;border:1px solid #c9ded4}.panel h2,.discover h2{font-size:29px}.selectors{display:grid;grid-template-columns:1fr 38px 1fr;align-items:end;gap:16px;margin:23px 0}label{font-size:13px;font-weight:700}.autocomplete{position:relative;margin-top:7px}input,select{width:100%;height:48px;border:1px solid #9cb7ab;border-radius:4px;background:var(--white);padding:0 13px;color:var(--ink);font:15px 'DM Sans'}.suggestions{position:absolute;z-index:5;width:100%;background:var(--white);box-shadow:0 7px 20px #173a3430;border-radius:4px;overflow:hidden}.suggestions button{display:flex;justify-content:space-between;width:100%;padding:11px 13px;border:0;background:var(--white);text-align:left;color:var(--ink);cursor:pointer}.suggestions button:hover{background:#edf5f0}.suggestions small{color:#58766c}.swap{text-align:center;font-size:24px;padding-bottom:10px;color:var(--coral)}button{border:0;border-radius:4px;background:var(--ink);color:var(--white);padding:14px 20px;font:700 14px 'DM Sans';cursor:pointer;transition:transform .15s,background .15s}button:hover:not(:disabled){background:#245047;transform:translateY(-1px)}button:disabled{opacity:.4;cursor:not-allowed}.hidden{display:none!important}#comparison{margin-top:55px}.comparison-head{display:flex;justify-content:space-between;gap:30px;align-items:end}.comparison-head>p{max-width:390px;line-height:1.5;color:var(--ink-soft)}.comparison-head h2{font-size:34px}.match-list{display:grid;gap:16px;margin-top:28px}.match{display:grid;grid-template-columns:1.1fr 145px 2fr;gap:24px;align-items:start;background:var(--white);border:1px solid var(--line);padding:24px;border-radius:5px}.match h3{font-size:25px}.match-title>p:not(.eyebrow){line-height:1.45;color:var(--ink-soft)}.match-explanation{font-size:13px;color:var(--ink-soft);border-left:2px solid var(--coral);padding-left:10px}.match-total{border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;padding:10px}.match-total strong{display:block;font:38px 'Playfair Display';color:var(--coral)}.match-total span{font-size:12px}.match-criteria{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}.match-criteria>div{font-size:12px}.match-criteria b{float:right;font:12px 'DM Mono'}.meter{height:8px;background:#e2e9e4;border-radius:10px;overflow:hidden;display:inline-block;width:calc(100% - 28px);vertical-align:middle}.meter i{display:block;height:100%;background:var(--coral);border-radius:inherit}.match-criteria .meter{width:100%;margin-top:5px}.profile-link,.back{color:var(--ink);font-size:13px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--coral)}.discover{display:flex;justify-content:space-between;gap:30px;margin-top:85px;padding-top:42px;border-top:1px solid var(--line)}.discover-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.discover select{width:175px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:30px}.cards article{background:var(--white);border:1px solid var(--line);padding:22px;min-height:210px;border-radius:5px}.cards h3{font-size:23px}.cards article>p:not(.eyebrow){line-height:1.45;color:var(--ink-soft)}.score{border-top:1px solid var(--line);padding:12px 0;font-size:13px}.score strong{float:right}footer{text-align:center;padding:25px;border-top:1px solid var(--line);font-size:12px;color:#557068}.profile-page{max-width:900px}.profile-intro{font-size:20px;line-height:1.5;max-width:680px;color:var(--ink-soft)}.profile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:38px 0}.profile-summary>div{background:var(--sage);padding:20px;border-radius:5px}.profile-summary h2,.profile-section h2{font-size:23px}.profile-summary p{line-height:1.45}.profile-section{margin-top:45px}.profile-scores{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.profile-scores>div{font-size:14px}.profile-scores b{float:right;font:12px 'DM Mono'}.profile-scores .meter{width:100%;margin-top:7px}.similar-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}.similar-list a{border:1px solid var(--line);border-radius:5px;padding:16px;text-decoration:none;color:var(--ink)}.similar-list span,.similar-list b{display:block;font-size:12px}.similar-list strong{display:block;font:20px 'Playfair Display';margin:4px 0}.similar-list b{color:#527169}@media(max-width:700px){header{padding:0 18px}header p{display:none}.brand-logo{width:175px}main{padding:45px 18px}.panel{padding:22px}.selectors,.match,.profile-summary,.profile-scores,.similar-list{grid-template-columns:1fr}.swap{display:none}.comparison-head,.discover{display:block}.comparison-head>p{margin-top:15px}.match-total{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.match-criteria{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.discover-controls{justify-content:flex-start;margin-top:20px}.discover-controls button{width:100%}}

.map-panel{margin-top:28px;background:#fff;border:1px solid var(--line);border-radius:5px;padding:22px}.map-controls label{display:block;margin-bottom:8px}.map-controls>div{display:flex;gap:8px;max-width:700px}.map-controls input{flex:1}.map-controls p,.map-attribution{font-size:12px;line-height:1.5;color:var(--ink-soft)}#neighborhood-map{height:420px;border-radius:4px;z-index:0}.map-attribution{margin-bottom:0}.map-distances{padding-left:20px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px}.map-distances li{padding:8px;border-bottom:1px solid var(--line);font-size:13px}.map-distances li span{float:right;color:var(--ink-soft)}@media(max-width:700px){.map-panel{padding:14px}.map-controls>div{display:grid}.map-controls button{width:100%}.map-distances{grid-template-columns:1fr}#neighborhood-map{height:330px}}

.route-link{display:block;width:max-content;margin-top:12px;color:#45655d;font-size:13px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--line)}.route-link:hover{color:var(--coral)}

#neighborhood-map{visibility:hidden}

.match-marker-icon{background:transparent;border:0}.match-marker{width:var(--marker-size);height:var(--marker-size);display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:#f5d6c6;color:var(--ink);font:700 11px 'DM Mono',monospace;text-shadow:0 1px 0 #faf8f2,1px 0 0 #faf8f2,-1px 0 0 #faf8f2,0 -1px 0 #faf8f2;box-shadow:0 2px 7px #173a3440;transition:transform .15s ease}.match-marker-icon:hover .match-marker{transform:scale(1.12)}.map-legend{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--ink-soft);font-size:13px}.map-legend-marker{width:38px;height:38px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:#f5d6c6;color:var(--ink);font:700 10px 'DM Mono',monospace}

/* Zurückhaltende Kartengrundlage und App-gerechte Kartenbedienelemente */
#neighborhood-map .leaflet-tile{filter:grayscale(.88) saturate(.28) brightness(1.035)}#neighborhood-map .leaflet-control-zoom a{border-color:var(--line);background:var(--paper);color:var(--ink)}#neighborhood-map .leaflet-control-zoom a:hover{background:var(--sage);color:var(--ink)}#neighborhood-map .leaflet-control-attribution{background:#faf8f2e8;color:var(--ink-soft)}#neighborhood-map .leaflet-control-attribution a{color:var(--ink)}.match-marker-icon.is-selected .match-marker{transform:scale(1.18);box-shadow:0 0 0 5px #ef6b4533,0 4px 12px #173a3455;border-color:var(--coral)}.district-popup .leaflet-popup-content-wrapper,.district-popup .leaflet-popup-tip{background:var(--paper);color:var(--ink)}.district-popup .leaflet-popup-content-wrapper{border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #173a3426}.district-popup .leaflet-popup-content{margin:12px 16px;line-height:1.55}.district-popup .leaflet-popup-close-button{color:var(--ink)!important}

/* Prozentwert wird als Grösse und als farbiger Match-Ring gezeigt */
.match-marker{box-sizing:border-box;padding:4px;border:2px solid #fff;background:#f5d6c6;box-shadow:0 3px 10px #173a3440,0 0 0 1px #173a341a;text-shadow:none}.match-marker>span{width:100%;height:100%;display:grid;place-items:center;border-radius:50%;background:var(--paper);color:var(--ink);font:700 10px 'DM Mono',monospace;letter-spacing:-.4px;box-shadow:inset 0 1px 2px #173a3414}.match-marker-icon:hover .match-marker{transform:scale(1.1)}.match-marker-icon.is-selected .match-marker{transform:scale(1.15);box-shadow:0 0 0 4px #ef6b4528,0 4px 12px #173a3455,0 0 0 2px #fff}.map-legend-marker{box-sizing:border-box;width:44px;height:44px;padding:4px;border:2px solid #fff;background:#f5d6c6;box-shadow:0 2px 6px #173a3430}.map-legend-marker::first-letter{font-size:10px}

.map-legend-marker>span{width:100%;height:100%;display:grid;place-items:center;border-radius:50%;background:var(--paper);color:var(--ink);font:700 9px 'DM Mono',monospace}

.hotel-link{color:var(--coral);border-color:#ef6b4570}.hotel-link:hover{color:#c84e2d;border-color:var(--coral)}

/* Primäre Aktion auf Match-Karten */
.primary-profile-link{display:inline-flex;align-items:center;gap:12px;width:max-content;margin:10px 0 15px;padding:12px 16px;border:0;border-radius:5px;background:var(--ink);color:var(--white);font-size:14px;box-shadow:0 3px 8px #173a3420;transition:transform .15s,background .15s,box-shadow .15s}.primary-profile-link span{font-size:18px;line-height:12px}.primary-profile-link:hover{transform:translateY(-1px);background:#245047;box-shadow:0 5px 12px #173a342b}.match-outbound{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:5px;padding:11px 12px;border:1px solid var(--line);border-radius:5px;background:#faf8f2}.match-outbound .outbound-label{flex-basis:100%;font:10px 'DM Mono';letter-spacing:.9px;color:var(--ink-soft);text-transform:uppercase}.match-outbound .route-link{margin:0;border:0;font-size:12px}.match-outbound .route-link:hover{text-decoration:underline;text-underline-offset:3px}.match-outbound .hotel-link{color:#b75035}
/* Eigener Bereich für Anreise- und Unterkunftsangebote im Quartierprofil */
.partner-section{padding:26px;background:var(--sage);border:1px solid #c9ded4;border-radius:8px}.partner-section>h2{font-size:30px}.partner-intro{margin:8px 0 20px;color:var(--ink-soft);line-height:1.5}.partner-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.partner-card{display:flex;flex-direction:column;align-items:flex-start;min-height:220px;padding:22px;background:var(--paper);border:1px solid var(--line);border-radius:6px}.partner-card h3{margin-bottom:14px;font-size:22px}.partner-card label{margin:0 0 6px}.partner-card input{margin-bottom:12px}.partner-card>p:not(.eyebrow){color:var(--ink-soft);line-height:1.5}.partner-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:auto;padding:11px 14px;border-radius:5px;text-align:center;text-decoration:none;font-size:13px;font-weight:700;transition:transform .15s,background .15s}.partner-button:hover{transform:translateY(-1px)}.partner-button-primary{background:var(--ink);color:var(--white)}.partner-button-primary:hover{background:#245047}.partner-button-secondary{border:1px solid var(--ink);color:var(--ink)}.partner-button-secondary:hover{background:var(--sage)}.partner-button.is-disabled{opacity:.6}.partner-note{margin:14px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.5}@media(max-width:700px){.partner-section{padding:20px}.partner-cards{grid-template-columns:1fr}.partner-card{min-height:190px}.match-outbound{align-items:flex-start;flex-direction:column}.match-outbound .outbound-label{flex-basis:auto}}

.match-outbound .route-link,.match-outbound .hotel-link{color:var(--ink-soft)}.match-outbound .route-link:hover,.match-outbound .hotel-link:hover{color:var(--coral)}

.language-switch{display:flex;align-items:center;gap:2px;margin-left:14px;padding:2px;border:0;border-radius:6px;background:transparent;flex-shrink:0}.language-switch a{min-width:28px;padding:5px 6px;border-radius:4px;color:var(--ink-soft);font:500 10px 'DM Mono',monospace;text-align:center;text-decoration:none;opacity:.72;transition:background .15s,color .15s,opacity .15s}.language-switch a:hover{opacity:1;background:#edf2ee}.language-switch a[aria-current=page]{background:#e7efe9;color:var(--ink);font-weight:700;opacity:1}.language-switch a:focus-visible{outline:2px solid var(--coral);outline-offset:2px}@media(max-width:700px){.language-switch{margin-left:auto;margin-right:0;flex-shrink:0}header{gap:10px}}
.map-profile-link{display:inline-block;margin-top:5px;color:var(--ink-soft);font-size:11px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line);transition:color .15s,border-color .15s}.map-profile-link:hover{color:var(--ink);border-color:var(--coral)}.map-profile-link:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.places-map-card{min-height:0}.places-map{display:block;width:100%;height:280px;margin:4px 0 14px;border:0;border-radius:8px;background:var(--sage)}.places-map-placeholder{display:flex;align-items:center;min-height:280px;width:100%;margin:4px 0 14px;padding:20px;border:1px dashed #b6cfc4;border-radius:8px;background:var(--sage);color:var(--ink-soft);font-size:14px;line-height:1.55}.places-map-card .partner-button{margin-top:auto}
.places-section .partner-cards{grid-template-columns:1fr}.places-section .partner-card{min-height:0}.places-section .places-map{display:block;width:100%;height:480px;margin:4px 0 14px;border:0;border-radius:8px;background:var(--sage)}.places-section .places-map-placeholder{display:flex;align-items:center;min-height:480px;width:100%;margin:4px 0 14px;padding:20px;border:1px dashed #b6cfc4;border-radius:8px;background:var(--sage);color:var(--ink-soft);font-size:14px;line-height:1.55}.places-section .partner-button{margin-top:auto}
.partner-area{display:flex;flex-direction:column;align-items:flex-start}.partner-area .partner-intro{margin-bottom:14px}.partner-area>label{margin:4px 0}.partner-area>input{max-width:460px}.partner-area .partner-button{margin-top:12px}.places-section .partner-intro{margin-bottom:16px}.places-section .places-map,.places-section .places-map-placeholder{width:100%;height:480px;min-height:480px}.places-section .partner-button{margin-top:12px}
.partner-section{background:var(--white);border:1px solid var(--line);border-left:4px solid #8eafa0;box-shadow:0 8px 24px rgba(23,58,52,.05)}.partner-section>.eyebrow{color:#527469}.places-section .places-map,.places-section .places-map-placeholder{background:#f1f6f3;border-radius:8px}
.partner-section{background:var(--paper)}
.partner-section{background:var(--white)}

/* Match markers use one calm orange fill; size and number communicate the score. */
.match-marker,.map-legend-marker{background:#f5d6c6}
.match-marker>span,.map-legend-marker>span{background:transparent;box-shadow:none}
