:root{
  --bg:#faf6f2;--bg2:#f1e8e2;--ink:#3b2b2f;--muted:#7a6a6d;--accent:#8a5a63;--line:#e3d6cf;--white:#fff;
  --serif:"Cormorant Garamond","Palatino Linotype",Palatino,Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --w:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.2;margin:0 0 .6em}
h1{font-size:clamp(2rem,5vw,3.4rem)}
h2{font-size:clamp(1.8rem,3.6vw,2.6rem);text-align:center}
h3{font-size:1.5rem}
p{margin:0 0 1em}
.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}
section{padding:72px 0}
.alt{background:var(--bg2)}
.eyebrow{display:block;text-align:center;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:.6em}

/* Header */
header.top{position:sticky;top:0;z-index:10;background:rgba(250,246,242,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.3rem}
.brand img{width:44px;height:44px}
nav a{margin-left:20px;text-decoration:none;color:var(--ink);font-size:.95rem}
nav a:hover{color:var(--accent)}
.btn{display:inline-block;padding:.75em 1.6em;border-radius:999px;background:var(--accent);color:#fff!important;text-decoration:none;font-size:.95rem}
.btn:hover{background:var(--ink)}
@media(max-width:720px){nav a:not(.btn){display:none}}

/* Hero */
.hero{background:#ead8d6;text-align:center;padding:0 0 64px}
.hero-media{position:relative;height:min(56.25vw,100vh);min-height:420px;background:#ead8d6 url("../img/hero-bg-800.webp") center bottom/cover no-repeat}
@media(min-width:801px){.hero-media{background-image:url("../img/hero-bg.webp")}}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:72% bottom}
@media(max-width:760px){.hero-media{height:min(150vw,88vh)}.hero-media video{object-fit:cover}}
.hero .wrap{max-width:820px;padding-top:36px}
.hero h1{font-size:clamp(1.5rem,3.2vw,2.4rem)}
.hero p{font-size:1.1rem;margin-bottom:1.6em;color:var(--muted)}

/* Preise */
.prices{list-style:none;margin:40px auto 0;padding:0;max-width:760px}
.prices li{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.prices strong{font-family:var(--serif);font-size:1.4rem;font-weight:500;display:block}
.prices small{color:var(--muted);display:block}
.prices .p{font-family:var(--serif);font-size:1.4rem;white-space:nowrap;text-align:right}
.offer{max-width:760px;margin:48px auto 0;padding:32px;text-align:center;background:var(--white);border:1px solid var(--line);border-radius:12px}
.offer h3{margin-bottom:.2em}
.offer .big{font-family:var(--serif);font-size:2.6rem;color:var(--accent);line-height:1.1}

/* Leistungen */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;margin-top:40px}
.card{background:var(--white);border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card .body{padding:24px}
.card ul{padding-left:1.1em;margin:0;color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:48px}
.split.rev>:first-child{order:2}
.split img{border-radius:12px;width:100%}
@media(max-width:760px){.split{grid-template-columns:1fr}.split.rev>:first-child{order:0}}

/* Kontakt / Footer */
footer{padding:28px 0;text-align:center;font-size:.85rem;color:var(--muted);border-top:1px solid var(--line)}
footer a{color:var(--muted)}
.legal{max-width:760px;margin:0 auto;padding:60px 20px}
.legal h1{font-size:2.2rem}.legal h2{text-align:left;font-size:1.5rem;margin-top:1.6em}

/* Leistungen – Akkordeon */
.linen{background:linear-gradient(180deg,#f6e9e6,#efdcd8);padding:56px 0}
.accw{max-width:760px;margin:24px auto 0}
.acc{border-bottom:1px solid rgba(138,90,99,.25)}
.acc summary{display:flex;align-items:center;gap:14px;padding:10px 32px 10px 0;margin:0}
.acc summary img{width:56px;height:56px;flex:none}
.acc summary h3{margin:0;font-size:1.2rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.25}
.acc summary h3 small{display:block;font-size:.7em;letter-spacing:.03em;text-transform:none;color:var(--muted)}
.acc summary::after{top:50%;margin-top:-.8rem}
.acc .t{color:var(--muted);font-size:.95rem;line-height:1.55;font-weight:300;padding:0 0 16px 70px}
.acc .t p{margin:0 0 .5em}
@media(max-width:520px){.acc .t{padding-left:0}}
.brand{white-space:nowrap;font-size:1.15rem}
nav{display:flex;align-items:center;white-space:nowrap}
nav .btn{margin-left:20px;padding:.5em 1.2em}
@media(max-width:520px){.brand span{display:none}}

.hero-logo{display:none}
@media(min-width:900px){.hero-logo{display:block;position:absolute;left:6%;top:50%;transform:translateY(-62%);width:min(40%,620px);height:auto;z-index:1}}

/* Preise als Bildkarten */
.pgrid{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px 28px}
@media(min-width:900px){.pgrid{grid-template-columns:repeat(3,1fr)}}
.pcard{text-align:center}
.pcard img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:24px;margin-bottom:24px}
.pcard h3{font-size:1.35rem;text-transform:uppercase;letter-spacing:.05em;font-weight:500;margin-bottom:.5em}
.pcard .price{font-family:var(--serif);font-size:1.9rem;line-height:1.2;margin-bottom:.4em}
.pcard .price span{font-size:.7em;text-transform:uppercase;letter-spacing:.04em}
.pcard p{color:var(--muted);font-size:.95rem;font-weight:300;margin:0}

/* Über mich */
.about-b{background:linear-gradient(180deg,#f6e9e6,#efdcd8);padding:56px 0 0;overflow:hidden}
.about-grid{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:end;margin-top:32px}
.about-ph{position:relative;max-width:380px;margin:0 auto;width:100%}
.about-ph .arch{position:absolute;inset:14% -8% 0;background:#fff;opacity:.7;border-radius:50% 50% 0 0/36% 36% 0 0}
.about-ph img{position:relative;display:block;width:80%;margin:0 auto;height:auto;filter:drop-shadow(0 10px 22px rgba(90,50,55,.22))}
.about-txt{padding-bottom:56px}
.about-txt blockquote{margin:0 0 20px;font-family:var(--serif);font-size:1.7rem;line-height:1.3;color:var(--accent)}
.facts{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0;margin:22px 0}
.facts li{background:#fff;border-radius:14px;padding:12px;font-size:.85rem;color:var(--muted);text-align:center;line-height:1.4}
.facts b{display:block;font-family:var(--serif);font-size:1.05rem;color:var(--ink);font-weight:500}
@media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:24px}.about-txt{padding-bottom:40px;order:-1}.about-ph{max-width:300px}.facts{grid-template-columns:1fr}}

/* FAQ */
.fw{max-width:860px;margin:24px auto 0}
.fw h3{font-size:1.25rem;margin:1.2em 0 .5em}
.fw p{color:var(--muted);font-size:.95rem;line-height:1.6;font-weight:300}
.chk{list-style:none;padding:0;margin:0}
.chk li{position:relative;padding:5px 0 5px 26px;color:var(--muted);font-size:.95rem;line-height:1.5}
.chk li::before{content:"";position:absolute;left:2px;top:.85em;width:10px;height:6px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateY(-60%) rotate(-45deg)}
.tl{list-style:none;margin:0 0 0 6px;padding:0;border-left:2px solid #e3c9c9}
.tl li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:8px 0 8px 18px;position:relative;color:var(--muted);font-size:.95rem;line-height:1.5}
.tl li::before{content:"";position:absolute;left:-7px;top:1.05em;width:12px;height:12px;border-radius:50%;background:var(--accent)}
.day{font-family:var(--serif);font-size:1.05rem;color:var(--ink);font-weight:600}
.tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tabs button{font:inherit;font-size:.9rem;border:1px solid var(--accent);background:transparent;color:var(--accent);border-radius:999px;padding:8px 18px;cursor:pointer}
.tabs button.on{background:var(--accent);color:#fff}
.js .panel{display:none}.js .panel.on{display:block}
.panel{background:#fff;border-radius:18px;padding:8px 28px 24px;margin-top:20px}
.panel:not(.on){margin-top:20px}
@media(max-width:600px){.tl li{grid-template-columns:1fr;gap:0}.panel{padding:4px 18px 18px}}

/* Kontakt */
.contact{background:linear-gradient(180deg,#f6e9e6,#efdcd8);text-align:center;padding:56px 0}
.contact .kl{margin:0 auto 8px;width:auto;height:84px}
.contact .sub{color:var(--muted)}
.contact .big{display:block;font-family:var(--serif);font-size:clamp(2rem,6vw,3.2rem);text-decoration:none;color:var(--ink);margin:8px 0 20px}
.contact .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.contact address{font-style:normal;color:var(--muted);margin-top:28px;font-size:.95rem;line-height:1.7}
.contact address a{color:var(--accent)}
.btn.ghost{background:transparent;color:var(--accent)!important;border:1px solid var(--accent)}
.btn.ghost:hover{background:var(--accent);color:#fff!important}
