/* Lukinski App 2027 - Design: Schwarz/Elfenbein, Brand-Gelb nur als Akzent, Serif-Headlines (Lora), UI (Inter), Wortmarke (Oswald) */
@font-face{font-family:Lora;font-weight:400 700;font-display:swap;src:url(fonts/lora-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:Lora;font-weight:400 700;font-display:swap;src:url(fonts/lora-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Lora;font-weight:400 700;font-display:swap;src:url(fonts/lora-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Inter;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:Inter;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Inter;font-weight:100 900;font-display:swap;src:url(fonts/inter-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Oswald;font-weight:200 700;font-display:swap;src:url(fonts/oswald-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:Oswald;font-weight:200 700;font-display:swap;src:url(fonts/oswald-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

:root{--bg:#0a0a0b;--bg2:#101012;--card:#141416;--card2:#1b1b1e;--text:#f4f1ea;--mute:#a09b91;--line:rgba(255,255,255,.1);--glass:rgba(16,16,18,.74);--accent:#ffd60a;--btn:#f4f1ea;--btn-t:#0a0a0b;--shade:rgba(0,0,0,.55);
  --serif:Lora,"Iowan Old Style","Palatino Linotype",Georgia,"Songti SC","Noto Serif SC",serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,"PingFang SC","Noto Sans SC",sans-serif;--word:Oswald,"Arial Narrow",sans-serif;
  --sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--tabh:68px;--r:20px;--ease:cubic-bezier(.2,.8,.2,1);color-scheme:dark}
[data-theme=light]{--bg:#f6f3ee;--bg2:#efebe4;--card:#fff;--card2:#f1ede6;--text:#121212;--mute:#6c675d;--line:rgba(0,0,0,.1);--glass:rgba(255,255,255,.8);--btn:#121212;--btn-t:#f6f3ee;--shade:rgba(0,0,0,.4);color-scheme:light}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:400 15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}
body{overflow:hidden;-webkit-user-select:none;user-select:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
svg{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
[hidden]{display:none!important}

/* Splash */
#splash{position:fixed;inset:0;z-index:100;background:#0a0a0b;color:#fff;display:grid;place-items:center;transition:opacity .6s var(--ease),visibility .6s}
#splash.out{opacity:0;visibility:hidden}
#splash .sp{text-align:center}
#splash .wm{font:600 38px/1 var(--word);letter-spacing:.34em;margin-right:-.34em;text-transform:uppercase;opacity:0;transform:translateY(8px);animation:spin 1.4s .3s var(--ease) forwards}
#splash .ln{display:block;height:2px;width:0;margin:18px auto 14px;background:var(--accent);animation:spln 1.6s .9s var(--ease) forwards}
#splash .tg{font:500 11px/1 var(--sans);letter-spacing:.3em;margin-right:-.3em;text-transform:uppercase;color:#bdb8ad;opacity:0;animation:spin 1.4s 1.6s var(--ease) forwards}
@keyframes spin{to{opacity:1;transform:none}}@keyframes spln{to{width:110px}}

/* Shell */
#app{position:fixed;inset:0;display:flex;flex-direction:column}
.view{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--tabh) + var(--sab) + 28px);scroll-behavior:smooth;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}
.view.on{opacity:1;visibility:visible;transform:none}
.view::-webkit-scrollbar{width:0}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}
.tabbar{position:fixed;left:50%;bottom:calc(var(--sab) + 12px);transform:translateX(-50%);z-index:30;width:min(calc(100% - 24px),520px);height:var(--tabh);display:grid;grid-template-columns:repeat(5,1fr);padding:6px;border-radius:26px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(26px) saturate(1.6);backdrop-filter:blur(26px) saturate(1.6);box-shadow:0 18px 50px rgba(0,0,0,.35)}
.tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:20px;color:var(--mute);font:600 10.5px/1 var(--sans);letter-spacing:.02em;min-height:44px;transition:color .25s,background .25s}
.tab svg{font-size:22px}
.tab.on{color:var(--text)}
.tab.on::after{content:"";position:absolute;top:5px;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}
.tab.on svg{transform:translateY(3px)}
.tab span{transition:opacity .2s}
.tab .badge{position:absolute;top:6px;right:calc(50% - 20px);min-width:16px;height:16px;border-radius:8px;padding:0 4px;background:var(--accent);color:#000;font:700 10px/16px var(--sans);text-align:center}

/* Typografie */
.eyebrow{font:600 11px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.h1{font:500 clamp(30px,8vw,52px)/1.05 var(--serif);letter-spacing:-.015em;margin:0}
.h2{font:500 24px/1.15 var(--serif);letter-spacing:-.01em;margin:0}
.sec{margin:38px 0 0}.sec.first{margin-top:28px}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 16px}
.sec-h .h2{margin-top:6px}
.link{font:600 13px/1 var(--sans);color:var(--mute);display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;min-height:44px;min-width:44px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:30px;background:var(--btn);color:var(--btn-t);font:600 15px/1 var(--sans);letter-spacing:.01em;transition:transform .2s var(--ease),opacity .2s}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.glass{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.btn.block{width:100%}
.btn svg{font-size:18px}
.iconbtn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(10,10,11,.45);color:#fff;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font-size:21px;transition:transform .2s var(--ease)}
.iconbtn:active{transform:scale(.9)}
.iconbtn.heart.on{color:var(--accent)}
.iconbtn.heart.on svg{fill:var(--accent)}

/* Home: Hero */
.hero{position:relative;height:min(60svh,540px);min-height:420px;overflow:hidden;background:#000;color:#fff}
@keyframes kb{to{transform:scale(1.12)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,0) 28%,rgba(0,0,0,.18) 55%,rgba(0,0,0,.82) 100%);pointer-events:none}
.hero-top{position:absolute;z-index:3;top:calc(var(--sat) + 14px);left:0;right:0}
.hero-top .wrap{display:flex;align-items:center;justify-content:space-between}
.wm{font:600 20px/1 var(--word);letter-spacing:.3em;text-transform:uppercase}
.hero-body{position:absolute;z-index:3;left:0;right:0;bottom:84px}
.hero-body .eyebrow{color:#e5e0d4}
.hero-body .h1{margin:8px 0 10px;max-width:18ch;text-wrap:balance;font-size:clamp(28px,7.4vw,46px)}
.hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 16px;font:600 14px/1 var(--sans)}.hero-meta>*{white-space:nowrap}
.hero-meta .pr{font-family:var(--serif);font-size:20px;font-weight:500}
.hero-meta span.d{width:4px;height:4px;border-radius:50%;background:var(--accent)}
@keyframes prog{to{width:100%}}
.searchpill{position:relative;z-index:4;margin:-26px 0 0;display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 20px;border-radius:30px;background:var(--card);border:1px solid var(--line);box-shadow:0 14px 40px rgba(0,0,0,.28);color:var(--mute);font:500 15px/1 var(--sans);text-align:left}
.searchpill svg{font-size:20px;color:var(--text)}

/* Karten */
.hs{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 20px 6px;margin:0 -20px;scrollbar-width:none}
.hs::-webkit-scrollbar{display:none}
.hs>*{scroll-snap-align:start;flex:none}
.dest{position:relative;width:min(62vw,250px);aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--card);color:#fff;text-align:left}
.dest img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.dest:active img{transform:scale(1.05)}
.dest::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 35%,rgba(0,0,0,.82))}
.dest .t{position:absolute;z-index:2;left:18px;right:18px;bottom:18px}
.dest .t b{display:block;font:500 25px/1.1 var(--serif);margin-bottom:6px}
.dest .t small{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#d9d4c8}
.mini{width:min(72vw,300px);text-align:left}
.mini .im{position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--card)}
.mini .im img,.pc .im img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.mini:active .im img,.pc:active .im img{transform:scale(1.04)}
.chip-price{position:absolute;left:12px;bottom:12px;padding:8px 13px;border-radius:20px;background:rgba(10,10,11,.58);color:#fff;font:600 13px/1 var(--sans);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16)}
.mini .ct,.pc .ct{font:500 18px/1.25 var(--serif);margin:12px 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cap{color:var(--mute);font:500 13px/1.3 var(--sans)}
.sig{display:grid;gap:0}
.sigrow{display:grid;grid-template-columns:44px 1fr 96px;align-items:center;gap:14px;padding:16px 0;border-top:1px solid var(--line);text-align:left;width:100%}
.sigrow:last-child{border-bottom:1px solid var(--line)}
.sigrow .n{font:500 26px/1 var(--serif);color:var(--mute)}
.sigrow b{display:block;font:500 17px/1.25 var(--serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sigrow .pr{font:600 13px/1.3 var(--sans);margin-top:4px;color:var(--text)}
.sigrow .th{width:96px;aspect-ratio:1.25;border-radius:14px;overflow:hidden;background:var(--card)}
.sigrow .th img{width:100%;height:100%;object-fit:cover}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-radius:var(--r);overflow:hidden;margin-top:38px}
.stats div{background:var(--card);padding:20px 12px;text-align:center}
.stats b{display:block;font:500 34px/1 var(--serif)}
.stats span{display:block;margin-top:8px;font:600 10.5px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.svc button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:14px 6px;min-height:104px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);text-align:left;transition:transform .2s var(--ease)}
.svc button:active{transform:scale(.98)}
.svc svg{font-size:26px;color:var(--accent)}
[data-theme=light] .svc svg{color:var(--text)}
.svc b{font:600 13px/1.2 var(--sans);display:block;text-align:center}
.svc small{display:block;margin-top:4px;color:var(--mute);font:500 12.5px/1.3 var(--sans)}
.concierge{margin-top:38px;border-radius:26px;padding:28px 24px;background:linear-gradient(160deg,#1c1c1f,#0d0d0e);color:#f4f1ea;border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden}
.concierge::before{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(255,214,10,.22),transparent 70%)}
.concierge .h2{margin:8px 0 10px}
.concierge p{margin:0 0 20px;color:#bdb8ad;max-width:36ch}
.concierge .row{display:flex;gap:10px;flex-wrap:wrap}
.concierge .btn{background:#f4f1ea;color:#0a0a0b}
.concierge .btn.ghost{background:transparent;color:#f4f1ea;border-color:rgba(255,255,255,.22)}

/* Objekte */
.exh{position:sticky;top:0;z-index:10;padding:calc(var(--sat) + 16px) 0 12px;background:linear-gradient(var(--bg) 82%,transparent)}
.exh .top{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}
.searchbar{display:flex;align-items:center;gap:10px;height:52px;border-radius:26px;background:var(--card);border:1px solid var(--line);padding:0 8px 0 18px}
.searchbar input{flex:1;min-width:0;height:100%;background:none;border:0;outline:0;color:var(--text);font:500 15px/1 var(--sans);-webkit-user-select:text;user-select:text}
.searchbar input::placeholder{color:var(--mute)}
.searchbar>svg{font-size:20px;color:var(--mute)}
.fbtn{position:relative;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--btn);color:var(--btn-t);font-size:19px}
.fbtn i{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;border-radius:9px;background:var(--accent);color:#000;font:700 10px/18px var(--sans);font-style:normal;text-align:center;padding:0 4px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 20px 2px;margin:0 -20px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:0 16px;border-radius:20px;border:1px solid var(--line);color:var(--mute);font:600 13px/1 var(--sans);display:inline-flex;align-items:center;gap:6px;transition:all .2s}
.chip.on{background:var(--btn);color:var(--btn-t);border-color:var(--btn)}
.count{display:flex;align-items:center;justify-content:space-between;margin:16px 0 14px;color:var(--mute);font:600 13px/1 var(--sans)}
.grid{display:grid;grid-template-columns:1fr;gap:26px 18px}
@media(min-width:680px){.grid{grid-template-columns:repeat(2,1fr)}.hero-body .h1{font-size:56px}}
@media(min-width:1000px){.grid{grid-template-columns:repeat(3,1fr)}}
.pc{display:block;text-align:left;width:100%}
.pc .im{position:relative;aspect-ratio:16/11;border-radius:var(--r);overflow:hidden;background:var(--card)}
.pc .iconbtn{position:absolute;top:12px;right:12px;width:40px;height:40px;font-size:19px}
.pc .facts{display:flex;gap:16px;margin-top:6px;color:var(--mute);font:600 12.5px/1 var(--sans)}
.pc .facts span{display:inline-flex;align-items:center;gap:6px}
.pc .facts svg{font-size:16px}
.empty{padding:70px 20px;text-align:center;color:var(--mute)}

.empty b{display:block;font:500 22px/1.2 var(--serif);color:var(--text);margin-bottom:8px}
.skel{background:linear-gradient(100deg,var(--card) 30%,var(--card2) 50%,var(--card) 70%);background-size:200% 100%;animation:sk 1.3s linear infinite;border-radius:var(--r)}
@keyframes sk{to{background-position:-200% 0}}

/* Detail */
.ov{position:fixed;inset:0;z-index:40;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateY(100%);visibility:hidden;transition:transform .5s var(--ease),visibility .5s}
.ov.on{transform:none;visibility:visible}
.ov::-webkit-scrollbar{width:0}
.dhero{position:relative;height:min(68svh,620px);min-height:380px;background:#000;overflow:hidden}
.dhero img{width:100%;height:100%;object-fit:cover;animation:kb 14s ease-out forwards}
.dhero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.45),transparent 30%,transparent 62%,var(--bg))}
.dbar{position:fixed;z-index:45;top:calc(var(--sat) + 12px);left:0;right:0;pointer-events:none;opacity:0;transition:opacity .3s}
.ov.on .dbar{opacity:1}
.dbar .wrap{display:flex;justify-content:space-between}
.dbar .iconbtn,.dbar .grp{pointer-events:auto}
.dbar .grp{display:flex;gap:10px}
.dbody{position:relative;margin-top:-64px;padding-bottom:calc(120px + var(--sab))}
.dbody .eyebrow{display:block;margin-bottom:10px}
.dprice{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;margin:18px 0 6px}
.dprice b{font:500 34px/1 var(--serif);letter-spacing:-.01em}
.dprice span{color:var(--mute);font:500 13px/1 var(--sans)}
.facts4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-radius:var(--r);overflow:hidden;margin:26px 0 0}
.facts4 div{background:var(--card);padding:16px 6px;text-align:center}
.facts4 svg{font-size:22px;margin-bottom:8px;color:var(--mute)}
.facts4 b{display:block;font:500 20px/1 var(--serif)}
.facts4 small{display:block;margin-top:6px;font:600 10px/1.15 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.hl{display:flex;flex-wrap:wrap;gap:8px}
.hl span{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:20px;border:1px solid var(--line);font:500 13.5px/1 var(--sans)}
.hl svg{font-size:15px;color:var(--accent)}
[data-theme=light] .hl svg{color:var(--text)}
.txt p{margin:0 0 14px;font:400 16px/1.7 var(--serif);color:var(--text)}
.txt.clamp{max-height:230px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.dsec{margin-top:34px}
.dsec>.eyebrow{margin-bottom:14px}
.mapmini{position:relative;height:210px;border-radius:var(--r);overflow:hidden;background:var(--card);border:1px solid var(--line)}
.mapmini .leaflet-container{height:100%;background:var(--card)}
.mapacts{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.mapacts .btn{flex:1 1 140px;min-height:46px;font-size:13.5px;padding:8px 12px;gap:8px;line-height:1.2;text-align:center}.mapacts .btn svg{font-size:16px}
.cta{position:fixed;z-index:46;left:0;right:0;bottom:0;padding:12px 0 calc(var(--sab) + 12px);background:var(--glass);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(26px) saturate(1.5);backdrop-filter:blur(26px) saturate(1.5);transform:translateY(110%);transition:transform .5s .15s var(--ease)}
.ov.on .cta{transform:none}
.cta .wrap{display:flex;gap:10px;align-items:center}
.cta .meta{flex:1;min-width:0}
.cta .meta b{display:block;font:500 18px/1.1 var(--serif)}
.cta .meta small{color:var(--mute);font:500 12px/1.3 var(--sans)}

/* Sheet */
.scrim{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.scrim.on{opacity:1;visibility:visible}
.sheet{position:fixed;z-index:61;left:50%;bottom:0;width:min(100%,640px);max-height:92svh;overflow-y:auto;transform:translate(-50%,105%);background:var(--bg2);border:1px solid var(--line);border-bottom:0;border-radius:28px 28px 0 0;padding:10px 20px calc(var(--sab) + 22px);transition:transform .5s var(--ease);visibility:hidden}
.sheet.on{transform:translate(-50%,0);visibility:visible}
.sheet .grab{width:44px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 16px}
.sheet h2{font:500 26px/1.15 var(--serif);margin:0 0 6px}
.sheet .sub{color:var(--mute);margin:0 0 20px}
.field{display:block;margin-bottom:12px}
.field span{display:block;font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:0 0 8px 4px}
.field input,.field textarea,.field select{width:100%;min-height:52px;border-radius:16px;background:var(--card);border:1px solid var(--line);color:var(--text);padding:0 16px;font:500 16px/1.4 var(--sans);outline:0;-webkit-user-select:text;user-select:text;-webkit-appearance:none;appearance:none}
.field textarea{padding:14px 16px;min-height:120px;resize:none}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent)}
.field.hp{position:absolute;left:-9999px}
.hint{color:var(--mute);font:500 12px/1.4 var(--sans);margin:12px 4px 18px}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:22px}
.opts .chip{justify-content:center}
.sheet .lbl{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin:0 0 12px}
.sheet .acts{display:flex;gap:10px;position:sticky;bottom:calc(-1 * var(--sab) - 22px);padding:14px 0 0;background:linear-gradient(transparent,var(--bg2) 28%)}
.sheet .acts .btn{flex:1}
.ok{text-align:center;padding:30px 0 10px}
.ok .ring{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#000;font-size:34px}
.toast{position:fixed;z-index:90;left:50%;bottom:calc(var(--sab) + var(--tabh) + 30px);transform:translate(-50%,20px);padding:13px 20px;border-radius:24px;background:var(--btn);color:var(--btn-t);font:600 13.5px/1 var(--sans);opacity:0;pointer-events:none;transition:all .35s var(--ease);white-space:nowrap}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* Karte */
#v-map{padding:0}
#mapbox{position:absolute;inset:0;background:var(--bg2)}
.leaflet-container{font-family:var(--sans);background:var(--bg2)}
[data-theme=dark] .leaflet-container{background:#0c0c0d}
.leaflet-tile-pane{filter:grayscale(.45) contrast(1.03) brightness(1.02)}
[data-theme=dark] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) grayscale(.55) brightness(.82) contrast(.92)}
.mapmini .leaflet-tile-pane{filter:grayscale(.45)}[data-theme=dark] .mapmini .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) grayscale(.55) brightness(.82) contrast(.92)}
.leaflet-control-attribution{background:var(--glass)!important;color:var(--mute)!important;font-size:9.5px!important;border-radius:8px 0 0 0}
.leaflet-control-attribution a{color:var(--mute)!important}
.mapchips{position:absolute;z-index:500;top:calc(var(--sat) + 14px);left:0;right:0}
.mapchips .chips{padding:0 20px;margin:0}
.mapchips .chip{background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--text)}
.mapchips .chip.on{background:var(--btn);color:var(--btn-t)}
.pin{display:inline-block;width:max-content;white-space:nowrap;padding:7px 11px;border-radius:18px;background:var(--btn);color:var(--btn-t);font:700 12px/1 var(--sans);box-shadow:0 6px 18px rgba(0,0,0,.35);border:2px solid var(--bg);transform:translate(-50%,-50%);transition:transform .2s var(--ease)}
.pin.sel{background:var(--accent);color:#000;transform:translate(-50%,-50%) scale(1.18);z-index:900!important}
.clu{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--bg);color:var(--text);font:600 15px/1 var(--serif);border:2px solid var(--accent);box-shadow:0 6px 20px rgba(0,0,0,.4);transform:translate(-50%,-50%)}
.mcard{position:absolute;z-index:600;left:50%;bottom:calc(var(--sab) + var(--tabh) + 26px);width:min(calc(100% - 24px),520px);transform:translate(-50%,140%);visibility:hidden;display:grid;grid-template-columns:116px 1fr;gap:14px;align-items:center;padding:10px 14px 10px 10px;border-radius:24px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);box-shadow:0 18px 50px rgba(0,0,0,.4);transition:transform .5s var(--ease);text-align:left}
.mcard.on{transform:translate(-50%,0);visibility:visible}
.mcard .th{aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--card)}
.mcard .th img{width:100%;height:100%;object-fit:cover}
.mcard b{display:block;font:500 16px/1.25 var(--serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mcard .pr{font:700 14px/1 var(--sans);margin:6px 0 4px}

/* Merkliste / Mehr */
.vh{padding:calc(var(--sat) + 22px) 0 6px}
.vh .h1{margin-top:8px}
.cmpbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 6px;color:var(--mute);font:500 13px/1.3 var(--sans)}
.sel{position:absolute;top:12px;left:12px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(10,10,11,.45);border:1.5px solid rgba(255,255,255,.7);color:#fff;font-size:18px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.sel.on{background:var(--accent);border-color:var(--accent);color:#000}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th,.tbl td{padding:12px 6px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{font:600 10.5px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);width:26%}
.tbl .pt img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin-bottom:8px}
.tbl .pt b{font:500 14px/1.25 var(--serif);display:block}
.list{border-radius:var(--r);background:var(--card);border:1px solid var(--line);overflow:hidden}
.row{display:flex;align-items:center;gap:14px;width:100%;min-height:58px;padding:0 18px;text-align:left;font:500 16px/1.2 var(--sans)}
.row+.row{border-top:1px solid var(--line)}
.row svg:first-child{font-size:21px;color:var(--mute)}
.row .tr{margin-left:auto;color:var(--mute);font-size:14px;display:inline-flex;align-items:center;gap:8px}
.row .tr svg{font-size:16px}
.row small{display:block;color:var(--mute);font:500 12.5px/1.2 var(--sans);margin-top:3px}
.row.on .tr{color:var(--accent)}
.seg{display:grid;grid-template-columns:repeat(3,1fr);padding:4px;border-radius:16px;background:var(--card2);margin:0 0 6px}
.seg button{min-height:40px;border-radius:12px;font:600 13.5px/1 var(--sans);color:var(--mute)}
.seg button.on{background:var(--btn);color:var(--btn-t)}
.about{display:flex;gap:16px;align-items:center;padding:20px;border-radius:var(--r);background:var(--card);border:1px solid var(--line)}
.about img{width:72px;height:72px;border-radius:50%;object-fit:cover}
.about b{display:block;font:500 20px/1.1 var(--serif)}
.about p{margin:6px 0 0;color:var(--mute);font:500 13px/1.45 var(--sans)}
.mh{font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin:30px 4px 12px}
.ver{margin:26px 0 0;text-align:center;color:var(--mute);font:500 12px/1 var(--sans)}

/* Web (tiefer eintauchen) */
.web{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform .45s var(--ease),visibility .45s}
.web.on{transform:none;visibility:visible}
.web header{display:flex;align-items:center;gap:12px;padding:calc(var(--sat) + 10px) 14px 10px;border-bottom:1px solid var(--line);background:var(--bg)}
.web header .iconbtn{background:var(--card);color:var(--text);border-color:var(--line)}
.web header b{font:500 20px/1 var(--serif)}
.web iframe{flex:1;width:100%;border:0;background:var(--bg)}
.web .ld{position:absolute;left:0;right:0;top:calc(var(--sat) + 64px);text-align:center;color:var(--mute);font:500 13px/1 var(--sans);pointer-events:none}

@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.slide.on img,.dhero img{animation:none}}
@media(min-width:900px){.hero{height:min(78svh,760px)}.tabbar{width:460px}.mcard{left:calc(50% + 0px)}}

/* Villen-Kacheln (Startseite) */
.iconbtn.sm{width:44px;height:44px;font-size:19px}
@media(min-width:700px){.vgrid{grid-template-columns:repeat(4,1fr)}.vt.w{grid-column:span 2;aspect-ratio:auto}.svc{grid-template-columns:repeat(6,1fr)}.hero{height:min(56svh,560px)}}
.empty>svg{font-size:40px;margin-bottom:14px;color:var(--text)}
.tbl{table-layout:fixed;font-size:13px}.tbl th{width:22%}.tbl td{word-break:break-word}

.chip .n{color:var(--mute);font-weight:600}.chip.on .n{color:inherit;opacity:.75}
#v-map{overflow:hidden}

.sheet.flex{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0;height:92svh}
.sheet.flex .sbody{flex:1;min-height:0;overflow-y:auto;padding-bottom:12px}.sheet.flex .acts{position:static;padding:14px 0 calc(var(--sab) + 16px);background:var(--bg2);border-top:1px solid var(--line)}

/* Review 25.10.: Objektkarten mit Preiszone, Startseiten-Einstiege, Hero-Steuerung, Karte */
.cap.up{margin-top:12px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.pc .ct{margin:5px 0 8px}
.pz{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--line)}
.pzp{font:500 21px/1.1 var(--serif);letter-spacing:-.01em;color:var(--text)}
.mini .pzp{display:block;margin:2px 0 4px;font-size:18px}
.pz .facts{margin:0}
[data-theme=light] .ctas svg{color:var(--text)}
.searchpill{min-height:60px;font-size:16px}
.hero{height:min(52svh,500px);min-height:380px}
.hero::after{background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,0) 26%,rgba(0,0,0,.3) 52%,rgba(0,0,0,.9) 100%)}
.hero-body{bottom:104px}
.pc .iconbtn.heart{background:rgba(10,10,11,.62)}
.count .ctl{display:flex;align-items:center;gap:10px}
.count select{height:40px;max-width:148px;padding:0 30px 0 12px;border-radius:20px;border:1px solid var(--line);background:var(--card);color:var(--text);font:600 12.5px/1 var(--sans);-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);background-position:calc(100% - 16px) 17px,calc(100% - 11px) 17px;background-size:5px 5px;background-repeat:no-repeat}
.vtoggle{display:inline-flex;padding:3px;border-radius:22px;background:var(--card2)}
.vtoggle button{width:44px;height:40px;border-radius:20px;display:grid;place-items:center;font-size:19px;color:var(--mute)}
.vtoggle button.on{background:var(--btn);color:var(--btn-t)}
.actbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;align-items:center}
.achip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:22px;background:var(--btn);color:var(--btn-t);font:600 12.5px/1 var(--sans)}
.achip svg{font-size:14px}
.alink{min-height:44px;padding:0 6px;font:600 12.5px/1 var(--sans);color:var(--mute);text-decoration:underline}
.facts4{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.facts4 div{padding:18px 8px}
.facts4 b{font-size:24px}
.shint{position:absolute;z-index:3;left:50%;bottom:78px;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(10,10,11,.45);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:22px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:bob 2.2s ease-in-out infinite}
@keyframes bob{50%{transform:translate(-50%,6px)}}
.pin.dim,.clu.dim{opacity:.5}
.msearch{position:absolute;z-index:600;top:calc(var(--sat) + 72px);left:50%;transform:translateX(-50%);min-height:44px;padding:0 20px;border-radius:24px;background:var(--btn);color:var(--btn-t);font:600 13.5px/1 var(--sans);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.mres{position:absolute;z-index:590;left:50%;bottom:calc(var(--sab) + var(--tabh) + 22px);transform:translateX(-50%);width:min(calc(100% - 24px),520px);border-radius:24px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);box-shadow:0 18px 50px rgba(0,0,0,.4);overflow:hidden}
.mres-h{display:block;width:100%;min-height:64px;padding:8px 18px 12px;text-align:left}
.mres-h .grab{display:block;width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 8px}
.mres-h b{display:block;font:600 14px/1.2 var(--sans)}
.mres-h small{color:var(--mute);font:500 12px/1.3 var(--sans)}
.mres-l{max-height:46svh;overflow-y:auto;padding:0 10px 10px}
.mres-r{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;width:100%;min-height:76px;padding:6px;border-radius:16px;text-align:left}
.mres-r .th{width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--card)}
.mres-r .th img{width:100%;height:100%;object-fit:cover}
.mres-r b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:500 15px/1.25 var(--serif)}
.mres-r i{display:block;margin:3px 0 1px;font:700 13px/1.2 var(--sans);font-style:normal}
.mres-r small{color:var(--mute);font:500 12px/1.2 var(--sans)}

