/* Kanzlei und Steuern (HAGEDORN & VOSS): ruhig, bildstark, eine Serifenschrift.
   Wird nach demo.css geladen und gilt nur unter body.kanzlei.
   Palette: Stein #ecebe6, Papier #f6f5f1, Graphit #1e2427, Aubergine (Recht) #4c3a52, Tannengrün (Steuern) #2a5546, Linie #c8c5bc. */
@font-face{font-family:KSerif;src:url(InstrumentSerif-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
body.kanzlei{--bg:#ecebe6;--paper:#f6f5f1;--surface:#e2e0da;--ink:#1e2427;--accent:#1e2427;--on-accent:#f6f5f1;--line:#c8c5bc;--muted:#585d5c;--recht:#4c3a52;--steuern:#2a5546;--g:clamp(32px,5vw,96px);--serif:KSerif,Editorial,Georgia,'Times New Roman',serif;background:var(--bg);color:var(--ink)}
.kanzlei ::selection{background:var(--ink);color:var(--paper)}
.kanzlei h1,.kanzlei h2{font-family:var(--serif);font-weight:400;letter-spacing:-.012em;line-height:1.04}
.kanzlei h2{font-size:clamp(36px,3.9vw,62px);text-wrap:balance}
.kanzlei h1,.kanzlei h2,.kanzlei h3{word-spacing:.06em}
.k-it{font-family:Editorial,Georgia,serif;font-style:italic;letter-spacing:-.005em}

/* Kopf */
.kanzlei .header{height:104px}
.kanzlei .brand-symbol{font-family:Editorial,Georgia,serif;font-style:italic;font-size:27px;letter-spacing:-.05em;border:0;border-right:1px solid var(--ink);width:56px;padding-right:6px}
.kanzlei .brand small{letter-spacing:.1em}
.k-short{display:none}
.kanzlei .nav-cta{border-bottom-color:var(--ink)}

/* Hero: eine Idee, ein großes Bild */
.k-hero{display:grid;grid-template-columns:calc((100% - var(--g))*5/12) minmax(0,1fr);gap:var(--g);align-items:stretch;padding:clamp(8px,1.5vw,24px) 0 0 var(--pad);min-height:calc(100dvh - 140px);max-width:none;margin:0}
.k-hero-copy{align-self:end;padding:30px 0 clamp(48px,9vh,96px)}
.k-hero h1{font-size:clamp(52px,4.44vw,88px);margin:0}
.k-hero h1 span{display:block}
.k-hero h1 .k-it{margin-top:.06em}
.k-hero-sub{margin:30px 0 38px;max-width:31ch;font-size:clamp(16px,1.25vw,19px);line-height:1.55;color:var(--muted)}
.k-hero-photo{position:relative;margin:0;overflow:hidden;min-height:520px;background:var(--surface)}
.k-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:56% 50%;transform:scale(1.08);will-change:transform}
.js .k-hero-photo{animation:k-open 1.8s var(--ease) both}
@keyframes k-open{from{clip-path:inset(0 0 0 42%)}to{clip-path:inset(0 0 0 0)}}
.kanzlei .button{background:var(--ink);color:var(--paper)}
.kanzlei .button:hover{background:#2f383c}

/* Signaturszene: Vom Anliegen zur Lösung. Ohne Pin (Handy, reduzierte Bewegung, ohne Skript) eine normale Abfolge. */
.k-scene{max-width:none;margin:0;padding:clamp(70px,9vw,130px) var(--pad) 40px}
.k-scene h2{margin:0 0 40px}
.k-steps{list-style:none;margin:0;padding:0;display:grid;gap:56px}
.k-inline-shot{margin:0 0 20px;aspect-ratio:3/2;overflow:hidden;background:var(--surface)}
.k-inline-shot img{width:100%;height:100%;object-fit:cover}
.k-step h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;font-size:clamp(28px,2.1vw,34px);line-height:1.1;margin:0 0 10px}
.k-step p{font-size:15px;line-height:1.6;color:var(--muted);max-width:42ch}
.k-step-btn{display:block;text-align:left;padding:0;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer}
.k-step-btn:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
.k-thread,.k-stage-wrap{display:none}

.k-scene.is-pinned{max-width:none;margin:0;padding:0;height:464vh}
.k-scene.is-pinned .k-pin{position:sticky;top:0;height:100vh;height:100dvh;display:grid;grid-template-columns:calc((100% + var(--pad) - var(--g))*5/12) minmax(0,1fr);gap:var(--g);align-items:center;padding:clamp(36px,6.5vh,68px) var(--pad);max-width:none;margin:0;overflow:hidden}
.k-scene.is-pinned h2{margin-bottom:clamp(22px,4vh,44px)}
.k-scene.is-pinned .k-inline-shot{display:none}
.k-scene.is-pinned .k-steps{gap:clamp(14px,2.6vh,28px)}
.k-scene.is-pinned .k-steps-wrap{position:relative;padding-left:30px}
.k-scene.is-pinned .k-thread{display:block;position:absolute;left:0;top:4px;bottom:4px;width:1px;background:var(--line)}
.k-thread i{position:absolute;inset:0;background:var(--ink);transform-origin:top;transform:scaleY(0)}
/* Hervorhebung läuft über Deckkraft, vom Skript mit dem Scrollstand geführt (keine Farb-Transition): inaktiv rund #727775 und #5c6160, aktiv Tinte */
.k-scene.is-pinned .k-step h3{color:var(--ink);opacity:.6}
.k-scene.is-pinned .k-step p{color:#2c3336;opacity:.75}
.k-scene.is-pinned .k-step-btn{cursor:pointer}
.k-scene.is-pinned .k-step h3{font-size:clamp(26px,1.9vw,32px);margin-bottom:6px}
.k-scene.is-pinned .k-step p{font-size:clamp(14px,1.05vw,15px);line-height:1.5}
.k-scene.is-pinned .k-stage-wrap{display:block;min-width:0}
.k-stage{position:relative;width:100%;height:calc(100vh - 2*clamp(36px,6.5vh,68px) - 74px);height:calc(100dvh - 2*clamp(36px,6.5vh,68px) - 74px);max-height:820px;overflow:hidden;background:var(--surface)}
.k-shot{position:absolute;inset:0;margin:0;overflow:hidden;clip-path:inset(100% 0 0 0)}
.k-shot[data-shot="0"]{clip-path:inset(0)}
.k-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.1);will-change:transform}
.k-lanes{position:relative;height:56px;margin-top:18px}
.k-line{position:absolute;left:0;right:0;top:30px;height:2px;transform-origin:left center;transform:scaleX(.02);will-change:transform}
.k-line-r{background:var(--recht)}
.k-line-s{background:var(--steuern);transform:translateY(16px) scaleX(.02)}
.k-line-m{background:var(--ink);height:3px;top:29.5px;left:calc(6px + (100% - 12px)*2/3);transform:scaleX(0)}
.k-dot{position:absolute;top:25px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:1.5px solid var(--ink);margin-left:-6px;transition:background .55s var(--ease)}
.k-dr[data-d="0"]{left:6px;margin-left:-6px}.k-dr[data-d="1"]{left:calc(6px + (100% - 12px)/3)}.k-dr[data-d="2"]{left:calc(6px + (100% - 12px)*2/3)}.k-dr[data-d="3"]{left:calc(100% - 6px)}
.k-ds{border-color:var(--steuern)}
.k-ds[data-d="0"]{left:6px;margin-left:-6px;transform:translateY(16px)}.k-ds[data-d="1"]{left:calc(6px + (100% - 12px)/3);transform:translateY(16px)}
.k-dr.is-on{background:var(--ink)}
.k-ds.is-on{background:var(--steuern)}
.k-lane-label{position:absolute;top:0;left:0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;line-height:1.2}
.k-lr{color:var(--recht)}
.k-ls{color:var(--steuern);left:5.2em}
.k-lm{color:var(--ink);opacity:0;left:calc(6px + (100% - 12px)*2/3 + 16px)}

/* Leistungen: zwei Spuren */
.k-services{padding:clamp(80px,10vw,150px) var(--pad) clamp(70px,8vw,120px);max-width:none;margin:0}
.k-services-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,110px);align-items:end}
.k-services-head p{color:var(--muted);font-size:clamp(16px,1.25vw,18px);max-width:38ch;line-height:1.6}
.k-lanes-list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(40px,6vw,110px);margin-top:clamp(50px,6vw,90px)}
.k-col{border-top:2px solid var(--c)}
.k-col-r{--c:var(--recht)}
.k-col-s{--c:var(--steuern)}
.k-col h3{font-family:var(--serif);font-weight:400;font-size:clamp(40px,3.6vw,58px);letter-spacing:-.012em;color:var(--c);margin:22px 0 22px;line-height:1}
.k-col ul,.k-both ul{list-style:none;margin:0;padding:0}
.k-col li{padding:22px 0;border-top:1px solid var(--line)}
.k-col strong,.k-both strong{display:block;font-weight:700;font-size:17px;letter-spacing:0;word-spacing:.05em;margin-bottom:6px}
.k-col li span,.k-both li span{display:block;color:var(--muted);font-size:15px;line-height:1.6}
.k-both{margin-top:clamp(60px,7vw,100px);border-top:2px solid var(--ink);padding-top:26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:clamp(24px,5vw,90px)}
.k-both h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,2.6vw,40px);letter-spacing:-.01em;line-height:1.1;margin:0}
.k-both ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.k-both li{padding:2px 28px 2px 22px;border-left:1px solid var(--line)}
.k-both li:first-child{border-left:0;padding-left:0}

