/* Motion follows the visitor's reading direction and remains optional. */
.mobile-intro,.service-carousel-controls{display:none}
.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:30;pointer-events:none}.reading-progress>span{display:block;height:100%;background:#b9cc81;transform:scaleX(0);transform-origin:left;will-change:transform}
.header nav a{position:relative}.header nav a:after{content:'';position:absolute;bottom:-8px;left:0;right:0;height:1px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .3s}.header nav a.active:after,.header nav a:hover:after{transform:scaleX(1)}
.button span,.text-link>span,.light-link>span{transition:transform .35s cubic-bezier(.2,.7,.2,1)}.button:hover span,.text-link:hover>span,.light-link:hover>span{transform:translate(3px,-3px)}.button:active{transform:scale(.98)}
.hero-copy h1{animation:hero-rise .9s cubic-bezier(.2,.65,.2,1) both}.hero-copy .eyebrow{animation:hero-rise .7s .05s both}.hero-description,.hero-actions,.hero-note{animation:hero-rise .8s .2s both}.hero-visual{animation:hero-rise 1s .12s both}.image-frame img{animation:hero-image 1.7s cubic-bezier(.2,.65,.2,1) both}.availability{animation:hero-rise .8s .4s both}.announcement .status-dot{animation:status-breathe 2s .5s 3}
.motion-ready [data-reveal]{opacity:0;transform:translate3d(0,24px,0);transition:opacity .75s var(--reveal-delay,0ms),transform .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}.motion-ready [data-reveal].is-visible{opacity:1;transform:translate3d(0,0,0)}
.motion-ready .practice-photo[data-reveal]{transform:translate3d(0,24px,0) scale(.97)}.motion-ready .practice-photo.is-visible{transform:translate3d(0,0,0) scale(1)}
.service{position:relative;overflow:hidden}.service:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:#8da477;transform:scaleX(0);transform-origin:left;transition:transform .45s}.service:hover:before,.service[open]:before{transform:scaleX(1)}
.service summary .service-more>span{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid #b7c4ad;border-radius:50%;line-height:1;transition:transform .3s,background .3s}.service[open] summary .service-more>span{background:#dbe4d7}
.steps li{position:relative}.steps li>span{position:relative;z-index:1}.steps li>span:before{content:'';position:absolute;inset:-5px -8px;background:#c3d3b412;border-radius:50%;transform:scale(.5);opacity:0;transition:transform .7s .3s,opacity .7s .3s}.steps li.is-visible>span:before{transform:scale(1);opacity:1}
.practice-photo{padding-bottom:55px}.practice-photo>img{filter:saturate(.85);object-position:center;transition:opacity .25s,transform .7s cubic-bezier(.2,.7,.2,1);border-radius:4px 100px 4px 4px}.practice-photo>img.changing{opacity:.15;transform:scale(.98)}.practice-image-label{position:absolute;bottom:55px;left:0;right:0;background:linear-gradient(transparent,#183b33bf);padding:48px 22px 20px;display:flex;justify-content:space-between;align-items:center;color:white;font-family:var(--serif);font-size:20px}.practice-image-label>span{font-family:var(--sans);font-size:23px}.practice-gallery{position:absolute;bottom:0;left:0;right:0;height:55px;display:flex;gap:22px;align-items:center}.practice-gallery button{background:none;border:0;border-bottom:1px solid transparent;color:#798775;font-size:11px;padding:13px 0;transition:color .2s,border-color .2s}.practice-gallery button.active{border-color:var(--ink);color:var(--ink)}.practice-parking{display:flex;align-items:center;gap:12px}.practice-parking>span{border:1px solid #a6b79b;width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:21px;line-height:1;color:var(--green)}
.contact-grid>a{transition:background .3s}.contact-grid b{transition:transform .3s}.contact-grid>a:hover b{transform:translate(4px,-4px)}
dialog[open]{animation:dialog-in .3s cubic-bezier(.2,.7,.2,1)}dialog[open]::backdrop{animation:backdrop-in .3s}
@keyframes hero-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-image{from{transform:scale(1.065)}to{transform:scale(1)}}
@keyframes status-breathe{50%{box-shadow:0 0 0 6px #c4df8720}}
@keyframes dialog-in{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
@media(max-width:800px){nav.open{animation:hero-rise .25s both}.practice-image-label{font-size:17px;padding-inline:17px}.practice-gallery{gap:18px}.practice-gallery button{font-size:11px}}
@media(max-width:660px){
 .hero{display:flex;flex-direction:column;align-items:stretch;gap:0;padding-top:25px;padding-bottom:34px}
 .hero-copy{display:contents}
 .hero-copy>.eyebrow{order:0;font-size:9px;letter-spacing:1.2px;margin-bottom:15px}
 .hero-copy>h1{order:1;font-size:clamp(44px,13.5vw,61px);line-height:1.01;letter-spacing:-1.8px;margin:0 0 25px}
 .hero-visual{order:2;width:100%;min-height:270px;height:270px;padding:0 0 19px;margin:0 0 20px;align-self:auto}
 .image-frame{min-height:0;height:251px;border-radius:90px 4px 4px 4px}
 .image-frame img{object-position:center 60%;filter:saturate(.8)}
 .image-caption{font-size:17px;bottom:38px;left:20px;right:16px}
 .availability{bottom:0;left:12px;right:auto;gap:11px;padding:12px 17px 12px 12px;border-radius:3px;box-shadow:0 8px 25px #243e3210}
 .availability-icon{width:35px;height:35px;font-size:22px}
 .availability strong{font-size:12px}.availability div>span{font-size:11px}
 .hero-description{order:3;font-size:15px;line-height:1.65;max-width:330px;margin:0 0 18px;color:#50644e;animation-delay:.25s}
 .desktop-intro{display:none}.mobile-intro{display:inline}
 .hero-actions{order:4;display:flex;flex-direction:row;align-items:center;gap:13px;flex-wrap:wrap;margin-bottom:0;animation-delay:.3s}
 .hero-actions .button{width:auto;flex:1;min-height:52px;font-size:14px;gap:15px;padding-inline:18px;white-space:nowrap}
 .hero-actions .text-link{font-size:13px;min-height:48px;gap:7px}
 .hero-actions .text-link svg{width:16px;height:16px}
 .hero-note{order:5;font-size:10px;margin-top:15px;line-height:1.8;animation-delay:.35s}
 .benefits{background:#eaf0e2;border:0}
 .benefit-grid{padding-block:26px;gap:25px 12px}
 .benefit-grid>div{font-size:10px;line-height:1.7;border-color:#c5d2ba;gap:10px}
 .benefit-grid strong{font-size:12px}
 .section{padding-block:52px}
 .section-heading{margin-bottom:28px}
 .section-heading h2{font-size:35px;line-height:1.13;letter-spacing:-1.2px}
 .section-heading>p{font-size:15px;line-height:1.75;margin-top:18px}
 #leistungen{overflow:hidden}
 .service-grid{display:flex;gap:14px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-padding-left:0;scrollbar-width:none;border:0;align-items:flex-start;margin-right:-18px;padding:0 38px 12px 0;overscroll-behavior-x:contain}
 .service-grid::-webkit-scrollbar{display:none}
 .service{flex:0 0 min(88%,350px);scroll-snap-align:start;border:1px solid #cfdbc6;border-radius:22px 4px 4px 4px;background:#edf1e5;min-height:260px;box-shadow:0 5px 12px #243e3204}
 .service:nth-child(2n){background:#eeeade;border-color:#dcd5c8}
 .service summary{padding:25px 24px 20px;min-height:260px}
 .service-number{font-size:9px;margin-bottom:36px;color:#5b7152;letter-spacing:1.1px}
 .service-title{font-size:30px;letter-spacing:-.6px;margin-bottom:14px}
 .service-intro{font-size:14px;line-height:1.75}
 .service-more{padding-top:29px;font-size:12px}
 .service>p{font-size:14px;line-height:1.85;padding:0 24px 25px}
 .service-carousel-controls{display:flex;align-items:center;gap:10px;position:relative;padding-bottom:21px;margin-top:12px}
 .service-carousel-controls>span:first-child{font-size:10px;color:var(--muted);margin-right:auto}
 .service-counter{font-size:11px;font-variant-numeric:tabular-nums;margin-right:4px}
 .carousel-arrow{display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;border:1px solid #bac9b0;border-radius:50%;background:transparent;color:var(--ink);font-size:21px;transition:background .25s,transform .25s}
 .carousel-arrow:hover{background:#e4eadc}.carousel-arrow:active{transform:scale(.94)}.carousel-arrow:disabled{opacity:.3;cursor:default}
 .carousel-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#dce4d5}
 .carousel-progress>span{display:block;width:100%;height:100%;background:#667e54;transform:scaleX(.1111);transform-origin:left;transition:transform .35s}
 .approach{border-radius:30px 30px 0 0;padding:55px 0}
 .approach-layout{gap:32px}
 .approach h2{font-size:46px;line-height:1.05;letter-spacing:-1.7px}
 .approach-layout>div>p:not(.eyebrow){font-size:15px;max-width:100%}
 .steps li{gap:22px;padding:25px 0}
 .steps h3{font-size:26px}
 .steps p{font-size:14px;line-height:1.85}
 .practice{gap:30px}
 .practice-photo{height:340px;padding-bottom:55px}
 .practice-photo>img{object-position:center 55%;border-radius:4px 85px 4px 4px}
 .practice-image-label{font-size:18px;bottom:55px}
 .practice-gallery button{font-size:12px;min-height:44px}
 .practice-copy h2{font-size:37px;line-height:1.1}
 .practice-copy>p:not(.eyebrow){font-size:15px}
 .practice-parking{font-size:13px!important;line-height:1.7!important;padding:15px;background:#eaf0e2;border-radius:4px;margin-top:22px}
 .practice-parking>span{width:26px;height:26px;font-size:18px}
 .address{margin-top:22px;padding:20px 0}
 .faq{gap:25px}
 .faq-list summary{font-size:15px}
 .faq-list details>p{font-size:14px}
 .contact{border-radius:28px 28px 0 0;padding-top:45px}
 .contact-heading h2{font-size:46px;line-height:1.08}
 .contact-grid{border-top:0;border-bottom:0;gap:14px}
 .contact-grid>a{padding:23px 20px;background:var(--green);color:white;border-radius:14px 3px 3px 3px}
 .contact-grid>a+a{padding:23px 20px;border:1px solid #adbea3;background:#ffffff30;color:var(--ink)}
 .contact-grid a>span{font-size:10px;letter-spacing:1.4px}
 .contact-grid strong{font-size:34px}
 .contact-grid small{font-size:11px;color:#d1dccb;line-height:1.8}
 .contact-grid>a+a small{color:#536b4e}
 .contact-grid b{top:18px;right:18px}
 .contact-grid>a:hover{background:#37604c}
 .contact-grid>a+a:hover{background:#ffffff60}
 .contact-grid .email{font-size:clamp(20px,6vw,27px)}
 .contact-note{font-size:11px;margin-top:22px}
 .mobile-call{background:#254c3ef5;backdrop-filter:blur(14px);border-top:1px solid #718a61;box-shadow:0 -4px 24px #183b3312}
 .mobile-call a{font-size:14px;line-height:1.5}
 .mobile-call span{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#d6e2bb;color:var(--ink);border-radius:50%;font-size:16px}
 .footer-bottom{padding-bottom:90px}
}
@media(max-width:360px){.hero-actions{gap:8px}.hero-actions .button{font-size:13px;padding-inline:15px}.hero-actions .text-link{font-size:12px}.hero-copy>h1{font-size:46px}.hero-visual{height:245px;min-height:245px}.image-frame{height:226px}.service-title{font-size:27px}.service-carousel-controls>span:first-child{font-size:9px}.carousel-arrow{min-width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready [data-reveal]{opacity:1;transform:none!important}.reading-progress{display:none}}
.hero-closing{display:inline-block;font-size:.72em;line-height:1.25;letter-spacing:-1px}