/* Startseite 25.10. (Magazin-Struktur) + unsichtbare Scrollbars */
*{scrollbar-width:none;-ms-overflow-style:none}
*::-webkit-scrollbar{display:none;width:0;height:0}
.hero.single{height:min(60svh,560px);min-height:420px}
.hero.single>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-sp{position:absolute;z-index:4;left:0;right:0;top:calc(var(--sat) + 70px)}
.searchpill.on-img{background:rgba(10,10,11,.5);border:1px solid rgba(255,255,255,.28);color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.searchpill.on-img svg{color:#fff}
.hero.single .hero-body{bottom:34px}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}
.quick button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:78px;padding:10px 4px;border-radius:18px;background:var(--card);border:1px solid var(--line);font:600 12px/1.2 var(--sans);text-align:center}
.quick svg{font-size:22px;color:var(--accent)}
[data-theme=light] .quick svg{color:var(--text)}
.svc4{grid-template-columns:repeat(2,1fr)}
.jr{display:grid;gap:12px}
.jc{display:grid;grid-template-columns:104px 1fr;gap:14px;align-items:center;width:100%;min-height:96px;padding:8px;border-radius:20px;background:var(--card);border:1px solid var(--line);text-align:left}
.jc .im{display:block;width:104px;height:84px;border-radius:14px;overflow:hidden;background:var(--card2)}
.jc .im img{width:100%;height:100%;object-fit:cover}
.jc small{display:block;margin-bottom:4px;color:var(--mute);font:600 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.jc b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font:500 16px/1.25 var(--serif)}
.about-s p{margin:10px 0 0;color:var(--mute);font:400 15px/1.5 var(--sans)}
.about-s .stats{margin:18px 0}