/* Breites Bild mit Aussage */
.k-wide{position:relative;margin:0 0 clamp(70px,9vw,140px);display:grid}
.k-wide>*{grid-area:1/1}
.k-wide-photo{margin:0 var(--pad);height:min(78vh,780px);overflow:hidden;background:var(--surface)}
.k-wide-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;will-change:transform}
.k-wide-panel{position:relative;z-index:2;align-self:center;justify-self:end;margin:0 calc(var(--pad) + clamp(24px,4vw,64px)) 0 0;width:min(520px,calc(100% - 2*var(--pad)));background:var(--paper);padding:clamp(28px,3.2vw,52px);border:1px solid var(--line)}
.k-wide-panel h2{font-size:clamp(34px,3.3vw,52px);margin:0 0 20px}
.k-wide-panel p{color:var(--muted);font-size:16px;line-height:1.65}

/* Fragen */
.k-faq{padding-top:clamp(20px,3vw,50px);max-width:none;margin:0}
.k-faq h2{margin-bottom:20px}
.k-faq summary{font-size:19px;letter-spacing:-.01em}
.k-faq details>p{font-size:16px}

/* Kontakt: flache ruhige Fläche, kein Verlauf */
.k-contact{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);background:var(--surface)}
.k-contact-main{padding:clamp(56px,7vw,120px) var(--pad) clamp(56px,7vw,120px)}
.k-contact h2{margin:0 0 16px;max-width:15ch}
.k-contact-lead{color:var(--muted);font-size:17px;max-width:40ch;margin-bottom:34px}
.k-form fieldset{border:0;margin:0 0 28px;padding:0;min-width:0}
.k-form legend{padding:0;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;color:var(--muted)}
.k-opts{display:flex;flex-wrap:wrap;gap:10px}
.k-opts label{position:relative;cursor:pointer}
.k-opts input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.k-opts span{display:inline-flex;align-items:center;min-height:46px;padding:10px 20px;border:1px solid #9d9a92;font-size:15px;background:transparent;transition:background .25s,color .25s,border-color .25s}
.k-opts label:hover span{border-color:var(--ink)}
.k-opts input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.k-opts input:focus-visible+span{outline:2px solid var(--ink);outline-offset:3px}
.k-submit{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:34px}
.k-hint{font-size:13px;color:var(--muted);max-width:30ch;margin:0}
.k-hint.is-warn{color:#8a2f2f}
.k-result:focus{outline:none}
.k-result h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,2.6vw,40px);letter-spacing:-.01em;margin-bottom:14px}
.k-summary{color:var(--ink);font-size:16px;margin-bottom:22px}
.k-result ol{margin:0 0 24px;padding-left:22px;color:var(--muted);font-size:15px;line-height:1.8}
.k-concept{font-size:13px;color:var(--muted);max-width:46ch;margin-bottom:20px}
.k-result .text-link{margin-left:22px}
.k-contact-photo{margin:0;min-height:520px;position:relative;overflow:hidden}
.k-contact-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:35% 50%}

