/* Layout: Rosé-Band mit goldenen Funken und weicher Welle, danach beige Fläche mit Sprechblasen, Bogenkarten und Goldlinien. */
:root{--bg:#f9f4ea;--surface:#f1e8d9;--rose-tint:#f7e3e0;--text:#3a2c2f;--muted:#6d5a5e;--primary:#a24f5e;--on-primary:#ffffff;--rose:#d49397;--gold:#b38a35;--gold-l:#e2c471;--line:#dfd2bd;--hero-a:#8f4658;--hero-b:#b87682;--hero-text:#fff8ee;--hero-lead:#f8e6e4;--ink-on-gold:#3a2428;--serif:"Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#1f1719;--surface:#2a2022;--rose-tint:#35262a;--text:#f3e9e4;--muted:#c4b0b4;--primary:#e8a3ae;--on-primary:#2a1519;--rose:#d98f9a;--gold:#dcba68;--gold-l:#e6c879;--line:#43343a;--hero-a:#4a232d;--hero-b:#6a3441;--hero-text:#f8efe6;--hero-lead:#f0d6da;--ink-on-gold:#3a2428;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#1f1719;--surface:#2a2022;--rose-tint:#35262a;--text:#f3e9e4;--muted:#c4b0b4;--primary:#e8a3ae;--on-primary:#2a1519;--rose:#d98f9a;--gold:#dcba68;--gold-l:#e6c879;--line:#43343a;--hero-a:#4a232d;--hero-b:#6a3441;--hero-text:#f8efe6;--hero-lead:#f0d6da;--ink-on-gold:#3a2428;color-scheme:dark}
html{scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:1.0625rem;line-height:1.65}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0 0 .6em;text-wrap:balance}
h1{font-size:clamp(2.1rem,6.2vw,3.7rem);max-width:17ch;letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,3.8vw,2.2rem)}
h2::after{content:"";display:block;width:4rem;height:2px;margin-top:.7rem;background:linear-gradient(90deg,var(--gold),var(--gold-l) 60%,transparent)}
h3{font-size:1.3rem}
p{margin:0 0 1em;max-width:62ch}
a{color:var(--primary)}
.wrap{max-width:64rem;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.star{display:inline-block;width:.95rem;height:.95rem;background:var(--gold);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.hero{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--hero-a),var(--hero-b));color:var(--hero-text);padding-block:1.25rem 4.5rem}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,var(--gold-l),transparent)}
.hero.wavy{padding-block:1.25rem 6rem}
.hero.wavy::after{display:none}
.hero::before{content:"";position:absolute;right:-6rem;top:-5rem;width:20rem;height:20rem;border-radius:50%;background:radial-gradient(circle,rgba(226,196,113,.30),transparent 68%)}
.hero .wrap{position:relative;z-index:1}
.hero .star{background:var(--gold-l)}
.spark{position:absolute;z-index:0;background:var(--gold-l);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);opacity:.85}
.s1{width:1.6rem;height:1.6rem;right:12%;top:18%}
.s2{width:.9rem;height:.9rem;right:24%;top:46%}
.s3{width:1.1rem;height:1.1rem;right:6%;top:58%}
.s4{width:.7rem;height:.7rem;right:36%;top:14%}
.wave{position:absolute;left:0;bottom:-1px;width:100%;height:3.8rem;display:block}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--serif);font-size:1.15rem;letter-spacing:.02em;margin-bottom:3.5rem}
.logo{display:block;width:min(21rem,86vw);height:auto}
.hero h1{color:var(--hero-text)}
.lead{font-size:1.25rem;max-width:40ch;margin-bottom:1.8rem;color:var(--hero-lead)}
.btn{display:inline-block;background:var(--primary);color:var(--on-primary);padding:.85rem 1.7rem;border-radius:2rem;font-weight:600;text-decoration:none;border:2px solid var(--primary)}
.btn.gold{background:var(--gold-l);color:var(--ink-on-gold);border-color:var(--gold-l)}
.btn.alt{background:transparent;color:var(--primary)}
.btn:hover{filter:brightness(1.07)}
.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
section{padding-block:2.75rem}
.orn{display:flex;align-items:center;gap:1rem;margin:0}
.orn::before,.orn::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.orn::after{background:linear-gradient(270deg,transparent,var(--gold))}
.quotes{display:grid;gap:1.1rem 1.4rem;grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr));margin:1.5rem 0 2rem}
.quotes blockquote{margin:0;padding:1rem 1.2rem;background:var(--rose-tint);border:1px solid var(--rose);border-radius:1.3rem 1.3rem 1.3rem .3rem;font-family:var(--serif);font-size:1.1rem;font-style:italic;min-width:0}
.quotes blockquote:nth-child(even){background:var(--surface);border-color:var(--gold);border-radius:1.3rem 1.3rem .3rem 1.3rem}
.programs{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(min(17rem,100%),1fr))}
.programs>div{min-width:0;background:var(--surface);border:1.5px solid var(--gold);border-radius:50% 50% 1.3rem 1.3rem/5rem 5rem 1.3rem 1.3rem;padding:3.2rem 1.8rem 1.8rem}
.programs>div+div{background:var(--rose-tint)}
.programs h3,.programs .sub{text-align:center}
.sub{color:var(--muted);font-weight:500;margin-bottom:.8rem}
ol.steps{list-style:none;counter-reset:s;padding:0;margin:1.5rem 0;display:grid;gap:1rem;max-width:44rem}
ol.steps li{counter-increment:s;display:flex;gap:1rem;align-items:baseline}
ol.steps li::before{content:counter(s);flex:none;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--gold-l);color:var(--ink-on-gold);display:grid;place-items:center;font-family:var(--serif);font-weight:700}
.promise{font-family:var(--serif);font-size:1.35rem;font-style:italic;max-width:34ch}
.price{position:relative;background:var(--rose-tint);padding:2.2rem;border-radius:1.3rem;box-shadow:inset 0 0 0 7px var(--rose-tint),inset 0 0 0 8px var(--gold)}
.price::before{content:"";position:absolute;right:1.6rem;top:1.4rem;width:1.5rem;height:1.5rem;background:var(--gold);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.price strong{font-family:var(--serif);font-size:clamp(1.9rem,5vw,2.7rem);display:block;margin:.2rem 0 .8rem}
details{border-bottom:1px dotted var(--gold);padding-block:1rem;max-width:44rem}
summary{cursor:pointer;font-weight:600}
details p{margin:.7rem 0 0}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.5rem 0 .8rem}
footer{padding-block:2rem 3rem;color:var(--muted);font-size:.95rem}
footer a{margin-left:1rem}
.legal .hero{padding-block:1.25rem 2rem}
.legal .brand{margin-bottom:0}
.legal main{padding-block:2.5rem 1rem}
.legal h1{font-size:2.1rem;color:var(--text);max-width:none}
.legal h2{font-size:1.25rem;margin-top:2rem}
.legal h2::after{display:none}
.legal li{margin-bottom:.4rem}
.todo{background:var(--rose-tint);padding:0 .3rem;border-radius:.2rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