.lmark{display:block;height:40px;width:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.45))}

.hero-sp{top:calc(var(--sat) + 68px)}
.hero-sp .searchpill{margin:0}

/* Startseite: Budget, Weltkarten-Kachel, Signature, Laender */
.bud{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.bud button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;min-height:76px;padding:14px 18px;border-radius:20px;background:var(--card);border:1px solid var(--line);text-align:left}
.bud b{font:500 24px/1.1 var(--serif);letter-spacing:-.01em}
.bud small{color:var(--mute);font:500 12px/1.2 var(--sans)}
.wmap{position:relative;display:block;width:100%;height:230px;margin-top:30px;border-radius:26px;overflow:hidden;background:radial-gradient(120% 90% at 30% 20%,#1d2330,#0b0d12);border:1px solid var(--line);text-align:left;color:#fff}
.wmap svg{position:absolute;inset:0;width:100%;height:100%;stroke:none}
.wmap .gr line{stroke:rgba(255,255,255,.07);stroke-width:.6}
.wmap circle{fill:#ffd60a}
.wmap .gl{fill:rgba(255,214,10,.22)}
.wmap::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,0) 62%)}
.wm-t{position:absolute;z-index:2;left:20px;right:20px;bottom:54px;display:block}
.wm-t b{display:block;font:500 24px/1.15 var(--serif)}
.wm-t small{display:block;margin-top:4px;color:rgba(255,255,255,.72);font:500 13px/1.3 var(--sans)}
.wm-b{position:absolute;z-index:2;left:20px;bottom:16px;display:inline-flex;align-items:center;gap:8px;min-height:30px;font:600 13px/1 var(--sans);color:#ffd60a}
.sigs{display:grid;gap:14px}
.bigc{position:relative;display:block;width:100%;aspect-ratio:16/11;border-radius:26px;overflow:hidden;background:var(--card);text-align:left;color:#fff}
.bigc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bigc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.88))}
.bigc .bt{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;display:block}
.bigc small{display:block;font:600 11px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.bigc b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:6px 0 6px;font:500 22px/1.2 var(--serif)}
.bigc i{font:600 14px/1.3 var(--sans);font-style:normal}
.ctry{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ctry button{position:relative;display:block;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:var(--card);text-align:left;color:#fff}
.ctry img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ctry button::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.85))}
.ctry .ct2{position:absolute;z-index:2;left:14px;right:14px;bottom:12px;display:block}
.ctry b{display:block;font:500 19px/1.15 var(--serif)}
.ctry small{display:block;margin-top:3px;font:600 11px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;opacity:.8}

