/* Kassel Flow Trace. Shared brand tokens and includes remain the source of truth. */
.rohr-kassel-page{color:var(--c-text);background:var(--c-bg);line-height:1.65}
.rohr-kassel-page *,.rohr-kassel-page *::before,.rohr-kassel-page *::after{box-sizing:border-box}
.rohr-kassel-page .rk-wrap{max-width:var(--container);margin:auto;padding:0 28px}
.rohr-kassel-page h1,.rohr-kassel-page h2,.rohr-kassel-page h3{font-family:var(--font-display);color:var(--c-text);line-height:1.18;letter-spacing:-.025em}
.rohr-kassel-page h1{font-size:clamp(2.1rem,3.5vw,3.2rem)!important;margin:.7rem 0 1.35rem;letter-spacing:-.035em}
.rohr-kassel-page h2{font-size:clamp(1.6rem,2.65vw,2.3rem)!important;margin:.5rem 0 1.2rem}
.rohr-kassel-page h3{font-size:1.3rem!important;margin:.6rem 0 .8rem}
.rohr-kassel-page p{margin:.6rem 0 1rem;color:var(--c-text-soft)}
.rohr-kassel-page a{color:var(--primary-hover)}
.rohr-kassel-page :focus-visible{outline:3px solid var(--primary-hover);outline-offset:5px}
.rohr-kassel-page [id]{scroll-margin-top:calc(var(--header-h) + 24px)}
.rohr-kassel-page figure{margin:0;min-width:0}
.rohr-kassel-page figure img{display:block;width:100%;height:auto;max-width:100%;filter:none}
.rohr-kassel-page figcaption{font-size:.72rem;padding:.75rem 0;color:var(--c-text-soft)}
.rohr-kassel-page .rk-eyebrow,.rohr-kassel-page .rk-chapter-label{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--primary-hover)}
.rohr-kassel-page .rk-section{padding:4rem 0}
.rohr-kassel-page .rk-heading{display:flex;align-items:end;justify-content:space-between;gap:3rem;margin-bottom:2.2rem}
.rohr-kassel-page .rk-heading>div{max-width:700px}
.rohr-kassel-page .rk-heading>p{max-width:390px;font-size:.91rem}
.rohr-kassel-page .rk-breadcrumb{font-size:.8rem;background:var(--c-bg-alt);border-bottom:1px solid var(--c-border)}
.rohr-kassel-page .rk-breadcrumb .rk-wrap{display:flex;flex-wrap:wrap;gap:.65rem;padding-top:.8rem;padding-bottom:.8rem}
.rohr-kassel-page .rk-breadcrumb a{text-decoration:none}
.rohr-kassel-page .rk-button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;text-decoration:none;border:2px solid var(--c-border);border-radius:var(--radius);padding:.9rem 1.25rem;font-size:.94rem;font-weight:700;background:var(--c-bg);min-height:54px;transition:transform .18s,border-color .18s}
.rohr-kassel-page .rk-primary{background:var(--primary);border-color:var(--primary);color:var(--c-dark)}
.rohr-kassel-page .rk-button:hover{transform:translateY(-2px);border-color:var(--primary-hover)}
.rohr-kassel-page .rk-link{display:inline-block;font-size:.88rem;font-weight:700;text-decoration:none;padding:.6rem 0}
.rohr-kassel-page .rk-link:hover{text-decoration:underline;text-underline-offset:4px}
.rohr-kassel-page .rk-hero{padding:3rem 0 0}
.rohr-kassel-page .rk-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2rem;align-items:center}
.rohr-kassel-page .rk-lead{font-size:1rem}
.rohr-kassel-page .rk-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.6rem 0 .3rem}
.rohr-kassel-page .rk-hero-photo img{aspect-ratio:3/2;border-radius:var(--radius)}
.rohr-kassel-page .rk-hero-photo{border-bottom:1px solid var(--c-border)}
.rohr-kassel-page .rk-microflow{display:flex;align-items:center;gap:1.3rem;flex-wrap:wrap;margin-top:2.4rem;padding:1.1rem 0 1.4rem;border-top:1px solid var(--c-border);text-decoration:none;font-size:.8rem;color:var(--c-text)}
.rohr-kassel-page .rk-flow-start{font-weight:700;letter-spacing:.04em;margin-right:1rem}
.rohr-kassel-page .rk-microflow strong{margin-left:auto;color:var(--primary-hover)}
.rohr-kassel-page .rk-urgent{background:var(--primary-l);padding:1.25rem 0}
.rohr-kassel-page .rk-urgent .rk-wrap{display:flex;gap:1.5rem;align-items:center}
.rohr-kassel-page .rk-urgent i{font-size:1.5rem}
.rohr-kassel-page .rk-urgent h2{font-size:1.1rem!important;margin:0}
.rohr-kassel-page .rk-urgent p{font-size:.86rem;margin:.25rem 0 0}
.rohr-kassel-page .rk-urgent .rk-button{margin-left:auto;flex-shrink:0}
.rohr-kassel-page .rk-trace-section{background:var(--c-bg-alt)}
.rohr-kassel-page .rk-trace{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem;padding-top:2.5rem}
.rohr-kassel-page .rk-symptom{position:absolute;top:0;left:0;font-size:.7rem;font-weight:700;color:var(--primary-hover);letter-spacing:.08em}
.rohr-kassel-page .rk-trace-line{position:absolute;left:20px;right:20px;top:60px;width:calc(100% - 40px);height:120px;pointer-events:none;overflow:visible}
.rohr-kassel-page .rk-trace-line path{fill:none;stroke:var(--primary);stroke-width:1.5;vector-effect:non-scaling-stroke}
.rohr-kassel-page .rk-stage{position:relative}
.rohr-kassel-page .rk-stage:nth-of-type(2){padding-top:3rem}
.rohr-kassel-page .rk-stage:nth-of-type(3){padding-top:6rem}
.rohr-kassel-page .rk-node{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--primary-hover);border-radius:50%;background:var(--c-bg-alt);font-size:.75rem;font-weight:700;position:relative;z-index:1}
.rohr-kassel-page .rk-stage h3{margin:1.2rem 0 .7rem}
.rohr-kassel-page .rk-stage button{appearance:none;border:0;border-bottom:2px solid transparent;background:transparent;padding:.35rem 0;color:var(--c-text);font:inherit;text-align:left;min-height:44px;cursor:pointer}
.rohr-kassel-page .rk-stage button span{color:var(--primary-hover);margin-left:.7rem}
.rohr-kassel-page .rk-stage p{font-size:.9rem;max-width:300px}
.rohr-kassel-page .rk-stage ul{list-style:none;padding:0;margin:0;font-size:.82rem;color:var(--c-text-soft)}
.rohr-kassel-page .rk-stage li{padding:.4rem 0;border-bottom:1px solid var(--c-border)}
.rohr-kassel-page .rk-stage:hover button,.rohr-kassel-page .rk-stage:focus-within button,.rohr-kassel-page .rk-stage.rk-selected button{border-bottom-color:var(--primary-hover)}
.rohr-kassel-page .rk-stage.rk-selected .rk-node{background:var(--primary-l)}
.rohr-kassel-page .rk-stage.rk-selected li{color:var(--c-text);font-weight:700}
.rohr-kassel-page .rk-caution{display:flex;gap:.7rem;border-top:1px solid var(--c-border);padding-top:1.2rem;margin-top:2.2rem;font-size:.86rem}
.rohr-kassel-page .rk-chapter{border-left:2px solid var(--c-border);padding-left:1.3rem;transition:border-color .2s}
.rohr-kassel-page .rk-chapter.rk-selected{border-left-color:var(--primary)}
.rohr-kassel-page .rk-drain-chapter{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:3rem;margin:2rem 0 2.6rem;padding-top:1.2rem;padding-bottom:1.2rem;border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border)}
.rohr-kassel-page .rk-examples{display:block;font-size:.76rem;color:var(--c-text-soft)}
.rohr-kassel-page .rk-depth-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:4rem;align-items:center}
.rohr-kassel-page .rk-depth-photo{max-width:480px}
.rohr-kassel-page .rk-depth-photo img,.rohr-kassel-page .rk-camera-photo img{aspect-ratio:3/4;border-radius:var(--radius)}
.rohr-kassel-page .rk-depth-title{font-size:1.8rem!important;margin:0 0 1.8rem}
.rohr-kassel-page .rk-depth-copy .rk-chapter{margin:1.6rem 0 2rem}
.rohr-kassel-page .rk-depth-copy p{font-size:.94rem}
.rohr-kassel-page .rk-dark{background:var(--c-bg-dark);color:var(--c-bg)}
.rohr-kassel-page .rk-dark h2,.rohr-kassel-page .rk-dark h3{color:var(--c-bg)!important}
.rohr-kassel-page .rk-dark p,.rohr-kassel-page .rk-dark figcaption{color:var(--c-border)}
.rohr-kassel-page .rk-dark .rk-eyebrow{color:var(--primary-l)}
.rohr-kassel-page .rk-dark :focus-visible{outline-color:var(--primary-l)}
.rohr-kassel-page .rk-technical-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:center}
.rohr-kassel-page .rk-camera-photo{max-width:550px}
.rohr-kassel-page .rk-tech-intro{font-size:1.02rem}
.rohr-kassel-page .rk-method-list article{display:flex;gap:1rem;border-top:1px solid var(--c-muted);padding:1rem 0}
.rohr-kassel-page .rk-method-list i{font-size:1.25rem;padding-top:.25rem;color:var(--primary-l)}
.rohr-kassel-page .rk-method-list h3{font-size:1rem!important;margin:0 0 .4rem}
.rohr-kassel-page .rk-method-list p{font-size:.83rem;margin:0}
.rohr-kassel-page .rk-tech-note{font-size:.8rem;border-top:1px solid var(--c-muted);padding-top:1rem}
.rohr-kassel-page .rk-process{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.2rem;list-style:none;padding:0;margin:2rem 0 0}
.rohr-kassel-page .rk-process::before{content:'';position:absolute;left:18px;right:18px;top:18px;height:1px;background:var(--c-border);transform-origin:left}
.rohr-kassel-page .rk-process-number{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--c-bg);border:1px solid var(--primary-hover);font-weight:700;font-size:.72rem;color:var(--primary-hover)}
.rohr-kassel-page .rk-process h3{font-size:.95rem!important;margin:1.1rem 0 .7rem}
.rohr-kassel-page .rk-process p{font-size:.82rem}
.rohr-kassel-page .rk-costs{background:var(--c-bg-alt)}
.rohr-kassel-page .rk-cost-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:4rem}
.rohr-kassel-page .rk-factors{margin:0;border-top:2px solid var(--primary)}
.rohr-kassel-page .rk-factors>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:1rem;border-bottom:1px solid var(--c-border);padding:.95rem 0}
.rohr-kassel-page .rk-factors dt{font-weight:700;font-size:.88rem}
.rohr-kassel-page .rk-factors dd{font-size:.82rem;color:var(--c-text-soft);margin:0}
.rohr-kassel-page .rk-local-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:3rem}
.rohr-kassel-page .rk-local-grid h3{font-size:1rem!important;margin:0 0 1rem}
.rohr-kassel-page .rk-districts{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem 1rem}
.rohr-kassel-page .rk-districts li{font-size:.82rem;padding:.3rem 0;border-bottom:1px solid var(--c-border);overflow-wrap:anywhere}
.rohr-kassel-page .rk-local-note,.rohr-kassel-page .rk-map-caption{font-size:.75rem;margin-top:1.1rem}
.rohr-kassel-page .rk-map{height:480px;width:100%;border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;isolation:isolate;position:relative;background:var(--c-bg-alt);color:var(--c-text)}
.rohr-kassel-page .rk-map img{filter:none}
.rohr-kassel-page .rk-map .leaflet-container{font-family:var(--font-body)}
.rohr-kassel-page .rk-map-fallback{position:relative;z-index:800;background:var(--c-bg);padding:1.1rem;margin:1rem;border:1px solid var(--c-border);font-size:.85rem}
.rohr-kassel-page .rk-map .leaflet-control-zoom a{color:var(--c-text);min-width:34px;min-height:34px;line-height:34px}
.rohr-kassel-page .rk-map .leaflet-control-attribution a{color:var(--primary-hover)}
.rohr-kassel-page .rk-objects{background:var(--c-bg-alt)}
.rohr-kassel-page .rk-object-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border);margin:1.6rem 0 3rem}
.rohr-kassel-page .rk-object-band article{padding:1.5rem}
.rohr-kassel-page .rk-object-band article+article{border-left:1px solid var(--c-border)}
.rohr-kassel-page .rk-object-band i{font-size:1.3rem}
.rohr-kassel-page .rk-object-band h3{font-size:1rem!important}
.rohr-kassel-page .rk-object-band p{font-size:.84rem}
.rohr-kassel-page .rk-object-band small{font-size:.73rem;color:var(--c-text-soft)}
.rohr-kassel-page .rk-followup h2{font-size:1.75rem!important}
.rohr-kassel-page .rk-followup-grid{display:grid;grid-template-columns:1fr 30px 1fr;gap:1.5rem;border-top:1px solid var(--c-border);padding-top:1.3rem}
.rohr-kassel-page .rk-followup p{font-size:.88rem}
.rohr-kassel-page .rk-followup-arrow{font-size:1.5rem;color:var(--primary-hover)}
.rohr-kassel-page .rk-faq-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:4rem}
.rohr-kassel-page .rk-faq{border-bottom:1px solid var(--c-border);padding:1rem 0}
.rohr-kassel-page .rk-faq summary{cursor:pointer;font-weight:700;font-size:.91rem;min-height:30px;padding:.3rem 0}
.rohr-kassel-page .rk-faq p{font-size:.86rem;margin:1rem 0 .4rem}
.rohr-kassel-page .rk-contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:4rem;align-items:center}
.rohr-kassel-page .rk-contact h2{max-width:650px;font-size:clamp(1.9rem,3.1vw,2.7rem)!important}
.rohr-kassel-page .rk-contact p{max-width:620px}
.rohr-kassel-page .rk-phone-number{display:block;font-size:.85rem;color:var(--c-border);margin-top:.75rem}
.rohr-kassel-page .rk-secondary-actions a{display:flex;gap:1rem;padding:1.25rem 0;border-top:1px solid var(--c-muted);color:var(--c-bg);text-decoration:none}
.rohr-kassel-page .rk-secondary-actions a:last-child{border-bottom:1px solid var(--c-muted)}
.rohr-kassel-page .rk-secondary-actions i{font-size:1.5rem}
.rohr-kassel-page .rk-secondary-actions small{display:block;font-size:.77rem;color:var(--c-border)}
.rohr-kassel-page .rk-secondary-actions strong{font-size:1rem}
.rohr-kassel-page .rk-secondary-actions a:hover strong{text-decoration:underline;text-underline-offset:4px}
@keyframes rk-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes rk-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.rohr-kassel-page .rk-hero-copy,.rohr-kassel-page .rk-hero-photo{animation:rk-enter .4s ease-out both}
.rohr-kassel-page .rk-hero-photo{animation-delay:.06s}
.rohr-kassel-page .rk-reveal.rk-visible{animation:rk-enter .35s ease-out both}
.rohr-kassel-page .rk-trace.rk-visible .rk-trace-line{animation:rk-draw .65s ease-out both;transform-origin:left}
@media(max-width:1100px){
 .rohr-kassel-page .rk-process{grid-template-columns:1fr;gap:1.2rem}
 .rohr-kassel-page .rk-process::before{left:18px;right:auto;top:18px;bottom:18px;height:auto;width:1px}
 .rohr-kassel-page .rk-process li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:0 1rem}
 .rohr-kassel-page .rk-process-number{grid-row:span 2}
 .rohr-kassel-page .rk-process h3{grid-column:2;margin:.3rem 0 .5rem}
 .rohr-kassel-page .rk-process p{grid-column:2;margin:0}
 .rohr-kassel-page .rk-trace{gap:1.5rem}
 .rohr-kassel-page .rk-depth-grid,.rohr-kassel-page .rk-technical-grid{gap:2rem}
}
@media(max-width:900px){
 .rohr-kassel-page .rk-hero-grid,.rohr-kassel-page .rk-depth-grid,.rohr-kassel-page .rk-technical-grid{grid-template-columns:1fr}
 .rohr-kassel-page .rk-depth-photo{max-width:520px}
 .rohr-kassel-page .rk-technical-grid{gap:1.5rem}
 .rohr-kassel-page .rk-camera-photo{max-width:600px}
 .rohr-kassel-page .rk-heading{gap:1.5rem}
 .rohr-kassel-page .rk-cost-grid,.rohr-kassel-page .rk-local-grid,.rohr-kassel-page .rk-faq-grid,.rohr-kassel-page .rk-contact-grid{gap:2rem}
 .rohr-kassel-page .rk-microflow strong{margin-left:0}
}
@media(max-width:760px){
 .rohr-kassel-page .rk-wrap{padding:0 18px}
 .rohr-kassel-page .rk-section{padding:2.75rem 0}
 .rohr-kassel-page .rk-hero{padding-top:2rem}
 .rohr-kassel-page h1{font-size:clamp(2rem,6.5vw,2.6rem)!important}
 .rohr-kassel-page .rk-heading{display:block;margin-bottom:1.5rem}
 .rohr-kassel-page .rk-heading>p{max-width:none}
 .rohr-kassel-page .rk-microflow{gap:.6rem .9rem;font-size:.73rem;margin-top:1.6rem}
 .rohr-kassel-page .rk-flow-start,.rohr-kassel-page .rk-microflow strong{width:100%}
 .rohr-kassel-page .rk-urgent .rk-wrap{flex-wrap:wrap;gap:.8rem}
 .rohr-kassel-page .rk-urgent .rk-wrap>div{flex:1;min-width:0}
 .rohr-kassel-page .rk-urgent .rk-button{width:100%}
 .rohr-kassel-page .rk-trace{grid-template-columns:1fr;padding:3rem 0 0 55px;gap:1.4rem}
 .rohr-kassel-page .rk-trace-line{display:none}
 .rohr-kassel-page .rk-trace::before{content:'';position:absolute;left:18px;top:52px;bottom:12px;width:1px;background:var(--primary)}
 .rohr-kassel-page .rk-stage:nth-of-type(n){padding-top:0}
 .rohr-kassel-page .rk-stage .rk-node{position:absolute;left:-55px;top:.6rem;width:36px;height:36px}
 .rohr-kassel-page .rk-stage h3{margin:0 0 .6rem}
 .rohr-kassel-page .rk-stage p{max-width:none}
 .rohr-kassel-page .rk-drain-chapter{grid-template-columns:1fr;gap:.5rem}
 .rohr-kassel-page .rk-depth-grid{gap:1.5rem}
 .rohr-kassel-page .rk-depth-title{font-size:1.5rem!important}
 .rohr-kassel-page .rk-process{grid-template-columns:1fr;gap:1.2rem;padding-left:0}
 .rohr-kassel-page .rk-process::before{display:block;left:18px;right:auto;top:18px;bottom:18px;height:auto;width:1px}
 .rohr-kassel-page .rk-process li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:0 1rem;border:0;padding:0}
 .rohr-kassel-page .rk-process-number{grid-row:span 2}
 .rohr-kassel-page .rk-process h3{grid-column:2;margin:.3rem 0 .5rem}
 .rohr-kassel-page .rk-process p{grid-column:2;margin:0}
 .rohr-kassel-page .rk-cost-grid,.rohr-kassel-page .rk-local-grid,.rohr-kassel-page .rk-faq-grid,.rohr-kassel-page .rk-contact-grid{grid-template-columns:1fr;gap:1.5rem}
 .rohr-kassel-page .rk-map{height:360px}
 .rohr-kassel-page .rk-object-band{grid-template-columns:1fr;margin-bottom:2.2rem}
 .rohr-kassel-page .rk-object-band article{padding:1.2rem 0}
 .rohr-kassel-page .rk-object-band article+article{border-left:0;border-top:1px solid var(--c-border)}
 .rohr-kassel-page .rk-followup-grid{grid-template-columns:1fr;gap:.7rem}
 .rohr-kassel-page .rk-followup-arrow{transform:rotate(90deg);justify-self:start}
 .rohr-kassel-page .rk-contact .rk-primary{width:100%}
}
@media(max-width:380px){
 .rohr-kassel-page .rk-actions .rk-button{width:100%}
 .rohr-kassel-page .rk-factors>div{grid-template-columns:1fr;gap:.3rem}
 .rohr-kassel-page .rk-districts{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 html:has(.rohr-kassel-page){scroll-behavior:auto}
 .rohr-kassel-page *,.rohr-kassel-page *::before,.rohr-kassel-page *::after{animation:none!important;transition:none!important}
 .rohr-kassel-page .rk-button:hover{transform:none}
}
