/* 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}
