@font-face{font-family:Poppins;src:url('/assets/fonts/poppins-300.woff2') format('woff2');font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/fonts/poppins-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Roboto;src:url('/assets/fonts/roboto.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:Cedarville;src:url('/assets/fonts/cedarville.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--red:#df1645;--red-dark:#ad1338;--ink:#282b30;--muted:#6c7078;--paper:#fffaf9;--line:#e8dfdf;--max:1200px;--header:86px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header)}
body{margin:0;color:var(--ink);background:#fff;font-family:Roboto,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.menu-open,body.lightbox-open{overflow:hidden}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
a:hover{color:var(--red)}
button{font:inherit}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--red);outline-offset:4px}
.skip-link{position:fixed;z-index:100;top:-100px;left:1rem;padding:.7rem 1rem;background:#fff;color:var(--ink)}
.skip-link:focus{top:1rem}
.site-header{height:var(--header);background:rgba(255,255,255,.96);border-bottom:1px solid rgba(32,35,40,.08);position:sticky;top:0;z-index:30;backdrop-filter:blur(15px)}
.header-inner{max-width:var(--max);height:100%;margin:auto;padding:0 28px;display:flex;align-items:center;gap:clamp(20px,3vw,52px)}
.brand{display:flex;align-items:center;flex:none}
.brand img{width:154px;height:auto;max-height:67px;object-fit:contain}
.main-nav{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2.25vw,36px);margin-left:auto}
.main-nav a{font-family:Poppins,sans-serif;font-size:.81rem;font-weight:600;letter-spacing:.015em;white-space:nowrap;position:relative;transition:color .2s ease}
.main-nav a::after{content:"";position:absolute;left:0;right:100%;height:2px;bottom:-9px;background:var(--red);transition:right .25s ease}
.main-nav a:hover::after,.main-nav a.active::after{right:0}
.main-nav a.active{color:var(--red)}
.header-call{flex:none;font-family:Poppins,sans-serif;font-size:.77rem;font-weight:600;border:1px solid #e9d4d8;border-radius:99px;padding:10px 14px;white-space:nowrap;transition:background .2s,color .2s}
.header-call span{color:var(--red);margin-left:6px}
.header-call:hover{background:var(--red);color:#fff}.header-call:hover span{color:#fff}
.menu-toggle{display:none}
.section-wrap{max-width:var(--max);margin:auto;padding-left:28px;padding-right:28px}
.eyebrow{font-family:Poppins,sans-serif;font-weight:600;font-size:.72rem;letter-spacing:.21em;text-transform:uppercase;color:var(--red);margin:0 0 14px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:Poppins,sans-serif;line-height:1.2}
h1{font-size:clamp(2.25rem,4vw,4.1rem);letter-spacing:-.055em}
h2{font-size:clamp(2rem,3.3vw,3.25rem);letter-spacing:-.045em}
h3{font-size:clamp(1.45rem,2vw,1.85rem);letter-spacing:-.035em}
.hero{min-height:calc(100svh - var(--header));position:relative;isolation:isolate;display:flex;align-items:center;overflow:hidden;background:#393d41}
.hero-photo,.services-background,.contact-background{position:absolute;inset:-12% 0;z-index:-2;background-position:center;background-repeat:no-repeat;background-size:cover;transform:translate3d(0,var(--parallax-shift,0px),0) scale(1.12);will-change:transform}
.hero-photo{background-image:url('/assets/images/amtsgericht.webp');background-position:46% center}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,24,30,.17),rgba(16,24,30,.02) 47%,rgba(16,24,30,.22));z-index:-1}
.hero-inner{width:100%;max-width:var(--max);margin:auto;padding:58px 28px 92px;display:flex;align-items:center;justify-content:flex-end}
.hero-card{width:min(100%,550px);padding:clamp(34px,4vw,57px);background:linear-gradient(132deg,rgba(153,26,59,.79),rgba(196,19,63,.73));color:#fff;box-shadow:0 26px 80px rgba(22,16,25,.23);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.23);border-radius:14px;animation:card-arrive .75s .15s ease both}
.hero-card h1{font-size:clamp(2.3rem,3.5vw,3.8rem);margin-bottom:25px}
.hero-card h1 span{display:block;font-size:clamp(1.08rem,1.4vw,1.35rem);font-weight:300;letter-spacing:-.015em;margin-top:10px;line-height:1.45}
.hero-card>p:not(.eyebrow){max-width:43ch;font-size:clamp(.98rem,1.12vw,1.1rem);line-height:1.63;margin-bottom:13px}
.hero-end{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:20px}
.signature{font-family:Cedarville,cursive;font-size:clamp(1.9rem,3vw,2.55rem);line-height:1.2;transform:rotate(-4deg);display:inline-block}
.round-link{width:48px;height:48px;border:1px solid rgba(255,255,255,.6);border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.4rem;transition:transform .2s,background .2s}
.round-link:hover{color:var(--red);background:#fff;transform:translateY(4px)}
.photo-credit{position:absolute;right:0;bottom:20px;z-index:2;background:rgba(255,255,255,.72);backdrop-filter:blur(8px);font-family:Poppins,sans-serif;color:#56585c;font-size:.62rem;letter-spacing:.05em;padding:7px 15px;text-transform:uppercase}
.section-divider{position:absolute;left:0;right:0;bottom:-1px;height:20px;z-index:1;pointer-events:none}
.section-divider::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,rgba(223,22,69,.55),var(--red) 50%,rgba(223,22,69,.55))}
.section-divider::after{content:"";position:absolute;left:50%;bottom:1px;width:30px;height:17px;transform:translateX(-50%);background:var(--red);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 -3px 5px rgba(76,0,20,.16))}
.services{position:relative;isolation:isolate;overflow:hidden;min-height:100svh;padding:90px 0 122px;background:#53615d;display:flex;align-items:center}
.services>.section-wrap{width:100%}
.services-background{background-image:url('/assets/images/fachwerk.webp');background-position:center}
.services::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,34,39,.59),rgba(39,40,45,.43));z-index:-1}
.section-heading{max-width:720px;margin-bottom:42px}
.section-heading p:last-child{font-size:1.06rem;max-width:54ch;color:var(--muted);margin-bottom:0}
.section-heading-light{color:#fff}.section-heading-light .eyebrow{color:#fff}.section-heading-light p:last-child{color:#f3eeef}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.service-card{padding:clamp(28px,3.8vw,54px);background:rgba(255,255,255,.79);border:1px solid rgba(255,255,255,.52);box-shadow:0 24px 60px rgba(17,24,27,.16);backdrop-filter:blur(19px);display:flex;flex-direction:column;transition:transform .35s ease,background .35s ease}
.service-card:hover{transform:translateY(-6px);background:rgba(255,255,255,.92)}
.service-icon{color:var(--red);width:44px;height:44px;margin-bottom:18px}.service-icon svg{width:100%;height:100%}
.service-card h3{max-width:430px;margin-bottom:20px;overflow-wrap:anywhere}
.service-card p{color:#4e5055;line-height:1.7;margin-bottom:13px}
.service-card p a{text-decoration:underline;text-decoration-color:#d66a83;text-underline-offset:3px}
.text-link{color:var(--red-dark);display:inline-flex;align-items:center;gap:7px;font-family:Poppins,sans-serif;font-weight:600;font-size:.86rem;margin-top:auto;padding-top:18px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px}
.text-link:hover{text-decoration-color:currentColor}.text-link span{font-size:1.1rem}
.centered{text-align:center;margin-left:auto;margin-right:auto}.centered p:last-child{margin-left:auto;margin-right:auto}
.contact{position:relative;isolation:isolate;overflow:hidden;color:#fff;padding:94px 0 130px;min-height:100svh;background:#4c4342;display:flex;align-items:center}
.contact-background{background-image:url('/assets/images/landestrost.webp');background-position:center 42%}
.contact::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,22,25,.81),rgba(17,22,25,.5) 58%,rgba(17,22,25,.2));z-index:-1}
.contact-layout{width:100%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(32px,6vw,100px)}
.contact-intro{max-width:480px}.contact-intro h2{font-size:clamp(2.4rem,4vw,4.2rem)}.contact-intro>p:last-child{font-size:1.08rem;max-width:36ch;color:#e8e3e4}
.contact-card{background:rgba(255,255,255,.79);color:var(--ink);padding:13px 32px;box-shadow:0 28px 70px rgba(4,12,16,.25);backdrop-filter:blur(19px);border:1px solid rgba(255,255,255,.5)}
.contact-item{padding:20px 0;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);line-height:1.45;transition:transform .2s}
.contact-item:last-child{border-bottom:0}.contact-item:hover{transform:translateX(4px)}
.contact-item>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.contact-item strong{display:block;color:var(--red);font-family:Poppins,sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:3px}
.contact-symbol{color:var(--red);width:42px;height:42px;flex:none;display:grid;place-items:center}.contact-symbol svg{width:35px;height:35px;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.contact-arrow{color:var(--red);font-size:1.3rem}
.office{position:relative;min-height:100svh;padding:105px 0 125px;background:linear-gradient(145deg,#fff,#fff8f9 58%,#fff);display:flex;align-items:center}.office>.section-wrap{width:100%}.office .section-heading{margin-bottom:42px}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.gallery-item{border:0;padding:0;background:#222;position:relative;overflow:hidden;cursor:zoom-in;aspect-ratio:4/4.4;color:#fff;text-align:left}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,opacity .5s ease}
.gallery-item:hover img{transform:scale(1.055);opacity:.72}
.gallery-item span{position:absolute;inset:auto 0 0;padding:30px 17px 17px;background:linear-gradient(transparent,rgba(0,0,0,.72));font-family:Poppins,sans-serif;font-size:.79rem;font-weight:600;display:flex;justify-content:space-between;gap:8px}
.gallery-item b{font-size:1.1rem;font-weight:300}
.site-footer{background:var(--paper);border-top:1px solid var(--line);padding:33px 0;color:#77787e}
.footer-inner{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:.85rem}
.footer-logo img{width:116px;height:auto}.footer-inner>span{margin-right:auto}
.footer-inner nav{display:flex;gap:24px;font-family:Poppins,sans-serif;font-weight:600;font-size:.76rem}.footer-inner small{width:100%;text-align:right;color:#98969a}
.consent-settings{border:0;padding:0;background:none;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;cursor:pointer}.consent-settings:hover{color:var(--red)}
.map-section{position:relative;isolation:isolate;min-height:100svh;background:#e5e2df;overflow:hidden}
.map-canvas,.map-placeholder,.map-canvas iframe{position:absolute;inset:0;width:100%;height:100%}
.map-placeholder{display:grid;place-items:center;padding:32px;background:linear-gradient(130deg,rgba(248,244,241,.76),rgba(245,231,235,.72)),repeating-linear-gradient(30deg,transparent 0 65px,#d7d4d1 65px 68px,transparent 68px 135px),repeating-linear-gradient(120deg,#ece8e5 0 58px,#d4d0cd 58px 61px,#ece8e5 61px 126px)}
.map-placeholder-inner{text-align:center;width:min(100%,430px);padding:36px 32px;background:rgba(255,255,255,.81);box-shadow:0 20px 60px rgba(31,29,30,.09);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7)}
.map-pin{display:block;width:42px;height:42px;margin:0 auto 14px;stroke:var(--red);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.map-placeholder p{font-family:Poppins,sans-serif;font-weight:600;line-height:1.45;margin:0 0 21px}
.map-load,.consent-actions button{border:1px solid var(--red);background:var(--red);color:#fff;border-radius:2px;padding:11px 18px;font-family:Poppins,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s}
.map-load:hover,.consent-actions button:hover{background:var(--red-dark);border-color:var(--red-dark)}
.map-canvas iframe{border:0;display:block}
.map-info{position:absolute;z-index:2;left:max(28px,calc((100vw - var(--max))/2 + 28px));bottom:75px;width:min(370px,calc(100% - 56px));padding:28px 31px;background:rgba(255,255,255,.89);backdrop-filter:blur(17px);box-shadow:0 20px 55px rgba(23,25,27,.17);border:1px solid rgba(255,255,255,.8)}
.map-info h2{font-size:clamp(1.45rem,2vw,1.95rem);margin-bottom:13px}.map-info p{line-height:1.5;margin:0 0 13px}.map-info a{font-family:Poppins,sans-serif;font-weight:600;font-size:.8rem;color:var(--red-dark);text-decoration:underline;text-underline-offset:4px}.map-info a:hover{color:var(--red)}
[hidden]{display:none!important}
.consent-banner{position:fixed;z-index:60;left:50%;bottom:18px;transform:translateX(-50%);width:min(1000px,calc(100% - 30px));padding:22px 24px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);box-shadow:0 16px 60px rgba(16,18,22,.22);border:1px solid #f0e3e5;display:flex;align-items:center;gap:25px}
.consent-copy{flex:1}.consent-copy h2{font-size:1.08rem;letter-spacing:-.02em;margin:0 0 4px}.consent-copy p{font-size:.83rem;line-height:1.5;margin:0;color:#56565d}.consent-copy a{color:var(--red-dark);text-decoration:underline;text-underline-offset:2px}
.consent-actions{display:flex;align-items:center;gap:9px;flex:none}.consent-actions button{white-space:nowrap}.consent-actions #consent-deny{background:#fff;color:var(--ink);border-color:#d6cdd0}.consent-actions #consent-deny:hover{background:#f8eff1}
.lightbox{padding:0;border:0;max-width:min(1100px,94vw);max-height:94vh;background:transparent;color:#fff;overflow:visible}
.lightbox::backdrop{background:rgba(20,23,28,.62);backdrop-filter:blur(18px)}
.lightbox img{display:block;max-width:100%;max-height:78vh;object-fit:contain;margin:auto;box-shadow:0 28px 70px rgba(0,0,0,.4)}
.lightbox p{margin:12px 0 0;text-align:center;font-family:Poppins,sans-serif;font-size:.85rem}
.lightbox-close,.lightbox-controls button{border:1px solid rgba(255,255,255,.5);background:rgba(22,22,24,.65);color:#fff;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;transition:background .2s}
.lightbox-close:hover,.lightbox-controls button:hover{background:var(--red)}
.lightbox-close{position:absolute;top:-54px;right:0;font-size:1.7rem;line-height:1}
.lightbox-controls{display:flex;justify-content:center;gap:12px;margin:12px auto 0}.lightbox-controls button{font-size:1.3rem}
.legal-main{min-height:65vh;padding:80px 0 100px;background:#fff}.legal-main .section-wrap{max-width:850px}.legal-main h1{font-size:clamp(2.35rem,4vw,3.4rem);margin-bottom:20px}.legal-main h2{font-size:1.38rem;letter-spacing:-.02em;margin:43px 0 12px}.legal-main h3{font-size:1.12rem;margin:28px 0 8px}.legal-main p,.legal-main li{line-height:1.75}.legal-main a{color:var(--red-dark);text-decoration:underline;text-underline-offset:3px}.legal-main .eyebrow{margin-bottom:9px}.legal-main address{font-style:normal}.legal-main ul{padding-left:1.3rem}.legal-back{display:inline-block;margin-bottom:35px;font-family:Poppins,sans-serif;font-size:.84rem;font-weight:600}.legal-callout{background:var(--paper);padding:24px;border-left:3px solid var(--red);margin:30px 0}
@keyframes card-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.header-call{display:none}.main-nav{gap:22px}}
@media(max-width:800px){:root{--header:72px}.header-inner{padding:0 20px}.brand img{width:137px}.menu-toggle{display:flex;margin-left:auto;border:0;background:transparent;padding:11px;flex-direction:column;gap:5px;cursor:pointer}.menu-toggle span{display:block;width:23px;height:2px;background:var(--ink);transition:transform .25s,opacity .25s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}.main-nav{display:none;position:absolute;top:var(--header);left:0;right:0;background:#fff;padding:28px 26px 34px;box-shadow:0 18px 30px rgba(0,0,0,.12);margin:0;flex-direction:column;align-items:stretch;gap:0}.main-nav.open{display:flex}.main-nav a{font-size:1rem;padding:13px 0;border-bottom:1px solid var(--line)}.main-nav a::after{display:none}.hero-inner{padding:45px 24px 85px}.hero-card{margin-left:auto}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-intro{max-width:600px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-item{aspect-ratio:5/4}.consent-banner{align-items:stretch;flex-direction:column;gap:14px}.consent-actions{justify-content:flex-end}}
@media(max-width:640px){body{font-size:15.5px}.section-wrap{padding-left:22px;padding-right:22px}.hero{display:block}.hero-photo{background-position:38% 50%}.hero::before{background:linear-gradient(180deg,rgba(0,0,0,.07),rgba(0,0,0,.25))}.hero-inner{min-height:calc(100svh - var(--header));display:flex;align-items:center;padding:70px 18px 85px}.hero-card{padding:29px 25px;margin:0;backdrop-filter:blur(16px)}.hero-card h1{font-size:clamp(2rem,8vw,2.7rem)}.hero-card h1 span{font-size:1.07rem}.hero-card>p:not(.eyebrow){font-size:.97rem}.photo-credit{font-size:.56rem;bottom:52px}.section-divider{height:52px}.services{padding:72px 0 95px}.services-background{background-position:54% center}.section-heading{margin-bottom:30px}.section-heading h2{font-size:clamp(1.9rem,8vw,2.55rem)}.service-grid{grid-template-columns:1fr;gap:17px}.service-card{padding:28px 25px}.service-card h3{font-size:1.43rem}.contact{padding:78px 0 96px}.contact-intro h2{font-size:clamp(2.2rem,9vw,3rem)}.contact-card{padding:10px 22px}.contact-item{gap:12px;padding:17px 0;font-size:.92rem}.contact-symbol{width:36px;height:36px}.contact-symbol svg{width:30px;height:30px}.office{padding:80px 0 100px}.gallery{gap:10px}.gallery-item{aspect-ratio:1/1.1}.gallery-item span{font-size:.67rem;padding:25px 9px 9px}.map-info{top:35px;bottom:auto;left:20px;width:calc(100% - 40px);padding:20px 23px}.map-placeholder{padding:205px 20px 22px}.map-placeholder-inner{padding:25px 22px}.footer-inner{gap:13px}.footer-inner>span{width:calc(100% - 140px);margin:0}.footer-inner nav{width:100%;margin-top:12px;flex-wrap:wrap;gap:12px 22px}.footer-inner small{text-align:left}.legal-main{padding:60px 0 80px}.consent-banner{bottom:0;width:100%;padding:17px 19px;max-height:60svh;overflow-y:auto}.consent-actions{justify-content:stretch}.consent-actions button{flex:1;white-space:normal;min-height:45px;padding:8px 10px;font-size:.74rem}}
@media(max-width:370px){.hero-inner{padding-left:12px;padding-right:12px}.hero-card{padding:26px 19px}.contact-item{font-size:.84rem}.contact-arrow{display:none}}
@media(max-width:640px){.photo-credit{bottom:20px}.section-divider{height:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.hero-photo,.services-background,.contact-background{transform:none!important;will-change:auto}}