.wmap{background:#0b0d12}
.wm-map{position:absolute;left:0;top:0;transform-origin:0 0}
.wm-map .wmt{position:absolute;inset:0;filter:invert(1) hue-rotate(180deg) grayscale(.55) brightness(.8) contrast(.9)}
.wm-map img{position:absolute;display:block;max-width:none}
.wm-map i{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:#ffd60a;border:5px solid rgba(255,214,10,.35);box-shadow:0 0 0 10px rgba(255,214,10,.12)}
.wmap svg{display:none}
.ctry button:last-child:nth-child(odd){grid-column:1/-1;aspect-ratio:16/8}
.wmap{height:210px}

.wm-map i{width:34px;height:34px;margin:-17px 0 0 -17px;border-width:7px}
.wm-t{bottom:50px}
.wmap{overflow:visible}
.wm-clip{position:absolute;inset:0;border-radius:inherit;overflow:hidden;display:block}
.wmap::after{border-radius:inherit}

/* Konto */
.hbtn2{display:flex;gap:8px}
.iconbtn.on{background:var(--accent);color:#0a0a0b;border-color:transparent}
.amsg{min-height:20px;margin:2px 4px 12px;font:500 13.5px/1.35 var(--sans);color:#ff9a8a}
.amsg.ok{color:#8be0a4}
.amsg .alink2{display:inline;min-height:0;padding:0}
.alink2{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;font:600 14px/1.2 var(--sans);color:var(--text);text-decoration:underline;text-underline-offset:3px}
.alink2.in{display:inline;min-height:0;padding:0}
.aswitch{margin-top:6px;color:var(--mute);font:500 14px/1.3 var(--sans)}
.field.pw{position:relative}
.field.pw input{padding-right:84px}
.field.pw .eye{position:absolute;right:6px;bottom:4px;min-height:44px;padding:0 12px;border-radius:14px;font:600 12.5px/1 var(--sans);color:var(--mute)}
.chk{display:flex;align-items:flex-start;gap:12px;margin:6px 4px 12px;font:500 13.5px/1.4 var(--sans);color:var(--mute);cursor:pointer}
.chk input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--accent)}
.acct-stats{margin:14px 0 18px}
.row.danger,.row.danger svg{color:#ff6b5e}
.btn.danger-btn{background:#ff453a;color:#fff}
.row.inq{cursor:default;min-height:54px}.row.inq small{display:block;margin-top:2px;color:var(--mute);font-size:12px}
.row.muted{color:var(--mute)}
.syncnote{margin-top:26px;padding:22px;border-radius:22px;background:var(--card);border:1px solid var(--line);text-align:center}
.syncnote p{margin:0 0 14px;color:var(--mute)}
.acctrow{margin-bottom:16px}
.acctrow small{display:block;margin-top:2px;color:var(--mute);font-size:12px}
/* Einwilligung: grosse Tippflaeche */
.chk{align-items:center;gap:6px;margin:4px 0 10px}
.chk input{-webkit-appearance:none;appearance:none;flex:none;position:relative;width:48px;height:48px;margin:0 0 0 -8px;background:transparent;border:0;cursor:pointer}
.chk input::before{content:"";position:absolute;inset:12px;border:2px solid var(--mute);border-radius:8px;transition:background .15s,border-color .15s}
.chk input:checked::before{background:var(--accent);border-color:var(--accent)}
.chk input:checked::after{content:"";position:absolute;left:19px;top:15px;width:7px;height:13px;border:solid #0a0a0b;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.chk input:focus-visible::before{outline:2px solid var(--accent);outline-offset:3px}
.chk .alink2.in{display:flex;min-height:44px;padding:0;text-align:left}
.chk .alink2.in{min-width:44px;justify-content:flex-start}
