/* Schriften liegen lokal unter assets/fonts, keine Verbindung zu Google */
@font-face{font-family:"Fraunces";src:url(fonts/fraunces.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-italic.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"Figtree";src:url(fonts/figtree.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
/* Farben: Hauptfarbe + Akzent, Lila (Akzent/Buttons) und Pastellgrün (Flächen), Wunsch von Daniel */
:root{
  --primary:#5b3f86; --primary-soft:#dcefe2; --lila-soft:#ece5f6; --accent:#6b4f96; --accent-ink:#ffffff;
  --bg:#f8f6fb; --surface:#ffffff; --ink:#241f2c; --muted:#5f5a69; --line:#e3dfea; --field-line:#857f91; --stone-edge:transparent;
  --display:"Fraunces", Georgia, serif; --body:"Figtree", system-ui, -apple-system, sans-serif;
  --r:14px; color-scheme:light; accent-color:var(--accent);
}
.has-photo{background:#ddd url("img/judith-gahleitner.webp") center 30%/cover no-repeat!important;border:0!important;color:transparent!important;font-size:0!important}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --primary:#cbb6ef; --primary-soft:#1f2b25; --lila-soft:#2a2238; --accent:#c4adeb; --accent-ink:#1d1430;
  --bg:#15131a; --surface:#1d1a24; --ink:#ece8f2; --muted:#a8a2b4; --line:#322d3b; --field-line:#76707f; --stone-edge:#4a4257; color-scheme:dark}}
:root[data-theme="dark"]{
  --primary:#cbb6ef; --primary-soft:#1f2b25; --lila-soft:#2a2238; --accent:#c4adeb; --accent-ink:#1d1430;
  --bg:#15131a; --surface:#1d1a24; --ink:#ece8f2; --muted:#a8a2b4; --line:#322d3b; --field-line:#76707f; --stone-edge:#4a4257; color-scheme:dark}
*{box-sizing:border-box}
[id]{scroll-margin-top:112px}
.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}
.skip{position:absolute;left:12px;top:-60px;z-index:20;background:var(--surface);color:var(--ink);padding:.6rem 1rem;border-radius:10px;font-weight:700;box-shadow:0 8px 24px -10px rgba(0,0,0,.4)}
.skip:focus{top:12px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.65}
img{max-width:100%}
a{color:inherit}
p{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.12;margin:0;text-wrap:balance}
h1,h2{font-size:clamp(1.8rem,3.8vw,2.7rem)}
h3{font-size:1.3rem}
.offer h2,.heart h2,form h2,.doc h2,.prose h2{font-size:1.3rem}
p,dd,blockquote,.prose li,.timeline li,footer .wrap>div{text-wrap:pretty}
.nowrap{white-space:nowrap}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:none}
:root{--pb1:58% 42% 52% 48% / 55% 45% 55% 45%;--pb2:46% 54% 60% 40% / 50% 58% 42% 50%;--pb3:62% 38% 45% 55% / 48% 52% 48% 52%}
.wrap{max-width:1180px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
.eyebrow{text-wrap:balance;font-family:var(--display);font-style:italic;font-weight:600;font-size:1.08rem;line-height:1.35;letter-spacing:0;color:var(--accent)}
.eyebrow::before{content:"";display:inline-block;width:.95em;height:.66em;border-radius:var(--pb1);background:var(--accent);opacity:.75;margin-right:.55em;vertical-align:-.02em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:50px;padding:0 1.5rem;border-radius:16px;font:inherit;font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-ghost{background:var(--lila-soft);color:var(--primary);transition:background-color .3s}
.btn-ghost:hover{background:color-mix(in srgb,var(--accent) 22%,var(--lila-soft))}
.cta .btn-ghost,.aside .btn-ghost,.hero .btn-ghost{background:var(--surface)}
.ph{background:color-mix(in srgb,var(--accent) 20%,transparent);border-radius:4px;padding:0 .3rem;font-size:.92em}

/* Entwurfsleiste */
.draft{background:var(--primary);color:var(--bg);font-size:.86rem;padding:.55rem 16px;display:flex;flex-wrap:wrap;gap:.4rem 1rem;justify-content:center;align-items:center;text-align:center}
.draft label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}
.draft input[type=color]{width:28px;height:22px;border:0;padding:0;background:none;cursor:pointer}

/* Kopf */
header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:72px}
.logo{text-decoration:none;display:flex;align-items:center;gap:.65rem;line-height:1.15}
.logo .mark{width:30px;height:32px;flex:none;overflow:visible}
.logo .lt{display:grid}
.logo b{font-family:var(--display);font-size:1.3rem;font-weight:600}
.logo .lt span{font-family:var(--display);font-style:italic;font-size:.88rem;color:var(--muted)}
.logo:hover .mark .m3{translate:0 -2px}
.logo .mark ellipse{transition:translate .4s cubic-bezier(.3,1.5,.5,1)}
.tabs{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}
.tabs a{position:relative;text-decoration:none;color:var(--muted);font-weight:500}
.tabs a:hover{color:var(--ink)}
.tabs a::after{content:"";position:absolute;left:50%;bottom:-.7rem;width:16px;height:8px;margin-left:-8px;border-radius:var(--pb1);background:var(--accent);opacity:0;transform:scale(.3) translateY(4px);transition:opacity .35s,transform .45s cubic-bezier(.3,1.5,.5,1)}
.tabs a[aria-current="page"]{color:var(--ink)}
.tabs a[aria-current="page"]::after{opacity:1;transform:none}
.call{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;text-decoration:none;font-weight:700;color:var(--primary);white-space:nowrap}
.call .ci{width:40px;height:36px;border-radius:var(--pb2);background:var(--lila-soft);display:grid;place-items:center;transition:transform .4s cubic-bezier(.3,1.5,.5,1),background-color .3s}
.call .ci svg{width:18px;height:18px}
.call:hover .ci{transform:rotate(-10deg);background:color-mix(in srgb,var(--accent) 22%,var(--lila-soft))}
@media (max-width:1000px){
  .nav{flex-wrap:wrap;row-gap:0;padding-top:.5rem}
  .tabs{order:3;width:100%;overflow-x:auto;gap:.4rem;margin-left:-.4rem;padding-block:0 .2rem;scrollbar-width:none;white-space:nowrap;position:relative;scroll-padding-inline:1rem}
  .tabs::-webkit-scrollbar{display:none}
  .tabs a{display:inline-flex;align-items:center;min-height:44px;padding-inline:.4rem}
  .tabs a:focus-visible{outline-offset:-2px}
  .tabs a::after{bottom:3px}
  .tabs.more{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
  .tabs.less{-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%);mask-image:linear-gradient(90deg,transparent,#000 14%)}
  .tabs.less.more{-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 82%,transparent)}
  .tabs:focus-within,.tabs.less:focus-within,.tabs.more:focus-within{-webkit-mask-image:none;mask-image:none}
}
@media (max-width:440px){.nav .call{display:none}}

/* Hero */
.hero-bg{position:relative;background:radial-gradient(ellipse 60% 70% at 92% 8%,color-mix(in srgb,var(--primary-soft) 85%,transparent),transparent 70%),radial-gradient(ellipse 55% 60% at 4% 96%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%),var(--lila-soft);margin-bottom:clamp(2.5rem,5vw,4rem)}
.hero-wave{position:absolute;left:0;right:0;top:100%;width:100%;height:clamp(28px,4vw,56px);display:block;color:var(--lila-soft)}
.hero{display:grid;justify-items:center;text-align:center;padding-block:clamp(2.2rem,6vw,4.5rem) clamp(1.5rem,4vw,2.5rem)}
.hero>*{min-width:0}
.hero h1{display:grid;justify-items:center;margin:.7rem 0 0}
.hero .h-big{font-size:clamp(3.4rem,10vw,7rem);line-height:.95;letter-spacing:-.02em;font-weight:600}
.hero .h-sub{font-style:italic;color:var(--accent);font-size:clamp(1.3rem,2.8vw,2.05rem);line-height:1.2;margin-top:.35rem}
.beam{display:block;width:clamp(210px,30vw,340px);height:auto;margin:.5rem auto .1rem;overflow:visible}
.beam .arm,.beam .st{transform-box:view-box;transform-origin:160px 31px}
.beam ellipse{stroke:var(--stone-edge);stroke-width:1}
.hero-row{display:grid;grid-template-columns:1.1fr minmax(240px,300px) 1fr;gap:clamp(1.8rem,4vw,3.5rem);align-items:center;width:100%;margin-top:clamp(1.8rem,4vw,3rem);text-align:left}
.hero .lead{font-size:1.12rem;color:var(--muted)}
.hero .actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.hero .fine{margin-top:1rem;font-size:.93rem;color:var(--muted)}

/* Bogen-Porträt */
.stage{position:relative;width:100%;aspect-ratio:4/5}
.blob{position:absolute;inset:-7% -9% -4%;border-radius:46% 54% 52% 48%/50% 44% 56% 50%;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--accent) 26%,var(--surface)),var(--primary-soft) 72%)}
.portrait{position:absolute;inset:0;border-radius:999px 999px 30px 30px;background:var(--surface);overflow:hidden;box-shadow:0 30px 60px -36px rgba(50,30,80,.55)}
.portrait::after{content:"";position:absolute;inset:8px;border-radius:inherit;border:1.5px solid rgba(255,255,255,.7);pointer-events:none}

/* Fakten als Trittsteine */
.facts{list-style:none;margin:0;padding:0;display:grid;gap:1.15rem}
.facts li{display:grid;grid-template-columns:auto 1fr;column-gap:.9rem;align-items:start;font-size:.95rem;color:var(--muted);line-height:1.45}
.facts li::before{content:"";grid-row:1/span 2;width:38px;height:28px;margin-top:.2rem;border-radius:var(--pb1);background:var(--accent);opacity:.85}
.facts li:nth-child(2)::before{border-radius:var(--pb2);background:#a8d5b5;opacity:1}
.facts li:nth-child(3)::before{border-radius:var(--pb3);background:color-mix(in srgb,var(--accent) 45%,var(--surface));opacity:1}
.facts li:nth-child(4)::before{border-radius:var(--pb2);background:var(--primary);opacity:.55}
.facts li:nth-child(odd){margin-left:.9rem}
.facts b{font-family:var(--display);font-weight:600;font-size:1.3rem;color:var(--primary);line-height:1.2}
@media (max-width:1000px){
  .hero-row{grid-template-columns:minmax(220px,280px) 1fr;grid-template-areas:"pic text" "facts facts"}
  .hero-row .stage{grid-area:pic}.hero-row .htext{grid-area:text}
  .facts{grid-area:facts;grid-template-columns:repeat(4,1fr);gap:1rem}
  .facts li{grid-template-columns:1fr;row-gap:.35rem}
  .facts li::before{grid-row:auto;margin:0}
  .facts li:nth-child(odd){margin-left:0}
  .facts li:nth-child(even){margin-top:1.2rem}
}
@media (max-width:700px){
  .hero-row{grid-template-columns:1fr;grid-template-areas:"pic" "text" "facts";justify-items:center;text-align:center}
  .hero-row .stage{width:min(230px,62vw)}
  .hero .actions{justify-content:center}
  .facts{grid-template-columns:1fr 1fr;text-align:left;column-gap:1.2rem;row-gap:1.1rem}
  .facts li:nth-child(even){margin-top:.9rem}
}

section{padding-block:clamp(3.5rem,8vw,6rem)}
.head{display:grid;gap:.8rem;max-width:46rem;margin-bottom:2.5rem}
.head p:not(.eyebrow){color:var(--muted);font-size:1.1rem}
.head.center{justify-items:center;text-align:center;margin-inline:auto}
.head.center .stonerow{width:min(260px,70%);margin-bottom:.6rem}

/* Angebots-Kacheln */
.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.offer{--tint:var(--lila-soft);position:relative;background:var(--tint);border-radius:30px 30px 30px 10px;padding:1.6rem;display:flex;flex-direction:column;gap:.7rem;text-decoration:none;transition:translate .45s cubic-bezier(.2,.8,.2,1),background-color .45s,box-shadow .45s}
.offer:nth-child(3n+2){--tint:var(--primary-soft);border-radius:30px 30px 10px 30px}
.offer:nth-child(3n){--tint:color-mix(in srgb,var(--lila-soft) 55%,var(--surface));border-radius:10px 30px 30px 30px}
.offer:hover{translate:0 -5px;background:color-mix(in srgb,var(--tint) 65%,var(--surface));box-shadow:0 26px 44px -32px rgba(50,30,80,.5)}
.offer .ic{width:52px;height:44px;border-radius:var(--pb1);background:var(--surface);color:var(--primary);display:grid;place-items:center;transition:transform .5s cubic-bezier(.2,.8,.2,1),border-radius .6s}
.offer:nth-child(3n+2) .ic{border-radius:var(--pb2)}
.offer:nth-child(3n) .ic{border-radius:var(--pb3)}
.offer:hover .ic{transform:rotate(-8deg) scale(1.06);border-radius:var(--pb3)}
.offer .tag{align-self:flex-start;justify-self:start;font-size:.8rem;font-weight:700;color:var(--primary);background:var(--surface);border-radius:13px;padding:.25rem .7rem;line-height:1.35;margin-top:auto}
.offer .tag+.price{margin-top:0}
.offer .tag.lsb{background:var(--accent);color:var(--accent-ink)}
.offer .ic svg{width:24px;height:24px}
.offer p{color:var(--muted);font-size:.98rem}
.offer .price{margin-top:auto;padding-top:.8rem;border-top:1.5px dashed color-mix(in srgb,var(--primary) 22%,transparent);display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.offer .price b{font-family:var(--display);font-weight:600;font-size:1.08rem;color:var(--ink)}
.offer .go{flex:none;width:38px;height:34px;border-radius:var(--pb2);background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;transition:transform .45s cubic-bezier(.3,1.5,.5,1)}
.offer:hover .go{transform:translateX(4px) rotate(-8deg)}
@media (max-width:960px){.offers{grid-template-columns:1fr 1fr}}
@media (min-width:601px) and (max-width:960px){.offers>.offer:last-child:nth-child(odd){grid-column:1/-1}}
@media (max-width:600px){.offers{grid-template-columns:1fr}}

/* Balance-Bild mit Zitat */
.balance{position:relative;overflow:hidden;background:#d8c6d6;max-width:1600px;margin-inline:auto!important}
@media (min-width:1601px){.balance{border-radius:28px}}
.balance-media{aspect-ratio:1167/519;max-height:640px;width:100%;overflow:hidden}
.balance-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:translateY(var(--py,0px)) scale(1.08);will-change:transform}
.balance blockquote{position:absolute;left:0;right:0;top:8%;margin-inline:auto!important;width:min(36%,420px);margin:0;text-align:center;font-family:var(--display);font-size:clamp(1.15rem,2.2vw,1.95rem);line-height:1.25;color:#2a2233;text-wrap:balance}
.balance cite{display:block;margin-top:.7rem;font-family:var(--body);font-style:normal;font-size:.9rem;color:#4a4152}
@media (max-width:760px){
  .balance-media img{transform:none;will-change:auto}
  .balance blockquote{position:static;width:auto;padding:1.8rem 16px 2.2rem;background:var(--accent);color:var(--accent-ink);font-size:1.35rem}
  .balance cite{color:inherit;opacity:.85}
}

/* Medien-Laufband */
.media{padding-block:2.6rem;overflow:hidden}
.media .label{padding-inline:clamp(16px,4vw,40px);text-align:center;font-family:var(--display);font-style:italic;font-weight:600;font-size:1.02rem;color:var(--accent);margin-bottom:1rem}
.lane{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.belt{display:flex;width:max-content;padding-block:.3rem}
.belt>*{margin-right:1rem;flex:none}
.lane:hover .belt,.lane:focus-within .belt{animation-play-state:paused}
.lane:focus-within{-webkit-mask-image:none;mask-image:none}
.lane:has(:focus-visible) .belt{animation:none}
@media (hover:none),(prefers-reduced-motion:reduce){
  .belt{animation:none!important}
  .lane{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:none;mask-image:none;padding-inline:16px;scroll-padding-inline:16px}
  .lane::-webkit-scrollbar{display:none}
  .belt>*{scroll-snap-align:start}
  .belt>[aria-hidden="true"]{display:none}
}
.mlogo{display:flex;align-items:center;gap:.6rem;padding:.7rem 1.25rem;border:1px solid transparent;border-radius:22px 22px 22px 8px;background:var(--lila-soft);text-decoration:none;white-space:nowrap}
.mlogo b{font-family:var(--display);font-size:1.15rem;color:var(--primary)}
.mlogo span{font-size:.85rem;color:var(--muted)}
a.mlogo{transition:border-color .25s}
a.mlogo:hover{border-color:var(--primary)}
.lane-toggle{display:inline-grid;place-items:center;width:30px;height:30px;margin-left:.5rem;vertical-align:middle;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);cursor:pointer;padding:0}
.lane-toggle:hover{border-color:var(--primary);color:var(--primary)}
.lane-toggle svg{width:12px;height:12px}
.lane-toggle .play{display:none}
.lane-toggle[aria-pressed="true"] .play{display:block}
.lane-toggle[aria-pressed="true"] .pause{display:none}
@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.lane-toggle{display:none}}
body.lanes-paused .belt{animation-play-state:paused!important}
.voice{margin:0 auto;padding:clamp(1.5rem,4vw,2.5rem) clamp(16px,4vw,40px) clamp(2.5rem,6vw,4rem);max-width:46rem;text-align:center}
.voice blockquote{margin:0;font-family:var(--display);font-size:clamp(1.35rem,3vw,1.9rem);line-height:1.3;text-wrap:balance}
.voice blockquote::before{content:"";display:block;width:46px;height:34px;margin:0 auto 1rem;border-radius:var(--pb2);background:var(--primary-soft)}
.voice figcaption{margin-top:.8rem;font-family:var(--display);font-style:italic;font-weight:600;color:var(--accent)}
.rv{width:330px;max-width:80vw;background:var(--surface);border:1px solid transparent;border-radius:26px 26px 26px 8px;box-shadow:0 18px 36px -30px rgba(50,30,80,.5);padding:1.1rem 1.2rem;display:grid;gap:.5rem}
.rv p{font-family:var(--display);font-size:1.08rem;line-height:1.4}
.rv .who{font-size:.85rem;color:var(--muted)}
.rv.real{border-color:var(--primary)}
@media (prefers-reduced-motion:no-preference){
  .belt{animation:slide 50s linear infinite}
  .lane.rev .belt{animation-direction:reverse;animation-duration:60s}
}
@keyframes slide{to{transform:translateX(-50%)}}

/* Über mich kurz */
.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.split>*{min-width:0}
.photo{aspect-ratio:4/5;border-radius:44% 56% 48% 52% / 34% 36% 64% 66%;background:var(--primary-soft);border:1px dashed var(--muted);display:grid;place-items:center;color:var(--muted);text-align:center;padding:1rem;font-size:.9rem}
.split p+p{margin-top:1rem}
.badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}
.badge{font-size:.85rem;padding:.35rem .8rem;border-radius:999px;background:var(--lila-soft);color:var(--ink)}
@media (max-width:800px){.split{grid-template-columns:1fr}.photo{max-width:300px}.split .photo[style]{position:static!important}}

/* Lebenslauf */
.timeline{list-style:none;margin:0;padding:0 0 0 2rem;position:relative;max-width:48rem}
.timeline::before{content:"";position:absolute;left:.45rem;top:.4rem;bottom:.4rem;width:2px;background:var(--line)}
.timeline::after{content:"";position:absolute;left:.45rem;top:.4rem;width:2px;height:calc((100% - .8rem) * var(--p,0));background:var(--primary);transition:height .15s linear}
.timeline li{position:relative;padding:.2rem 0 1.3rem}
.timeline li::before{content:"";position:absolute;left:-1.95rem;top:.55rem;width:16px;height:12px;border-radius:var(--pb1);background:var(--surface);border:2px solid var(--primary)}
.timeline li.on::before{background:var(--primary)}
.timeline li:nth-child(even)::before{border-radius:var(--pb2)}
.timeline li.on::before{transform:rotate(-6deg)}
.timeline time{display:block;font-family:var(--display);font-weight:600;color:var(--primary);font-size:1.1rem}
.timeline .private{color:var(--muted)}
.timeline a{color:var(--accent);font-weight:700}

/* Detailseiten */
.detail{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.detail>*{min-width:0}
.prose{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;max-width:42rem}
.prose ul{margin:0;padding-left:1.2rem;display:grid;gap:.5rem}
.prose blockquote{margin:0;padding:1.1rem 1.4rem;border-left:0;background:var(--primary-soft);border-radius:26px 26px 26px 8px;font-family:var(--display);font-size:1.2rem;line-height:1.4}
.prose blockquote cite{display:block;font-family:var(--body);font-style:normal;font-size:.9rem;color:var(--muted);margin-top:.4rem}
.prose .say{display:flex;flex-wrap:wrap;gap:.5rem}
.prose .say span{background:var(--lila-soft);border-radius:999px;padding:.3rem .9rem;font-family:var(--display)}
.prose .lead{line-height:1.3}
.prose h2{margin-top:.6rem}
.prose>.eyebrow{margin-bottom:-.2rem}
@media (max-width:600px){.prose .say{flex-direction:column;align-items:flex-start;gap:.4rem}.prose .say span:nth-child(4){margin-top:.5rem}}
.aside{position:sticky;top:96px;background:var(--lila-soft);border-radius:28px 28px 28px 10px;padding:1.5rem;display:grid;gap:1rem}
.aside h2{font-size:1.15rem}
.aside dl{margin:0;display:grid;gap:.5rem}
.aside dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1.5px dashed color-mix(in srgb,var(--primary) 22%,transparent);padding-bottom:.5rem}
.aside dt{color:var(--muted)}
.aside dd{margin:0;font-weight:700;text-align:right;white-space:nowrap}
.aside .note{font-size:.92rem;color:var(--muted)}
.tag-inline{display:inline-block;font-size:.88rem;font-weight:700;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:.3rem .9rem}
.back{display:inline-flex;align-items:center;min-height:44px;gap:.4rem;margin-bottom:1.5rem;color:var(--muted);text-decoration:none}
.back:hover{color:var(--ink)}
@media (max-width:1000px){.aside{top:112px}}
@media (max-width:860px){.detail{grid-template-columns:1fr}.aside{position:static;max-width:42rem}}

/* Herzensthemen */
.hearts{display:grid;gap:1.2rem}
.heart{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;background:var(--lila-soft);border-radius:30px 30px 30px 10px;padding:clamp(1.2rem,3vw,2rem)}
.heart:nth-child(even){background:var(--primary-soft);border-radius:30px 30px 10px 30px}
.heart .pic{display:block;width:clamp(150px,18vw,220px);height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--pb1)}
.heart:nth-child(even) .pic{border-radius:var(--pb2)}
.heart .body{display:grid;gap:.8rem;max-width:44rem}
.heart .links{display:flex;flex-wrap:wrap;gap:.5rem}
.heart .links a{display:inline-flex;align-items:center;min-height:44px;font-size:.9rem;font-weight:700;color:var(--accent);text-decoration:none;background:var(--surface);border:1px solid transparent;border-radius:16px;padding:.3rem .95rem}
.heart .links a:hover{border-color:var(--accent)}
@media (max-width:560px){.heart{grid-template-columns:1fr;gap:.9rem}.heart .pic{width:100%}}

/* Kontakt */
.contact{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,4rem)}
.contact>*{min-width:0}
.cinfo{display:grid;gap:1.4rem;align-content:start}
.cinfo>.eyebrow{margin-bottom:-.6rem}
.cinfo .big{justify-self:start;font-family:var(--display);font-size:clamp(1.6rem,3.5vw,2.2rem);text-decoration:none;color:var(--primary)}
.places{display:grid;gap:.8rem}
.place{background:var(--lila-soft);border-radius:24px 24px 24px 8px;padding:1rem 1.2rem}
.place b{display:block}
.place a{display:inline-flex;align-items:center;min-height:44px;font-size:.9rem;color:var(--accent);font-weight:700}
.cancel{background:var(--primary-soft);border-radius:var(--r);padding:1.1rem 1.2rem;display:grid;gap:.4rem;font-size:.97rem}
form{background:var(--surface);border-radius:30px 30px 30px 10px;box-shadow:0 30px 60px -44px rgba(50,30,80,.55);padding:clamp(1.2rem,3vw,2rem);display:grid;gap:1rem;align-content:start}
label{display:grid;gap:.35rem;font-weight:700;font-size:.95rem}
input,textarea{font:inherit;font-size:max(1rem,16px);font-weight:400;color:var(--ink);background:var(--bg);border:1px solid var(--field-line);border-radius:10px;padding:.7rem .85rem;min-height:48px;width:100%}
textarea{min-height:130px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.consent{display:grid;grid-template-columns:auto 1fr;gap:.6rem;font-weight:400;font-size:.9rem;color:var(--muted)}
.consent input{min-height:auto;width:20px;height:20px;margin-top:3px}
#anfrage{align-self:start}
#f-out:empty{position:absolute}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{background:color-mix(in srgb,#c0392b 14%,var(--surface));border-radius:10px;padding:.8rem 1rem;font-size:.95rem}
.ok{background:var(--primary-soft);border-radius:10px;padding:.8rem 1rem;font-size:.95rem}
.colleagues{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}
.colleagues a{display:flex;flex-direction:column;gap:.15rem;border:1px solid transparent;background:var(--lila-soft);border-radius:22px 22px 22px 8px;padding:.9rem 1.1rem;text-decoration:none}
.colleagues b{font-family:var(--display);font-weight:600;font-size:1.1rem}
.colleagues span{font-size:.9rem;color:var(--muted)}
.colleagues .url{white-space:nowrap;color:var(--accent);font-weight:500}
.colleagues a:hover{border-color:var(--primary)}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
@media (max-width:480px){.row2{grid-template-columns:1fr}}

/* Recht */
.doc{max-width:48rem;display:grid;grid-template-columns:minmax(0,1fr);gap:1.6rem;overflow-wrap:break-word}
.doc a{overflow-wrap:anywhere}
.doc dl{display:grid;grid-template-columns:minmax(9rem,15rem) 1fr;gap:.55rem 1.2rem;margin:0}
.doc>div:first-child{display:grid;gap:.8rem}
.doc h2{margin-bottom:.35rem}
.doc dt{color:var(--muted)}
.doc dd{margin:0}
.doc ul{margin:0;padding-left:1.2rem;display:grid;gap:.3rem}
@media (max-width:560px){.doc dl{grid-template-columns:1fr;gap:.1rem}.doc dd{margin-bottom:.6rem}}

/* CTA + Fuß */
.cta{background:radial-gradient(ellipse 70% 90% at 50% 100%,color-mix(in srgb,var(--primary-soft) 90%,transparent),transparent 70%),var(--bg);text-align:center}
.cta .wrap{display:grid;gap:1.2rem;justify-items:center}
.cta p{color:var(--muted);max-width:36rem}
footer{padding-block:2.8rem 6rem;color:var(--muted);font-size:.93rem;background:linear-gradient(180deg,var(--bg) 0,var(--bg) 1.6rem,var(--lila-soft) 1.6rem)}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2rem}
footer b{color:var(--ink);display:block;margin-bottom:.4rem}
footer nav{display:grid;gap:0}
footer .fcontact b,footer nav b{margin-bottom:-.2rem}
footer nav a,footer .fcontact a{display:flex;align-items:center;min-height:44px;width:fit-content}
footer a{text-decoration:none}
footer a:hover{color:var(--ink)}
footer .copy{grid-column:1/-1;border-top:1.5px dashed color-mix(in srgb,var(--primary) 22%,transparent);padding-top:1.2rem}
@media (max-width:760px){footer .wrap{grid-template-columns:1fr 1fr}footer .wrap>div:first-child{grid-column:1/-1}}
@media (max-width:540px){footer .wrap{grid-template-columns:1fr}}
@media (min-width:441px){footer{padding-bottom:2.8rem}}
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:9;padding:.6rem 16px calc(.6rem + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);display:none}
.callbar .btn{width:100%}
@media (max-width:440px){.callbar{display:block}html{scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}}
@media (max-width:359px){.cta .wrap>div:last-child{flex-direction:column;width:100%}.prose h1{font-size:1.6rem}}


