/* Static site: no font service, CSS framework or remote dependency. */
:root{--ink:#243b41;--muted:#53696e;--paper:#fafbf9;--blue:#e5edef;--accent:#c4c387;--line:#c9d3d4;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.75 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;width:100%;height:auto}figure,p,h1,h2,h3{margin:0}p+p{margin-top:20px}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif);line-height:1.13;letter-spacing:-.045em}h2{font-size:clamp(2.2rem,3.7vw,3.5rem)}h3{font-size:1.3rem;line-height:1.4;letter-spacing:-.015em}em{font-weight:400}p{text-wrap:pretty}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #96732b;outline-offset:6px}a:hover{text-decoration:underline;text-underline-offset:5px}button[hidden],[hidden]{display:none!important}.wrap{width:min(1200px,calc(100% - 112px));margin-inline:auto}.section{padding-block:112px}.eyebrow{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;line-height:1.6;margin-bottom:25px}.skip-link{position:fixed;top:-120px;left:15px;padding:10px 20px;background:#fff;z-index:10}.skip-link:focus{top:10px}
.site-header{min-height:106px;padding:23px 4%;display:flex;align-items:center;justify-content:space-between;gap:30px;background:#f4f7f6}.brand{display:inline-flex;flex-direction:column;flex-shrink:0;line-height:1.2}.brand:hover{text-decoration:none}.brand-name{font-family:var(--serif);font-size:2.05rem;letter-spacing:-.06em}.brand-dot{color:#83844e}.brand-subtitle{font-size:.75rem;letter-spacing:.07em;margin-top:9px;text-transform:uppercase}.site-header nav{display:flex;align-items:center;gap:30px;font-size:.875rem}.nav-contact{border:1px solid #bcc9c9;padding:11px 17px}.nav-contact span{margin-left:15px}.menu-toggle{background:transparent;border:1px solid var(--line);padding:8px 12px;color:var(--ink)}.menu-toggle span{margin-left:10px}
.hero{position:relative;min-height:730px;height:min(820px,calc(100svh - 106px));color:#fff;display:flex;flex-direction:column;justify-content:center;isolation:isolate}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.hero-image{object-fit:cover;object-position:50% 54%}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(13,30,27,.84) 0%,rgba(16,32,28,.65) 42%,rgba(16,32,28,.13) 100%)}.hero-content{padding-top:4px;padding-bottom:88px}.hero .eyebrow{color:#e0e8e1}.hero h1{font-size:clamp(3.3rem,5.5vw,5.5rem);max-width:900px;line-height:1.1}.hero h1 em{color:#e1e8d3}.hero-intro{font-size:1.05rem;line-height:1.85;margin:30px 0 34px;color:#eef2ed;max-width:580px}.button{display:inline-flex;justify-content:center;align-items:center;gap:35px;min-height:56px;padding:14px 25px;border:1px solid transparent;font-size:.92rem;font-weight:500;line-height:1.4;transition:background .2s,color .2s}.button:hover{text-decoration:none}.button-light{background:#e9eddf;color:#23362f}.button-light:hover{background:#fff}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{background:#3b575d}.button span{font-size:1.3rem}.hero-note{font-size:.875rem;color:#e1e6de;margin-top:15px}.hero-bottom{position:absolute;bottom:30px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #ffffff45;padding-top:23px;font-size:.76rem;letter-spacing:.02em}.hero-bottom a{display:flex;gap:25px}.hero-bottom a span{font-size:1.1rem}
.about{display:grid;grid-template-columns: .9fr 1.1fr;align-items:center;gap:105px}.portrait{position:relative}.portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 38%}.portrait figcaption{display:flex;justify-content:space-between;gap:15px;font-size:.875rem;padding-top:16px}.portrait figcaption span{color:var(--muted);font-size:.75rem}.about-copy h2{margin-bottom:32px}.about-copy p:not(.eyebrow){color:var(--muted);font-size:1rem}.text-link{display:inline-flex;align-items:center;gap:25px;border-bottom:1px solid currentColor;padding-bottom:5px;font-size:.875rem;font-weight:500}.about-copy .text-link{margin-top:32px}.services{background:var(--blue)}.services-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:100px}.section-heading>p:last-child{color:var(--muted);max-width:335px;margin-top:30px;font-size:1rem}.service-list article{display:flex;gap:30px;border-top:1px solid #b6c6ca;padding:30px 0}.service-list article:last-child{border-bottom:1px solid #b6c6ca}.service-number{font-size:.78rem;color:var(--muted);padding-top:6px}.service-list h3{font-family:var(--serif);font-size:1.6rem;line-height:1.25}.service-list p{font-size:.96rem;line-height:1.7;color:var(--muted);margin-top:15px}.practice-heading{display:grid;grid-template-columns:1fr 1fr;gap:130px;align-items:end;margin-bottom:50px}.practice-heading>p{font-size:1rem;color:var(--muted);padding-bottom:5px}.practice-photo img{aspect-ratio:1.95;object-fit:cover;object-position:center 55%}.practice-photo figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:16px;font-size:.875rem;color:var(--muted)}.practice-photo figcaption>a span{margin-left:12px}.costs{background:var(--ink);color:#f5f6ef}.costs-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:160px}.costs .eyebrow{color:#cbd6d3}.costs h2{margin-bottom:25px}.costs-grid>div>p:not(.eyebrow){font-size:1rem;max-width:490px;color:#dce4df}.costs .text-link{margin-top:30px}.price{padding-left:70px;border-left:1px solid #ffffff40}.price-label{font-size:.875rem!important;letter-spacing:.13em;text-transform:uppercase}.price .price-amount{font:400 6.8rem/1.1 var(--serif);color:#e4e8d1;margin-top:15px;letter-spacing:-.06em}.price-amount span{font-size:3.5rem}.price .price-unit{font-size:1rem;color:#e5eae3;margin-top:8px}.price-detail{border-top:1px solid #ffffff40;margin-top:30px;padding-top:25px;font-size:.9rem;color:#dce4df}.price-detail p+p{font-size:.875rem;margin-top:20px}.price-detail strong{font-weight:500}.contact{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:center}.contact-heading>p:last-child{margin-top:28px;color:var(--muted);font-size:1rem}.contact-details{padding-top:30px}.contact-phone{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.5rem);letter-spacing:-.04em;display:flex;align-items:center;justify-content:space-between;gap:20px}.contact-phone span{font-family:var(--sans);font-size:1.5rem}.contact-caption{display:block;color:var(--muted);font-size:.875rem;margin-top:5px}.contact-email{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:28px;padding-top:23px;font-size:1.15rem}.contact-details>p{font-size:.875rem;color:var(--muted);margin-top:22px;max-width:400px}.location{display:grid;grid-template-columns:.8fr 1.2fr;background:var(--blue);margin-bottom:70px}.location-address{padding:50px}.location-address .eyebrow{margin-bottom:20px}.location-address h2{font-size:2.3rem}.location address{font-style:normal;font-size:.95rem;color:var(--muted);margin:25px 0}.location .text-link{font-size:.875rem;gap:13px}.map{min-height:390px;background:#d8e2e4;display:flex;align-items:center;justify-content:center}.map-consent{padding:35px;max-width:450px;text-align:center}.map-pin{font:400 3.5rem/1 var(--serif);color:#5c7276;display:block;margin-bottom:14px}.map-consent h3{font-family:var(--serif);font-size:1.55rem}.map-consent p{font-size:.875rem;line-height:1.7;margin:12px 0 22px;color:#425b60}.map-consent .button{min-height:48px;font-size:.875rem}.map-privacy{display:block;font-size:.75rem;text-decoration:underline;margin-top:14px}.map iframe{width:100%;height:100%;min-height:430px;border:0}.map-controls{grid-column:1/-1;padding:14px 24px;display:flex;gap:25px;align-items:center;font-size:.875rem}.map-controls button{border:0;border-bottom:1px solid;background:none;color:var(--ink);font-size:.875rem}.site-footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:35px 45px}.site-footer .brand-name{font-size:1.7rem}.site-footer .brand-subtitle{font-size:.75rem}.site-footer>p{font-size:.75rem;color:var(--muted)}.site-footer nav{display:flex;gap:25px;font-size:.875rem}.legal{max-width:800px;padding-block:75px 100px}.legal h1{font-size:clamp(2.5rem,5vw,4rem);margin-bottom:35px}.legal h2{font-family:var(--sans);font-size:1.3rem;line-height:1.4;letter-spacing:0;margin:35px 0 12px}.legal h3{font-size:1.1rem;margin-top:25px}.legal p,.legal li{font-size:1rem;color:var(--muted)}.legal a{text-decoration:underline;overflow-wrap:anywhere}.draft-note{border-left:3px solid #a79f57;padding:15px 20px;background:#f1f0e5;margin-bottom:30px}.back-link{margin-bottom:30px;display:inline-block;font-size:.9rem}
@media(min-width:1600px){.hero-content{width:calc(100% - 160px);max-width:1440px}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.site-header nav{gap:18px;font-size:.875rem}.brand-name{font-size:1.8rem}.brand-subtitle{font-size:.75rem}.about,.services-grid{gap:55px}.costs-grid{gap:65px}.practice-heading{gap:65px}.contact{gap:50px}.section{padding-block:90px}.location-address{padding:35px}.price{padding-left:45px}.site-footer>p{display:none}}
@media(max-width:880px){.site-header{flex-wrap:wrap;min-height:92px;padding:19px 28px;gap:18px}.site-header nav{width:100%;justify-content:space-between;flex-wrap:wrap}.js .site-header{position:relative}.js .menu-toggle{display:block!important}.js .site-header nav{display:none}.js .site-header nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:10px 0}.js .site-header nav a{padding:12px 0}.js .site-header nav .nav-contact{margin-top:6px;padding:12px}.hero{min-height:690px;height:auto}.hero-content{padding-block:85px 150px}.hero h1{font-size:4.1rem}.hero-bottom{font-size:.75rem}.hero-bottom>a{display:none}.about{gap:45px}.portrait figcaption{display:block}.portrait figcaption span{display:block;margin-top:3px}.services-grid{gap:45px}.location{grid-template-columns:1fr 1.1fr}.location-address{padding:30px}.location-address h2{font-size:1.9rem}.map-consent{padding:25px}.contact-phone{font-size:1.8rem}.contact-email{font-size:1rem}}
@media(max-width:760px){html{scroll-padding-top:22px}.wrap{width:calc(100% - 44px)}.section{padding-block:65px}.site-header{padding:19px 22px}.brand-name{font-size:1.7rem}.brand-subtitle{font-size:.75rem}.hero{min-height:650px}.hero-content{padding-block:68px 135px}.hero-image{object-position:58% center}.hero-shade{background:linear-gradient(90deg,rgba(13,30,27,.8),rgba(16,32,28,.51)),linear-gradient(0deg,rgba(13,30,27,.3),transparent)}.hero .eyebrow{font-size:.75rem;letter-spacing:.12em;max-width:290px}.hero h1{font-size:clamp(2.65rem,8.7vw,4rem);line-height:1.14;letter-spacing:-.045em}.hero-intro{font-size:1rem;max-width:360px;margin-top:25px}.desktop-break{display:none}.hero .button{font-size:.875rem;gap:22px;padding-inline:20px}.hero-note{font-size:.75rem;max-width:280px}.hero-bottom{bottom:23px;line-height:1.6;font-size:.75rem;padding-top:17px}.about{grid-template-columns:1fr;gap:45px}.portrait{max-width:470px;width:100%;margin-inline:auto}.portrait img{aspect-ratio:1.05;object-position:center 32%}.portrait figcaption{display:flex}.portrait figcaption span{margin-top:0}h2{font-size:2.5rem}.about-copy h2{max-width:520px}.about-copy p:not(.eyebrow){font-size:1rem}.eyebrow{font-size:.75rem;margin-bottom:20px}.services-grid{grid-template-columns:1fr;gap:40px}.section-heading>p:last-child{max-width:450px}.service-list article{padding:26px 0;gap:23px}.service-list h3{font-size:1.45rem}.practice-heading{grid-template-columns:1fr;gap:25px;margin-bottom:35px}.practice-photo img{aspect-ratio:1.14}.practice-photo figcaption{flex-direction:column;gap:5px;font-size:.75rem}.costs-grid{grid-template-columns:1fr;gap:50px}.price{padding:35px 0 0;border-left:0;border-top:1px solid #ffffff40}.price .price-amount{font-size:6rem}.price-detail{max-width:450px}.contact{grid-template-columns:1fr;gap:25px}.contact-details{padding-top:5px}.contact-phone{font-size:2.1rem;max-width:460px}.contact-email{max-width:460px;font-size:1.1rem}.location{grid-template-columns:1fr;margin-bottom:45px}.location-address{padding:35px 25px}.location-address h2{font-size:2rem}.map{min-height:360px}.map iframe{min-height:360px}.map-controls{flex-direction:column;align-items:flex-start;gap:8px}.site-footer{flex-wrap:wrap;padding-block:30px;gap:30px}.site-footer nav{width:100%;font-size:.875rem;gap:25px}.legal{padding-block:45px 65px}.legal h1{font-size:2.5rem}}
/* Allow German compound words and enlarged text to wrap inside flex/grid tracks. */
*{min-width:0}h1,h2,h3,p,a,button,figcaption,address{overflow-wrap:anywhere}h1,h2,h3{hyphens:manual}.brand,.button,.text-link{max-width:100%}.brand{flex-shrink:1}.portrait figcaption{flex-wrap:wrap}.button span,.text-link span{flex-shrink:0}.menu-toggle{display:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

@media(max-width:880px){.js .site-header>.brand{max-width:calc(100% - 122px)}.brand-subtitle{line-height:1.4;letter-spacing:.03em}}

.costs-grid>.price>.price-amount{font-size:6.8rem;color:#e4e8d1;line-height:1.1}.map-pin svg{width:34px;height:42px;display:block;margin-inline:auto}
@media(max-width:760px){.costs-grid>.price>.price-amount{font-size:6rem}}

/* Quiet motion: text reveals and tactile controls. Photographs stay still. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.hero{overflow:hidden;background:#243b34}
.image-window{overflow:hidden;background:#e5edef}

.button,.nav-contact{transition:transform .35s var(--motion-ease),background-color .3s ease,color .3s ease,box-shadow .35s ease}
.button span,.text-link span,.nav-contact span,.contact-phone span,.contact-email span{display:inline-block;transition:transform .35s var(--motion-ease)}
.text-link{position:relative}
.text-link::after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--motion-ease)}
.text-link:hover::after,.text-link:focus-visible::after{transform:scaleX(1);transform-origin:left}
.text-link:hover{text-decoration:none}
.site-header nav>a:not(.nav-contact){position:relative}
.site-header nav>a:not(.nav-contact)::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--motion-ease)}
.site-header nav>a:not(.nav-contact):is(:hover,:focus-visible)::after{transform:scaleX(1);transform-origin:left}
.site-header nav>a:hover{text-decoration:none}
.menu-toggle span{position:relative;display:inline-block;width:16px;height:12px;margin-left:10px}
.menu-toggle span::before,.menu-toggle span::after{content:'';position:absolute;left:0;top:5px;width:16px;height:1px;background:currentColor;transition:transform .3s var(--motion-ease)}
.menu-toggle span::before{transform:translateY(-3px)}
.menu-toggle span::after{transform:translateY(3px)}
.menu-toggle[aria-expanded="true"] span::before{transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] span::after{transform:rotate(-45deg)}
.button:active,.nav-contact:active{transform:translateY(1px);box-shadow:none}
.service-list article{transition:background-color .35s ease,padding-left .45s var(--motion-ease)}
.service-list article:hover{padding-left:8px;background:#ffffff55}
.service-list article h3{transition:color .35s ease}
.service-list article:hover h3{color:#53696e}
@media(hover:hover) and (pointer:fine){
  .image-window img{transition:transform .9s var(--motion-ease)}
  .image-window:hover img{transform:scale(1.025)}
  .button:hover,.nav-contact:hover{transform:translateY(-2px);box-shadow:0 7px 20px #142e2812}
  :is(.button,.text-link,.nav-contact,.contact-phone,.contact-email):hover>span{transform:translate(3px,-3px)}
}
@media(max-width:880px){.site-header nav>a:not(.nav-contact)::after{right:auto;width:32px;bottom:6px}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .image-window:hover img,.button:hover,.nav-contact:hover,.button:active,.nav-contact:active{transform:none}
  :is(.button,.text-link,.nav-contact,.contact-phone,.contact-email):hover>span{transform:none}
  .service-list article,.service-list article:hover{padding-left:0;background:transparent}
}



/* Responsive contact action and low-friction inquiry form. */
.hero-cta-mobile,.costs-contact-mobile{display:none}
.contact{align-items:start}
.contact-form-wrap{grid-column:1/-1;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(36px,8vw,110px);padding-top:58px;border-top:1px solid var(--line);scroll-margin-top:28px}
.contact-form-intro h3{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.2;letter-spacing:-.025em}
.contact-form-intro>p:last-child{color:var(--muted);margin-top:14px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.form-row{display:flex;flex-direction:column;gap:7px}
.form-row label{font-size:.86rem;font-weight:500}
.form-row input,.form-row textarea{width:100%;border:1px solid #b8c7c8;border-radius:0;background:#fff;color:var(--ink);font:inherit;font-size:1rem;padding:12px 14px}
.form-row input{min-height:50px}
.form-row textarea{min-height:132px;resize:vertical}
.form-row input:focus,.form-row textarea:focus{outline:3px solid #96732b;outline-offset:2px;border-color:transparent}
.form-message,.form-privacy,.contact-form .button,.form-status{grid-column:1/-1}
.form-hint,.form-privacy,.form-status{font-size:.82rem;color:var(--muted);line-height:1.55}
.form-privacy a{text-decoration:underline;text-underline-offset:3px}
.contact-form .button{justify-self:start;gap:24px}
.contact-form .button:disabled{opacity:.65;cursor:wait}
.form-status:empty{display:none}
.form-status{min-height:1.4em;margin-top:-10px}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:760px){
  .hero-cta-desktop{display:none!important}
  .hero-cta-mobile{display:inline-flex}
  .costs-contact-desktop{display:none}
  .costs-contact-mobile{display:inline-flex}
  .contact-form-wrap{grid-template-columns:1fr;gap:28px;padding-top:38px}
  .contact-form{grid-template-columns:1fr;gap:17px}
  .form-message,.form-privacy,.contact-form .button,.form-status{grid-column:1}
  .contact-form .button{width:100%}
}
@media(prefers-reduced-motion:reduce){.hero-cta-mobile,.hero-cta-desktop{transition:none!important}}