/* Fuß: schlicht in Spalten */
.k-footer{padding:clamp(54px,6vw,90px) var(--pad) 26px}
.k-foot-grid{display:grid!important;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:40px clamp(30px,5vw,90px);padding-bottom:50px!important}
.k-footer .footer-name{font-family:var(--serif);font-size:clamp(30px,3vw,46px);letter-spacing:.01em;margin-bottom:16px}
.k-foot-grid p{font-size:15px;line-height:1.7;color:var(--muted)}
.k-footer nav{display:flex;flex-direction:column;gap:0;font-size:15px}
.k-footer nav a{display:flex;align-items:center;min-height:44px}
.k-footer nav span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.k-footer nav a:hover,.k-foot-note a:hover{text-decoration:underline}
.k-foot-note{margin:0;font-size:13px!important;line-height:1.6}
.k-offer{display:flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}

/* sanftes Einblenden, nur Deckkraft und 24 px */
.js .k-rv{opacity:0;transform:translateY(24px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.js .k-rv.k-in{opacity:1;transform:none}
/* Tafel im breiten Bild: vom Scrollstand geführt, keine zweite Glättung */
.js .k-rv.k-sl{transition:none}
/* demo.js blendet die Fragen mit .8 s ein: hier 1,05 s */
.kanzlei .reveal{transition:opacity 1.05s var(--ease),transform 1.05s var(--ease)}

@media(max-width:1100px){
.k-services-head,.k-both{grid-template-columns:1fr}
.k-both ul{grid-template-columns:1fr}
.k-both li{border-left:0;border-top:1px solid var(--line);padding:18px 0}
.k-both li:first-child{border-top:0}
.k-contact{grid-template-columns:1fr}
.k-contact-photo{min-height:360px}
}
@media(max-width:850px){
.k-hero{grid-template-columns:1fr;padding:0;min-height:0;gap:0}
.k-hero-copy{align-self:auto;padding:40px var(--pad) 44px}
.k-hero h1{font-size:clamp(48px,13vw,64px)}
.k-hero-photo{min-height:0;height:min(64vw,420px)}
.js .k-hero-photo{animation-name:k-open-m}
@keyframes k-open-m{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.k-foot-grid{grid-template-columns:1fr 1fr}
.k-foot-grid>div:first-child{grid-column:1/-1}
}
@media(max-width:720px){
.k-wide{display:block}
.k-long{display:none}.k-short{display:inline}
.kanzlei .header{height:84px}
.k-scene{padding:88px var(--pad) 20px}
.k-scene h2{font-size:38px}
.k-lanes-list{grid-template-columns:1fr;gap:56px}
.k-wide-photo{margin:0;height:min(96vw,420px);max-width:none}
.k-wide-panel{margin:-48px 16px 0;width:auto;position:relative}
.k-contact-main{padding:56px var(--pad) 48px}
.k-contact-photo{min-height:260px}
.k-opts span{font-size:14px;padding:10px 16px}
.k-foot-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
.js .k-rv{opacity:1;transform:none}
.js .k-hero-photo{animation:none}
.k-hero-photo img,.k-wide-photo img{transform:none}
}
html.motion-paused .k-hero-photo{animation:none}
html.motion-paused .k-rv{opacity:1;transform:none;transition:none}
