/* automatisch erzeugt von scripts/css-buendel.cjs – Quelle bleibt die einzelnen Dateien, nicht von Hand ändern */
/* --- style.css --- */
@font-face{font-family:Inter;src:url(/assets/inter.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(/assets/jakarta.woff2) format("woff2");font-weight:700 800;font-display:swap}
:root{--bg:#F7F8F5;--panel:#fff;--panel2:#F1F4EF;--line:#DCE1DB;--line2:#C9D0C6;--fg:#101418;--fg2:#4A5560;--fg3:#7A8590;--green:#0B7A55;--green2:#0E9F6E;--mint:#DDF3E8;--mint2:#EEF8F2;--star:#E8A317;--ad:#FBEFD9;--adtxt:#7a4f06;--ff:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--fd:"Plus Jakarta Sans",Inter,system-ui,sans-serif;--r:16px;--rb:12px;--sh:0 1px 2px rgba(16,20,24,.04),0 8px 24px -16px rgba(16,20,24,.25)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:15.5px/1.6 var(--ff);color:var(--fg);background:var(--bg)}
a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--fd);letter-spacing:-.02em;line-height:1.15;margin:0 0 .4em}
h1{font-size:clamp(30px,4.6vw,52px);font-weight:800}h2{font-size:clamp(22px,2.6vw,30px);font-weight:800}h3{font-size:18px;font-weight:700}
.in{max-width:1240px;margin:0 auto;padding:0 24px}
.accent{color:var(--green);background:linear-gradient(180deg,transparent 80%,rgba(14,159,110,.2) 0,rgba(14,159,110,.2) 94%,transparent 0)}
/* header */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd .in{display:flex;align-items:center;gap:20px;height:64px}
.logo{display:flex;align-items:center;gap:10px;color:var(--fg);font:800 17px var(--fd);letter-spacing:-.02em}.logo:hover{text-decoration:none}
.mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--green),var(--green2));display:grid;place-items:center;color:#fff;box-shadow:0 8px 24px -10px rgba(11,122,85,.6)}
.nav{display:flex;gap:4px;margin-left:auto}.nav a{color:var(--fg2);font-weight:500;font-size:14.5px;padding:8px 12px;border-radius:10px}.nav a:hover{background:var(--panel2);color:var(--fg);text-decoration:none}
.navfav{display:inline-flex;align-items:center;gap:6px}.cnt{background:var(--green);color:#fff;border-radius:99px;font-size:11px;font-weight:700;padding:1px 7px;min-width:20px;text-align:center}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--rb);padding:11px 18px;font:700 15px/1.2 var(--ff);border:1px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none!important;transition:background .15s,transform .15s,box-shadow .15s}
.btn-p{background:var(--green);color:#fff;box-shadow:0 10px 24px -12px rgba(11,122,85,.55)}.btn-p:hover{background:#09694a;transform:translateY(-1px)}
.btn-g{background:#fff;border-color:var(--line2);color:var(--fg)}.btn-g:hover{border-color:var(--fg3)}
.btn-s{padding:8px 12px;font-size:13.5px;border-radius:10px}.btn-lg{padding:15px 24px;font-size:16px}
.pill{display:inline-flex;gap:8px;align-items:center;padding:6px 12px 6px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--fg2);box-shadow:0 4px 14px -10px rgba(16,20,24,.25)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green2);box-shadow:0 0 0 4px rgba(14,159,110,.18)}
/* hero */
.hero{position:relative;isolation:isolate;padding:64px 0 56px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-1;background:radial-gradient(620px 360px at 82% 30%,rgba(14,159,110,.16),transparent 70%),radial-gradient(480px 300px at 6% 8%,rgba(221,243,232,.95),transparent 70%)}
.hero h1{max-width:820px;margin-top:18px}.lead{font-size:18px;color:var(--fg2);max-width:640px;margin:0 0 28px}
.sbox{background:#fff;border:1px solid var(--line);border-radius:20px;padding:10px;display:grid;grid-template-columns:1.6fr 1fr auto;gap:8px;max-width:860px;box-shadow:0 24px 60px -30px rgba(16,20,24,.35)}
.fld{position:relative;display:flex;flex-direction:column;padding:8px 14px;border-radius:12px;background:var(--panel2)}
.fld label{font-size:11.5px;font-weight:700;color:var(--fg3);text-transform:uppercase;letter-spacing:.06em}
.fld input,.fld select{border:0;background:transparent;font:600 16px var(--ff);color:var(--fg);padding:4px 0;outline:0;width:100%;appearance:none;-webkit-appearance:none}
.fld:focus-within{box-shadow:inset 0 0 0 2px var(--green2);background:#fff}
.sbox .btn{height:100%;min-height:56px;padding:0 28px;font-size:16px}
.ac{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 50px -20px rgba(16,20,24,.35);z-index:60;max-height:320px;overflow:auto;display:none;padding:6px}
.ac.on{display:block}.ac div{padding:9px 12px;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;gap:12px;font-size:14.5px}.ac div small{color:var(--fg3)}
.ac div.sel,.ac div:hover{background:var(--mint2)}
.trust{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;color:var(--fg2);font-size:14px}.trust span{display:inline-flex;gap:7px;align-items:center}
.trust svg{color:var(--green2)}
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg2)}.chip:hover{border-color:var(--green2);color:var(--green);text-decoration:none}
/* sections */
.sec{padding:56px 0}.sec-h{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px}.sec-h p{margin:0;color:var(--fg2)}
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.city{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--fg);font-weight:600;transition:border-color .15s,transform .15s}
.city:hover{border-color:var(--green2);transform:translateY(-1px);text-decoration:none}.city small{color:var(--fg3);font-weight:500}
.step b{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--mint);color:var(--green);font:800 16px var(--fd);margin-bottom:12px}
.step p{margin:0;color:var(--fg2)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px;max-width:860px}.stat{background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:14px;padding:12px 16px}.stat b{display:block;font:800 22px var(--fd)}.stat span{font-size:13px;color:var(--fg2)}
.dark{background:#101418;color:#e8ecea;border-radius:24px;padding:40px;position:relative;overflow:hidden}.dark h2{color:#fff}.dark p{color:#A9B4AE}
.dark:before{content:"";position:absolute;inset:auto -10% -60% 40%;height:120%;background:radial-gradient(closest-side,rgba(63,211,154,.35),transparent);pointer-events:none}
/* ad */
.ad{border:1.5px dashed #E6C88F;background:var(--ad);border-radius:var(--r);padding:16px 18px;color:var(--adtxt);font-size:14px;display:flex;gap:12px;align-items:center}
.adl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#fff;border:1px solid #E6C88F;border-radius:6px;padding:2px 7px;color:var(--adtxt);flex:none}
/* results */
.rs{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px;padding:24px 0 60px}
.side{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:6px 18px 18px}
.fg{border-bottom:1px solid var(--line);padding:14px 0}.fg:last-of-type{border-bottom:0}.fg h4{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg3)}
.ck{display:flex;align-items:center;gap:10px;padding:5px 0;cursor:pointer;font-size:14.5px}.ck input{width:18px;height:18px;accent-color:var(--green)}.ck small{margin-left:auto;color:var(--fg3)}
.seg{display:flex;flex-wrap:wrap;gap:6px}.seg button{border:1px solid var(--line2);background:#fff;border-radius:10px;padding:7px 11px;font:600 13.5px var(--ff);cursor:pointer;color:var(--fg2)}.seg button.on{background:var(--green);border-color:var(--green);color:#fff}
.sel{width:100%;padding:10px 12px;border:1px solid var(--line2);border-radius:10px;font:500 14.5px var(--ff);background:#fff}
.bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.bar h1{font-size:24px;margin:0}.bar .sp{flex:1}
.sbar{background:#fff;border-bottom:1px solid var(--line)}.sbar .sbox{box-shadow:none;max-width:none;border-radius:16px;margin:14px 0;grid-template-columns:1.8fr 1fr auto}
.tog{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:3px}.tog button{border:0;background:transparent;border-radius:9px;padding:7px 12px;font:600 13.5px var(--ff);cursor:pointer;color:var(--fg2);display:inline-flex;gap:6px;align-items:center}.tog button.on{background:#fff;color:var(--fg);box-shadow:0 1px 3px rgba(16,20,24,.12)}
.res{display:flex;flex-direction:column;gap:12px}
.rc{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;transition:box-shadow .15s,border-color .15s;position:relative}
.rc:hover{border-color:var(--line2);box-shadow:var(--sh)}
.av{width:96px;height:96px;border-radius:14px;display:grid;place-items:center;font:800 30px var(--fd);color:var(--green);background:linear-gradient(135deg,var(--mint),var(--mint2))}
.rc h3{margin:0 0 2px;font-size:18px}.rc h3 a{color:var(--fg)}.loc{color:var(--fg2);font-size:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.dist{font-weight:700;color:var(--fg)}
.rt{display:flex;align-items:center;gap:6px;margin:8px 0 6px;font-size:14px}.rt b{font-size:15px}.stars{color:var(--star);letter-spacing:1px;font-size:15px}.stars i{color:#DCE1DB;font-style:normal}.src{color:var(--fg3);font-size:12.5px}
.na{color:var(--fg3);font-size:13.5px;font-style:italic}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tag{font-size:12.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--panel2);color:var(--fg2);border:1px solid var(--line)}.tag.g{background:var(--mint2);color:var(--green);border-color:#cdebdb}
.acts{display:flex;flex-direction:column;gap:8px;align-items:stretch;justify-content:space-between;min-width:170px}.acts .row{display:flex;gap:6px}.acts .row .btn{flex:1}
.fav{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--fg3)}.fav.on{color:#E0435A;border-color:#F2C4BE;background:#FBE3E0}
.rc .acts{padding-top:44px}
.empty{background:#fff;border:1px dashed var(--line2);border-radius:var(--r);padding:40px;text-align:center;color:var(--fg2)}
.more{display:flex;justify-content:center;margin-top:18px}
.mob-bar,.sheet,.shade,.mob-only{display:none}
/* profile */
.crumbs{font-size:13.5px;color:var(--fg3);padding:18px 0 0}.crumbs a{color:var(--fg2)}
.pf{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;padding:20px 0 60px}
.pf-h{display:flex;gap:20px;align-items:center}.pf-h .av{width:88px;height:88px}
.kv{display:grid;grid-template-columns:170px 1fr;gap:10px 16px;margin:0}.kv dt{color:var(--fg3);font-size:14px}.kv dd{margin:0;font-weight:500}

.consent{border:1px dashed var(--line2);border-radius:14px;padding:22px;text-align:center;background:var(--panel2);color:var(--fg2);font-size:14px}
.consent iframe{width:100%;min-height:560px;border:0;border-radius:12px;background:#fff}
.stack{display:flex;flex-direction:column;gap:16px}
.prose{max-width:780px}.prose p,.prose li{color:#2b333a}.prose h2{margin-top:1.6em}
table.t{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:14.5px}table.t th,table.t td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}table.t th{background:var(--panel2);font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg3)}
/* footer */
.ft{background:#101418;color:#A9B4AE;padding:48px 0 28px;margin-top:40px;font-size:14px}.ft a{color:#e8ecea}.ft .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px}.ft h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px}.ft ul{list-style:none;margin:0;padding:0;line-height:2}.ft .lg{color:#fff}.ft .fine{border-top:1px solid rgba(255,255,255,.08);margin-top:32px;padding-top:18px;font-size:12.5px}
/* ===== mobile layout ===== */
@media (max-width:860px){
 body{font-size:15px}.in{padding:0 16px}
 .nav{display:none}.mob-only{display:inline-flex}.hd .in{height:56px}.hd .navfav{margin-left:auto;color:var(--fg);font-weight:600;font-size:14px}
 .hero{padding:28px 0 32px}.lead{font-size:16px;margin-bottom:20px}
 .sbox{grid-template-columns:1fr;padding:8px;border-radius:18px}.sbox .btn{min-height:52px;width:100%}
 .stats{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr}.grid4{grid-template-columns:1fr 1fr}
 .sec{padding:36px 0}.sec-h{flex-direction:column;align-items:start}.dark{padding:26px;border-radius:20px}
 .sbar .sbox{grid-template-columns:1fr 110px;margin:10px 0}.sbar .sbox .btn{display:none}.sbar .fld{padding:6px 12px}
 .rs{grid-template-columns:1fr;padding:12px 0 90px;gap:0}.side{display:none}
 .bar{margin-bottom:10px}.bar h1{font-size:19px;width:100%}.bar .desk{display:none}
 .rc{grid-template-columns:56px minmax(0,1fr);gap:12px;padding:14px;border-radius:14px}.av{width:56px;height:56px;font-size:20px;border-radius:12px}
 .rc h3{font-size:16px;padding-right:40px}.rc .acts{grid-column:1/-1;padding-top:0;min-width:0;flex-direction:row}.rc .acts .row{flex:1}.rc .acts>.btn{flex:1.2}
 .rt{flex-wrap:wrap;gap:4px 6px}.rt .src{display:none}
 .fav{top:10px;right:10px;width:34px;height:34px}
 .mob-bar{display:flex;position:fixed;left:12px;right:12px;bottom:14px;z-index:70;background:#101418;border-radius:16px;padding:6px;gap:4px;box-shadow:0 18px 40px -12px rgba(0,0,0,.5)}
 .mob-bar button{flex:1;border:0;background:transparent;color:#fff;font:600 14px var(--ff);padding:11px 6px;border-radius:12px;display:inline-flex;gap:7px;justify-content:center;align-items:center}.mob-bar button.on{background:rgba(255,255,255,.12)}
 .shade{position:fixed;inset:0;background:rgba(16,20,24,.45);z-index:80}.shade.on{display:block}
 .sheet{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-radius:22px 22px 0 0;max-height:88vh;transform:translateY(105%);transition:transform .25s ease;box-shadow:0 -20px 50px -20px rgba(0,0,0,.4)}
 .sheet.on{transform:none}.sheet .grab{width:42px;height:5px;border-radius:9px;background:var(--line2);margin:10px auto 4px}
 .sheet .sh-h{display:flex;justify-content:space-between;align-items:center;padding:6px 18px 10px;border-bottom:1px solid var(--line)}.sheet .sh-h b{font:800 18px var(--fd)}
 .sheet .sh-b{overflow:auto;padding:0 18px}.sheet .sh-f{display:flex;gap:10px;padding:12px 18px 18px;border-top:1px solid var(--line)}.sheet .sh-f .btn{flex:1}
 .sheet .ck{padding:8px 0}
 .pf{grid-template-columns:1fr;gap:16px}.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:10px}.pf-h .av{width:64px;height:64px}
 .ft .cols{grid-template-columns:1fr 1fr}.ft .cols>div:first-child{grid-column:1/-1}
}

/* v4: logo + photos */
.logo .lm{width:38px;height:38px;flex:none;filter:drop-shadow(0 6px 14px rgba(11,122,85,.35))}
.logo .wm{display:flex;flex-direction:column;line-height:1.05;font:800 18px var(--fd);letter-spacing:-.02em;color:var(--fg)}
.logo .wm small{font:700 10.5px var(--fd);letter-spacing:.22em;text-transform:uppercase;color:var(--green)}
.av{position:relative;overflow:hidden;background:radial-gradient(circle at 30% 25%,#fff 0,transparent 45%),linear-gradient(135deg,var(--mint),#c9ebd9);box-shadow:inset 0 0 0 1px rgba(11,122,85,.12);letter-spacing:.02em}
.av.has{background:var(--panel2)}.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pfig{padding:0;overflow:hidden;margin:0}.pimg{aspect-ratio:16/9;background:var(--panel2)}.pimg img{width:100%;height:100%;object-fit:cover;display:block}
.pfig figcaption{padding:10px 16px;font-size:13px;color:var(--fg2);border-top:1px solid var(--line)}
.GMP-attribution{font-family:Roboto,Inter,sans-serif;font-weight:400;white-space:nowrap;color:#5e5e5e}

/* ===== v5: MapLibre map (Google-Maps-like) ===== */
.views{position:relative}
#mapwrap{position:relative}
#map{height:calc(100vh - 232px);min-height:520px;border-radius:var(--r);border:1px solid var(--line);overflow:hidden;background:#eef0ec}
body.mapv .views{display:grid;grid-template-columns:minmax(330px,420px) minmax(0,1fr);gap:16px;align-items:start}
body.mapv #listwrap{max-height:calc(100vh - 232px);min-height:520px;overflow:auto;padding-right:4px;scrollbar-width:thin}
body.mapv #mapwrap{position:sticky;top:12px}
body.mapv .rc{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:12px 14px;cursor:pointer}
body.mapv .rc .av{width:64px;height:64px;font-size:22px;border-radius:50%}body.mapv .rc .acts,body.mapv .rc .tags,body.mapv .rc .src{display:none}
body.mapv .rc h3{font-size:15.5px;padding-right:38px}body.mapv .rc .fav{width:32px;height:32px;top:10px;right:10px}
body.mapv .ad{display:none}
body.mapv .rc:hover{border-color:var(--green2);box-shadow:0 0 0 2px rgba(14,159,110,.18)}
.hzm-pin{width:44px;height:44px;border-radius:50%;border:3px solid var(--green);background:linear-gradient(135deg,var(--mint),var(--mint2));color:var(--green);font:800 14px var(--fd);display:grid;place-items:center;padding:0;overflow:hidden;cursor:pointer;box-shadow:0 2px 6px rgba(16,20,24,.25),0 0 0 2px #fff;transition:transform .18s cubic-bezier(.3,1.4,.6,1),box-shadow .18s}
.hzm-pin img{width:100%;height:100%;object-fit:cover;display:block}
.hzm-pin:hover,.hzm-pin.hl{transform:scale(1.28);z-index:5;box-shadow:0 6px 16px rgba(11,122,85,.45),0 0 0 3px #fff}
.hzm-pin.sel{transform:scale(1.35);z-index:6;border-color:#E0435A}
.hzm-pin.ghost{animation:hzp 1s ease-in-out infinite alternate}@keyframes hzp{to{box-shadow:0 0 0 10px rgba(14,159,110,.25),0 0 0 3px #fff}}
.hzm-pin.big{width:58px;height:58px;font-size:18px}
.maplibregl-marker:has(.hl),.maplibregl-marker:has(.sel){z-index:5}
.hzm-cl{min-width:40px;height:40px;padding:0 10px;border-radius:999px;border:3px solid #fff;background:var(--green);color:#fff;font:800 14px var(--ff);cursor:pointer;box-shadow:0 0 0 6px rgba(11,122,85,.22),0 3px 10px rgba(16,20,24,.25);transition:transform .15s}
.hzm-cl.l{height:48px;min-width:48px;font-size:15px;box-shadow:0 0 0 9px rgba(11,122,85,.2),0 3px 10px rgba(16,20,24,.25)}
.hzm-cl.xl{height:58px;min-width:58px;font-size:16px;box-shadow:0 0 0 12px rgba(11,122,85,.18),0 3px 12px rgba(16,20,24,.3)}
.hzm-cl:hover{transform:scale(1.08)}
.here{position:absolute;top:14px;left:50%;transform:translate(-50%,-8px);opacity:0;pointer-events:none;transition:.2s;border:0;background:#fff;color:var(--fg);font:700 14px var(--ff);padding:10px 16px;border-radius:999px;box-shadow:0 4px 16px rgba(16,20,24,.22);display:inline-flex;gap:8px;align-items:center;cursor:pointer;z-index:3}
.here.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}.here svg{color:var(--green)}
.pv{position:absolute;left:14px;bottom:14px;width:360px;max-width:calc(100% - 28px);background:#fff;border-radius:18px;box-shadow:0 12px 40px -8px rgba(16,20,24,.35);z-index:4;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .2s,transform .25s cubic-bezier(.2,.9,.3,1)}
.pv.on{opacity:1;transform:none;pointer-events:auto}
.pv .grab{display:none}.pv-x{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font:600 20px/1 var(--ff);cursor:pointer;z-index:2;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.pv-n{font-size:12.5px;font-weight:700;color:var(--fg2);padding:12px 16px 0}
.pv-s{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.pv-s::-webkit-scrollbar{display:none}
.pv-c{flex:0 0 100%;scroll-snap-align:start;display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;padding:14px;box-sizing:border-box;position:relative}
.pv-img{width:104px;height:104px;border-radius:14px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,var(--mint),var(--mint2));color:var(--green);font:800 30px var(--fd);text-decoration:none!important}
.pv-img img{width:100%;height:100%;object-fit:cover}
.pv-t h3{font-size:16px;margin:0 30px 2px 0;line-height:1.25}.pv-t h3 a{color:var(--fg)}.pv-t .rt{margin:4px 0}.pv-t .loc{font-size:13px}.pv-t .btn{margin-top:8px}
.pv-a{grid-column:1/-1;font-size:11px;color:var(--fg3);margin-top:-6px}
.pmap,.cmap{height:280px;border-radius:14px;border:1px solid var(--line);overflow:hidden;background:var(--panel2)}.cmap{height:380px;margin:0 0 16px}
.pmap.on,.cmap.on{background:#eef0ec}
.hzm-consent{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;text-align:center;font-size:13.5px;color:var(--fg2);box-sizing:border-box;background:repeating-linear-gradient(45deg,#f1f4ef 0 14px,#edf1ea 14px 28px)}
.hzm-consent svg{color:var(--green)}.hzm-consent p{margin:0;max-width:440px}
.hzm-pop{display:flex;flex-direction:column;color:var(--fg)!important;font-size:13px}.hzm-pop b{font-size:14px}
.maplibregl-popup-content{border-radius:12px;padding:10px 14px;box-shadow:0 6px 20px rgba(16,20,24,.2)}
.maplibregl-ctrl-group{border-radius:12px!important;box-shadow:0 2px 10px rgba(16,20,24,.18)!important}
@media (max-width:860px){
 body.mapv .views{display:block}body.mapv #listwrap{display:none}
 body.mapv #mapwrap{position:fixed;inset:56px 0 0 0;z-index:60}
 body.mapv #map{height:100%;min-height:0;border-radius:0;border:0}
 body.mapv .ft{display:none}
 .here{top:12px}
 .pv{left:0;right:0;top:auto;bottom:0;width:auto;max-width:none;border-radius:22px 22px 0 0;padding-bottom:84px;transform:translateY(105%);opacity:1;transition:transform .3s cubic-bezier(.2,.9,.3,1)}
 .pv.on{transform:none}
 .pv .grab{display:block;width:42px;height:5px;border-radius:9px;background:var(--line2);margin:10px auto 0}
 .pv-c{grid-template-columns:96px minmax(0,1fr);flex-basis:calc(100% - 28px);margin-left:0}
 .pv-img{width:96px;height:96px}
}

/* iPhone und iPad: Safari zoomt in jedes Feld mit weniger als 16 px Schrift hinein und bleibt danach hineingezoomt (die ganze Seite
   rutscht zur Seite). Dort sind Eingabefelder deshalb überall mindestens 16 px groß – Desktop und Android bleiben, wie sie sind.
   Ausnahme: das große Betragsfeld im Angebots-Baukasten (22 px). */
@supports (-webkit-touch-callout:none){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]):not([type=image]),textarea,select{font-size:16px!important}
  .ae-z.gross .inp{font-size:22px!important}
}
/* --- app.css --- */
/* MVP-App: Erweiterung der hz3-Designsprache */
.hd .acct{display:inline-flex;align-items:center;gap:8px;margin-left:6px}
.avs{width:34px;height:34px;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center;font:800 13px var(--fd);border:1px solid #cdebdb}
.nav a.on{color:var(--fg);background:var(--panel2)}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:7px;background:var(--mint);color:var(--green)}
.badge.ad{background:var(--ad);color:var(--adtxt);border:1px solid #E6C88F;padding:2px 7px;display:inline-flex}
.badge.demo{background:#FFF1C9;color:#7a4f06}.badge.gray{background:var(--panel2);color:var(--fg2)}.badge.red{background:#FBE3E0;color:#B3261E}.badge.blue{background:#E3EEFB;color:#1F4E8C}
.page{padding:28px 0 64px}.page-h{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.page-h h1{font-size:clamp(26px,3.4vw,38px);margin:0}.page-h p{margin:4px 0 0;color:var(--fg2)}
.muted{color:var(--fg2)}.small{font-size:13.5px}.tiny{font-size:12px;color:var(--fg3)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form{display:flex;flex-direction:column;gap:14px}.form label.l{display:block;font-size:13px;font-weight:700;color:var(--fg2);margin-bottom:6px}
.inp,.ta,.form select{width:100%;padding:12px 14px;border:1px solid var(--line2);border-radius:12px;font:500 15.5px var(--ff);background:#fff;color:var(--fg);outline:0}
.inp:focus,.ta:focus,.form select:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(14,159,110,.15)}
.ta{min-height:130px;resize:vertical;line-height:1.5}
.cb{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--fg2);line-height:1.45}.cb input{width:19px;height:19px;accent-color:var(--green);flex:none;margin-top:1px}
.btn-block{width:100%}.btn-dark{background:#101418;color:#fff}.btn-danger{background:#fff;border-color:#F2C4BE;color:#B3261E}
.btn-google{background:#fff;border:1px solid var(--line2);color:var(--fg);font-weight:700}
.or{display:flex;align-items:center;gap:12px;color:var(--fg3);font-size:13px;margin:4px 0}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}
.auth{max-width:440px;margin:40px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 24px 60px -30px rgba(16,20,24,.35)}
.auth h1{font-size:26px;margin-bottom:6px}.note{background:var(--mint2);border:1px solid #cdebdb;border-radius:12px;padding:12px 14px;font-size:14px;color:#145a40}
.warn{background:var(--ad);border:1px solid #E6C88F;border-radius:12px;padding:12px 14px;font-size:14px;color:var(--adtxt)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}.tabs a{padding:10px 14px;font-weight:600;color:var(--fg2);border-bottom:2px solid transparent;white-space:nowrap}.tabs a.on{color:var(--green);border-color:var(--green)}.tabs a:hover{text-decoration:none;color:var(--fg)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}.kpi b{display:block;font:800 24px var(--fd)}.kpi span{font-size:13px;color:var(--fg2)}
.list{display:flex;flex-direction:column;gap:10px}.li{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--fg)}.li:hover{text-decoration:none;border-color:var(--line2)}.li .grow{flex:1;min-width:0}.li h3{margin:0;font-size:16px}
.mini{width:48px;height:48px;border-radius:12px;flex:none}.mini.av{font-size:17px}
/* calendar */
.cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.calm h4{margin:0 0 8px;font:700 15px var(--fd)}
.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calg .wd{font-size:11px;color:var(--fg3);text-align:center;font-weight:700;padding:2px 0}
.cd{aspect-ratio:1;display:grid;place-items:center;border-radius:9px;font-size:13.5px;font-weight:600;background:var(--mint2);color:var(--green);border:1px solid transparent;position:relative;padding:0;font-family:var(--ff)}
.cd.x{background:repeating-linear-gradient(135deg,#F1F4EF 0 4px,#E6EAE3 4px 8px);color:var(--fg3);text-decoration:line-through}
.cd.past{background:transparent;color:#C9D0C6}.cd.e{background:transparent}.cd.sel{outline:2px solid var(--green);outline-offset:-2px}
.cd.bk{background:#101418;color:#fff;text-decoration:none}.cd.ic{background:#E3EEFB;color:#1F4E8C;text-decoration:none}
button.cd{cursor:pointer}button.cd:hover{border-color:var(--green2)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--fg2);margin-top:10px}.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:6px}
/* inbox */
.inbox{display:grid;grid-template-columns:340px minmax(0,1fr);gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;min-height:620px}
.tl{border-right:1px solid var(--line);overflow:auto;max-height:76vh}.ti{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--fg)}.ti:hover{background:var(--mint2);text-decoration:none}.ti.on{background:var(--mint2);box-shadow:inset 3px 0 0 var(--green)}
.ti .grow{flex:1;min-width:0}.ti b{display:block;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ti small{color:var(--fg3);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv{display:flex;flex-direction:column;min-width:0}.conv-h{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center}.conv-h h2{font-size:18px;margin:0}
.msgs{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px;background:var(--bg);max-height:62vh}
.bub{max-width:76%;padding:10px 14px;border-radius:16px;background:#fff;border:1px solid var(--line);font-size:14.5px;white-space:pre-wrap}.bub.me{align-self:flex-end;background:var(--green);color:#fff;border-color:var(--green)}.bub.sys{align-self:center;background:var(--panel2);color:var(--fg2);font-size:13px;border-radius:10px;text-align:center}
.bub time{display:block;font-size:11px;opacity:.7;margin-top:4px}
.compose{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}.compose .ta{min-height:46px;height:46px}
.offer{align-self:stretch;background:#fff;border:2px solid var(--green2);border-radius:16px;padding:16px 18px;box-shadow:var(--sh)}.offer h3{margin:0 0 4px}
.offer table{width:100%;border-collapse:collapse;font-size:14.5px;margin:10px 0}.offer td{padding:6px 0;border-bottom:1px dashed var(--line)}.offer td:last-child{text-align:right;font-weight:600}.offer tr.sum td{border:0;font-weight:800;font-size:16px}
.offer .acts2{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
/* timeline */
.tline{list-style:none;margin:0;padding:0 0 0 22px;border-left:2px solid var(--line)}.tline li{position:relative;padding:0 0 18px}.tline li:before{content:"";position:absolute;left:-29px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--line2);border:2px solid #fff;box-shadow:0 0 0 1px var(--line2)}
.tline li.done:before{background:var(--green2);box-shadow:0 0 0 1px var(--green2)}.tline li.cur:before{background:#fff;box-shadow:0 0 0 2px var(--green2)}.tline li b{display:block}.tline li span{font-size:13px;color:var(--fg3)}
/* stepper */
.stepper{display:flex;gap:6px;margin-bottom:20px;overflow-x:auto;scrollbar-width:none}.stepper a{flex:1;min-width:110px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--fg2)}
.stepper a i{display:block;font-style:normal;font-size:11px;color:var(--fg3);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.stepper a.on{border-color:var(--green);background:var(--mint2);color:var(--green)}.stepper a.ok{color:var(--fg)}.stepper a.ok i{color:var(--green)}.stepper a:hover{text-decoration:none}
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.plan{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:8px;cursor:pointer}.plan:has(input:checked){border-color:var(--green);box-shadow:0 0 0 3px rgba(14,159,110,.15)}.plan input{accent-color:var(--green)}.plan b{font:800 22px var(--fd)}.plan ul{margin:0;padding-left:18px;font-size:13.5px;color:var(--fg2)}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block;background:var(--panel2)}
.pk{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.pk:last-child{border:0}.pk b{white-space:nowrap}
.sugg{display:grid;grid-template-columns:auto 56px minmax(0,1fr);gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer}.sugg:has(input:checked){border-color:var(--green2);box-shadow:0 0 0 3px rgba(14,159,110,.12)}.sugg input{width:20px;height:20px;accent-color:var(--green)}
.struct{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.struct div{background:var(--panel2);border-radius:12px;padding:10px 12px}.struct small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg3);font-weight:700}.struct b{font-size:15px}
.code{background:#101418;color:#d6f5e7;border-radius:12px;padding:14px 16px;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto;white-space:pre}
.ep{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px;margin-bottom:12px}.ep h3{font-family:ui-monospace,Menlo,monospace;font-size:15px}.m{font-weight:800;font-size:12px;padding:2px 7px;border-radius:6px;margin-right:8px;background:var(--mint);color:var(--green)}.m.post{background:#E3EEFB;color:#1F4E8C}
.tabbar{display:none}
.claimbox{border:1px dashed var(--line2);border-radius:14px;padding:14px 16px;font-size:13.5px;color:var(--fg2);background:var(--panel2)}
.hide-d{display:none}
@media (max-width:860px){
 .page{padding:18px 0 96px}.grid2{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.plans{grid-template-columns:1fr 1fr}.struct{grid-template-columns:1fr 1fr}.gal{grid-template-columns:1fr 1fr}
 .auth{margin:16px auto;border-radius:18px;padding:22px;border:0;box-shadow:none;background:transparent}
 .inbox{grid-template-columns:1fr;min-height:0;border-radius:14px}.inbox.has-conv .tl{display:none}.inbox:not(.has-conv) .conv{display:none}.tl{max-height:none;border-right:0}.msgs{max-height:none;min-height:50vh}
 .bub{max-width:88%}.hd .acct .nm{display:none}
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:75;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
 .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:600;color:var(--fg3);padding:4px 0;position:relative}.tabbar a.on{color:var(--green)}.tabbar a:hover{text-decoration:none}.tabbar svg{width:22px;height:22px}
 .tabbar .cnt{position:absolute;top:0;left:calc(50% + 6px);font-size:10px;padding:0 5px}
 body.has-mobbar .tabbar{display:none}
 .ft{padding-bottom:90px}.hide-m{display:none}.hide-d{display:block}
 .stepper a{min-width:92px}.sugg{grid-template-columns:auto 44px minmax(0,1fr)}
}
/* === MVP-Komponenten (wiederhergestellt) === */
.narrow{max-width:520px}.narrow2{max-width:780px}.in.narrow,.in.narrow2{margin-left:auto;margin-right:auto;padding-top:24px;padding-bottom:64px}
main.in{padding-top:24px;padding-bottom:72px}
.lbl{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--fg2);margin-bottom:12px}.lbl .inp{font-weight:500}
textarea.inp{resize:vertical;line-height:1.5}.sel{padding:8px 10px;border:1px solid var(--line2);border-radius:10px;font:500 14px var(--ff);background:#fff}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.card.row{color:var(--fg)}
.card{margin-bottom:14px}.clamp1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.r{text-align:right}
.err{color:#B3261E}.danger{color:#B3261E}.grey{background:var(--panel2);color:var(--fg2)}.show-m{display:none}
.tab.on,.tabs a.on{color:var(--fg);border-bottom-color:var(--green)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chipc{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:13.5px}
.ki-cta{display:block;margin-top:16px;padding:12px 16px;border-radius:14px;background:#fff;border:1px dashed var(--green2);color:var(--fg);font-size:14.5px;max-width:720px}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
/* Vendor-Karte */
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:16px}
.vc{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;transition:box-shadow .15s}.vc:hover{box-shadow:var(--sh)}.vc.is-ad{border-color:#E6C88F;background:#FFFCF4}
.vc-l{display:flex;gap:14px;padding:14px 48px 14px 14px;color:var(--fg)}.vc-b{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.vc-t{display:flex;gap:8px;align-items:baseline;min-width:0}.vc-t h3{font-size:16px;margin:0}.rk{font:800 13px var(--fd);color:var(--green)}
.vc-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.vc .fav{position:absolute;top:10px;right:10px}
.av{border-radius:14px;object-fit:cover;flex:none;background:var(--panel2)}.av.ini{display:grid;place-items:center;background:var(--mint);color:var(--green);font-family:var(--fd);font-weight:800}
.fav{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#fff;display:inline-grid;place-items:center;cursor:pointer;color:var(--fg3)}.fav svg{width:18px;height:18px}.fav.on{color:var(--star,#E8A317);border-color:#F2D58F;background:#FFF8E6}
.fav.fav-l{width:auto;display:inline-flex;gap:6px;padding:0 12px;font-weight:700;font-size:14px;height:44px}
.stars{display:inline-flex;align-items:center;gap:4px;font-size:13.5px}.st5{position:relative;display:inline-block;color:#E3E6E0;letter-spacing:1px}.st5::before{content:"★★★★★";position:absolute;inset:0;width:var(--p);overflow:hidden;color:var(--star,#E8A317)}
/* Suche */
.sbar{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:8px;margin-bottom:18px}.sbar .inp{padding:10px 12px;font-size:14.5px}
.adbox{border:1px solid #E6C88F;background:#FFFCF4;border-radius:16px;padding:12px;margin:14px 0}.adbox .vgrid{margin:10px 0 0}
.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:20px 0}
.mapd{position:relative;border-radius:16px;overflow:hidden;background:var(--panel2);border:1px solid var(--line);margin-bottom:16px}
.mapc{position:absolute;inset:0;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;text-align:center;padding:16px}.mapc p{width:100%;margin:0}
.pin{width:14px;height:14px;border-radius:50%;background:var(--green);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);display:block}
/* Profil */
.crumbs{margin-bottom:12px}.prof-h{display:flex;gap:18px;align-items:center}.prof-t{flex:1;min-width:0}.prof-t h1{font-size:clamp(24px,3vw,34px);margin:0}
.prof-a{display:flex;gap:8px;align-items:center}.rv{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:14px}
.prof-g{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.sticky{position:sticky;top:84px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:var(--panel2)}
.pks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.pks .pk{flex-direction:column;border:1px solid var(--line);border-radius:12px;padding:12px}.pr{font:800 16px var(--fd);color:var(--green)}.pkrow{display:flex;gap:8px}
.rev{padding:10px 0;border-bottom:1px solid var(--line)}.rev:last-child{border:0}
.mob-cta{display:none}
/* Kalender */
.cal{display:block}.cal.busy{opacity:.7}.calms{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.calm>b{display:block;margin-bottom:6px;font-family:var(--fd)}
.cal-nav{display:flex;justify-content:flex-end;gap:6px;margin-bottom:6px}.cal-wide .calms{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
a.cd.free:hover{border-color:var(--green2);background:var(--mint)}
/* Fakten / Tabellen */
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:12px 0}.facts>div{background:var(--panel2);border-radius:12px;padding:10px 12px}.facts .tiny{display:block;text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl td,.tbl th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tbl th.r,.tbl td.r{text-align:right}.tblw{overflow-x:auto}
.sales-f{display:flex;flex-direction:column;gap:6px;min-width:180px}.item-row{display:flex;gap:6px;margin:6px 0}.item-row .inp{padding:8px 10px;font-size:14px}
/* Postfach */
.inbox{grid-template-columns:320px minmax(0,1fr);gap:16px;background:transparent;border:0;overflow:visible;min-height:0}.inbox .tl{border-right:0;max-height:none}
.tli{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--fg)}.tli:hover,.tli.on{background:var(--mint2)}
.msgs{max-height:none;background:#fff}.msg{max-width:80%;padding:10px 14px;border-radius:16px;border:1px solid var(--line);background:var(--panel2)}.msg p{margin:0;white-space:pre-wrap}
.msg.me{align-self:flex-end;background:var(--green);color:#fff;border-color:var(--green)}.msg.me .tiny{color:#d6f5e7}.msg.sys{align-self:center;background:transparent;border-style:dashed;font-size:13px;color:var(--fg2)}
.send{display:flex;gap:8px;margin-top:8px}.send .inp{flex:1}
.offer{margin-bottom:14px}details.card summary{cursor:pointer}
.steps{display:flex;gap:6px;list-style:none;padding:0;margin:14px 0;counter-reset:s}.steps li{flex:1;font-size:12.5px;font-weight:700;color:var(--fg3);border-top:4px solid var(--line);padding-top:6px}.steps li.done{color:var(--green);border-color:var(--green2)}
.sug{cursor:pointer;justify-content:flex-start}.sug input{width:20px;height:20px;accent-color:var(--green)}
.prose h2{font-size:20px;margin-top:24px}.prose p{line-height:1.6}
.codebox{background:#101418;color:#d6f5e7;border-radius:12px;padding:12px 14px;font:13px/1.5 ui-monospace,Menlo,monospace;overflow:auto;white-space:pre}
.endpoint{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;background:#fff}.meth{font-weight:800;font-size:12px;padding:2px 8px;border-radius:6px;background:var(--mint);color:var(--green)}
.dash-h{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px}
.onb{max-width:820px;margin:0 auto}.claimopt{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;display:block;background:#fff}
.thumb{width:96px;height:72px;object-fit:cover;border-radius:10px}.sm{font-size:13px}.st{font-weight:700}
@media (max-width:860px){
 .sbar{grid-template-columns:1fr 1fr}.sbar .inp:first-child{grid-column:1/-1}.sbar .btn{grid-column:1/-1}
 .vgrid{grid-template-columns:1fr}.prof-g{grid-template-columns:1fr}.sticky{position:static}.prof-h{flex-wrap:wrap}.prof-a{width:100%}.prof-a .btn{flex:1}
 .gallery{grid-template-columns:1fr 1fr}.inbox{grid-template-columns:1fr}.show-m{display:inline}
 .mob-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fff;border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:12px}
 .mob-cta>div{display:flex;flex-direction:column}.prof{padding-bottom:110px}
 body:has(.mob-cta) .tabbar{display:none}
  .grid3{grid-template-columns:1fr!important}.msg{max-width:92%}.steps li{font-size:11px}
}
.sbar>*{min-width:0;width:100%}.page-h{flex-wrap:wrap}.page-h>div{min-width:0}.page-h h1{overflow-wrap:anywhere}
html,body{overflow-x:clip}
.vgrid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}.vc,.vc-l{min-width:0}.vc-t h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* Vertrauens-Layer (Buchungsschutz, Portfolio, Vergleich) */
.badge.ok{background:var(--mint);color:var(--green)}
.shield{border:1px solid #cdebdb;background:linear-gradient(180deg,var(--mint),#fff);border-radius:14px;padding:16px 18px;margin:0 0 16px}.shield h2,.shield h3{margin:0 0 6px;font-size:17px}.shield p{margin:4px 0}
.trustsec{max-width:1180px;margin:40px auto;padding:0 20px}.trustsec h2{margin:0 0 6px}
.tgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px}
.tcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.tcard b{display:block;margin:6px 0 4px}.tcard p{margin:0}
.tic{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--mint);color:var(--green);font-weight:800}
.trustmini{border:1px solid #cdebdb;background:var(--mint);border-radius:12px;padding:12px 14px;margin-top:14px;font-size:14px}.trustmini ul{list-style:none;padding:0;margin:8px 0}.trustmini li{display:flex;gap:8px;margin:4px 0}.trustmini li span{width:18px;text-align:center}
.emb{margin:0;border-radius:12px;overflow:hidden;background:var(--panel2);border:1px solid var(--line)}.emb iframe{width:100%;aspect-ratio:16/9;border:0;display:block}.emb figcaption{padding:6px 10px}
.emb-ph{aspect-ratio:16/9;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:16px}.emb-ph p{margin:0}
.vids-sec:not(:has(.vids figure)){display:none}/* alle Instagram-Beiträge ausgeblendet (Einbettung bei Instagram aus) → kein leerer Bereich */
.vids{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.vids video{width:100%;border-radius:12px;background:#000;aspect-ratio:16/9}
.dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:8px 0}.dl dt{color:var(--fg2);font-size:14px}.dl dd{margin:0;font-weight:600}
.alts{display:grid;gap:8px;margin-top:8px}.alts a{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.subr{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--fg2)}
.reply{border-left:3px solid var(--green);padding:6px 10px;background:var(--panel2);border-radius:0 8px 8px 0}
.accept{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2);margin-top:10px}
.chk{display:flex;gap:8px;align-items:flex-start;margin:10px 0}.chk input{margin-top:3px;width:18px;height:18px;flex:none}
.flow{list-style:none;padding:0;counter-reset:f;display:grid;gap:10px}.flow li{counter-increment:f;position:relative;padding:12px 14px 12px 50px;background:#fff;border:1px solid var(--line);border-radius:12px}.flow li:before{content:counter(f);position:absolute;left:14px;top:12px;width:26px;height:26px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pfm{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:14px}.pfi img,.pfi video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}.pfi form{margin-top:6px;gap:6px}
.case{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0}
.tbl.cmp th,.tbl.cmp td{vertical-align:top;min-width:170px}
@media (max-width:860px){.g3{grid-template-columns:1fr}.tgrid{grid-template-columns:1fr 1fr}.trustsec{margin:28px auto}.dl{grid-template-columns:1fr}.dl dd{margin-bottom:6px}.shield{padding:14px}}
@media (max-width:520px){.tgrid{grid-template-columns:1fr}}
ul.dl{display:block;list-style:none;padding:0}ul.dl li{display:flex;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}ul.dl li b{flex:none;min-width:96px}ul.dl li.done{opacity:.6}
@media (max-width:860px){.card .row{flex-wrap:wrap;gap:8px}.badge{white-space:normal;max-width:100%}h1{overflow-wrap:anywhere}.steps{flex-wrap:wrap}.steps li{flex:1 1 40%}main{overflow-x:clip}}
@media (max-width:860px){.btn{white-space:normal;text-align:center;height:auto;min-height:40px}}
/* ===== v6: Suche im Vergleichsportal-Stil, Konto, Portfolio-Modal ===== */
.srch{padding-top:18px}
.sbar2{display:grid;grid-template-columns:2fr 1fr 1.2fr auto;gap:10px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:var(--sh)}
.sbar2 label{display:flex;flex-direction:column;gap:3px}.sbar2 .tiny{font-weight:700;padding-left:4px}.sbar2 .btn{height:48px;gap:6px}
.sgrid{display:grid;grid-template-columns:270px 1fr;gap:22px;margin-top:20px;align-items:start}
.filters{position:sticky;top:80px;display:flex;flex-direction:column;gap:12px}
.fcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:14px}
.fcard fieldset{border:0;border-top:1px solid var(--line);padding:12px 0 0;margin:0;display:flex;flex-direction:column;gap:6px}.fcard legend{font-weight:800;font-size:14px;padding:0 0 4px;float:left;width:100%}
.fcard .inp{padding:9px 11px;font-size:14.5px}.rad{display:flex;gap:8px;align-items:center;font-size:14.5px;cursor:pointer}.rad input{accent-color:var(--green);width:17px;height:17px}
.f-h{display:flex;justify-content:space-between;align-items:center;gap:8px}.f-x{display:none;cursor:pointer;font-size:18px}
.rhead h1{font-size:26px;margin:0 0 2px}
.sortbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0 8px;padding:8px 0;border-bottom:1px solid var(--line)}
.sortf{display:flex;gap:8px;align-items:center;margin-right:auto}.sel{padding:8px 34px 8px 12px;font-size:14.5px;width:auto;font-weight:700}
.sortbar .btn{gap:6px}.sortbar .btn svg{width:16px;height:16px}.fbtn{display:none}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}.chip{padding:6px 12px;border-radius:999px;border:1px solid var(--line2);background:#fff;font-size:13.5px;font-weight:600;color:var(--fg)}.chip.on{background:var(--fg);color:#fff;border-color:var(--fg)}.chip.on .tiny{color:#ddd}.chip:hover{text-decoration:none;border-color:var(--fg)}
.rnote{margin:0 0 10px}.rlist{display:flex;flex-direction:column;gap:14px}.mapbox{margin-bottom:14px;border-radius:16px;overflow:hidden}
.adbox{border:1px solid #E6C88F;background:#FFFCF4;border-radius:18px;padding:10px;margin-bottom:14px;display:flex;flex-direction:column;gap:10px}
.show-m{display:none}.savebox{margin-top:18px}
/* Ergebniskarte horizontal */
.vc{display:grid;grid-template-columns:260px 1fr 210px;gap:0;overflow:hidden;border-radius:16px;min-height:190px}
.vc-img{position:relative;background:var(--panel2);min-height:190px}
.vc-gal{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.vc-gal::-webkit-scrollbar{display:none}
.vc-gal a{flex:0 0 100%;scroll-snap-align:start}.vc-gal img{width:100%;height:100%;object-fit:cover;display:block}
.vc-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--fg3);background:linear-gradient(135deg,#eef4f0,#f7f3ea)}.vc-ph span{font:800 34px var(--fd);color:var(--green)}.vc-ph small{font-size:12px}
.vc-cnt{position:absolute;bottom:8px;left:8px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;font-weight:700;border-radius:8px;padding:3px 7px;display:flex;gap:4px;align-items:center}.vc-cnt svg{width:13px;height:13px}
.vc-flag{position:absolute;top:8px;left:8px;background:#fff;color:var(--green);font:800 13px var(--fd);border-radius:8px;padding:3px 8px;box-shadow:0 1px 4px rgba(0,0,0,.15)}.vc-flag.ad{background:var(--ad);color:var(--adtxt);border:1px solid #E6C88F;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.vc .fav{position:absolute;top:8px;right:8px;border-radius:50%;background:rgba(255,255,255,.95);border:0;box-shadow:0 1px 4px rgba(0,0,0,.2)}.vc .fav.on{color:#E0245E;background:#fff}
.fav.on{color:#E0245E;border-color:#F5B5C8;background:#FFF0F4}
.vc-b{padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.vc-n{color:var(--fg)}.vc-n h3{font-size:18px;margin:0;line-height:1.25}.vc-n:hover{text-decoration:none}.vc-n:hover h3{text-decoration:underline}
.vc-m{display:flex;gap:4px;align-items:center;color:var(--fg2)}.vc-m svg{width:15px;height:15px}
.vc-f{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13.5px;color:var(--fg2)}.vc-f li{display:flex;gap:6px;align-items:center}.vc-f svg{width:14px;height:14px;color:var(--green)}
.vc-r{border-left:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:10px;justify-content:space-between;background:#FCFCFA}
.vc.is-ad .vc-r{background:#FFF9EA}
.vc-rt{display:flex;gap:8px;align-items:center}.vc-rt .sc{background:var(--green);color:#fff;font:800 16px var(--fd);border-radius:10px 10px 10px 2px;padding:6px 8px;min-width:44px;text-align:center}.vc-rt b{display:block;font-size:14px}.vc-rt .tiny{display:block}
.vc-p{display:flex;flex-direction:column;text-align:right}.vc-p b{font:800 22px var(--fd);color:var(--fg)}
.vc-a{display:flex;flex-direction:column;gap:6px}.vc-a .btn{width:100%;justify-content:center;gap:6px}.vc-a .btn svg{width:15px;height:15px}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Pager */
.pager{display:flex;gap:6px;justify-content:center;align-items:center;margin:22px 0}.pg{min-width:40px;height:40px;display:inline-grid;place-items:center;border-radius:10px;border:1px solid var(--line2);background:#fff;font-weight:700;color:var(--fg)}.pg.on{background:var(--green);border-color:var(--green);color:#fff}.pg.off{color:var(--fg3);border-color:transparent;background:transparent}.pg:hover{text-decoration:none}
/* Konto */
.tabs .cnt{margin-left:6px}
.req{display:flex;gap:14px;align-items:center;color:var(--fg)}.req:hover{text-decoration:none;box-shadow:var(--sh)}.req-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.req-t{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.req-o{text-align:right;display:flex;flex-direction:column}.req-o b{font:800 18px var(--fd)}
.pill{font-size:12px;font-weight:800;border-radius:999px;padding:2px 9px;background:var(--panel2);color:var(--fg2)}.p-offen{background:#E3EEFB;color:#1F4E8C}.p-beantwortet{background:#EDE7FB;color:#4B2E9E}.p-angebot{background:#FFF1C9;color:#7a4f06}.p-gebucht{background:var(--mint);color:var(--green)}.p-abgelehnt{background:#FBE3E0;color:#B3261E}
/* Portfolio-Modal */
.pm{border:0;padding:0;border-radius:20px;width:min(980px,96vw);height:min(88vh,900px);max-height:none;box-shadow:0 30px 80px rgba(0,0,0,.35)}.pm::backdrop{background:rgba(15,20,18,.6)}
.pm-in{display:flex;flex-direction:column;height:100%}
.pm-h{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.pm-h div{display:flex;flex-direction:column;min-width:0}.pm-x{border:0;background:var(--panel2);width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:16px;flex:none}
.seg{display:flex;gap:4px;padding:10px 18px 0}.seg button{border:1px solid var(--line2);background:#fff;border-radius:999px;padding:7px 14px;font-weight:700;cursor:pointer}.seg button.on{background:var(--fg);color:#fff;border-color:var(--fg)}
.pm-b{flex:1;min-height:0;padding:12px 18px;display:flex}.pm-f{flex:1;width:100%;border:1px solid var(--line);border-radius:12px;background:#fff}
.pm-c{margin:auto;max-width:460px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center;padding:20px}
.pm-cta{padding:12px 18px 16px;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#FCFCFA}.pm-cta .btn{gap:8px}.pm-cta .btn svg{width:18px;height:18px}
/* Portfolio-Modal kompakt (ohne Website-Vorschau): Karten statt leerem Fenster; mobil als Blatt von unten */
.pm.pm-kompakt{height:fit-content;max-height:88vh;width:min(760px,96vw)}.pm-kompakt .pm-in{height:auto} /* fit-content: der modale Dialog ist oben/unten verankert und würde mit auto die ganze Höhe füllen */
.pm-karten{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;padding:18px}
.pm-karten[data-anzahl="1"]{grid-template-columns:minmax(0,480px);justify-content:center}
.pm-karte{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;min-width:0;max-width:100%}
.pm-karte b{max-width:100%}.pm-karte p{margin:0;line-height:1.5}.pm-karte>.btn,.pm-karte>.pm-knoepfe{margin-top:auto}
.pm-knoepfe{display:flex;gap:8px;flex-wrap:wrap}
.pm-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--mint);color:var(--green);flex:none}.pm-ig .pm-ico{background:#FBEAF1;color:#B4366B}
@media (max-width:860px){.pm.pm-kompakt{width:100vw;max-width:100vw;height:fit-content;max-height:92dvh;margin:auto 0 0;border-radius:20px 20px 0 0}.pm-karten{padding:12px;gap:10px}.pm-karte{padding:16px}}
.prof-a .btn svg{width:16px;height:16px}.prof-a .btn{gap:6px}
@media (max-width:980px){.vc{grid-template-columns:220px 1fr}.vc-r{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);flex-direction:row;flex-wrap:wrap;align-items:center}.vc-a{flex-direction:row;margin-left:auto}.vc-a .btn{width:auto}.vc-p{text-align:left}}
@media (max-width:860px){
.sbar2{grid-template-columns:1fr 1fr;padding:10px}.sbar2 label:first-child{grid-column:1/-1}.sbar2 .btn{grid-column:1/-1}
.sgrid{grid-template-columns:1fr;margin-top:12px}
.filters{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:60;max-height:86vh;overflow:auto;background:var(--bg,#fff);border-radius:20px 20px 0 0;padding:12px;transform:translateY(105%);transition:transform .25s;box-shadow:0 -10px 40px rgba(0,0,0,.25)}
.fs-t:checked~.sgrid .filters{transform:none}.f-x{display:block}
.fs-bg{display:none}.fs-t:checked~.fs-bg{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:59}
.fbtn{display:inline-flex}.sortbar{position:sticky;top:60px;z-index:5;background:var(--bg,#fff);margin:8px -16px;padding:8px 16px}.sortf{margin-right:0}.hide-m{display:none}.show-m{display:inline}
.rhead h1{font-size:21px}
.vc{grid-template-columns:1fr;min-height:0}.vc-img{min-height:0;aspect-ratio:16/10}.vc-r{padding:10px 14px 14px}.vc-a{width:100%;margin:0}.vc-a .btn{flex:1}
.req{flex-wrap:wrap}.req-o{flex-direction:row;gap:8px;align-items:baseline;width:100%;justify-content:flex-start}
.pm{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.pm-b{padding:8px}.pm-cta .btn{width:100%;justify-content:center}
.pager .pg{min-width:36px;height:36px}}
/* v7 Angebots-Assistent */
.as-fab{position:fixed;right:20px;bottom:20px;z-index:80;border:0;border-radius:999px;background:var(--green);color:#fff;font-weight:700;padding:12px 18px;box-shadow:0 8px 24px rgba(0,0,0,.18);cursor:pointer;font-size:15px}
.as-bg{display:none}
.as{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;z-index:90;background:#fff;box-shadow:-12px 0 40px rgba(0,0,0,.16);display:flex;flex-direction:column;animation:asin .25s ease-out}
@keyframes asin{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.as-h{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.as-h div{display:flex;flex-direction:column}
.as-x{border:0;background:none;font-size:18px;cursor:pointer;padding:8px;min-width:40px;min-height:40px}
.as-body{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#F7F8F6}
.as-m{max-width:85%;padding:10px 14px;border-radius:16px;font-size:15px;line-height:1.45;white-space:pre-wrap}
.as-m.bot{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.as-m.me{background:var(--green);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.as-typing{letter-spacing:3px;color:var(--fg3)}
.as-sum{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:8px}.as-sum>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:6px}.as-sum b{text-align:right}
.as-in{border-top:1px solid var(--line);padding:10px 12px;background:#fff}
.as-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.as-chips .chip{cursor:pointer;font:inherit;font-size:14px;min-height:36px}
.as-f{display:flex;gap:6px}.as-f .inp{flex:1;min-width:0;font-size:16px}
.as-mic{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:44px;cursor:pointer;font-size:18px}.as-mic.on{background:#FDECEC;border-color:#E25555;animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.55}}
.as-ft{padding:6px 14px calc(8px + env(safe-area-inset-bottom));margin:0;background:#fff}
@media (max-width:760px){
 .as-fab{bottom:calc(72px + env(safe-area-inset-bottom));right:12px;padding:11px 15px}
 .as-bg{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:89}
 .as{top:auto;left:0;width:100%;height:82vh;height:82dvh;border-radius:18px 18px 0 0;animation:asup .25s ease-out}
 @keyframes asup{from{transform:translateY(40px)}to{transform:none}}
}
/* Suchauftrag / Vergleich / Kostenrechner */
.sa-form{display:grid;gap:14px}.chip.ck{cursor:pointer}.chip.ck input{margin-right:4px}
.cmp-wrap{overflow-x:auto;margin:16px 0;-webkit-overflow-scrolling:touch}.cmp{border-collapse:collapse;min-width:100%;background:#fff;border-radius:12px}
.cmp th,.cmp td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;min-width:170px}.cmp thead th{display:table-cell}.cmp thead th>*{vertical-align:middle}.cmp th[scope=row]{min-width:120px;font-size:13px;color:var(--fg3);position:sticky;left:0;background:#fff}
.kr{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:start}.kr-res{position:sticky;top:80px}
.kr-big{font-size:30px;font-weight:800;color:var(--green);margin:6px 0}.kr-lines{list-style:none;padding:0;margin:10px 0}.kr-lines li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:14px}
.kr-src{font-size:12px}.kr-f label{display:flex;align-items:center;gap:8px;padding:6px 0}
@media (max-width:760px){.kr{grid-template-columns:1fr}.kr-res{position:static}.kr-big{font-size:26px}}
/* Consent-Banner */
.consent{position:fixed;left:12px;right:12px;bottom:12px;z-index:9999;max-width:720px;margin:0 auto;background:#fff;border:1px solid #ddd;border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.15);padding:14px 16px}
.consent-opts{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0}.consent-opts label{display:flex;gap:6px;align-items:center}
.consent-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.linkbtn{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
@media(max-width:640px){.consent{bottom:72px}.consent-btns .btn{flex:1 1 100%}}
.linkbtn{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
.linkbtn{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}
/* --- v7.css --- */
/* v7 Design-Layer: selbst gehostete Plus Jakarta Sans (variabel), Header wie Marktplatz-Apps, Auth-Modal */
@font-face{font-family:"Jakarta";src:url(/assets/jakarta-var.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{--ff:"Jakarta",system-ui,-apple-system,"Segoe UI",sans-serif;--fd:"Jakarta",system-ui,sans-serif;--bg:#FAFAF8;--line:#E6E8E3;--fg:#15181B;--fg2:#4D5660;--r:18px;--rb:12px;--sh:0 1px 2px rgba(16,20,24,.05),0 10px 30px -18px rgba(16,20,24,.28)}
body{font-size:15.5px;letter-spacing:0;word-spacing:.04em;-webkit-font-smoothing:antialiased}
h1,h2,h3{letter-spacing:-.025em}
.card{border-radius:var(--r);border-color:var(--line);box-shadow:var(--sh)}
.btn{border-radius:12px;font-weight:700;letter-spacing:-.01em;transition:transform .12s,box-shadow .12s,background .12s}
.btn:active{transform:scale(.98)}.btn-p{box-shadow:0 6px 16px -8px rgba(11,122,85,.6)}
.inp{border-radius:12px}
/* Header */
.hd.hd2{background:rgba(255,255,255,.94);border-bottom:1px solid var(--line)}
.hd2 .in{height:76px;display:flex;align-items:center;gap:18px}
.hd2 .logo .wm{font-size:17px}
.hpill{flex:1;max-width:460px;margin:0 auto;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:6px 6px 6px 18px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06),0 6px 18px -10px rgba(0,0,0,.25);transition:box-shadow .15s}
.hpill:hover,.hpill:focus-within{box-shadow:0 2px 4px rgba(0,0,0,.08),0 10px 26px -10px rgba(0,0,0,.3)}
.hpill input{flex:1;border:0;outline:0;font:500 14.5px var(--ff);background:transparent;min-width:0;color:var(--fg)}
.hpi{display:none;color:var(--fg3)}
.hpb{border:0;width:38px;height:38px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;cursor:pointer}.hpb svg{width:16px;height:16px}
.hact{display:flex;align-items:center;gap:6px}
.hcta{font-weight:700;font-size:14.5px;color:var(--fg);padding:10px 14px;border-radius:999px;white-space:nowrap}.hcta:hover{background:var(--panel2);text-decoration:none}
.hico{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:var(--fg)}.hico:hover{background:var(--panel2)}.hico svg{width:19px;height:19px}
.hico .cnt{position:absolute;top:2px;right:0;font-size:10px;padding:0 5px}
.hmenu{position:relative}.hmenu summary{list-style:none;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;padding:5px 5px 5px 12px;cursor:pointer;background:#fff;position:relative}
.hmenu summary::-webkit-details-marker{display:none}.hmenu summary:hover{box-shadow:0 2px 10px rgba(0,0,0,.12)}
.hbars{display:grid;gap:3px}.hbars i{display:block;width:15px;height:2px;border-radius:2px;background:var(--fg)}
.hmenu .avs{width:32px;height:32px}.avs0{background:#717171;color:#fff;border:0}.avs0 svg{width:18px;height:18px}
.hmenu .dot{position:absolute;top:3px;right:3px;width:9px;height:9px;border-radius:50%;background:#E0475B;border:2px solid #fff}
.hdd{position:absolute;right:0;top:calc(100% + 10px);width:250px;background:#fff;border-radius:16px;box-shadow:0 2px 16px rgba(0,0,0,.14);padding:8px 0;z-index:95;display:flex;flex-direction:column}
.hdd a,.hdd button{display:flex;justify-content:space-between;padding:11px 18px;color:var(--fg);font:500 14.5px var(--ff);background:none;border:0;text-align:left;width:100%;cursor:pointer}
.hdd a:hover,.hdd button:hover{background:var(--panel2);text-decoration:none}.hdd hr{border:0;border-top:1px solid var(--line);margin:6px 0}.hdd form{margin:0}
@media(max-width:860px){.hd2 .in{height:60px;gap:10px}.hpill{display:none}.hcta,.hd2 .hico{display:none}.hd2 .hact{margin-left:auto}.hd2 .logo .wm{font-size:15.5px}.hd2 .logo .lm{width:30px;height:30px}}
@media(max-width:860px){.tabbar{display:flex}.tabbar a{font-size:11px}.tabbar svg{width:22px;height:22px}}
/* Auth-Modal */
.am-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:120;display:grid;place-items:center;animation:amf .18s}
.am{width:min(560px,100vw);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:amu .22s}
.am-h{position:relative;text-align:center;padding:18px;border-bottom:1px solid var(--line);font-size:16px}
.am-x{position:absolute;left:12px;top:50%;transform:translateY(-50%);border:0;background:none;font-size:26px;width:36px;height:36px;border-radius:50%;cursor:pointer}.am-x:hover{background:var(--panel2)}
.am-b{padding:24px}.am-b h3{font-size:22px;margin-bottom:16px}
.am-mail{display:grid;gap:10px;margin-top:14px}.am-mail .inp{height:52px}.am-mail .btn{height:50px}
.am-or{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--fg3);font-size:13px}.am-or::before,.am-or::after{content:"";flex:1;border-top:1px solid var(--line)}
.am-soc{width:100%;display:flex;align-items:center;gap:12px;padding:13px 18px;border:1px solid var(--fg);border-radius:12px;background:#fff;font:600 15px var(--ff);margin-bottom:10px;cursor:pointer;color:var(--fg)}
.am-soc span{flex:1;text-align:center}.am-soc em{color:#B4232F;font-style:normal}.am-soc:disabled{opacity:.55;cursor:not-allowed}
.am-agb{font-size:13px}.am-fine{margin-top:12px;text-align:center}
@keyframes amf{from{opacity:0}}@keyframes amu{from{transform:translateY(24px);opacity:0}}
@media(max-width:640px){.am-bg{place-items:end stretch}.am{width:100vw;border-radius:22px 22px 0 0;max-height:94vh}}
.avs{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;overflow:hidden}
/* --- v8.css --- */
.am-names{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.am-mail .am-agb{margin:10px 0}.am-soc-agb{margin:0 0 8px}
.as-who{display:flex;gap:10px;align-items:center}.as-who>div{display:flex;flex-direction:column}.as-av{border-radius:50%;flex:none;object-fit:cover;box-shadow:0 0 0 2px #fff}.as-av.sm{width:28px;height:28px;align-self:flex-end}
.as-row{display:flex;gap:8px;align-items:flex-end}.as-row .as-m{margin:0}
.as-typing{display:inline-flex;gap:4px;padding:12px 14px}.as-typing i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4;animation:asdot 1.2s infinite}.as-typing i:nth-child(2){animation-delay:.2s}.as-typing i:nth-child(3){animation-delay:.4s}
@keyframes asdot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}
/* v8 home */
.h8{position:relative;min-height:min(86vh,760px);display:flex;align-items:center;color:#fff;overflow:hidden}
.h8-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.h8-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,16,.55) 0%,rgba(10,20,16,.15) 55%,transparent 75%),linear-gradient(180deg,rgba(20,14,12,.25) 0%,rgba(20,14,12,.35) 45%,rgba(20,14,12,.7) 100%)}
.h8-in{position:relative;z-index:1;width:100%;padding-top:64px;padding-bottom:64px}
.h8 h1{font-size:clamp(2rem,5vw,3.6rem);line-height:1.08;max-width:15ch;margin:0 0 14px;letter-spacing:-.02em;text-shadow:0 2px 24px rgba(0,0,0,.35);color:#fff}
.h8-lead{font-size:clamp(1rem,1.6vw,1.2rem);max-width:52ch;opacity:.95;margin:0 0 26px}
.h8-box{display:grid;grid-template-columns:1.4fr 1fr auto;gap:0;background:#fff;border-radius:18px;padding:8px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-width:860px;color:var(--fg)}
.h8-box .fld{display:flex;flex-direction:column;padding:8px 16px;border-right:1px solid #eee}.h8-box .fld:nth-child(2){border-right:0}
.h8-box label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--fg3)}
.h8-box input{border:0;outline:0;font-size:1.05rem;padding:4px 0;background:transparent;color:inherit;min-width:0}
.h8-cta{border-radius:12px;padding:0 28px;font-size:1.05rem;min-height:56px}
.h8-trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:.92rem;opacity:.92}
.h8-credit{position:absolute;right:12px;bottom:8px;z-index:1;opacity:.7;margin:0;color:#fff}
.h8-t{text-align:center;font-size:clamp(1.5rem,3vw,2.1rem);margin:0 0 28px}
.h8-why{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.h8-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 6px 24px rgba(60,30,20,.05)}
.h8-card h3{margin:12px 0 6px;font-size:1.05rem}.h8-ic{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--mint);color:var(--green);font-size:1.25rem}
.sec-alt{background:var(--panel2)}
.h8-cities{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.h8-city{display:flex;flex-direction:column;padding:18px;border-radius:16px;background:#fff;border:1px solid var(--line);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}.h8-city:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(60,30,20,.08)}
.h8-city span{font-size:.85rem;color:var(--fg3)}
.h8-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}
.h8-steps li{text-align:center;padding:10px 18px}.h8-n{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--green);color:#fff;font-weight:700;font-size:1.15rem}
.h8-duo{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.h8-tease{display:block;padding:28px;border-radius:20px;background:linear-gradient(135deg,var(--mint),#fff 70%);border:1px solid var(--line);text-decoration:none;color:inherit}.h8-tease h3{margin:6px 0 8px;font-size:1.3rem}.h8-tease b{color:var(--green)}
.h8-as{display:flex;gap:18px;align-items:center;padding:24px 28px;border-radius:20px;background:#0f2a20;color:#fff}.h8-as .muted{color:#cfe3d8}.h8-as>div{flex:1}.h8-as h3{margin:0 0 4px;color:#fff}
@media (max-width:900px){.h8-why{grid-template-columns:1fr 1fr}.h8-steps{grid-template-columns:1fr}}
@media (max-width:700px){.h8{min-height:auto}.h8-in{padding-top:44px;padding-bottom:40px}.h8-box{grid-template-columns:1fr;padding:6px}.h8-box .fld{border-right:0;border-bottom:1px solid #eee}.h8-cta{margin:6px 0 0}.h8-why,.h8-duo{grid-template-columns:1fr}.h8-as{flex-direction:column;text-align:center}}
/* --- v9.css --- */
/* v9: mobile App-Shell (nur <768px) */
.mtop,.mtabs,.as-fab-m{display:none}
.as-fab{display:inline-flex;align-items:center;gap:8px}.as-fab-av{width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.7);margin:-4px 0 -4px -8px}
@media(max-width:767.98px){
 .hd,.tabbar{display:none!important}
 body{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
 .mtop{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:70;padding:calc(8px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));background:rgba(247,248,245,.88);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(220,225,219,.7)}
 .mt-l,.mt-r{display:flex;gap:8px;min-width:96px}.mt-r{justify-content:flex-end}
 .mt-btn{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--fg);box-shadow:0 1px 2px rgba(16,20,24,.05);cursor:pointer;list-style:none}
 .mt-btn::-webkit-details-marker{display:none}.mt-btn:hover{text-decoration:none;border-color:var(--green2)}.mt-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}
 .mt-dot{position:absolute;top:8px;right:9px;width:9px;height:9px;border-radius:50%;background:#E0435A;border:2px solid #fff}
 .mt-logo{display:flex;align-items:center;gap:7px;color:var(--fg);font-family:var(--fd);font-weight:800;font-size:15px;line-height:1.05;letter-spacing:-.01em}.mt-logo:hover{text-decoration:none}
 .mt-logo span{display:flex;flex-direction:column}.mt-logo small{font-size:10px;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.12em}
 .mt-prof{position:relative}.mt-prof[open]>summary{border-color:var(--green);color:var(--green)}
 .mt-prof[open]::before{content:"";position:fixed;inset:0;background:rgba(16,20,24,.25);z-index:-1}
 .mt-sheet{position:fixed;left:10px;right:10px;top:calc(64px + env(safe-area-inset-top));background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 48px rgba(16,20,24,.22);padding:8px;display:flex;flex-direction:column;z-index:90}
 .mt-sheet a,.mt-sheet button{display:flex;justify-content:space-between;align-items:center;min-height:46px;padding:0 14px;border-radius:12px;color:var(--fg);font-weight:600;font-size:15px;background:none;border:0;width:100%;text-align:left;font-family:inherit;cursor:pointer}
 .mt-sheet a:hover,.mt-sheet button:hover{background:var(--mint2);text-decoration:none}
 .mt-who{padding:10px 14px 12px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column}
 .mtabs{display:flex;position:fixed;z-index:75;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));padding:6px;border-radius:30px;background:rgba(255,255,255,.78);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);border:1px solid rgba(220,225,219,.9);box-shadow:0 10px 30px -8px rgba(16,20,24,.28)}
 .mtabs a{flex:1;min-width:0;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:24px;color:var(--fg2);font-size:10.5px;font-weight:700;position:relative;white-space:nowrap}
 .mtabs a span{overflow:hidden;text-overflow:ellipsis;max-width:100%}
 .mtabs a:hover{text-decoration:none}.mtabs a.on{color:var(--green);background:var(--mint)}
 .mtabs a:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
 .mt-cnt{position:absolute;top:4px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--green);color:#fff;font-size:10px;line-height:17px;text-align:center}
 .as-fab{right:max(12px,env(safe-area-inset-right))!important;bottom:calc(86px + env(safe-area-inset-bottom))!important;padding:7px 16px 7px 8px!important;min-height:46px;background:linear-gradient(135deg,var(--green),var(--green2));box-shadow:0 10px 26px -6px rgba(11,122,85,.55);font-size:14.5px}
 .as-fab-av{margin:0;width:32px;height:32px}.as-fab-d{display:none}.as-fab-m{display:inline}
 body:has(.cbar) .as-fab,body:has(.mob-cta) .as-fab{display:none}
 .mob-cta{left:10px!important;right:10px!important;bottom:calc(84px + env(safe-area-inset-bottom))!important;border:1px solid var(--line);border-radius:18px;padding:10px 12px 10px 16px!important;box-shadow:0 10px 26px -10px rgba(16,20,24,.3)}
 .prof{padding-bottom:90px}
 .as{z-index:95}
}
.as-fab-ic{position:relative;display:inline-flex}.as-fab-ic svg{position:absolute;right:-5px;top:-5px;color:#F7D57A;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}
@media(max-width:767.98px){.as-fab{border-radius:999px;border:1.5px solid rgba(255,255,255,.55)!important;background:linear-gradient(120deg,#0B7A55 0%,#0E9F6E 55%,#3FBF8F 100%)!important;font-weight:800;letter-spacing:.005em;box-shadow:0 0 0 3px rgba(14,159,110,.18),0 12px 28px -8px rgba(11,122,85,.6)!important}}
@media(max-width:767.98px){.mt-logo{font-size:13.5px;gap:6px;min-width:0}.mt-logo img{width:26px;height:26px}.mt-l,.mt-r{min-width:96px;flex:0 0 auto}}
@media(max-width:360px){.mt-logo span{display:none}}
@media(max-width:767.98px){.mtop{display:grid;grid-template-columns:96px minmax(0,1fr) 96px;gap:4px}.mt-logo{justify-self:center;overflow:hidden}.mt-logo span{font-size:13px}}
/* --- v10.css --- */
.v10-mini{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.v10-mini li{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid #ecefe9;border-radius:18px;padding:16px}
.v10-mini h3{margin:2px 0 4px;font-size:1.02rem}.v10-mini p{margin:0}.v10-mini .h8-n{flex:none;width:38px;height:38px;font-size:1rem}
.v10-more{text-align:center;margin:16px 0 0}.v10-more a{font-weight:700;color:var(--green)}
.v10-easy{padding-top:28px}
.v10-hero{background:linear-gradient(160deg,#eef7f1,#fbf6f0);padding:44px 0 34px;text-align:center}
.v10-kick{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);background:#fff;border-radius:99px;padding:6px 12px}
.v10-hero h1{font-size:clamp(1.7rem,4.5vw,2.8rem);line-height:1.12;margin:14px auto 10px;max-width:20ch}
.v10-lead{font-size:1.08rem;margin:0 auto 16px;max-width:44ch;color:var(--fg2,#444)}
.v10-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.v10-pills span{background:#fff;border-radius:99px;padding:6px 12px;font-size:.88rem;font-weight:600}
.v10-steps{list-style:none;padding:0;margin:0 auto;max-width:760px;display:grid;gap:16px}
.v10-step{display:flex;gap:16px;background:#fff;border:1px solid #ecefe9;border-radius:20px;padding:20px;box-shadow:0 6px 24px rgba(20,40,30,.05)}
.v10-step .h8-n{flex:none}.v10-step h2{font-size:1.2rem;margin:4px 0 6px}.v10-step p{margin:0 0 8px}
.v10-step ul{margin:0;padding:0;list-style:none}.v10-step ul li{padding-left:22px;position:relative;margin:4px 0;font-size:.95rem}.v10-step ul li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}
.v10-safe{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.v10-faq details{border-bottom:1px solid #e6e9e4;padding:4px 0}.v10-faq summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center;list-style:none}
.v10-faq summary::-webkit-details-marker{display:none}.v10-faq summary:after{content:"+";margin-left:auto;font-size:1.3rem;color:var(--green)}.v10-faq details[open] summary:after{content:"–"}
.v10-faq p{margin:0 0 12px}
.v10-cta{text-align:center;background:linear-gradient(135deg,#1f7a55,#2f9c6f);color:#fff;border-radius:24px;padding:30px 20px}.v10-cta h2{color:#fff;margin:0 0 14px}
.v10-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.v10-btns .btn{min-height:48px;display:inline-flex;align-items:center}.v10-cta .btn:not(.btn-p){background:#fff;color:#1f7a55}
@media(max-width:767.98px){.v10-mini,.v10-safe{grid-template-columns:1fr}.v10-mini{gap:10px}.v10-btns .btn{width:100%;justify-content:center}.v10-step{padding:16px}.v10-cta{margin:0 4px}}
.v10-sub{text-align:center;margin:-6px auto 18px;max-width:52ch}
.v10-pains{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.v10-pain{background:#fff;border:1px solid #ecefe9;border-radius:18px;padding:16px 18px}.v10-pain h3{margin:0 0 4px;font-size:1.02rem}
.v10-p{margin:0 0 8px;color:#8a6d5a;font-size:.93rem}.v10-s{margin:0;font-size:.93rem;background:#eef7f1;border-radius:12px;padding:8px 10px}
@media(max-width:767.98px){.v10-pains{grid-template-columns:1fr}}
/* Consent-Leiste (v10) */
.cbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:900;max-width:980px;margin:0 auto;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid #e3e8e2;border-radius:18px;box-shadow:0 8px 30px rgba(20,40,30,.14);padding:10px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:13px;color:var(--fg2,#444)}
.cbar-t{margin:0;flex:1 1 320px;line-height:1.4}.cbar-t a{color:var(--green);font-weight:600}
.cbar-btns{display:flex;gap:8px}.cbar-b{min-height:44px;padding:0 16px;font-weight:700;font-size:14px;background:#fff;border:1.5px solid var(--green);color:var(--green);border-radius:12px}
.cbar-l{font-size:12.5px;color:var(--fg3,#777);text-decoration:underline;min-height:44px}
.cbar .consent-opts{flex:1 1 100%;margin:2px 0}
.cbar-more{max-height:calc(100vh - 200px);overflow:auto}
body:has(.am-bg) .cbar,body:has(aside.as) .cbar{display:none}
@media(max-width:767.98px){.cbar{padding:10px 12px;gap:6px 10px}.cbar-t{flex-basis:100%;font-size:12.5px}.cbar-btns{flex:1}.cbar-b{flex:1;padding:0 8px;font-size:13.5px}.cbar-l{padding:0 4px}}
/* Assistent-Header + Konto-Schritt */
.as-av.lg{width:56px;height:56px;border-radius:50%;flex:none;box-shadow:0 0 0 3px #fff,0 2px 8px rgba(0,0,0,.12)}
.as-who b{font-size:1.1rem;display:block;line-height:1.2}.as-who .tiny{display:block;opacity:.75}
.as-acc{display:flex;flex-direction:column;gap:8px}.as-acc form{display:flex;flex-direction:column;gap:8px}.as-acc .am-soc{min-height:44px;width:100%}
.as-acc .am-names{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.as-h .as-who{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;gap:4px;padding-left:36px}
/* Consent: bündig am unteren Rand, volle Breite, hell (überdeckt mobil die Tab-Leiste bis zur Entscheidung) */
.cbar{left:0;right:0;bottom:0;max-width:none;margin:0;border:0;border-top:2px solid var(--green);border-radius:0;background:#fffaf2;box-shadow:0 -4px 18px rgba(0,0,0,.08);padding:10px max(16px,calc((100vw - 1100px)/2)) calc(10px + env(safe-area-inset-bottom));z-index:1000;backdrop-filter:none;-webkit-backdrop-filter:none}
.cbar-b{background:#fff}.cbar-b.cbar-p,.cbar [data-testid=consent-all]{background:var(--green);color:#fff}
/* Profilbild-Slot: Logo/Icon der Website, sonst gestaltete Initialen */
.vc-ph{background:linear-gradient(135deg,#f3f8f4,#fffaf2)}
.vc-ph .bimg{width:68%;height:68%;max-width:150px;max-height:150px;border-radius:18px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.06);display:flex;align-items:center;justify-content:center;padding:10px}
.bimg img{width:100%;height:100%;object-fit:contain;display:block}
/* Helles Logo auf durchsichtigem Grund (Vendor.brandImageGrund = "dunkel", lib/brand.ts) – dunkle Kachel statt weiß, sonst verschwindet es (08.11.2026) */
.bimg.dunkel,.vc-ph .bimg.dunkel,.av .bimg.dunkel{background:#1c1917}.av .bimg.dunkel{padding:0}.av .bimg.dunkel img{width:72%;height:72%;margin:auto}.mpin img.dunkel{background:#1c1917;object-fit:contain;padding:5px}
.vc-ph .bini{width:96px;height:96px;border-radius:50%;background:#dff1e8;color:#0b7a55;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:34px;letter-spacing:.5px;box-shadow:0 0 0 6px #fff}
.av .bimg{width:100%;height:100%;border-radius:inherit;background:#fff;display:flex;padding:4px}.av .bini{display:flex;width:100%;height:100%;align-items:center;justify-content:center;background:#dff1e8;color:#0b7a55;font-weight:800;border-radius:inherit}
/* Ratgeber & Städteseiten */
.bl-hero2{background:linear-gradient(180deg,#f3f8f4,#fff);padding:28px 0 18px}.bl-hero2 h1{font-size:clamp(26px,5vw,40px);line-height:1.15;margin:10px 0}
.bl-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--fg3)}
.bl-grid{display:grid;grid-template-columns:240px 1fr;gap:32px;padding:24px 16px}.bl-toc{position:sticky;top:80px;align-self:start;display:flex;flex-direction:column;gap:8px}.bl-toc ol{padding-left:18px;font-size:14px}
.bl-prose{max-width:720px;font-size:17px;line-height:1.65}.bl-prose h2{margin-top:32px}.bl-answer{background:#f3f8f4;border-left:4px solid #0b7a55;padding:12px 14px;border-radius:8px}
.bl-tw{overflow-x:auto}.bl-t{width:100%;border-collapse:collapse;font-size:15px}.bl-t td,.bl-t th{border-bottom:1px solid #e6e6e6;padding:8px;text-align:left;vertical-align:top}
.bl-rank{border:1px solid #e3ece6;border-radius:14px;padding:12px 14px;margin:18px 0}.bl-rank ol{list-style:none;padding:0;margin:8px 0 0}.bl-rank li{display:flex;gap:10px;padding:6px 0;border-top:1px solid #f0f0f0}.bl-rank small{display:block;color:var(--fg3)}
.bl-rk{width:26px;height:26px;border-radius:50%;background:#dff1e8;color:#0b7a55;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.bl-rank-h{font-size:12px;color:var(--fg3)}.bl-faq{border-bottom:1px solid #eee;padding:10px 0}.bl-faq summary{font-weight:700;cursor:pointer}.bl-src{font-size:13px;word-break:break-word}
.bl-idx{padding:20px 16px 40px}.bl-feat{display:block;border-radius:18px;padding:22px;background:#0b7a55;color:#fff;margin-bottom:18px;text-decoration:none}.bl-feat h2{color:#fff}.bl-feat .btn{background:#fff;color:#0b7a55}
.bl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.bl-card{display:block;border:1px solid #e6ebe8;border-radius:14px;padding:16px;text-decoration:none;color:inherit;background:#fff}.bl-card h3{font-size:17px;margin:6px 0}.bl-card p{font-size:14px;color:var(--fg3)}
.bl-k{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#0b7a55}.bl-feat .bl-k{color:#cdeedd}.bl-more{font-size:14px;font-weight:700;color:#0b7a55}.bl-relw{padding:10px 16px 40px}.bl-sub{margin-top:28px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid #d7e6dd;border-radius:999px;padding:6px 12px;font-size:14px;text-decoration:none;color:#0b5a40;background:#fff}
.city{padding:18px 16px 40px}.city h1{font-size:clamp(26px,5vw,38px);margin:8px 0}.city-cta{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px}.city-more{margin-top:28px}
@media(max-width:860px){.bl-grid{grid-template-columns:1fr;gap:12px}.bl-toc{position:static}.bl-prose{font-size:16px}}
/* Fotografen-Landingpage */
.ff-hero{background:linear-gradient(160deg,#0b5a40,#0b7a55);color:#fff;padding:44px 0 34px}.ff-hero h1{color:#fff;font-size:clamp(28px,5.5vw,46px);line-height:1.12;margin:12px 0}.ff-hero .accent{color:#bdf0d6}.ff-hero .lead{color:#e6f6ee;max-width:640px}.ff-hero .pill{background:rgba(255,255,255,.15);color:#fff}.ff-hero .tiny{color:#cfe9dc!important;margin-top:14px}.ff-hero .sbox{background:#fff;color:#222;border-radius:14px;padding:10px;max-width:560px}
.ff-sec{padding:34px 16px}.ff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.ff-card{background:#fff;border:1px solid #e3ece6;border-radius:14px;padding:16px}.ff-card b{font-size:17px}.ff-card p{color:var(--fg3);font-size:15px;margin:6px 0}
.ff-hl{border:2px solid #0b7a55;background:#f3f8f4}.ff-pain{background:#fffaf2;padding:34px 0}.ff-src{padding-left:16px;font-size:12px;margin:6px 0 0}.ff-steps{padding-left:20px;line-height:1.8}
/* Paar-Konto */
.acc2{padding:18px 16px 90px}.acc-head{display:flex;gap:14px;align-items:center;margin-bottom:16px}.acc-head h1{margin:2px 0;font-size:clamp(24px,4vw,32px)}
.acc-grid{display:grid;grid-template-columns:230px 1fr;gap:24px;align-items:start}
.acc-nav{flex-direction:column;border:1px solid #e3ece6;border-radius:14px;padding:6px;position:sticky;top:80px;background:#fff}.acc-nav a{border-bottom:0!important;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between}.acc-nav a.on{background:#eaf5ef;color:#0b5a40;font-weight:700}
.acc-main{min-width:0;display:flex;flex-direction:column;gap:14px}.acc-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.acc-kpis .kpi{display:flex;flex-direction:column;text-decoration:none}.acc-kpis .kpi b{font-size:28px;color:#0b7a55}
.acc-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.acc-mini-i{display:flex;gap:8px;align-items:center;text-decoration:none;color:inherit;min-width:0}
.acc-form{display:flex;flex-direction:column;gap:10px;max-width:420px;margin-bottom:12px}
@media(max-width:860px){.acc-grid{grid-template-columns:1fr;gap:12px}.acc-nav{flex-direction:row;position:static;overflow-x:auto;padding:4px;white-space:nowrap}.acc-nav a{flex:none}.acc-kpis{grid-template-columns:1fr 1fr}}
.stil-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:16px 0}.stil-c{display:flex;flex-direction:column;gap:6px;border:1px solid #e3ece6;border-radius:14px;padding:16px;text-decoration:none;color:inherit;background:#fff}.stil-c b{font-size:18px}.stil-c span{color:var(--fg3);font-size:14px}.stil-c em{font-style:normal;color:#0b7a55;font-weight:700;font-size:14px}
.acc-share .inp{width:100%;margin-top:6px;font-size:13px}.pm-hint{padding:8px 14px;margin:0;background:#fffaf2;border-top:1px solid #f0e6d6}
/* v11 dashboard */
.dash-tabs{position:sticky;top:0;background:var(--bg,#fff);z-index:5;-webkit-overflow-scrolling:touch}
.badge-n{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--green);color:#fff;font-size:11px;line-height:18px;text-align:center}
.dash-todo{margin-bottom:14px;border-left:3px solid var(--green)}.dash-todo ul{margin:0;padding-left:18px}.dash-todo li{margin:2px 0}
@media(max-width:640px){.dash-h{flex-direction:column;align-items:stretch}.dash-h .btn{width:100%;text-align:center}.kpi b{font-size:20px}}

.city-faq{display:flex;flex-direction:column;gap:12px;margin:0 0 20px}.city-faq div{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff}.city-faq dt{font-weight:700;margin-bottom:4px}.city-faq dd{margin:0;color:var(--fg2);line-height:1.55}
.city-weiter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:22px 0 8px}
@media (max-width:600px){.city-weiter .btn{width:100%;justify-content:center}}
/* Plattform-Ranking im Ratgeber ({{plattform-ranking}}): unsere Zeile leicht hervorgehoben, sonst wie das Fotografen-Ranking */
.bl-prank li.wir{background:#f4faf6;border-radius:10px;padding-left:6px;padding-right:6px}
/* --- v12.css --- */
/* v12: Datumsfeld, Vertrauens-Badges, Stil-Beispielbilder, Karten-Profilbilder + Vorschau */
.sbar2>*,.sbar2 label{min-width:0}.sbar2 .inp,.h8-box input{min-width:0;max-width:100%;box-sizing:border-box}
.dfld{position:relative;display:flex;align-items:center;min-width:0;width:100%}
.dfld>input:not([type=hidden]){width:100%;min-width:0;padding-right:42px;box-sizing:border-box}
.dfld-b{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:var(--green);display:grid;place-items:center;cursor:pointer}
.dfld-b:hover{background:var(--mint2)}
.dfld-p{position:absolute;z-index:60;top:calc(100% + 6px);left:0;width:min(300px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px -12px rgba(16,20,24,.35);padding:10px;color:var(--fg);font-family:var(--fd)}
.dfld-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.dfld-h b{font-size:15px}
.dfld-h button{width:34px;height:34px;border:0;border-radius:10px;background:var(--panel2);font-size:18px;cursor:pointer;color:var(--fg)}
.dfld-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.dfld-w{font-size:11px;color:var(--fg3);font-weight:700;padding:4px 0}
.dfld-g button{height:36px;border:0;border-radius:10px;background:transparent;font:inherit;font-size:14px;color:var(--fg);cursor:pointer}
.dfld-g button.sa{font-weight:700}.dfld-g button:hover:not(:disabled){background:var(--mint)}.dfld-g button.on{background:var(--green);color:#fff}.dfld-g button:disabled{color:#c3c9c4;cursor:default}
.dfld-f{display:flex;justify-content:flex-end;gap:12px;padding-top:6px}.dfld-f button{border:0;background:none;color:var(--green);font-weight:700;cursor:pointer}
.h8-box .dfld>input{width:100%}
@media(max-width:700px){.dfld-p{position:fixed;left:50%;top:auto;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);width:calc(100vw - 24px);max-width:380px;z-index:1000}.dfld-g button{height:42px}}
.tbadges{margin:10px 0 0}.tbadges ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:12.5px;font-weight:600;color:var(--fg2)}
.tbadges li{display:inline-flex;align-items:center;gap:5px}.tbadges svg{color:var(--green);flex:none}
.tbadges p{margin:6px 0 0}
.tbadges.on-dark ul{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4)}.tbadges.on-dark svg{color:#9be3c2}
.srch-tb{margin:8px 4px 4px}
.as-sum .tbadges ul,form .tbadges ul{font-size:12px}
.stil-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.stil-c{padding:0;overflow:hidden;gap:0;box-shadow:var(--sh)}
.stil-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#fff}
.stil-strip figure{margin:0;position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--panel2)}
.stil-strip img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.stil-c:hover .stil-strip img{transform:scale(1.03)}
.stil-strip figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 6px 4px;background:linear-gradient(transparent,rgba(0,0,0,.55));font-size:9.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stil-strip figcaption a{color:#fff;opacity:.9}
.stil-tx{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px}
.stil-tx a{text-decoration:none}.stil-tx a::after{content:"";position:absolute;inset:0}.stil-c{position:relative}.stil-strip figcaption{z-index:1}
@media(max-width:700px){.stil-grid{grid-template-columns:1fr;gap:14px}
 .stil-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .stil-strip::-webkit-scrollbar{display:none}.stil-strip figure{flex:0 0 42%;scroll-snap-align:start}
 .stil-tx{padding:12px 14px 14px}.stil-tx b{font-size:17px}}
/* Stil-Kacheln: alle gleich groß, jede mit Foto (Valentin 10.11.2026) – gleiche Spalten (minmax 0, sonst macht ein langer Name seine Spalte breiter) */
.stf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 6px}
.stf-o{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;text-align:center}
.stf-o input{position:absolute;opacity:0;pointer-events:none}
.stf-i{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:10px;border:2px solid transparent;display:grid;place-items:center;background:var(--panel2);color:var(--fg3);font-weight:700;font-size:12px;box-sizing:border-box}
/* „Alle Stile“: vier kleine Bilder im selben Rahmen */
.stf-alle{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;padding:0;overflow:hidden}
.stf-alle img{width:100%;height:100%;object-fit:cover;display:block;min-height:0}
.stf-o em{font-style:normal;font-size:11.5px;color:var(--fg2);line-height:1.2;max-width:100%;hyphens:manual;overflow-wrap:break-word}
.stf-o input:checked~.stf-i{border-color:var(--green);box-shadow:0 0 0 2px var(--mint)}.stf-o input:checked~em{color:var(--green);font-weight:700}
.stf-o input:focus-visible~.stf-i{outline:2px solid var(--green);outline-offset:2px}
/* Filterleiste am Desktop ist höher als das Fenster und klebt oben (sticky) – ohne eigene Scrollleiste blieben „Stil“ und alles darunter
   bis zum Ende der Trefferliste unter dem Fensterrand. Jetzt scrollt die Leiste für sich (10.11.2026, mit den größeren Stil-Kacheln). */
@media (min-width:861px){.filters{max-height:calc(100vh - 96px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}
legend .tiny{font-weight:600;margin-left:6px}
.chip-st{display:inline-flex;align-items:center;gap:6px}.chip-st img{width:22px;height:28px;object-fit:cover;border-radius:5px;margin-left:-6px}
.as-date{padding:0 0 8px}.as-date .dfld-p{top:auto;bottom:calc(100% + 6px)}
@media(max-width:700px){.as-date .dfld-p{bottom:calc(16px + env(safe-area-inset-bottom))}}
.mpin{width:40px;height:40px;border-radius:50%;padding:0;border:3px solid #fff;background:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.35);overflow:hidden;display:grid;place-items:center;cursor:pointer;position:relative}
.mpin span{color:#fff;font:700 13px var(--fd)}.mpin img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff}
.mpin:hover,.mpin:focus-visible{transform:scale(1.12);z-index:3;outline:none}
.mprev{position:absolute;z-index:5;left:12px;bottom:12px;width:min(340px,calc(100% - 24px));background:#fff;border-radius:16px;box-shadow:0 16px 40px -10px rgba(16,20,24,.45);padding:14px;display:grid;grid-template-columns:56px 1fr;gap:10px 12px;animation:mprev .18s ease-out;font-family:var(--fd)}
@keyframes mprev{from{transform:translateY(12px);opacity:0}}
.mprev-av{width:56px;height:56px;border-radius:50%;overflow:hidden;display:block;background:var(--mint)}
.mprev-av .bimg,.mprev-av .bini{width:100%;height:100%;display:grid;place-items:center;font-weight:700;color:var(--green)}.mprev-av img{width:100%;height:100%;object-fit:cover}
.mprev-t{display:flex;flex-direction:column;gap:3px;min-width:0;padding-right:22px}.mprev-t b{font-size:15.5px;line-height:1.25}
.mprev-st{display:flex;flex-wrap:wrap;gap:4px}.mprev-st i{font-style:normal;font-size:11px;background:var(--mint2);color:var(--green);border-radius:999px;padding:2px 8px;font-weight:600}
.mprev-a{grid-column:1/-1;display:flex;gap:8px}.mprev-a .btn{flex:1;justify-content:center}
.mprev-x{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:0;background:var(--panel2);cursor:pointer;color:var(--fg2)}
@media(max-width:700px){.mprev{left:8px;right:8px;bottom:8px;width:auto}}
/* Budget-Rahmen (ohne Preise) */
.bud{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:4px 0}
.bud-o{position:relative;display:block;cursor:pointer}
.bud-o input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.bud-o span{display:flex;flex-direction:column;gap:2px;border:1.5px solid #dfe5e1;border-radius:12px;padding:10px 12px;background:#fff;height:100%;box-sizing:border-box;transition:border-color .15s,background .15s}
.bud-o b{font-size:14px;font-weight:700;color:#14281f}
.bud-o em{font-style:normal;font-size:12.5px;line-height:1.35;color:#5b6b63}
.bud-o input:checked+span{border-color:#0f7b55;background:#eef8f3;box-shadow:0 0 0 1px #0f7b55 inset}
.bud-o input:focus-visible+span{outline:2px solid #0f7b55;outline-offset:2px}
.filters .bud{grid-template-columns:1fr}
.chip-bd{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1px;padding:2px 0}
.chip-bd em{font-style:normal;font-size:11.5px;opacity:.75;font-weight:400}
.h8-box select{width:100%;border:0;background:transparent;font:inherit;font-size:15px;padding:0;min-width:0;appearance:none;-webkit-appearance:none;color:inherit}
@media (max-width:640px){.bud{grid-template-columns:1fr}}
fieldset.lbl{border:0;padding:0;margin:0 0 12px;min-width:0}
fieldset.lbl>legend{padding:0;margin-bottom:6px}
/* --- v14.css --- */
/* v14: Profil-Hero, Portfolio, Leistungen (Airbnb-Stil), Instagram */
.ph{position:relative;margin:0 0 16px;border-radius:18px;overflow:hidden}
.ph-track{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:clamp(320px,46vw,500px)}
.ph-track img{width:100%;height:100%;object-fit:cover;display:block;background:var(--panel2);transition:filter .2s}
.ph-track img:hover{filter:brightness(.93)}
.ph-main{grid-row:1/3}
.ph-3 .ph-track{grid-template-columns:2fr 1fr}.ph-4 .ph-track img:last-child{grid-column:2/4}
.ph-all{position:absolute;right:14px;bottom:14px;background:#fff;color:#111;border:1px solid #222;border-radius:10px;padding:7px 13px;font-size:14px;font-weight:600;text-decoration:none;box-shadow:0 4px 14px -6px rgba(0,0,0,.35)}
.pf h2 .tiny{font-weight:400;margin-left:6px}
.pf-grid{grid-template-columns:repeat(3,1fr);margin-bottom:0}
.pf-grid img{aspect-ratio:4/5}
.pf-grid img:nth-child(7n+1){grid-column:span 2;aspect-ratio:auto;height:100%}
.ls h2{margin-bottom:10px}
.ls-grid{list-style:none;padding:0;margin:8px 0 4px;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.ls-i{display:flex;align-items:center;gap:14px;font-size:15px;line-height:1.3}
.ls-ic{flex:none;color:#222}
.ls-more{margin-top:14px;border:1px solid #222;font-weight:600}
.ls-ov{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:24px;animation:lsf .18s ease}
.ls-modal{background:#fff;border-radius:16px;width:min(640px,100%);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 20px 60px -10px rgba(0,0,0,.4);animation:lsu .22s ease}
.ls-mh{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line)}.ls-mh h2{margin:0;font-size:20px}
.ls-x{border:0;background:none;font-size:18px;width:34px;height:34px;border-radius:50%;cursor:pointer}.ls-x:hover{background:var(--panel2)}
.ls-mb{overflow:auto;padding:6px 24px 24px}
.ls-g h3{font-size:18px;margin:20px 0 4px}.ls-g ul{list-style:none;padding:0;margin:0}.ls-g .ls-i{padding:16px 0;border-bottom:1px solid var(--line)}.ls-g .ls-i:last-child{border-bottom:0}
.ls-pick{display:block}.ls-pg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}.ls-pg>b{width:100%}
.ig .emb-ph,.ig .emb iframe{aspect-ratio:auto;min-height:220px}.ig .emb.on iframe{min-height:560px}
@keyframes lsf{from{opacity:0}}@keyframes lsu{from{transform:translateY(24px);opacity:0}}
@media (max-width:760px){
 .ph{margin:0 -16px 14px;border-radius:0}
 .ph-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;height:auto;gap:0;scrollbar-width:none}.ph-track::-webkit-scrollbar{display:none}
 .ph-track img{flex:0 0 100%;aspect-ratio:4/3.4;height:auto;scroll-snap-align:center}
 .ph-all{right:12px;bottom:12px;font-size:13px;padding:6px 10px}
 .pf-grid{grid-template-columns:1fr 1fr}.pf-grid img:nth-child(7n+1){grid-column:span 2;aspect-ratio:4/3}
 .ls-grid{grid-template-columns:1fr;gap:16px}
 .ls-ov{padding:0;align-items:flex-end}.ls-modal{border-radius:16px 16px 0 0;max-height:92vh;width:100%}
}
/* v14b: Hero, Reels, Kalender, Bewertungen, Karte */
.h8-img{object-position:60% 30%}@media(max-width:700px){.h8{align-items:flex-start;background:#1c1512}.h8-img{bottom:auto;height:125vw;object-position:50% 0}.h8-in{padding-top:min(78vw,340px)}.h8-shade{background:linear-gradient(180deg,rgba(28,21,18,0) 0,rgba(28,21,18,.1) 50vw,rgba(28,21,18,.75) 85vw,#1c1512 125vw,#1c1512 100%)}}
.reels{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.reel{position:relative;margin:0;aspect-ratio:9/16;border-radius:14px;overflow:hidden;background:#111;scroll-snap-align:start;cursor:pointer}
.reel video{width:100%;height:100%;object-fit:cover;display:block}
.reel-p{position:absolute;inset:auto auto 50% 50%;transform:translate(-50%,50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:#111;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.3);cursor:pointer}
.reel figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;font-size:12px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65))}.reel figcaption a{color:#fff;text-decoration:underline}
@media(max-width:700px){.reels{grid-auto-columns:62%}}
.acal{position:relative;user-select:none}
.acal-n{position:absolute;top:-2px;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none}
.acal-n button{pointer-events:auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:20px;line-height:1;cursor:pointer}.acal-n button:hover{box-shadow:0 2px 8px rgba(0,0,0,.12)}
.acal-ms{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.acal-t{display:block;text-align:center;font-size:15px;margin:6px 0 12px}
.acal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.acal-w{font-size:11px;color:var(--fg2);padding-bottom:6px}
.acal-g button{aspect-ratio:1;border:0;background:none;border-radius:50%;font:600 14px var(--fb,inherit);color:var(--fg);cursor:pointer}
.acal-g button:hover:not(:disabled){outline:1.5px solid var(--fg)}
.acal-g button:disabled{color:#c4c4c4;cursor:default}.acal-g button.busy{text-decoration:line-through}
.acal-g button.on{background:var(--green);color:#fff}
.acal-h{margin-top:12px}.lnk{background:none;border:0;padding:0;color:var(--green);text-decoration:underline;cursor:pointer;font:inherit}
@media(max-width:700px){.acal-ms{grid-template-columns:1fr}.acal-2{display:none}}
.rvs{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:var(--fg);margin:4px 0}.rvs:hover{text-decoration:none}.rvs:hover .muted{text-decoration:underline}
.press{letter-spacing:.02em}
.rvd{display:grid;grid-template-columns:180px 1fr;gap:24px;align-items:center;margin:4px 0 12px}
.rvd-a{display:flex;flex-direction:column;gap:4px}.rvd-a>b{font:800 40px var(--fd)}
.rvd-r{display:grid;grid-template-columns:34px 1fr 24px;gap:8px;align-items:center;font-size:13px;margin:3px 0}
.rvd-r i{height:9px;border-radius:9px;background:#eee;overflow:hidden}.rvd-r em{display:block;height:100%;background:#f5a623;border-radius:9px}
.rvc{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:10px}
.rvc-i{border:1px solid var(--line);border-radius:14px;padding:14px}
.rvc-h{display:flex;gap:10px;align-items:center;margin-bottom:6px}.rvc-h>div{display:flex;flex-direction:column;flex:1}
.rvc-av{width:34px;height:34px;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center;font-weight:800}
.rvc-src{font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;background:#f3f3f3;color:var(--fg2);white-space:nowrap}
@media(max-width:700px){.rvd{grid-template-columns:1fr;gap:10px}}
.mapd{border-radius:16px;overflow:hidden}
.mapd .maplibregl-ctrl-group{border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.15);border:0}
.mapd .maplibregl-ctrl-group button{width:36px;height:36px}
.mapd .maplibregl-ctrl-attrib.maplibregl-compact{font-size:10px;min-height:22px;margin:6px;border-radius:12px}
.mapd .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show) .maplibregl-ctrl-attrib-inner{display:none}
.mpill{border:0;background:#fff;color:#222;font:700 13px var(--fb,system-ui);padding:6px 11px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.22),0 0 0 1px rgba(0,0,0,.06);cursor:pointer;white-space:nowrap;transition:transform .15s}
.mpill:hover,.mpill.on{transform:scale(1.07);background:#222;color:#fff}
.mpill.cl{background:var(--green);color:#fff;min-width:34px}
.sfld{position:relative;width:100%}.sfld input{width:100%}
.sfld-l{position:absolute;z-index:60;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:min(420px,92vw);list-style:none;margin:0;padding:6px;background:#fff;border-radius:14px;box-shadow:0 10px 32px rgba(0,0,0,.18);text-align:left;color:var(--fg)}
.sfld-l li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;cursor:pointer}.sfld-l li>span:last-child{display:flex;flex-direction:column}
.sfld-l li.on,.sfld-l li:hover{background:#f3f5f4}.sfld-l li.sfld-g{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--fg2);cursor:default;padding:6px 10px 2px}.sfld-l li.sfld-g:hover{background:none}
.sfld-i{width:30px;height:30px;border-radius:8px;background:#f1f1f1;display:grid;place-items:center;font-size:15px;flex:none}
/* Wochenend-Hervorhebung: Samstag = Haupt-Hochzeitstag (fett), Freitag dezent */
.acal-g button.sa,.dfld-g button.sa{font-weight:800;color:#10241b}
.acal-g button.fr,.dfld-g button.fr{font-weight:600;color:#3d5a4c}
.acal-g .acal-w:nth-child(6),.dfld-g .dfld-w:nth-child(6){font-weight:800;color:#10241b}
.acal-g button.on{color:#fff}
/* Profil-Header: Avatar oben links, überlappt den Hero leicht (wie ein Social-Profil-Header) */
.prof .prof-h{align-items:flex-start}
.prof .prof-h>.av{flex:none;border:4px solid #fff;box-shadow:0 6px 18px -6px rgba(16,20,24,.35);object-fit:cover}
.prof .ph~.prof-h>.av{margin-top:-46px;position:relative;z-index:2}
@media(max-width:700px){.prof .prof-h{gap:12px}.prof .prof-h>.av{width:68px!important;height:68px!important}.prof .prof-t{flex:1 1 calc(100% - 84px)}}
/* v4 Profil-Header: kein Überlappen, großes rundes Foto, Name umbricht sauber */
.prof .prof-h{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 24px;align-items:start;padding:24px;margin-top:16px}
.prof .prof-id{display:flex;gap:24px;align-items:center;min-width:0}
.prof .prof-id>.av{flex:none;width:140px!important;height:140px!important;border-radius:50%;border:0;box-shadow:0 0 0 1px var(--line),0 8px 24px -10px rgba(16,20,24,.35);object-fit:cover;margin:0!important}
.prof .prof-t h1{font-size:clamp(26px,3vw,36px);line-height:1.12;margin:0 0 4px;overflow-wrap:anywhere;white-space:normal}
.prof-loc{margin:0 0 8px;color:var(--fg2);font-size:15px}
.prof-rt{display:inline-flex;gap:4px;align-items:baseline;color:var(--fg);font-size:15px;margin-bottom:10px}.prof-rt span:last-child{color:var(--fg2);text-decoration:underline;text-underline-offset:2px}.prof-rt:hover{text-decoration:none}
.prof-star{color:#f5a623}
.prof-chips{display:flex;flex-wrap:wrap;gap:6px}.chip-s{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:20px;background:var(--panel2,#f3f4f1);color:var(--fg2);text-transform:capitalize}
.prof .prof-a{align-self:start;flex-wrap:wrap;justify-content:flex-end}
.prof-x{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:6px}.prof-x>*{margin:0}.prof-x .vc-badges{margin:2px 0 0}
@media(max-width:900px){.prof .prof-h{grid-template-columns:1fr;padding:18px}.prof .prof-a{justify-content:stretch}}
@media(max-width:700px){.prof .prof-id{gap:16px;align-items:flex-start}.prof .prof-id>.av{width:104px!important;height:104px!important}.prof .prof-t h1{font-size:24px}.prof-loc{font-size:14px;margin-bottom:6px}.prof-rt{font-size:14px;margin-bottom:8px}.prof .prof-a{display:flex;flex-wrap:wrap;width:100%}.prof .prof-a>*{flex:1 1 150px}.prof .prof-a .btn{width:100%;justify-content:center}}
/* v4 Bewertungen */
.rvx h2{margin-bottom:12px}
.rvx .rvd{grid-template-columns:auto minmax(0,360px);gap:32px;padding:16px 0 18px;border-bottom:1px solid var(--line);margin:0 0 16px}
.rvx .rvd-a{align-items:flex-start}.rvx .rvd-a>b{font:800 44px/1 var(--fd)}
.rvx .rvd-r{grid-template-columns:12px 1fr 18px;font-size:12.5px;margin:4px 0}.rvx .rvd-r i{height:6px}.rvx .rvd-r em{background:var(--fg)}.rvx .rvd-r span:last-child{text-align:right}
.rvx .rvc{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:0}
.rvx .rvc-i{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:14px}
.rvx .rvc-h{margin:0}.rvc-n{display:flex;flex-direction:column;min-width:0;line-height:1.25}.rvc-n b{font-size:15px}
.rvx .rvc-av{width:40px;height:40px;font-size:16px;flex:none}
.rvc-m{display:flex;align-items:center;justify-content:space-between;gap:8px}.rvc-st{font-size:13px;line-height:1}.rvc-st .st5{letter-spacing:1px}
.rvx .rvc-src{font-size:11.5px;font-weight:600;padding:3px 9px;background:var(--panel2,#f3f4f1);color:var(--fg2)}
.rvc-t{margin:0;font-size:14.5px;line-height:1.55;color:var(--fg);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.rvc-i.full .rvc-t{display:block;-webkit-line-clamp:unset}
.rvc-1{grid-template-columns:1fr!important}.rv-modal .rvc-i{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0}
.rvx .ls-more{margin-top:16px}.rvx-note{margin:12px 0 0}
@media(max-width:700px){.rvx .rvd{grid-template-columns:1fr;gap:12px}.rvx .rvc{grid-template-columns:1fr}.rvx .ls-more{width:100%}}
.rvx>h2::first-letter{color:#f5a623}
@media(max-width:700px){.rvx .rvc>.rvc-i:nth-child(n+5){display:none}.rv-modal .rvc>.rvc-i{display:flex!important}}
@media(max-width:420px){.dfld .inp{padding-left:10px;padding-right:34px;font-size:14.5px}}
@media(max-width:420px){.dfld .inp::placeholder{font-size:13.5px}}
body:has(#anfrage:focus-within) .mob-cta{display:none}
/* v4 Portfolio-Raster: lückenlos */
.pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense;gap:8px}
.pf-grid img{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;border-radius:10px;display:block;margin:0}
.pf-grid img:nth-child(7n+1){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
@media(max-width:700px){.pf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.pf-grid img:nth-child(7n+1){grid-column:span 2;grid-row:auto;aspect-ratio:4/3}}
.prof section.card.pf{display:block;padding:20px}
/* --- v16.css --- */
/* v16: Startseiten-Hero – Desktop Split-Layout, mobil kompaktes Foto + Suche above the fold; schlanke Consent-Leiste mobil */
.h16{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center;min-height:0;max-width:1240px;margin:0 auto;padding:clamp(24px,4vh,48px) 24px clamp(32px,5vh,56px);color:var(--fg);background:none;overflow:visible}
.h16-media{order:2;position:relative;border-radius:28px;overflow:hidden;height:min(calc(100vh - 150px),680px);min-height:440px;box-shadow:0 30px 60px -30px rgba(60,30,20,.45);background:#e9e1d8}
.h16 .h16-img{position:static;inset:auto;width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block}
.h16-in{order:1;position:relative;z-index:2;min-width:0;padding:0}
.h16 h1{color:var(--fg);text-shadow:none;font-size:clamp(2.2rem,3.9vw,3.5rem);line-height:1.06;max-width:14ch;margin:0 0 16px}
.h16 .h16-lead{color:var(--fg2);opacity:1;max-width:46ch;margin:0 0 26px;font-size:clamp(1rem,1.25vw,1.15rem)}
.h16 .h16-box{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0;padding:8px;border:1px solid #e7e1da;border-radius:22px;box-shadow:0 18px 50px -18px rgba(60,30,20,.28);max-width:600px;background:#fff}
.h16-box .fld{min-width:0;padding:10px 16px;border:0;border-bottom:1px solid #eee;border-right:1px solid #eee}
.h16-box .fld-r,.h16-box .fld-b{border-right:0}.h16-box .fld-d,.h16-box .fld-b{border-bottom:0}
.h16-box .fld:nth-child(2){border-right:0}
.h16-box input,.h16-box select{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:1rem;padding:4px 0;color:inherit;text-overflow:ellipsis}
.h16-box .h8-cta{grid-column:1/-1;margin:6px 0 0;min-height:54px;border-radius:15px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%}
.h16 .tbadges{margin-top:18px}
@media (max-width:900px) and (min-width:701px){.h16{grid-template-columns:1fr 1fr;gap:24px}.h16 h1{font-size:2.1rem}}
@media (max-width:700px){
 .h16{display:block;padding:0 0 22px;max-width:none}
 .h16-media{border-radius:0;height:clamp(230px,41vh,380px);min-height:0;box-shadow:none}
 .h16 .h16-img{object-position:50% 17%;height:100%;bottom:auto}
 .h16-in{padding:0 16px;margin-top:-26px}
 .h16 h1{position:relative;font-size:clamp(1.35rem,6.1vw,1.6rem);line-height:1.15;max-width:none;margin:0 -16px 10px;padding:18px 16px 0;background:var(--bg,#fff);border-radius:22px 22px 0 0}
 .h16 .h16-lead{display:none}
 .h16 .h16-box{padding:4px;border-radius:18px;max-width:none;box-shadow:0 10px 30px -14px rgba(60,30,20,.3)}
 .h16-box .fld{padding:7px 12px}.h16-box label{font-size:.66rem}.h16-box input,.h16-box select{font-size:16px;padding:2px 0}
 .h16-box .h8-cta{min-height:48px;margin-top:4px;border-radius:14px}
}
/* Consent mobil: schlank */
@media(max-width:767.98px){
 .cbar:not(.cbar-more){display:flex;flex-wrap:wrap;align-items:center;padding:7px 12px calc(7px + env(safe-area-inset-bottom));gap:4px 8px}
 .cbar:not(.cbar-more) .cbar-t{font-size:11.5px;line-height:1.3}
 .cbar:not(.cbar-more) .cbar-b{min-height:36px;font-size:13px}
 .cbar:not(.cbar-more) .cbar-l{min-height:36px;font-size:12px}
}
.cbar-short{display:none}
@media(max-width:767.98px){.cbar:not(.cbar-more) .cbar-long{display:none}.cbar:not(.cbar-more) .cbar-short{display:inline}.cbar:not(.cbar-more) .cbar-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(max-width:400px){.cbar:not(.cbar-more) .cbar-t{white-space:normal}}
.h16-box .fld{background:transparent}
@media (max-width:700px){.h16-media{height:clamp(220px,40vh,380px)}.h16 h1{font-size:clamp(1.22rem,5.5vw,1.6rem)}}
.cbar-t a{white-space:nowrap}
/* v16: Veröffentlicht-in-Band (Profil) */
.feat{margin:0 0 18px;padding:22px 24px 24px;border-radius:18px;background:linear-gradient(180deg,#fbf8f3,#f6f1ea);border:1px solid #ece4d9;text-align:center}
.feat-k{display:flex;align-items:center;gap:14px;justify-content:center;margin:0 0 16px;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#8a7a68}
.feat-k::before,.feat-k::after{content:"";flex:0 1 64px;height:1px;background:#d9cbb9}
.feat-l{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px clamp(28px,6vw,72px)}
.feat-l li{display:flex;align-items:center;min-width:0}
.feat-l img{display:block;height:30px;width:auto;max-width:100%;opacity:.78;filter:grayscale(1) contrast(1.1);transition:opacity .2s}
.feat-l li:hover img{opacity:1}
.feat-w{font-family:Georgia,"Times New Roman",serif;font-size:22px;letter-spacing:.04em;color:#2a2622;opacity:.8}
@media(max-width:700px){.feat{padding:16px 14px 18px;border-radius:14px}.feat-l{gap:14px 26px}.feat-l img{height:22px}.feat-k{font-size:10px;letter-spacing:.18em;margin-bottom:12px}}
/* v16: Ergebniskarte – Galerie mit Punkten/Pfeilen, Reels */
.vcg a{position:relative}.vcg video{width:100%;height:100%;object-fit:cover;display:block;background:#111}
.vcg-play{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:4px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:3px 8px 3px 7px}
.vcg-dots{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:flex;gap:5px;align-items:center;pointer-events:none;z-index:2}
.vcg-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);box-shadow:0 0 2px rgba(0,0,0,.35);transition:all .2s}.vcg-dots span.on{background:#fff;transform:scale(1.15)}.vcg-dots span.sm{transform:scale(.65)}
.vcg-n{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#222;font-size:20px;line-height:1;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.2);cursor:pointer;opacity:0;transition:opacity .2s}
.vcg-p{left:10px}.vcg-x{right:10px}.vc-img:hover .vcg-n:not([hidden]){opacity:1}.vcg-n:focus-visible:not([hidden]){opacity:1}.vcg-n[hidden]{display:none}
@media(hover:none){.vcg-n{display:none}}
.vc-cnt{z-index:2}.vc-cnt-s{width:1px;height:10px;background:rgba(255,255,255,.5);margin:0 3px}
.vc{box-shadow:0 1px 2px rgba(0,0,0,.04)}.vc-img{min-height:220px}.vc{min-height:220px}
@media(max-width:700px){.vc-img{aspect-ratio:4/3}.vc{border-radius:18px}}
/* v16: Assistent-FAB auf Ergebnislisten mobil kompakt (nur Avatar) + Freiraum unter der Liste, damit Karten-Buttons nie verdeckt bleiben */
@media(max-width:700px){body:has(.vc) .as-fab{padding:7px!important;min-height:46px;width:46px;justify-content:center}body:has(.vc) .as-fab>:not(.as-fab-av):not(.as-fab-ic){display:none!important}body:has(.vc) .as-fab .as-fab-ic{display:inline-flex!important}body:has(.vc) .as-fab .as-fab-av{width:32px;height:32px;margin:0;display:block}body:has(.vc) main{padding-bottom:84px}}
.prof-xp{margin:4px 0 0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tst-l{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.tst-l li{background:#faf7f2;border:1px solid #eee5d8;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.tst-l blockquote{margin:0;font-family:Georgia,serif;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.tl-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.tl-c{display:flex;flex-direction:column;gap:6px;min-width:0;text-decoration:none;color:inherit;transition:box-shadow .2s,transform .2s}
a.tl-c:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-1px)}
.tl-go{margin-top:auto;font-weight:700;color:var(--green,#2f5d50);font-size:14px}
.tl-soon{opacity:.75;background:#faf8f5}.tl-soon .badge{align-self:flex-start}
.tl-h{margin:28px 0 12px}
.sq{padding:22px}.sq h2{margin:6px 0 14px}.sq-o{display:grid;gap:10px;margin-bottom:14px}
.sq-b{text-align:left;padding:14px 16px;border:1px solid #e2dacd;border-radius:14px;background:#fff;font:inherit;font-weight:600;cursor:pointer;min-height:48px}.sq-b:hover{border-color:var(--green,#2f5d50);background:#f6f9f7}
.sq-p{height:6px;border-radius:9px;background:#eee;overflow:hidden;margin-bottom:8px}.sq-p span{display:block;height:100%;background:var(--green,#2f5d50);transition:width .25s}
.sq-a{display:flex;gap:10px;flex-wrap:wrap}
/* v16 Reels: Ton-Schalter + Vollbild-Player */
.vcg-v,.reel{position:relative}
.snd{position:absolute;right:10px;bottom:10px;z-index:3;width:34px;height:34px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.vcg .snd{bottom:30px}
.snd:focus-visible{outline:2px solid #fff;outline-offset:2px}
.rp{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.rp video{max-width:100vw;max-height:100dvh;max-height:100vh;width:auto;height:100%;object-fit:contain;background:#000}
.rp-x{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.reel .snd{top:10px;bottom:auto}
/* v16 Polish: Cookie-Bar mobil – kompakte schwebende Karte über den Tabs, verdeckt sie nicht */
@media(max-width:767.98px){
 .cbar:not(.cbar-more){left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));border:1px solid #eadfcd;border-radius:16px;box-shadow:0 8px 26px -10px rgba(40,30,20,.35);padding:7px 8px 7px 12px;gap:6px;flex-wrap:nowrap}
 body:has(.mtabs) .cbar:not(.cbar-more){bottom:calc(84px + env(safe-area-inset-bottom))}
 .cbar:not(.cbar-more) .cbar-t{flex:1 1 auto;min-width:0;flex-basis:auto;font-size:11.5px;white-space:normal;line-height:1.25}
 .cbar:not(.cbar-more) .cbar-short{display:inline}
 .cbar:not(.cbar-more) .cbar-t a{font-weight:600}
 .cbar:not(.cbar-more) .cbar-btns{flex:0 0 auto;display:flex;gap:6px}
 .cbar:not(.cbar-more) .cbar-b{flex:0 0 auto;min-height:34px;padding:0 10px;font-size:12.5px;border-radius:10px}
 .cbar:not(.cbar-more){flex-wrap:wrap;row-gap:6px}
 .cbar:not(.cbar-more) .cbar-t{flex:1 1 60%}
 .cbar:not(.cbar-more) .cbar-l{order:2;min-height:0;font-size:11.5px;padding:0 2px}
 .cbar:not(.cbar-more) .cbar-btns{order:3;flex:1 1 100%}
 .cbar:not(.cbar-more) .cbar-b{flex:1 1 0}
 .cbar-more{bottom:0}
}
.prof-claim{margin:28px auto 8px;text-align:center;opacity:.8}.prof-claim a{color:inherit;text-decoration:underline}
/* v16 Orts-Autocomplete (Airbnb-Stil) */
.sfld-l{padding:8px;border-radius:20px;box-shadow:0 2px 6px rgba(0,0,0,.06),0 16px 40px -8px rgba(0,0,0,.22);border:1px solid #eee;min-width:min(340px,92vw)}
.sfld-l li{padding:9px 10px;gap:12px;border-radius:12px}
.sfld-l li>span.sfld-t{display:block;font-size:14.5px;line-height:1.3;color:var(--fg,#222);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sfld-t b{font-weight:600}.sfld-t .tiny{font-size:12.5px}
.sfld-i{width:40px;height:40px;border-radius:12px;background:#f2f2f2;color:#333}
.sfld-l li.on,.sfld-l li:hover{background:#f4f4f4}
.hpill .sfld{flex:1;min-width:0}.hpill .sfld input{border:0;outline:0;font:500 14.5px var(--ff);background:transparent;color:var(--fg)}
.hpill .sfld-l{top:calc(100% + 14px);left:-18px}
.fld-q .sfld-l{left:-12px;top:calc(100% + 12px)}
@media(max-width:767.98px){.fld-q .sfld-l{left:-12px;width:calc(100vw - 32px);max-width:none}}
@media(max-width:767.98px){.sfld-l{max-height:min(300px,42vh);overflow:auto;z-index:95}body:has(.sfld-l) .as-fab{display:none!important}}

/* Budget auf der Startseite: Platzhalter „Bitte auswählen“ grau, bis etwas gewählt ist */
.fld-b select:has(option[value=""]:checked){color:var(--fg3)}
.fld-b select option{color:var(--fg)}
/* --- v18.css --- */
/* v18 – Seite nach dem Absenden einer Anfrage (/anfrage/gesendet/[id]) */
.gs{overflow-x:clip}
.gs-hero{position:relative;min-height:300px;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.gs-hero picture,.gs-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;z-index:-2}
.gs-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,20,24,.05) 0%,rgba(16,20,24,.35) 45%,rgba(16,20,24,.78) 100%)}
.gs-hero-c{max-width:1120px;width:100%;margin:0 auto;padding:96px 20px 32px}
.gs-hero h1{font:800 clamp(28px,5vw,44px)/1.12 var(--fd);margin:10px 0 8px;letter-spacing:-.02em;text-wrap:balance;color:#fff}
.gs-hero p{margin:0;max-width:600px;font-size:17px;opacity:.95}
.gs-ok{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--green2);color:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.22)}
.gs-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-top:24px;padding-bottom:48px}
@media(min-width:960px){.gs-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}.gs-status{order:2;position:sticky;top:88px}.gs-steps{order:1}}
.gs-status h2,.gs-steps>h2{font:700 21px/1.25 var(--fd);margin:0 0 4px}
.gs-track{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:16px 0;padding:0;position:relative}
.gs-track li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;position:relative;min-width:0}
.gs-track li:not(:last-child)::after{content:"";position:absolute;top:14px;left:calc(50% + 16px);right:calc(-50% + 16px);height:2px;background:var(--line)}
.gs-track li.done:not(:last-child)::after{background:var(--green)}
.gs-track .dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--panel2);color:var(--fg3);border:2px solid var(--line)}
.gs-track .done .dot{background:var(--green);border-color:var(--green);color:#fff}
.gs-track .cur .dot{background:var(--mint);border-color:var(--green);color:var(--green)}
.gs-track .lb{font-size:12px;line-height:1.3;color:var(--fg2);overflow-wrap:anywhere}
.gs-track .cur .lb{color:var(--fg);font-weight:600}
.gs-facts{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0}
.gs-facts li{background:var(--panel2);border-radius:999px;padding:4px 10px;font-size:13px}
.gs-vendors{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}
.gs-vendors li{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:var(--rb)}
.gs-v-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.gs-v-b b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-pill{align-self:flex-start;font-size:12px;border-radius:999px;padding:1px 8px;background:var(--panel2);color:var(--fg2)}
.gs-pill.wait{background:#FFF6E0;color:#7a4f06}.gs-pill.seen{background:#E7F0FB;color:#1d4f8a}.gs-pill.ok{background:var(--mint);color:var(--green)}.gs-pill.no{background:#F6E7E7;color:#8a2a2a}
.gs-cta{display:grid;gap:8px;margin-top:6px}
.gs-more{margin:12px 0 0}
.gs-steps ol{list-style:none;margin:16px 0;padding:0;position:relative}
.gs-step{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;position:relative;padding-bottom:22px}
.gs-step:not(:last-child)::before{content:"";position:absolute;left:31px;top:64px;bottom:0;width:2px;background:linear-gradient(var(--line2),var(--line))}
.gs-ill{position:relative;width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:var(--mint2);color:var(--green);border:1px solid var(--mint)}
.gs-step.now .gs-ill{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 8px 20px -10px rgba(11,122,85,.7)}
.gs-step.soon .gs-ill{background:var(--panel2);color:var(--fg3);border-color:var(--line)}
.gs-n{position:absolute;right:-6px;top:-6px;width:22px;height:22px;border-radius:50%;background:#fff;color:var(--fg);font:700 12px/22px var(--ff);text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.gs-b h3{font:700 17px/1.3 var(--fd);margin:6px 0 4px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.gs-b p{margin:0;color:var(--fg2)}
.gs-tag{display:inline-block;font:600 11px/1 var(--ff);text-transform:uppercase;letter-spacing:.06em;padding:4px 7px;border-radius:999px;background:var(--ad);color:var(--adtxt)}
.gs-tag.now{background:var(--mint);color:var(--green)}
.gs-soon{margin-top:6px!important;color:var(--fg3)!important}
@media(max-width:520px){.gs-hero{min-height:340px}.gs-hero-c{padding:80px 16px 24px}.gs-hero p{font-size:15.5px}.gs-step{grid-template-columns:52px minmax(0,1fr);gap:12px}.gs-ill{width:52px;height:52px;border-radius:16px}.gs-step:not(:last-child)::before{left:25px;top:52px}.gs-vendors li{flex-wrap:wrap}.gs-vendors .btn{flex:1 0 100%}}
.fw-note{margin-bottom:10px}
/* Chip-Auswahl im Anfrageformular */
.chipr{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chipr-o{position:relative;cursor:pointer}
.chipr-o input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chipr-o span{display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font-size:14px;font-weight:600;color:var(--fg);transition:border-color .15s,background .15s}
.chipr-o input:checked+span{border-color:var(--green);background:var(--mint);color:var(--green)}
.chipr-o input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
fieldset.lbl{border:0;padding:0;margin-left:0;margin-right:0;min-width:0}
fieldset.lbl legend{padding:0}
/* Formular aktiv: Sticky-Leiste + Tab-Leiste weg, damit nichts Felder/Absenden verdeckt */
body.inq-active .mob-cta,body.inq-active .mtabs{transform:translateY(120%);opacity:0;pointer-events:none}
.mob-cta,.mtabs{transition:transform .2s ease,opacity .2s ease}
body:has(.gs) .as-fab{display:none}
/* --- v20.css --- */
/* v20: Fotografen-Assistent + Fotografen-Landing (Tarife, Suche, Kennzahlen) */
.fa-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fa-link{display:inline-block;font-weight:700;font-size:13px;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--green);text-decoration:none}
.fa-link:hover{border-color:var(--green)}
.fa .as-m{overflow-wrap:anywhere}
.fa-chips{display:flex;flex-wrap:wrap;gap:6px}
.as-link{background:none;border:0;padding:0;font:inherit;color:var(--green);font-weight:700;cursor:pointer;text-decoration:underline}
@media(max-width:767.98px){.as.fa{top:0;height:100%;height:100dvh;border-radius:0;animation:asup .22s ease-out}.as.fa .as-in{padding-bottom:calc(10px + env(safe-area-inset-bottom))}html.fa-open,html.fa-open body{overflow:hidden}}
.ff-cta2{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:14px 0 6px}
.ff-free{background:#fff;color:#0b5a40;font-weight:800}.ff-free:hover{background:#f3f8f4}
.ff-hero .ff-tl{color:#fff;font-weight:700}
.ff-stats{padding:22px 16px 0}
.st-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.st-t{position:relative;border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:#fff;display:flex;flex-direction:column;gap:2px}
.st-t b{font-size:28px;letter-spacing:-.02em;color:#0b5a40}.st-t span{font-size:14px;color:#555}
.st-ph{border-style:dashed;background:#fafafa}.st-ph b{color:#aaa}
.st-phl{position:absolute;top:10px;right:10px;font-style:normal;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:#fff3cd;color:#7a5a00;padding:2px 8px;border-radius:999px}
.ff-plans{background:#f6f8f6;padding:40px 0}.ff-plans .in{padding:0 16px}
.pc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}
.pc{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:10px;box-shadow:0 2px 10px rgba(0,0,0,.04);min-width:0}
.pc-hl{border:2px solid #0b7a55;box-shadow:0 10px 30px rgba(11,122,85,.14)}
.pc-agentur{border-color:#1F2A24}
.pc-top{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:24px}
.pc-tag{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#0b7a55}
.pc-soon{font-size:12px;font-weight:700;background:#fff3cd;color:#7a5a00;padding:3px 10px;border-radius:999px;white-space:nowrap}
.pc-n{margin:0;font-size:22px}.pc-pr{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.pc-pr b{font-size:34px;letter-spacing:-.02em}.pc-pr span{color:#666;font-size:14px}
.pc-jahr{margin:-4px 0 0;font-size:13px;color:#0B7A55}.pc-jahr b{font-weight:700}
.pc-f{list-style:none;padding:0;margin:4px 0 8px;display:flex;flex-direction:column;gap:8px;flex:1}
.pc-f li{position:relative;padding-left:24px;font-size:15px;line-height:1.4}.pc-f li:before{content:"";position:absolute;left:2px;top:4px;width:12px;height:7px;border-left:2.5px solid #0b7a55;border-bottom:2.5px solid #0b7a55;transform:rotate(-45deg)}
/* Tarif-Karten nach Bereichen (05.11.): für wen, „Alles aus …, plus:“, Bereich als kleine Überschrift je Punkt */
.pc-fuer{margin:-4px 0 2px;font-size:14px;line-height:1.45;color:#4D5660;min-height:2.9em}
.pc-plus{margin:6px 0 -2px;font-size:13px;color:#4D5660}.pc-plus b{color:#15181B;font-weight:700}
.pc-f li{font-size:14.5px}
.pc-b{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#0b7a55;margin:0 0 1px;line-height:1.35}
/* Weitere Punkte desselben Bereichs (08.11.): ohne Bereichszeile, etwas enger an den vorigen */
.pc-f li.pc-weiter{margin-top:-3px}
/* Angekündigt, noch nicht gebaut (06.11.): kleiner Hinweis „bald“ neben dem Bereich */
.pc-bald{display:inline-block;margin-left:6px;padding:0 7px;border-radius:99px;background:#fff;color:#4D5660;box-shadow:inset 0 0 0 1.5px #CBD2CD;font-size:10.5px;font-weight:700;line-height:1.6;font-style:normal;letter-spacing:.02em;text-transform:none;vertical-align:1px}
.pc-vgl{margin:18px 0 0;text-align:center;font-size:15px}.pc-vgl a{font-weight:700;color:#0b7a55;text-decoration:underline;text-underline-offset:3px}
.pc-dis{opacity:.6;cursor:not-allowed}.pc-sel{display:flex;gap:8px;align-items:center;font-weight:700;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.pc-note{margin-top:12px}.pc-up{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}
.fs-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center}
.fs-l{padding-left:18px;line-height:1.6}
.fs-mock{position:relative;margin:0;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 18px 14px;box-shadow:0 14px 40px rgba(0,0,0,.08);min-width:0}
.fs-ill{position:absolute;top:-11px;left:18px;background:#222;color:#fff;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:999px}
.fs-q{margin-left:auto;max-width:85%;background:#f1f1f1;border-radius:16px 16px 4px 16px;padding:10px 14px;font-size:14px}
.fs-a{margin-top:12px;font-size:14px}.fs-a p{margin:0 0 8px}
.fs-c{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin-bottom:8px}.fs-c div{display:flex;flex-direction:column;min-width:0}.fs-c span{font-size:12px;color:#666}
.fs-av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#cfd8cf,#9fb5a3);flex:none}.fs-av.b{background:linear-gradient(135deg,#0b7a55,#3fbf8f)}
.fs-src{font-size:12px;color:#888}
@media(max-width:1200px){.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.fs-grid{grid-template-columns:1fr;gap:22px}}
@media(max-width:700px){.pc-grid{grid-template-columns:1fr}}
.fa .as-m.bot{white-space:pre-line}
/* v21: Desktop – kompaktes, schwebendes Chatfenster (Lena + Max) */
@media(min-width:768px){
 .as-bg{display:none!important}
 .as,.as.fa{top:auto;left:auto;right:24px;bottom:24px;width:380px;max-width:calc(100vw - 48px);height:600px;max-height:calc(100vh - 120px);border-radius:16px;overflow:hidden;border:1px solid rgba(0,0,0,.06);box-shadow:0 24px 60px -12px rgba(16,24,40,.28),0 8px 20px -8px rgba(16,24,40,.12);animation:asfloat .22s ease-out;transform-origin:bottom right}
 .as .as-h{padding:12px 14px 12px 16px;background:linear-gradient(135deg,var(--green),var(--green2,#0E9F6E));color:#fff;border-bottom:0}
 .as .as-h .as-who{flex-direction:row;align-items:center;text-align:left;gap:10px;padding-left:0}
 .as .as-h .as-who>div{display:flex;flex-direction:column;align-items:flex-start}
 .as .as-av.lg{width:40px;height:40px;box-shadow:0 0 0 2px rgba(255,255,255,.85)}
 .as .as-who b{font-size:1rem;color:#fff}.as .as-who .tiny{color:#fff;opacity:.85}
 .as .as-x{color:#fff;background:rgba(255,255,255,.14);border:0;border-radius:50%;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;font-size:15px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
 .as .as-x:hover{background:rgba(255,255,255,.26)}
 .as .as-body{flex:1;min-height:0;overflow:auto}
 .as .as-ft{padding:6px 14px 10px}
}
@keyframes asfloat{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
/* v21: Tipp-Indikator */
.as-typing-l{align-self:center;color:var(--fg3,#777);margin-left:2px}
@media(prefers-reduced-motion:reduce){.as-typing i{animation:none!important;opacity:.55}.as,.as.fa{animation:none!important}}
/* v21: Desktop-Launcher groß & sichtbar; Chat überdeckt das Cookie-Banner nicht */
@media(min-width:768px){
 .as-fab{right:24px;bottom:24px;min-height:64px;padding:6px 24px 6px 6px;gap:12px;font-size:16.5px;font-weight:800;letter-spacing:.005em;background:linear-gradient(120deg,#0B7A55 0%,#0E9F6E 60%,#3FBF8F 100%);border:2px solid rgba(255,255,255,.6);box-shadow:0 0 0 4px rgba(14,159,110,.16),0 16px 36px -10px rgba(11,122,85,.6);transition:transform .18s ease,box-shadow .18s ease;animation:fabpulse 1.6s ease-out .8s 1 both}
 .as-fab:hover{transform:translateY(-2px);box-shadow:0 0 0 5px rgba(14,159,110,.22),0 20px 40px -10px rgba(11,122,85,.65)}
 .as-fab .as-fab-av{width:48px;height:48px;margin:0;border:2px solid rgba(255,255,255,.85)}
 body:has(aside.as) .cbar{display:flex}
 body:has(.cbar) .as-fab,body:has(.cbar) .as,body:has(.cbar) .as.fa{bottom:calc(var(--cbar-h,72px) + 16px)}
 body:has(.cbar) .as,body:has(.cbar) .as.fa{max-height:calc(100vh - var(--cbar-h,72px) - 112px)}
}
@keyframes fabpulse{0%{box-shadow:0 0 0 0 rgba(14,159,110,.55),0 16px 36px -10px rgba(11,122,85,.6)}70%{box-shadow:0 0 0 18px rgba(14,159,110,0),0 16px 36px -10px rgba(11,122,85,.6)}100%{box-shadow:0 0 0 4px rgba(14,159,110,.16),0 16px 36px -10px rgba(11,122,85,.6)}}
@media(prefers-reduced-motion:reduce){.as-fab{animation:none!important;transition:none!important}}
/* v21: Fotografen in der Suche */
.sfld-v{position:relative;overflow:hidden;border-radius:50%!important;background:#eef5f1!important;color:var(--green)!important}
.sfld-v img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.sfld-v em{font-style:normal;font-weight:700;font-size:13px}
.sfld-l li[data-testid=suggest-vendor] .sfld-t .tiny{margin-left:4px}
/* v21 Merge: Max im neuen Fotografen-Bereich (v15) – mobil über der Tab-Leiste */
@media (max-width:767px){body:has(.dsh-tabs) .fa-fab{bottom:calc(72px + env(safe-area-inset-bottom))!important}}
/* Mikrofon: Linien-Icon statt Emoji, rund wie Senden, grau – grün bei Aufnahme */
.as-mic{display:inline-grid;place-items:center;flex:0 0 auto;width:44px;height:44px;min-width:44px;padding:0;border-radius:999px;border:1px solid var(--line);background:#fff;color:#6B7280;font-size:0;cursor:pointer;transition:color .15s,background .15s,border-color .15s}
.as-mic:hover{color:var(--fg,#1f2937);background:#F5F6F3}
.as-mic:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.as-mic.on{color:#fff;background:var(--green);border-color:var(--green);animation:micp 1.4s ease-in-out infinite}
@keyframes micp{0%,100%{box-shadow:0 0 0 0 rgba(14,122,83,.35)}50%{box-shadow:0 0 0 6px rgba(14,122,83,0)}}
@media (prefers-reduced-motion:reduce){.as-mic.on{animation:none}}
.as-x{display:inline-grid;place-items:center}
/* --- v24.css --- */
/* v24 – Feinschliff (Claude, 31.10.): Footer neu, Kontraste, Abstände */
.ft.ft2{background:#0E1714;color:#A7B3AD;padding:56px 0 calc(28px + env(safe-area-inset-bottom));margin-top:56px;border-radius:28px 28px 0 0;font-size:14.5px}
.ft2 a{color:#E7EEEA;text-decoration:none}.ft2 a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.ft2 .logo .wm{color:#fff}.ft2 .logo .wm small{color:#4FD1A0}
.ft2 .logo{display:inline-flex;align-items:center;gap:10px}
.ft2-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr);gap:48px}
.ft2-brand p{max-width:380px;line-height:1.6;margin:16px 0 18px}
.ft2-cta{display:flex;gap:10px;flex-wrap:wrap}
.ft2-ghost{background:transparent;border:1px solid rgba(255,255,255,.22);color:#fff!important}.ft2-ghost:hover{border-color:#fff;text-decoration:none!important}
.ft2-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.ft2 h4{color:#fff;font:700 13px var(--fd);letter-spacing:.06em;text-transform:uppercase;margin:4px 0 14px}
.ft2 ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ft2-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.09);margin-top:40px;padding-top:20px;font-size:13px;color:#8A968F}
.ft2-bottom ul{flex-direction:row;flex-wrap:wrap;gap:6px 18px}
.ft2-bottom .linkbtn{background:none;border:0;padding:0;font:inherit;color:#E7EEEA;cursor:pointer;text-decoration:none}.ft2-bottom .linkbtn:hover{color:#fff;text-decoration:underline}
@media (max-width:900px){.ft2-top{grid-template-columns:1fr;gap:36px}}
@media (max-width:640px){
  .ft.ft2{padding-top:40px;border-radius:22px 22px 0 0;padding-bottom:calc(110px + env(safe-area-inset-bottom))}
  .ft2-cols{grid-template-columns:1fr 1fr;gap:28px 18px}.ft2 ul{gap:12px}.ft2 ul a{font-size:15px}.ft2-cols>div:last-child{grid-column:1/-1}
  .ft2-bottom{flex-direction:column;align-items:flex-start;margin-top:32px}
  .ft2-cta .btn{flex:1;justify-content:center}
}

/* v24.1: Mobiler Assistent-Launcher – Avatar-Kreis ~13 % größer, Namens-Pill links angedockt, sanft schimmernder Ring */
@media(max-width:767.98px){
 .as-fab,body:has(.vc) .as-fab{width:52px!important;height:52px;min-height:52px!important;padding:5px!important;justify-content:center;overflow:visible;isolation:isolate}
 .as-fab>.as-fab-ic,body:has(.vc) .as-fab>.as-fab-ic{display:inline-flex!important}
 .as-fab .as-fab-av{width:40px!important;height:40px!important;margin:0!important;display:block}
 .as-fab>.as-fab-t,body:has(.vc) .as-fab>.as-fab-t.as-fab-t.as-fab-t{display:block!important;position:absolute;right:calc(100% - 8px);top:50%;transform:translateY(-50%);z-index:-1;padding:6px 16px 6px 12px;border-radius:999px;background:#fff;color:#0B7A55;font-size:12.5px;font-weight:800;line-height:1.2;font-family:var(--fd,inherit);letter-spacing:.01em;white-space:nowrap;box-shadow:0 6px 18px -6px rgba(11,122,85,.45),inset 0 0 0 1px rgba(14,159,110,.25)}
 .as-fab::after{content:"";position:absolute;inset:-3px;border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,rgba(255,255,255,0) 0deg,rgba(255,255,255,.95) 40deg,rgba(255,255,255,0) 90deg,rgba(255,255,255,0) 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px));animation:fabsheen 3.2s linear infinite}
}
@keyframes fabsheen{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.as-fab::after{animation:none!important;opacity:.6}}
/* Profil: Merken + Teilen */
.prof-a .fav{position:static;top:auto;right:auto}
.prof-a .fav.fav-l{height:44px;border-radius:12px;padding:0 14px;border:1px solid var(--line);background:#fff;color:var(--fg)}
.prof-a .fav.fav-l.on{color:#E0245E;border-color:#F5B5C8;background:#FFF0F4}
.teilen{position:relative;display:inline-flex}
.teilen-btn{display:inline-flex;align-items:center;gap:6px;height:44px}
.teilen-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px -12px rgba(16,20,24,.3);padding:6px;display:flex;flex-direction:column}
.teilen-menu a,.teilen-menu button{display:block;text-align:left;padding:10px 12px;border-radius:10px;font:600 14px var(--ff);color:var(--fg);background:none;border:0;cursor:pointer;text-decoration:none}
.teilen-menu a:hover,.teilen-menu button:hover{background:var(--panel2)}
.prof-gemerkt{margin:12px 0}
.am-grund h3{margin-bottom:4px}.am-grund p{margin:0 0 12px}
@media (max-width:760px){.prof-a .fav.fav-l,.prof-a .teilen{flex:1 1 40%}.prof-a .teilen .btn{width:100%;justify-content:center}.teilen-menu{left:0;right:0}}
/* Kostenrechner (v24) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.kr-f{display:flex;flex-direction:column;gap:22px;padding:22px}
.kr-q{display:flex;flex-direction:column;gap:10px}
.kr-l{font:700 15px var(--fd);color:var(--fg)}.kr-l small{display:block;font:500 12.5px var(--ff);color:var(--fg3);margin-top:2px}
.kr-row2{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}
.kr-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.kr-chips button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font:inherit;color:var(--fg);transition:border-color .15s,background .15s,box-shadow .15s}
.kr-chips button b{font:750 15px var(--fd)}.kr-chips button small{font-size:11px;color:var(--fg3);white-space:nowrap}
.kr-chips button:hover{border-color:var(--line2)}
.kr-chips button.on{border-color:var(--green);background:var(--mint2);box-shadow:inset 0 0 0 1px var(--green)}.kr-chips button.on small{color:var(--green)}
.kr-step{display:flex;align-items:center;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.kr-step button{width:44px;height:44px;border:0;background:#fff;font:600 20px var(--ff);color:var(--fg2);cursor:pointer}.kr-step button:hover{background:var(--panel2)}
.kr-step .inp{width:70px;border:0;border-radius:0;text-align:center;font-weight:700;box-shadow:none;-moz-appearance:textfield}
.kr-step .inp::-webkit-inner-spin-button,.kr-km::-webkit-inner-spin-button{-webkit-appearance:none}
.kr-km{width:120px;text-align:center;font-weight:700}
.kr-opts{display:flex;flex-direction:column;gap:8px}
.kr-f label.kr-opt{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.kr-opt:hover{border-color:var(--line2)}
.kr-opt input{position:absolute;opacity:0;pointer-events:none}
.kr-opt-ic{width:40px;height:40px;border-radius:12px;background:var(--panel2);display:grid;place-items:center;color:var(--fg2)}.kr-opt.on .kr-opt-ic{color:var(--green)}
.kr-opt-t{display:flex;flex-direction:column;gap:2px;min-width:0}.kr-opt-t b{font:700 15px var(--fd)}.kr-opt-t small{font-size:12.5px;color:var(--fg3);line-height:1.4}
.kr-opt-sw{width:42px;height:24px;border-radius:999px;background:var(--line2);position:relative;transition:background .2s;flex-shrink:0}
.kr-opt-sw:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.kr-opt.on{border-color:var(--green);background:var(--mint2);box-shadow:inset 0 0 0 1px var(--green)}
.kr-opt.on .kr-opt-ic{background:#fff}
.kr-opt.on .kr-opt-sw{background:var(--green)}.kr-opt.on .kr-opt-sw:after{transform:translateX(18px)}
.kr-opt:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}
.kr-res{padding:22px;border-radius:22px}
.kr-big{font:800 34px var(--fd);letter-spacing:-.02em}
.kr-check,.kr-faktoren{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14.5px;line-height:1.5}
.kr-check li{position:relative;padding-left:32px}
.kr-check li:before{content:"";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line2);background:#fff}
.kr-faktoren li{position:relative;padding-left:18px}.kr-faktoren li:before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--green)}
.kr-page .grid2 .card{padding:22px;border-radius:22px}
@media (prefers-reduced-motion:reduce){.kr-opt-sw,.kr-opt-sw:after{transition:none}}
@media (max-width:760px){.kr-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.kr-f{padding:16px;gap:18px}.kr-row2{align-items:center}.kr-f label.kr-opt{grid-template-columns:36px 1fr auto;padding:11px 12px;gap:10px}.kr-opt-ic{width:36px;height:36px;font-size:17px}}
/* Datei-Auswahl überall modern (statt Browser-Standardknopf) */
input[type=file]{box-sizing:border-box;min-width:0;font:500 13.5px var(--ff);color:var(--fg3);max-width:100%;padding:6px;border:1.5px dashed var(--line2);border-radius:14px;background:var(--panel2);cursor:pointer;transition:border-color .15s,background .15s}
input[type=file]:hover{border-color:var(--green);background:var(--mint2)}
input[type=file]:focus-visible{outline:2px solid var(--green);outline-offset:2px}
input[type=file]::file-selector-button{font:700 13.5px var(--ff);color:var(--fg);background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 14px;margin-right:12px;cursor:pointer;box-shadow:0 1px 2px rgba(16,20,24,.06);transition:border-color .15s,color .15s}
input[type=file]:hover::file-selector-button{border-color:var(--green);color:var(--green)}
input[type=file].inp{height:auto}
/* Profilbild im Kopf statt Initialen */
.avs img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.mt-av{width:30px;height:30px;border-radius:50%;object-fit:cover;display:block}
/* Ansicht-Wechsel: nie abgeschnitten, über dem Footer gut lesbar */
.av-sw{left:max(16px,env(safe-area-inset-left));max-width:calc(100vw - 32px);overflow-x:auto;scrollbar-width:none}
@media (max-width:760px){.av-sw{left:16px!important;right:16px;width:max-content;margin:0 auto;transform:none!important}} /* mittig ohne translate – sonst halb aus dem Bild */
.av-sw::-webkit-scrollbar{display:none}
.bl-themen{margin-top:18px;flex-wrap:wrap}.bl-themen .chip span{margin-left:4px;font-size:.85em}.bl-gruppe{scroll-margin-top:96px}
/* Tarif-Abzeichen (Premium/Pro) – dezent, keine Platzierung */
.badge.tarif{gap:4px;background:#FBF4E4;color:#7A5A12;border:1px solid #EBD9AE;padding:2px 7px}.badge.tarif svg{flex-shrink:0}
.badge.tarif.pro{background:#1F2A24;color:#F1E3B8;border-color:#1F2A24}
.badge.tarif.agentur{background:#143028;color:#E7EEEA;border-color:#143028}
/* Stadtseite: main.city erbte die Kachel-Regel .city (style.css: flex, Rahmen, Hover-Verschiebung) → Inhalt lief nebeneinander */
main.city{display:block;background:none;border:0;border-radius:0;color:inherit;font-weight:inherit;transition:none}
main.city:hover{transform:none;border-color:transparent;text-decoration:none}
/* Onboarding-Schritte (Steps.tsx): Liste ohne Browser-Nummern, Nummer als Kreis; mobil nur der aktive Schritt mit Text */
.stepper.onb{list-style:none;padding:0;margin:4px 0 18px;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.stepper.onb li{flex:1 0 auto;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:650;color:var(--fg3);white-space:nowrap}
.stepper.onb li span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--panel2);color:var(--fg2);font-size:12px;font-weight:800;flex:none}
.stepper.onb li.on{border-color:var(--green);background:var(--mint2);color:var(--green)}.stepper.onb li.on span{background:var(--green);color:#fff}
.stepper.onb li.done{color:var(--fg)}.stepper.onb li.done span{background:var(--mint);color:var(--green)}
.stepper.onb li:not(.on){flex:0 0 auto;font-size:0;gap:0;padding:7px}.stepper.onb li:not(.on) span{font-size:12px}.stepper.onb li.on{flex:1 1 auto}
@media (max-width:600px){.stepper.onb li.on{padding:7px 10px;font-size:12.5px}}
/* Grid-Spalten dürfen schrumpfen (sonst drücken Datei-Felder u. ä. das Raster über den Kartenrand) */
.grid2>*,.grid3>*{min-width:0}
/* Tarif-Karten im schmalen Onboarding untereinander; „Kommt bald“ bricht um statt überzustehen */
.narrow .pc-grid{grid-template-columns:1fr}.pc-top{flex-wrap:wrap;gap:6px}
/* Checkbox mit mehrzeiligem Text (z. B. AGB-Zustimmung): Text als ein Block */
.ck:has(>span){align-items:flex-start}.ck>span{flex:1;min-width:0}.ck:has(>span)>input{flex:none;margin-top:2px}
.rvc-ok{font-size:11.5px;font-weight:650;color:var(--green,#0B7A55);white-space:nowrap}
/* ── QA öffentliche Seiten (01.11.) ───────────────────────────────────── */
/* Ratgeber-Artikel: Spalte darf schmaler werden als ihr längster Inhalt (sonst wurde rechts abgeschnitten) */
.bl-grid{grid-template-columns:240px minmax(0,1fr)}
@media(max-width:860px){.bl-grid{grid-template-columns:minmax(0,1fr)}}
.bl-prose,.bl-toc{min-width:0}.bl-prose{overflow-wrap:break-word}.bl-src a{overflow-wrap:anywhere}.bl-tw{max-width:100%}
/* Ratgeber-Übersicht: Themen auf dem Handy als wischbare Zeile statt einer Bildschirmhöhe voller Chips */
@media(max-width:700px){.bl-themen{flex-wrap:nowrap;overflow-x:auto;margin:14px -16px 0;padding:0 16px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.bl-themen::-webkit-scrollbar{display:none}.bl-themen .chip{flex:0 0 auto}}
/* Ergebniskarten ohne eigene Fotos: auf dem Handy kompakt statt 4:3-Fläche mit Initialen */
@media(max-width:700px){.vc.vc-noimg .vc-img{aspect-ratio:auto;height:104px;min-height:0}.vc.vc-noimg .vc-ph .bini{width:58px;height:58px;font-size:21px;box-shadow:0 0 0 4px #fff}.vc.vc-noimg .vc-ph .bimg{width:auto;height:78%;max-height:84px;max-width:140px;padding:6px}}
/* Profil-Kopf: leere Zusatzzeile (ohne Einsatzgebiet, Abzeichen, Bewertungen) nicht als leeren Rahmen zeigen */
.prof-x:not(:has(p,.vc-badges>*,.rv>*)){display:none}
/* Suchauftrag: Gruppen ohne Browser-Rahmen, Auswahl-Chips mit Haken statt Kästchen */
.sa-form fieldset{border:0;margin:0;padding:0;min-width:0}.sa-form legend{padding:0;margin:0 0 8px}
.chip.ck{position:relative;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;transition:background .15s,border-color .15s,color .15s}
.chip.ck input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.chip.ck:has(input:checked){background:#E8F5EE;border-color:var(--green,#0B7A55);color:var(--green,#0B7A55)}
.chip.ck:has(input:checked)::before{content:"✓";font-weight:800}
.chip.ck:has(input:focus-visible){outline:2px solid var(--green,#0B7A55);outline-offset:2px}
/* Suchleiste: Felder gleich hoch, Beschriftungen auf einer Linie */
.sbar2 .inp{height:46px;box-sizing:border-box}
/* Startseite: „Bitte auswählen“ im Budget-Feld passt auf 390 px ohne Abschneiden (Schrift bleibt 16 px gegen iOS-Zoom) */
@media(max-width:760px){.h16-box .fld-b{padding-left:10px;padding-right:8px}}
/* 404 und Rechtstexte */
.nf-a{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.legal-h1{margin:6px 0 14px}
/* Suche mobil: offener Filter liegt über Tab-Leiste und Assistent-Knopf; „Ergebnisse anzeigen“ bleibt unten sichtbar */
@media(max-width:860px){body:has(.fs-t:checked) .mtabs,body:has(.fs-t:checked) .as-fab,body:has(.fs-t:checked) .mob-cta{transform:translateY(140%);opacity:0;pointer-events:none}body:has(.fs-t:checked){overflow:hidden}.filters{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.filters [data-testid=apply-filters]{position:sticky;bottom:0;width:100%;z-index:2;box-shadow:0 -10px 18px rgba(255,255,255,.92)}}
/* Sterne-Auswahl (Bewertung per Link, Empfehlung): Radios als große Sterne; DOM 5→1, Anzeige 1→5 (row-reverse), Hover/Auswahl färbt alle Sterne links davon */
fieldset.stars-in{border:0;padding:0;margin:0 0 6px;min-width:0;display:block;font-size:inherit}
fieldset.stars-in legend{padding:0;margin:0 0 6px}
fieldset.stars-in .stars-row{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:6px}
fieldset.stars-in label{position:relative;cursor:pointer;color:#D8DBD5;font-size:36px;line-height:1;transition:color .12s;padding:2px}
fieldset.stars-in label input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
fieldset.stars-in label:hover,fieldset.stars-in label:hover~label,fieldset.stars-in label:has(input:checked),fieldset.stars-in label:has(input:checked)~label{color:#E9A93A}
fieldset.stars-in label:has(input:focus-visible){outline:2px solid var(--green,#0B7A55);outline-offset:2px;border-radius:8px}
/* --- unten.css --- */
/* Unterer Bildschirmrand am Handy ordnen (01.11.): Tab-Leiste unten, darüber links die Ansicht-Pille (nur Admins),
   rechts Lenas bzw. Max' runder Knopf ohne Beschriftung – nichts überlappt, Inhalte bekommen genug Abstand.
   Wird als letztes Stylesheet geladen; höhere Spezifität, damit ältere Regeln (admin.css, v20/v24) nicht dazwischenfunken. */
@media (max-width:767.98px){
  /* Lena (öffentliche Seiten, Konto, Postfach): nur der runde Avatar, über der Tab-Leiste mit Abstand */
  html body .as-fab{right:14px!important;bottom:calc(86px + env(safe-area-inset-bottom))!important}
  /* Beschriftung aus – auch gegen die Regel „body:has(.vc) .as-fab>.as-fab-t.as-fab-t.as-fab-t“ aus v24.css (deshalb die gehäuften Klassen) */
  html body .as-fab.as-fab>.as-fab-t.as-fab-t.as-fab-t.as-fab-t,html body .fa-fab.fa-fab .as-fab-t.as-fab-t.as-fab-t.as-fab-t{display:none!important}
  /* Ansicht-Leiste eingeklappt: kleine Pille links über der Tab-Leiste (Lena sitzt rechts) */
  html body .av-sw{left:14px!important;right:auto!important;bottom:calc(86px + env(safe-area-inset-bottom))!important;transform:none!important;margin:0!important;width:auto!important;max-width:calc(100vw - 96px)}
  html body .av-sw .av-zu{padding:7px 11px 7px 10px}
  /* aufgeklappt: volle Breite über allem, mit Schließen (×) */
  html body .av-sw.auf{right:12px!important;left:12px!important;max-width:none;z-index:120;justify-content:space-between;overflow-x:auto}
  html body .av-sw.auf .av-opt{flex:1;justify-content:space-around}
  html body .av-sw.auf .av-opt a,html body .av-sw.auf .av-opt .av-btn{padding:8px 10px}
  html body:has(.av-sw.auf) .as-fab{visibility:hidden}
  /* Fotografen-Bereich: eigene Tab-Leiste unten, Max rechts darüber */
  html body:has(.dsh-tabs) .av-sw{bottom:calc(84px + env(safe-area-inset-bottom))!important}
  html body:has(.dsh-tabs) .fa-fab{right:14px!important;bottom:calc(84px + env(safe-area-inset-bottom))!important}
  /* Chat (Eingabefeld unten) und Profil-Editor (Speichern-Leiste unten): Pille höher */
  html body:has([data-testid="sec-thread"]) .av-sw:not(.auf){bottom:calc(136px + env(safe-area-inset-bottom))!important}
  html body:has([data-testid="sec-thread"]) .av-sw:not(.auf) .av-zu em{display:none}
  html body:has(.pe-bar) .av-sw:not(.auf){bottom:calc(134px + env(safe-area-inset-bottom))!important}
  /* Inhalt endet über den schwebenden Elementen */
  html body:has(.av-sw) .dsh-page:not(.dsh-inbox){padding-bottom:calc(150px + env(safe-area-inset-bottom))}
  html body:has(.mtabs) main{scroll-padding-bottom:160px}
}
/* Desktop im Fotografen-Bereich: Pille oben rechts (auf Höhe des Testkonto-Hinweises) – unten links lag sie über Karten und Formularen */
@media (min-width:768px){html body:has(.dsh-side) .av-sw{left:auto!important;right:18px!important;top:2px!important;bottom:auto!important;transform:none!important}}
/* Fotografen-Chat am Handy: Testkonto-Hinweis einzeilig und von der Chat-Höhe abgezogen (sonst lag die Eingabe unter der Tab-Leiste);
   Eingabezeile kompakter – Senden als Pfeil-Symbol, Hinweistext aus (steht schon oben im Kopf: „Kontaktdaten werden nicht weitergegeben“) */
@media (max-width:760px){
  html body:has([data-testid="sec-thread"]) .dsh-test{padding:6px 14px;height:30px;line-height:18px;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  html body:has(.dsh-test) .dsh-inbox[data-testid="sec-thread"]{height:calc(100dvh - 54px - 66px - 30px - env(safe-area-inset-bottom))}
  /* Chat füllt genau den Bildschirm: kein zusätzliches Scrollen der ganzen Seite (Body-Abstand gilt der Tab-Leiste der Website) */
  html body:has([data-testid="sec-thread"]){padding-bottom:0}
  html body:has([data-testid="sec-thread"]) .dsh{padding-bottom:calc(66px + env(safe-area-inset-bottom));min-height:0}
  html body [data-testid="sec-thread"] .chat-in{padding:8px 10px}
  html body [data-testid="sec-thread"] .chat-in>.tiny{display:none}
  html body [data-testid="sec-thread"] .chat-row{gap:5px}
  html body [data-testid="sec-thread"] .chat-row .ic{width:40px}
  /* Platzhalter „Nachricht schreiben …“ passt in eine Zeile (vorher 74 statt 44 px hoch) */
  html body [data-testid="sec-thread"] .chat-row .ta{padding-left:10px;padding-right:8px;font-size:16px;min-width:0}
  html body [data-testid="sec-thread"] .chat-row .ic{width:36px;min-width:36px}
  html body [data-testid="sec-thread"] .chat-row>.btn-p{width:44px;min-width:44px;height:44px;padding:0;font-size:0;flex:none;border-radius:999px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2 11 13'/%3E%3Cpath d='M22 2 15 22l-4-9-9-4 20-7z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:20px}
}
/* Paar-Postfach am Handy: Unterhaltung nie breiter als der Bildschirm (Raster-Spalte 1fr wuchs mit Tabelle/Fakten mit) */
@media (max-width:900px){html body .inbox{grid-template-columns:minmax(0,1fr)}html body .inbox>section,html body .inbox>aside{min-width:0}html body .inbox .tbl{width:100%}}
/* QA 01.11.: Im Fotografen-Bereich ist die Cookie-Leiste ausgeblendet (v15-dash.css) – die Regel „Cookie-Leiste da → Assistent aus“ (v9.css)
   hat Max deshalb am Handy dauerhaft versteckt. Max bleibt sichtbar, außer im Chat (dort hat das Eingabefeld Vorrang). */
@media (max-width:767.98px){html body:has(.dsh):not(:has([data-testid="sec-thread"])) .fa-fab{display:flex!important}}
html body .av-sw a{text-decoration:none}

/* Fotografen-Chat am Handy (01.11. abends): Kopf, Übungs-Hinweis und Angebots-/Termin-Karten scrollen mit den Nachrichten –
   vorher blieben bei 390×667 neben Kopf, Übungs-Hinweis und Angebotskarte nur wenige Pixel für die Unterhaltung.
   Die Eingabe bleibt unten fest (sticky); Chat.tsx scrollt die Spalte beim Öffnen ans Ende. Die Ansicht-Pille ist im Chat aus. */
@media (max-width:760px){
  /* Unten kein Innenabstand (sonst schauten Nachrichten unter der festen Eingabe hervor); die Unterhaltung geht über die ganze Breite,
     die Karten stehen bündig mit Kopf und Angebot (Karten-Stapel ohne eigenen Rand) */
  /* Spalte als Ganzes: Kopf und Karten so hoch wie ihr Inhalt, die Unterhaltung füllt den Rest – bei wenigen Nachrichten steht die
     Eingabe trotzdem unten über der Tab-Leiste (vorher hing sie mitten im Bild) */
  html body [data-testid="sec-thread"] .ib-r{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding-bottom:0}
  html body [data-testid="sec-thread"] .ib-r>*{flex:none}
  html body [data-testid="sec-thread"] .ib-r>.chat{flex:1 0 auto;display:flex;flex-direction:column;min-height:0;margin-left:-16px;margin-right:-16px}
  html body [data-testid="sec-thread"] .ib-r>.ck-stapel{padding:0;border-bottom:0;background:none;margin:0 0 12px}
  html body [data-testid="sec-thread"] .chat-msgs{flex:1 0 auto;overflow:visible;min-height:140px}
  html body [data-testid="sec-thread"] .chat-in{position:sticky;bottom:0;z-index:5;background:var(--panel,#fff);box-shadow:0 -8px 18px -14px rgba(16,20,24,.45)}
  html body:has([data-testid="sec-thread"]) .av-sw:not(.auf){display:none!important}
}
/* Desktop, Seiten mit Profilkarten (Liste, Suche, Startseite, Profil): Lena nur als runder Avatar, Beschriftung erst bei Hover/Fokus –
   die Pille verdeckte sonst „Profil ansehen“ in der rechten Spalte der Karten (Review 02.11.). */
@media (min-width:768px){
  html body:has(.vc) .as-fab.as-fab>.as-fab-t.as-fab-t.as-fab-t.as-fab-t{display:none!important}
  html body:has(.vc) .as-fab.as-fab:hover>.as-fab-t.as-fab-t.as-fab-t.as-fab-t,html body:has(.vc) .as-fab.as-fab:focus-visible>.as-fab-t.as-fab-t.as-fab-t.as-fab-t{display:block!important}
}
/* --- feinschliff.css --- */
/* Feinschliff (01.11.2026): einheitliche Typografie, Fokus, Leerzustände und ruhigere Raster auf den Hauptseiten.
   Wird im Root-Layout als letzte Datei geladen (nach unten.css) und verfeinert nur – Struktur und Farben bleiben. */

/* ── Typografie ─────────────────────────────────────────────────────────── */
/* Ausgewogene Zeilenumbrüche in Überschriften, keine Einzelwörter am Absatzende */
h1, h2, h3 { text-wrap: balance; }
p, li, dd { text-wrap: pretty; }
/* Lange deutsche Wörter (z. B. „Hochzeitsfotografie“) auf dem Handy sauber trennen statt mitten im Wort abzuschneiden */
@media (max-width: 600px) {
  h1, h2, h3 { -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
}

/* ── Fokus, Auswahl, Bewegung ───────────────────────────────────────────── */
/* Sichtbarer Tastatur-Fokus überall dort, wo keine eigene Regel greift (:where = Spezifität 0) */
:where(a, button, summary, [role="button"], [tabindex]):focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
::selection { background: var(--mint); color: var(--fg); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ── Startseite ─────────────────────────────────────────────────────────── */
/* „So einfach geht’s“: am Desktop als ein Ablauf in fünf gleich breiten Schritten statt 3 + 2 */
@media (min-width: 1100px) {
  .v10-mini { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
  .v10-mini li { flex-direction: column; gap: 12px; padding: 18px 16px 20px; }
}
/* … am Handy als ruhige Zeitleiste statt fünf einzelner Karten */
@media (max-width: 767.98px) {
  .v10-mini { gap: 0; }
  .v10-mini li { position: relative; background: none; border: 0; border-radius: 0; padding: 0 0 18px; }
  .v10-mini li:not(:last-child)::before { content: ""; position: absolute; left: 18px; top: 44px; bottom: 6px; width: 2px; border-radius: 2px; background: var(--mint); }
}
/* Icons der Vorteile: einheitliche Linien-Icons */
.h8-ic svg { display: block; }
/* Städte rund um München: am Desktop zwei volle Reihen à 7 statt einer Restreihe */
@media (min-width: 1100px) {
  .h8-cities { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}
.h8-city b { -webkit-hyphens: auto; hyphens: auto; }

/* ── Suche: Stil-Kacheln ohne Beispielbild ──────────────────────────────── */
span.stf-i { background: linear-gradient(160deg, var(--mint2) 0%, var(--panel2) 100%); color: var(--green); font-family: var(--fd); letter-spacing: .02em; }

/* ── Ratgeber-Artikel: Inhaltsverzeichnis am Desktop immer sichtbar ─────── */
.bl-toc-d { display: none; }
@media (min-width: 861px) {
  .bl-grid { grid-template-columns: 240px minmax(0, 760px); }
  .bl-toc-m { display: none; }
  .bl-toc-d { display: block; margin: 2px 0 10px; border-left: 2px solid var(--line); }
  .bl-toc-d b { display: block; margin: 0 0 6px 14px; font-size: 13px; font-weight: 700; color: var(--fg3); }
  .bl-toc-d ol { list-style: none; margin: 0; padding: 0; max-height: calc(100vh - 280px); overflow: auto; font-size: 13.5px; line-height: 1.35; }
  .bl-toc-d a { display: block; margin-left: -2px; padding: 5px 10px 5px 14px; border-left: 2px solid transparent; color: var(--fg2); text-decoration: none; }
  .bl-toc-d a:hover { color: var(--green); border-left-color: var(--green); }
}

/* ── Fotografen-Bereich: Leerzustände mit ruhigem Icon statt nacktem Text ─ */
.dsh-empty { max-width: 52ch; margin-left: auto; margin-right: auto; line-height: 1.55; }
.dsh-empty::before {
  content: ""; display: block; width: 44px; height: 44px; margin: 0 auto 12px; border-radius: 14px;
  background: var(--mint2) center / 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B7A55' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13.5 6.5 5h11l2.5 8.5'/%3E%3Cpath d='M4 13.5V19h16v-5.5h-5a3 3 0 0 1-6 0z'/%3E%3C/svg%3E");
}
/* 13 Städte: München über zwei Spalten, damit beide Reihen voll sind */
@media (min-width: 1100px) {
  .h8-cities:has(> :nth-child(13):last-child) > :first-child { grid-column: span 2; }
}

/* ── Eigene Seite (Landingpage): „Über mich“ ohne Porträt nicht in die schmale Bildspalte quetschen ── */
.lp-ueber-g:not(:has(> .lp-portrait)) { grid-template-columns: minmax(0, 680px); }

/* ── Ratgeber: Sprungziele nicht unter der festen Kopfzeile verstecken ── */
.bl-prose h2, .bl-prose h3 { scroll-margin-top: 88px; }
/* Ratgeber-Karten: „Weiterlesen“ immer unten, damit die Links einer Reihe auf einer Linie stehen */
.bl-card { display: flex; flex-direction: column; }
.bl-card .bl-more { margin-top: auto; padding-top: 6px; }

/* ── Mein Konto: Seitenleiste breit genug für „Suchaufträge & Anfragen“ samt Zähler ── */
@media (min-width: 861px) {
  .acc-grid { grid-template-columns: 250px minmax(0, 1fr); }
}
.acc-nav a { align-items: center; gap: 8px; }

/* ── Karten-Links: beim Überfahren nicht den ganzen Karteninhalt unterstreichen (nur Schatten/Hebung) ── */
a:is(.bl-card, .bl-feat, .h8-city, .h8-tease, .card, .dsh-kpi, .kd-row-l, .vc-ph, .acc-mini-i, .chip):hover { text-decoration: none; }
.dsh-list a:hover, .tl a:hover, .ib-l a:hover { text-decoration: none; }
a.bl-card { transition: box-shadow .15s ease, border-color .15s ease; }
a.bl-card:hover { border-color: var(--line2); box-shadow: var(--sh); }
a.bl-card:hover h3 { color: var(--green); }

/* ── Ratgeber-Tabellen am Handy: lange deutsche Wörter trennen statt seitlich scrollen (lang="de" am <html>).
      Nur lange Wörter (ab 10 Zeichen, je Teil mind. 5), damit „Dezember“ oder „Gemeinde“ ganz bleiben.
      Vor Fußnoten in Zellen setzt ratgeber-convert.py ein schmales Leerzeichen, damit auch das Wort davor getrennt werden kann. ── */
table.bl-t td, table.bl-t th {
  -webkit-hyphens: auto; hyphens: auto;
  hyphenate-limit-chars: 10 5 5; -webkit-hyphenate-limit-before: 5; -webkit-hyphenate-limit-after: 5;
}
@media (max-width: 480px) {
  table.bl-t { font-size: 14px; }
  table.bl-t td, table.bl-t th { padding: 7px 6px; }
  /* ab vier Spalten etwas kompakter */
  table.bl-t:has(tr > :nth-child(4)) { font-size: 13px; }
  table.bl-t:has(tr > :nth-child(4)) :is(td, th) { padding: 6px 4px; }
}
/* ── Design-Feinschliff 03.11.2026 (Durchgang über alle CI-Aufnahmen, 390 + 1440 px) ───────────── */
/* Leiser Text (--fg3: Meta-Zeilen, „tiny“, Zeitstempel) war mit #7A8590 nur 3,8 : 1 auf Weiß bzw. 3,4 : 1 auf den hellgrauen Flächen –
   unter WCAG AA (4,5 : 1). #646F7A: ≥ 4,6 : 1 auf allen hellen Flächen, bleibt sichtbar heller als --fg2 */
:root { --fg3: #646F7A; }
/* Chat: Uhrzeiten in den Blasen waren zusätzlich auf 72 % abgeblendet (2,4 : 1) – volle Deckkraft, auf Grün etwas kräftigeres Weiß */
.cw .bub time { opacity: 1; }
.cw .cw-row.me .bub time { color: rgba(255, 255, 255, .92); }
/* „Veröffentlicht in“ (Presse-Band): #8a7a68 bei 10–11 px nur 4,2 : 1 */
.feat-k { color: #75674F; }
/* Tippflächen am Handy mindestens 44 px (Apple-Richtlinie; Knöpfe waren 40–42 px, kleine Symbole 22–36 px).
   Das Herz auf Profilkarten behält seine Größe, bekommt aber eine unsichtbar größere Trefferfläche. */
@media (max-width: 860px) {
  .btn { min-height: 44px; }
  .mg-alt .btn { width: 44px; }
  .mg-alt .inp { min-height: 44px; }
  .vc .fav::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; }
}
@media (max-width: 767.98px) {
  .dsh-back { width: 44px; height: 44px; margin-left: -4px; }
  .kd-check li { padding: 0; }
  .kd-check label { flex: 1; min-height: 44px; }
  .kd-x { min-width: 44px; min-height: 44px; opacity: .75; }
}
/* Profilkarten am Handy: „Beispielfotos ansehen“ brach neben „Profil ansehen“ zweizeilig um → kurz „Beispielfotos“ */
@media (max-width: 520px) { .vc-a .pm-zusatz, .prof-a .pm-zusatz { display: none; } }
/* … und „Individuelles Angebot“ immer rechtsbündig (sprang je nach Länge der Bewertungszeile zwischen links und rechts) */
@media (max-width: 860px) { .vc-p { margin-left: auto; text-align: right; } }
/* Silbentrennung in Überschriften (Handy-Regel oben) nur bei langen Wörtern und mit mind. 9 Zeichen je Seite:
   „Hochzeits-fotografen“ statt „Hochzeitsfo-tografen“ bzw. „Hoch-zeitsfotografie“ (Browser ohne Unterstützung trennen wie bisher) */
@media (max-width: 600px) { h1, h2, h3 { hyphenate-limit-chars: 18 9 9; } }
/* Ratgeber: Fußnoten-Verweise [1] vergrößerten den Abstand ihrer Zeile (unruhiger Satz); Tippfläche größer, ohne den Satz zu verändern */
sup.bl-ref { line-height: 0; font-size: .72em; vertical-align: baseline; position: relative; top: -.42em; }
sup.bl-ref a { padding: 10px 2px; text-decoration: none; font-weight: 600; }
/* Anmelden/Registrieren am Handy: Lena verdeckte das rechte Ende von E-Mail-Feld und „Anmelden“ – auf dem Formular ausblenden */
@media (max-width: 860px) { html body:has(.ap-tabs) .as-fab.as-fab.as-fab.as-fab { display: none !important; } }
/* So funktioniert's: vier Vorteile als 2 × 2 statt 3 + einzelnes „✓ sicher“ in der zweiten Zeile */
@media (max-width: 480px) { .v10-pills { display: grid; grid-template-columns: repeat(2, max-content); justify-content: center; } .v10-pills span { text-align: center; } }
/* Fotografen-Bereich am Handy: Max' runder Knopf lag über „Speichern“ (Profil-Editor, Leiste .pe-bar) bzw. „Seite öffnen“
   (Eigene Seite, .lpe-save) – über die Speichern-Leiste heben (unten.css hebt dort bisher nur die Ansicht-Pille) */
@media (max-width: 767.98px) {
  html body:has(.pe-bar) .fa-fab.fa-fab { bottom: calc(136px + env(safe-area-inset-bottom)) !important; }
  html body:has(.lpe-save) .fa-fab.fa-fab { bottom: calc(158px + env(safe-area-inset-bottom)) !important; }
}
/* Fotografen-Chat am Desktop: bei gebuchten Unterhaltungen (zwei Angebote + Rechnung) füllten die Karten die ganze Spalte, Verlauf und
   Eingabe lagen abgeschnitten darunter (Spalte mit overflow:hidden, bei 1440 × 900 nicht erreichbar). Jetzt scrollt die Spalte als Ganzes
   wie am Handy (unten.css): Kopf oben und Eingabe unten bleiben stehen, Chat.tsx springt beim Öffnen ans Ende; kurze Verläufe füllen
   die Höhe wie bisher (Eingabe unten). */
@media (min-width: 761px) {
  .dsh-inbox[data-testid="sec-thread"] .ib-r { overflow-y: auto; overscroll-behavior: contain; }
  .dsh-inbox[data-testid="sec-thread"] .ib-r > * { flex-shrink: 0; }
  .dsh-inbox[data-testid="sec-thread"] .ib-r > .th { position: sticky; top: 0; z-index: 6; background: var(--panel, #fff); }
  .dsh-inbox[data-testid="sec-thread"] .ib-r > .chat { flex: 1 0 auto; min-height: 0; }
  .dsh-inbox[data-testid="sec-thread"] .chat-msgs { flex: 1 0 auto; overflow: visible; min-height: 160px; }
  .dsh-inbox[data-testid="sec-thread"] .chat-in { position: sticky; bottom: 0; z-index: 5; box-shadow: 0 -8px 18px -14px rgba(16, 20, 24, .45); }
}
/* Fotografen-Bereich, Formularreihen: nie breiter als die Karte – „1fr“ (= minmax(auto, 1fr)) ließ in Einstellungen → „Identität & Gewerbe“
   Auswahl und Dateifeld am Handy über den Kartenrand ragen (gleiches Muster wie bei der Werbung) */
.pe-row > *, .pe-row3 > * { min-width: 0; }
/* Mehrere anfragen, Vorschläge am Handy: Sterne und „Profil“ unter den Text statt daneben – der Begründungstext stand sonst in einer
   schmalen Spalte („Bewertungen · 6 km / entfernt · am / Wunschtermin nicht / als belegt markiert“) */
@media (max-width: 560px) {
  label.sug { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 12px; row-gap: 6px; align-items: center; }
  label.sug > input { grid-row: 1 / span 2; align-self: start; margin-top: 2px; }
  label.sug > div { grid-column: 2 / -1; min-width: 0; }
  label.sug > .stars, label.sug > span.small { grid-column: 2; }
  label.sug > a { grid-column: 3; justify-self: end; padding: 10px 0 10px 12px; }
}
/* Suchauftrag, Angebote im Vergleich: Tabelle scrollt seitlich – „Nachricht schreiben“ einzeilig statt zweizeilig in der 170-px-Spalte */
.cmp .btn { white-space: nowrap; }
/* Admin-Formulare mit Feld + Knopf (Ablehnen, E-Mail, API-Schlüssel): am Handy darf der Knopf in die nächste Zeile („Ablehnen & Abo beenden“ brach dreizeilig um) */
@media (max-width: 560px) { form.item-row { flex-wrap: wrap; } form.item-row > .inp { flex: 1 1 200px; min-width: 0; } }
/* Admin → Werbung, Preiszeilen: Eingaben einer Reihe auf einer Linie, auch wenn „€ netto / Woche“ zweizeilig ist */
.item-row:has(> label) { align-items: flex-end; }
.item-row > label { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
/* Fotografen-Bereich, Listen mit Datum + Status („Kommende Termine“): am Handy Status unter den Titel, statt „Katharina · / Freising“ umzubrechen */
@media (max-width: 480px) {
  .dsh-list li > a:has(> .dsh-date):has(> .badge) { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; row-gap: 4px; align-items: center; }
  .dsh-list li > a:has(> .dsh-date):has(> .badge) > .dsh-date { grid-row: span 2; }
  .dsh-list li > a:has(> .dsh-date):has(> .badge) > .badge { grid-column: 2; justify-self: start; }
}
/* Für Fotografen, Rechner: Felder einer Reihe auf einer Linie, auch wenn eine Beschriftung zweizeilig ist („Fragebögen & Formulare“) */
.ffv-feld { display: flex; flex-direction: column; justify-content: flex-end; }
/* Stadtseite: „Alle 172 Hochzeitsfotografen in Berlin ansehen“ brach am Handy zweizeilig um – dort ohne Ortsnamen (steht in der Überschrift) */
@media (max-width: 480px) { .city-alle-ort { display: none; } }
/* Stadtseite unten: „Häufige Fragen“ und „Ratgeber“ klebten am Abschnitt davor – gleicher Abstand zwischen allen drei Blöcken */
.city-more > h2 { font-size: clamp(21px, 2.4vw, 26px); margin: 0 0 12px; }
.city-more > h2:not(:first-child) { margin-top: 36px; }
.city-more > .chips { margin: 0; gap: 8px; }
.city-more > ul { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
/* Stadtseite: „… in Zahlen“ (Go-Live-SEO 07.11.2026) – ruhige Faktenliste vor „In der Nähe“, gleiche Karte wie die Fragen */
.city-zahlen { margin-top: 32px; }
.city-zahlen > h2 { font-size: clamp(21px, 2.4vw, 26px); margin: 0 0 12px; }
.city-zahlen > ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.city-zahlen > ul > li { padding: 12px 14px; line-height: 1.5; }
.city-zahlen > ul > li + li { border-top: 1px solid var(--line); }
.city-zahlen > p { margin: 8px 2px 0; }
/* Buchungsschutz: Schritt-Titel standen ohne Abstand vor dem Text („Angebot digital annehmenLeistungsumfang …“) */
.flow li > b { display: block; margin-bottom: 2px; }
.flow li > span { color: var(--fg2); }
/* Profil, Pakete: Lücke unter dem Paketnamen (leere Faktenzeile + space-between) – Inhalt oben, Preis unten auf einer Linie */
.pks .pk { justify-content: flex-start; gap: 6px; }
.pks .pk > :empty, .lp-pk-k > ul:empty { display: none; }
.pks .pk > p { margin: 0; }
.pks .pk > .pr { margin-top: auto; padding-top: 8px; }
/* Projektseite: Paar · Datum · Ort als Einheiten – Umbruch zwischen den Teilen statt mitten im Ort („Villa / Rizzardi“) */
.pjg-meta-t { display: inline-block; max-width: 100%; }
/* Namen von Studios nie automatisch trennen (die Handy-Regel trennte „AERO BER-LIN Photography“); überlange Wörter brechen weiter um */
.prof-t h1, .vc h3 { -webkit-hyphens: manual; hyphens: manual; }
/* Profil am Handy: Anfrage-Leiste mit einzeiligem Knopf; links Bewertung/Ort + Hinweis, der bei Bedarf umbricht */
@media (max-width: 860px) {
  .mob-cta > div { min-width: 0; line-height: 1.3; }
  .mob-cta > .btn { flex: none; white-space: nowrap; padding: 11px 15px; font-size: 14.5px; min-height: 44px; }
}
/* Profilseite und Bestenliste am Desktop: Lena nur als runder Avatar wie auf Seiten mit Profilkarten (unten.css, body:has(.vc)) –
   die Pille lag über dem Anfrageformular bzw. über „Profil ansehen“ in der rechten Spalte der Liste */
@media (min-width: 768px) {
  html body:has(.prof) .as-fab.as-fab > .as-fab-t.as-fab-t.as-fab-t.as-fab-t,
  html body:has(.bl100) .as-fab.as-fab > .as-fab-t.as-fab-t.as-fab-t.as-fab-t { display: none !important; }
  html body:has(.prof) .as-fab.as-fab:hover > .as-fab-t.as-fab-t.as-fab-t.as-fab-t,
  html body:has(.prof) .as-fab.as-fab:focus-visible > .as-fab-t.as-fab-t.as-fab-t.as-fab-t,
  html body:has(.bl100) .as-fab.as-fab:hover > .as-fab-t.as-fab-t.as-fab-t.as-fab-t,
  html body:has(.bl100) .as-fab.as-fab:focus-visible > .as-fab-t.as-fab-t.as-fab-t.as-fab-t { display: block !important; }
}
/* Ratgeber: {{plattform-zahlen}} – Live-Zahlen wie der Ranking-Kasten, Zahlen groß links (Go-Live 07.11.2026) */
.bl-zahlen { border: 1px solid #e3ece6; border-radius: 14px; padding: 12px 14px; margin: 18px 0; }
.bl-zahlen dl { margin: 8px 0 0; display: grid; gap: 0; }
.bl-zahlen dl > div { display: grid; grid-template-columns: minmax(64px, max-content) 1fr; gap: 12px; align-items: baseline; padding: 8px 0; border-top: 1px solid #f0f0f0; }
.bl-zahlen dt { font-weight: 700; font-size: 20px; font-variant-numeric: tabular-nums; }
.bl-zahlen dd { margin: 0; color: var(--fg2); line-height: 1.45; }

/* /anfrage/mehrere – Angaben als Formular (07.11.2026): Zeile „Eure Angaben“ und Überschrift über den Vorschlägen */
.ki-angaben{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-top:18px}
.ki-angaben .tiny{color:var(--fg2)}
.ki-h{font-size:20px;line-height:1.3;margin:22px 0 10px}
/* --- staedte.css --- */
/* ── Städte-Struktur (Vorgabe Valentin 03.11.2026): Ratgeber nach Themen und Städten, Startseite „Hochzeitsfotografen nach Stadt“,
      Fußzeile „Städte“. Global geladen (layout.tsx), weil die Fußzeile auf jeder Seite steht. ───────────────────────────────── */

/* ── Ratgeber-Übersicht: Abschnitte ─────────────────────────────────────── */
/* Inhalt bündig mit dem Kopf (Kopf: .in mit 24 px, Übersicht hatte 16 px) */
@media (min-width: 861px) { .in.bl-idx { padding-left: 24px; padding-right: 24px; } }
.rg-sek { margin-top: 48px; }
.rg-kopf { margin: 0 0 18px; max-width: 760px; }
.rg-kopf h2 { font-size: clamp(24px, 3.2vw, 32px); line-height: 1.2; margin: 0; }
.rg-kopf p { margin: 6px 0 0; color: var(--fg2); font-size: 16px; line-height: 1.5; }
.rg-zahl { display: inline-block; vertical-align: .18em; margin-left: 4px; padding: 1px 9px; border-radius: 999px; background: var(--panel2); color: var(--fg3); font: 600 13px/1.5 var(--ff); }

/* Ratgeber nach Stadt: kompakte Kacheln – ganze Kachel = großer Ratgeber, Pille „n Artikel“ = Sprung zur Gruppe der Stadt */
.rg-staedte { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 12px; }
.rg-stadt { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: 16px; background: #fff; border: 1px solid var(--line); transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease; }
.rg-stadt:hover { border-color: var(--line2); box-shadow: var(--sh); transform: translateY(-2px); }
.rg-stadt:focus-within { border-color: var(--green2); }
.rg-stadt-a { display: flex; flex-direction: column; gap: 2px; color: inherit; text-decoration: none; }
.rg-stadt-a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.rg-stadt-a:hover, .rg-stadt-a:focus { text-decoration: none; }
.rg-stadt-a:focus-visible { outline: none; }
.rg-stadt-a:focus-visible::after { outline: 2px solid var(--green); outline-offset: 2px; }
.rg-stadt-a b { font: 700 17px/1.25 var(--fd); color: var(--fg); -webkit-hyphens: auto; hyphens: auto; }
.rg-stadt-a span { font-size: 13.5px; font-weight: 600; color: var(--green); }
.rg-stadt-n { position: relative; z-index: 1; margin-top: auto; align-self: flex-start; padding: 3px 10px; border-radius: 999px; background: var(--panel2); color: var(--fg2); font-size: 12.5px; font-weight: 600; text-decoration: none; }
.rg-stadt-n:hover { background: var(--mint); color: var(--green); text-decoration: none; }
/* Tippfläche der Pille unsichtbar auf ≈ 44 px Höhe vergrößert (sichtbar bleibt die kleine Pille) */
.rg-stadt-n::after { content: ""; position: absolute; inset: -10px -8px; }
/* ab 13 Städten (alle Großstädte mit Ratgeber) am Desktop zwei volle Reihen à 7 wie auf der Startseite */
@media (min-width: 1100px) {
  .rg-staedte:has(> li:nth-child(13)) { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}

/* Gruppen (Themen und Städte) */
.rg-gruppe { margin-top: 32px; scroll-margin-top: 96px; }
.rg-kopf + .rg-gruppe { margin-top: 0; }
.rg-gkopf { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 14px; }
.rg-gtitel { font-size: 22px; line-height: 1.25; margin: 0 0 14px; }
.rg-gkopf .rg-gtitel { margin: 0; }
.rg-glink { font-size: 14.5px; font-weight: 600; }
.rg-unter { margin-top: 24px; scroll-margin-top: 96px; }
.rg-utitel { font-size: 17px; line-height: 1.3; margin: 0 0 12px; color: var(--fg); }
.rg-unav { margin: 18px 0 0; }
.bl-card :is(h4, h5) { font-size: 17px; line-height: 1.3; margin: 6px 0; }
a.bl-card:hover :is(h4, h5) { color: var(--green); }
/* großer Ratgeber einer Stadt: breite Karte vor den übrigen Artikeln, ruhig hervorgehoben */
.bl-card.rg-guide { margin-bottom: 12px; padding: 18px 20px; background: var(--mint2); border-color: #CFE6D8; }
.bl-card.rg-guide .bl-k { color: var(--green); }
.bl-card.rg-guide :is(h4, h5) { font-size: 19px; }
.bl-card.rg-guide p { max-width: 78ch; margin: 2px 0 8px; }
/* übrige Stadt-Artikel: Etikett + Titel, ohne Beschreibung */
.bl-card.rg-kurz { padding: 14px 16px; }
.bl-card.rg-kurz :is(h4, h5) { font-size: 16px; line-height: 1.35; margin: 4px 0 0; }

/* Bestenliste als Aufmacher (statt des früheren München-Guides) */
.bl-feat.rg-best { margin-bottom: 0; padding: 24px 26px; }
.bl-feat.rg-best h2 { margin: 6px 0 8px; font-size: clamp(22px, 3vw, 30px); line-height: 1.2; }
.bl-feat.rg-best p { margin: 0 0 16px; max-width: 720px; color: #E3F3EA; line-height: 1.55; }

/* ── Ortslisten als Chips (Ratgeber unten, Startseite „Weitere Orte“) ── */
.ort-titel { font-size: 15px; font-weight: 700; margin: 20px 0 10px; color: var(--fg2); }
.ort-chips .chip { white-space: nowrap; }

/* ── Startseite: Hochzeitsfotografen nach Stadt ── */
.st-weitere { margin-top: 26px; }
.st-weitere .ort-titel { margin-top: 0; }

/* ── Fußzeile: vierte Spalte „Städte“ – Spalten so breit wie ihr Inhalt (sonst brechen „Mehrere Fotografen anfragen“ und „Warum bin ich gelistet?“ um) ── */
@media (min-width: 641px) {
  .ft2-cols:has(> :nth-child(4)) { grid-template-columns: repeat(4, minmax(0, auto)); justify-content: space-between; gap: 24px; }
}
@media (max-width: 640px) {
  .ft2-cols:has(> :nth-child(4)) > div:last-child { grid-column: auto; }
}

/* ── Handy: lange Listen als Wisch-Reihen (wie /fuer-fotografen), Inhalte bleiben vollständig im DOM ── */
@media (max-width: 700px) {
  .rg-sek { margin-top: 40px; }
  .rg-kopf p { font-size: 15px; }
  .rg-staedte { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rg-stadt { padding: 14px; gap: 10px; border-radius: 14px; }
  .rg-stadt-a b { font-size: 16px; }
  .rg-gruppe { margin-top: 28px; }
  .rg-gtitel { font-size: 20px; }
  .rg-reihe { display: flex; align-items: stretch; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; margin: 0 -16px; padding: 2px 16px 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .rg-reihe::-webkit-scrollbar { display: none; }
  .rg-reihe > .bl-card { flex: 0 0 84%; min-width: 0; scroll-snap-align: start; }
  .rg-reihe > .bl-card.rg-kurz { flex-basis: 74%; }
  .rg-reihe > .bl-card:only-child { flex-basis: 100%; }
  .rg-reihe > .bl-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .bl-card.rg-guide { padding: 16px; }
  .bl-card.rg-guide :is(h4, h5) { font-size: 17px; }
  .bl-feat.rg-best { padding: 20px; }
  .ort-chips, .rg-unav { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; margin-left: -16px; margin-right: -16px; padding: 2px 16px 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .ort-chips::-webkit-scrollbar, .rg-unav::-webkit-scrollbar { display: none; }
  .ort-chips .chip, .rg-unav .chip { flex: 0 0 auto; }
  /* viele Orte: drei Reihen nebeneinander wischen statt einer endlosen Zeile */
  .ort-chips.ort-chips-3 { display: grid; grid-auto-flow: column; grid-template-rows: repeat(3, auto); grid-auto-columns: max-content; justify-content: start; gap: 8px; }
}

/* Crawlbare Pagination (Stadtseiten und A–Z-Verzeichnis) */
.seiten-nav { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; margin: 28px 0 8px; }
.seiten-nav a, .seiten-nav span { min-width: 36px; height: 36px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; font-weight: 600; font-size: 14px; text-decoration: none; }
.seiten-nav a { background: var(--bg2, #f3f6f4); color: var(--fg, #101418); }
.seiten-nav a:hover { background: var(--green-100, #DDF3E8); color: var(--green, #0B7A55); }
.seiten-nav span[aria-current="page"] { background: var(--green, #0B7A55); color: #fff; }
.seiten-nav span[aria-hidden] { min-width: auto; color: var(--muted, #667069); }
.verz-liste { margin: 20px 0 8px; padding-left: 24px; font-size: 16px; line-height: 1.7; }
.verz-liste li { margin: 0 0 4px; }
.verz-liste a { font-weight: 600; }
.city-weiter .seiten-nav { margin-top: 8px; width: 100%; }
/* --- zahlung.css --- */
/* Eingebettete Stripe-Zahlung (components/EingebetteteZahlung.tsx) */
body.zf-offen{overflow:hidden}
.zf-hg{position:fixed;inset:0;z-index:1000;background:rgba(16,20,24,.55);display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto;animation:zf-ein .18s ease-out}
.zf-box{background:var(--panel);border-radius:var(--r);box-shadow:0 24px 64px -24px rgba(16,20,24,.45);width:100%;max-width:560px;padding:20px 20px 16px;position:relative}
.zf-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.zf-kopf h2{font-family:var(--fd);font-size:19px;margin:2px 0 0;line-height:1.25}
.zf-zu{flex:none;width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-size:24px;line-height:1;color:var(--fg2);cursor:pointer}
.zf-zu:hover{background:var(--panel2)}
.zf-stripe{min-height:200px}
.zf-fuss{margin:12px 2px 0;text-align:center}
.zf-lade-box{display:flex;align-items:center;justify-content:center;gap:10px;min-height:260px;color:var(--fg2);font-size:15px}
.zf-spin{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--mint);border-top-color:var(--green);animation:zf-dreh .8s linear infinite}
.zf-erfolg{text-align:center;padding:16px 4px 8px}
.zf-erfolg h3{font-family:var(--fd);font-size:20px;margin:12px 0 6px}
.zf-erfolg p{color:var(--fg2);max-width:420px;margin:0 auto 16px;line-height:1.5}
.zf-haken{width:56px;height:56px;margin:0 auto;border-radius:50%;background:var(--mint);color:var(--green);font-size:30px;font-weight:700;display:flex;align-items:center;justify-content:center}
.zf-erfolg.warte .zf-haken{background:var(--ad);color:var(--adtxt)}
.zf-lade{display:block;margin-top:6px}
@keyframes zf-dreh{to{transform:rotate(360deg)}}
@keyframes zf-ein{from{opacity:0}to{opacity:1}}
@media (max-width:640px){
  .zf-hg{padding:0;align-items:stretch}
  .zf-box{max-width:none;min-height:100%;border-radius:0;padding:12px 14px calc(16px + env(safe-area-inset-bottom))}
  .zf-kopf{position:sticky;top:0;background:var(--panel);z-index:2;margin:-12px -14px 12px;padding:12px 14px}
}