/* ===== Stein-Elemente ===== */
.stonerow .st,.cairn .st,.stones ellipse{stroke:var(--stone-edge);stroke-width:1}
.stonerow{display:block;margin:0 auto;width:min(420px,80%);height:auto;overflow:visible}
.stonerow.wide{width:100%;max-width:none}
.stonerow-wrap{padding:2.2rem 16px 0;display:grid;place-items:center}
.cairn{width:84px;height:auto;margin:0 auto .6rem;display:block;overflow:visible}
.pebbles{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.pebbles i{position:absolute;display:block;border-radius:var(--pb1);background:var(--lila-soft);opacity:.75}
.pebbles i:nth-child(2n){border-radius:var(--pb2);background:var(--primary-soft)}
.pebbles i:nth-child(3n){border-radius:var(--pb3);background:color-mix(in srgb,var(--accent) 16%,var(--bg))}
@media (max-width:600px){.pebbles i{scale:.6}}
.has-pebbles{position:relative;overflow:hidden}
.has-pebbles>.wrap{position:relative;z-index:1}
.totop{position:fixed;right:22px;bottom:22px;z-index:9;width:58px;height:66px;border:0;background:none;padding:0;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .4s,transform .4s,visibility 0s linear .4s;pointer-events:none}
.totop.show{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
.totop svg{width:100%;height:100%;overflow:visible}
.totop .st{transition:opacity .35s,transform .45s cubic-bezier(.3,1.5,.5,1);transform-box:fill-box;transform-origin:50% 100%}
.totop .st.off{opacity:0;transform:translateY(-14px)}
.totop:hover .st{fill:var(--accent)}
@media (max-width:440px){.totop{display:none}}
@media (prefers-reduced-motion:no-preference){
  .stonerow .st,.cairn .st{opacity:0;transform:translateY(-26px);transform-box:fill-box;transform-origin:50% 100%}
  .stonerow.seen .st,.seen .cairn .st,.cairn.seen .st{animation:drop .9s cubic-bezier(.3,1.45,.55,1) both;animation-delay:calc(var(--i,0) * 70ms)}
  .pebbles i{animation:drift 18s ease-in-out infinite;animation-delay:calc(var(--i,0) * -3s)}
}
@keyframes drop{0%{opacity:0;transform:translateY(-26px)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes drift{50%{translate:0 -14px;rotate:6deg}}

/* ===== Mobil ===== */
.quickprice{display:none}
@media (max-width:860px){.quickprice{display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-items:center;font-size:.92rem;background:var(--lila-soft);border-radius:18px 18px 18px 6px;padding:.6rem .85rem}.quickprice b{color:var(--ink)}.quickprice a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-weight:700;text-decoration:none;margin-left:auto}}
.draft .short-note{display:none}
@media (max-width:600px){.draft .short-note{display:inline}}
@media (max-width:440px){
  .callbar{transform:translateY(110%);visibility:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),visibility 0s linear .35s}
  .callbar.show{transform:none;visibility:visible;transition-delay:0s}
}
@media (max-height:500px) and (orientation:landscape){
  header{position:static}
  .callbar{display:none!important}
  footer{padding-bottom:2.8rem}
  .split .photo[style]{position:static!important}
  .aside{position:static}
}
@media (max-width:600px){
  body{font-size:1rem}
  .draft{font-size:.74rem;padding:.35rem 12px}
  .draft .long{display:none}
  .nav{min-height:58px;padding-top:.45rem}
  .logo b{font-size:1.15rem}
  .tabs{font-size:.95rem;padding-right:2rem}
  section{padding-block:3rem}
  .head{margin-bottom:1.6rem}
  h2{font-size:1.65rem}
  .hero{padding-block:1.6rem 1.4rem}
  .hero .h-big{font-size:3.3rem}
  .hero .h-sub{font-size:1.25rem}
  .hero .lead{font-size:1.02rem}
  .hero .actions{flex-direction:column}
  .hero .actions .btn{width:100%}
  .facts b{font-size:1.15rem}
  .facts li{font-size:.88rem}
  .offers{gap:.7rem}
  .offer{display:grid;grid-template-columns:auto 1fr;column-gap:.9rem;row-gap:.35rem;padding:1rem 1rem .9rem;align-items:start}
  .offer .ic{grid-row:1/span 3;width:46px;height:40px}
  .offer h2,.offer h3{font-size:1.1rem;align-self:center}
  .offer p{font-size:.9rem}
  .offer .tag{font-size:.74rem}
  .offer .price{grid-column:2;padding-top:.55rem;font-size:.86rem}
  .offer .price b{font-size:1rem}
  .offer .go{width:34px;height:30px}
  .media{padding-block:1.8rem}
  .mlogo{padding:.5rem .9rem}
  .mlogo b{font-size:1rem}
  .rv{width:280px}
  .photo{max-width:250px}
  .detail-sec{padding-top:1.4rem}
  .back{margin-bottom:1rem}
  .prose blockquote{font-size:1.08rem}
  
  .cinfo .big{font-size:1.7rem}
  footer .wrap{gap:1.4rem}
}

/* ===== Animationen (Ruhezustand ist sichtbar, alles respektiert „weniger Bewegung“) ===== */
@media (prefers-reduced-motion:no-preference){
  .blob{animation:morph 14s ease-in-out infinite}
  .beam .arm{animation:settle 3.2s cubic-bezier(.35,.05,.25,1) .55s both,breathe 10s ease-in-out 3.75s infinite}
  .beam .st{animation:drop .9s cubic-bezier(.3,1.45,.55,1) both;animation-delay:calc(.25s + var(--i,0) * 120ms)}
  .beam .st:nth-of-type(2){--i:1}.beam .st:nth-of-type(3){--i:2}
  .hero .in{animation:rise .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0s)}
  .btn-primary{position:relative;overflow:hidden}
  .btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s}
  .btn-primary:hover::after{transform:translateX(120%)}
  .reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
  .reveal.seen{opacity:1;transform:none}
  .offer.reveal{transition:opacity .9s cubic-bezier(.2,.8,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s),translate .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
  .page.enter{animation:pagein .5s cubic-bezier(.2,.8,.2,1) both}
}
.hero-bg.off .blob,.hero-bg.off .beam .arm{animation-play-state:paused}
@keyframes morph{50%{border-radius:56% 44% 42% 58%/44% 58% 42% 56%;transform:rotate(8deg) scale(1.03)}}
@keyframes settle{0%{transform:rotate(-11deg)}30%{transform:rotate(7deg)}52%{transform:rotate(-3.5deg)}72%{transform:rotate(1.4deg)}88%{transform:rotate(-.4deg)}100%{transform:rotate(0)}}
@keyframes breathe{0%,100%{transform:rotate(0)}30%{transform:rotate(1.1deg)}70%{transform:rotate(-1.1deg)}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes pagein{from{opacity:.15}to{opacity:1}}
