@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--paper:#faf9f6;--white:#fff;--ink:#292825;--muted:#6a6862;--red:#be1522;--line:#dcd9d2;--soft:#efede7;--max:1280px;--gutter:56px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:108px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
::selection{background:#be1522;color:#fff}
a{color:inherit;text-decoration:none}
button{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:6px}
img,svg{display:block}
svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
p,h1,h2,h3,figure{margin:0}
.wrap{width:calc(100% - var(--gutter)*2);max-width:var(--max);margin-inline:auto}
.skip-link{position:fixed;z-index:100;top:12px;left:12px;background:#fff;padding:12px 20px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;z-index:20;top:0;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{flex-shrink:0;display:block}
.brand img{width:206px;height:auto}
#hauptnavigation{display:flex;align-items:center;gap:38px}
.nav-link{font-size:14px;font-weight:600;position:relative;padding:13px 0}
.nav-link:after{content:'';position:absolute;bottom:6px;left:0;width:100%;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.nav-link:hover:after,.nav-link[aria-current='location']:after{transform:scaleX(1)}
.nav-contact{font-size:13px;font-weight:650;display:flex;align-items:center;gap:24px;padding:12px 18px;border:1px solid var(--ink);transition:background .2s,color .2s,border-color .2s}
.nav-contact svg{width:19px;height:19px}
.nav-contact:hover{color:white;background:var(--red);border-color:var(--red)}
.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;padding-top:48px;padding-bottom:54px;align-items:center}
.eyebrow{font-size:10px;line-height:1.6;font-weight:700;letter-spacing:1.9px;text-transform:uppercase}
.hero .eyebrow{display:flex;align-items:center;gap:10px;letter-spacing:1.25px;font-size:10px;white-space:nowrap}
.accent-line{height:1px;width:22px;background:var(--red);flex-shrink:0}
h1{font-size:clamp(58px,5.55vw,80px);line-height:1.09;letter-spacing:-4px;font-weight:500;margin:27px 0 23px}
h1>span{color:var(--red)}
.hero-description{font-size:16px;color:var(--muted);line-height:1.8}
.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:19px;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:15px 21px;font-size:13px;font-weight:650;min-height:50px;transition:background .2s,transform .2s}
.button svg{width:19px;height:19px;transition:transform .2s}
.button-red{color:white;background:var(--red)}
.button-red:hover{background:#9d0d18}
.button:hover svg{transform:translateX(3px)}
.text-link{display:inline-flex;gap:14px;align-items:center;font-size:12px;font-weight:600;padding-block:3px}
.text-link:hover{color:var(--red)}
.text-link span{font-size:17px}
.hero-visual{align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0}
.hero-image-frame{height:535px;overflow:hidden;background:#e3dfd5}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:56% center}
figcaption{display:flex;justify-content:space-between;align-items:center;padding-top:15px;font-size:10px;font-weight:600;letter-spacing:.3px;color:var(--muted)}
.caption-mark{font-size:27px;font-weight:500;line-height:1;color:var(--red);letter-spacing:-1.8px}
.section-pad{padding:76px 0}
.services{background:var(--white)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:44px}
.section-heading .eyebrow,.craft .eyebrow{color:var(--muted);margin-bottom:17px}
h2{font-size:44px;line-height:1.17;letter-spacing:-1.9px;font-weight:500}
.section-intro{font-size:14px;line-height:1.85;color:var(--muted);padding-bottom:4px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:46px;row-gap:0}
.service{display:flex;gap:21px;border-top:1px solid var(--line);padding:27px 0 30px;min-width:0}
.service-icon{width:39px;height:39px;flex:0 0 39px;color:var(--red);margin-top:2px;stroke-width:1.4}
.service h3{font-size:18px;font-weight:650;line-height:1.5;letter-spacing:-.35px;margin-bottom:8px}
.service p{color:var(--muted);font-size:14px;line-height:1.9}
.craft{background:var(--soft);padding-block:57px}
.craft-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:84px;align-items:center}
.craft h2{font-size:39px}
.craft-content>p{font-size:15px;line-height:1.85;max-width:570px}
.process{list-style:none;display:flex;gap:37px;margin:30px 0 0;padding:0}
.process li{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px}
.process span{font-size:10px;font-weight:700;color:var(--red)}
.contact{background:#282824;color:#fff;padding-top:68px;padding-bottom:64px}
.contact-heading .eyebrow{color:#bcb9b2;margin-bottom:20px}
.contact h2{font-size:clamp(40px,4.2vw,58px);letter-spacing:-2px;line-height:1.2}
.contact h2 span{color:#e35b64}
.contact-heading>p:last-child{font-size:14px;color:#c4c1bb;margin-top:18px}
.mobile-break{display:none}
.contact-grid{display:grid;grid-template-columns:1fr 1.14fr .64fr;gap:42px;margin-top:45px}
.contact-item{border-top:1px solid #52514b;padding-top:20px;min-width:0}
.contact-label{color:#bcb9b2;font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:1.4px;margin-bottom:14px}
.phone-link{font-size:31px;letter-spacing:-1px;font-weight:500;display:inline-flex;align-items:center;gap:24px;line-height:1.4}
.phone-link svg{width:23px;height:23px;color:#e35b64}
.contact-item>p:last-child{font-size:11px;color:#bcb9b2;margin-top:11px}
.email-link{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:550;line-height:1.8;min-height:38px;overflow-wrap:anywhere}
.email-link svg{width:20px;height:20px;flex:0 0 20px;color:#e35b64}
.subtle-link{font-size:11px;display:inline-flex;align-items:center;gap:10px;color:#d4d1ca;margin-top:10px;min-height:25px}
.contact a{transition:color .2s}
.contact a:hover{color:#f58d94}
.contact a:focus-visible,.site-footer a:focus-visible{outline-color:#f58d94}
.contact address{font-style:normal;font-size:15px;line-height:1.7}
.contact-address .subtle-link{margin-top:8px}
.site-footer{background:#282824;color:#aaa79f;font-size:10px}
.footer-inner{border-top:1px solid #45453f;display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:84px;padding-block:20px}
.footer-links{display:flex;gap:25px;align-items:center}
.footer-links a{padding-block:8px}
.footer-links a:hover{color:#fff}
.footer-links .back-top{margin-left:24px;display:flex;gap:10px}
@media(min-width:1600px){.hero{gap:80px}.hero-image-frame{height:566px}}
@media(max-width:1150px){:root{--gutter:40px}.hero{gap:35px}.hero .eyebrow{font-size:9px;letter-spacing:.7px}h1{font-size:66px}.hero-image-frame{height:520px}.service-grid{column-gap:30px}.service{gap:14px}.service-icon{width:32px;height:32px;flex-basis:32px}.service h3{font-size:16px}.craft-inner{gap:50px}.contact-grid{gap:26px;grid-template-columns:.9fr 1.15fr .65fr}.email-link{font-size:12px}}
@media(max-width:900px){:root{--gutter:32px}.header-inner{min-height:90px}.brand img{width:183px}#hauptnavigation{gap:22px}.nav-link{font-size:12px}.nav-contact{font-size:12px;gap:15px;padding:11px 14px}.hero{padding-top:35px;padding-bottom:40px;gap:28px}h1{font-size:60px;letter-spacing:-3px}.hero-description{font-size:14px}.desktop-break{display:none}.hero-image-frame{height:510px}.hero .eyebrow{white-space:normal}.hero-actions{margin-top:25px}.button{font-size:12px;gap:15px;padding-inline:17px}figcaption{font-size:9px;gap:14px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}.service{gap:18px}.service h3{font-size:18px}.service p{font-size:14px}.section-pad{padding-block:58px}.section-heading{gap:30px}h2{font-size:38px}.section-intro{font-size:12px}.craft-inner{grid-template-columns:.85fr 1.15fr;gap:35px}.craft h2{font-size:33px}.craft-content>p{font-size:13px}.process{gap:18px;margin-top:25px}.process li{font-size:11px;gap:7px}.contact-grid{grid-template-columns:1fr 1fr;gap:32px}.contact-address{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center}.contact-address .contact-label{grid-column:1;grid-row:1}.contact-address address{grid-column:1;grid-row:2}.contact-address .subtle-link{grid-column:2;grid-row:1/3;justify-self:start}.email-link{font-size:14px}.footer-inner{align-items:flex-start;gap:15px}.footer-links{gap:17px}.footer-links .back-top{margin-left:0}}
@media(max-width:640px){:root{--gutter:23px}html{scroll-padding-top:99px}.header-inner{min-height:83px;gap:20px}.brand img{width:173px}.menu-toggle{display:flex;width:46px;height:46px;align-items:center;justify-content:center;flex-direction:column;gap:6px;border:1px solid var(--line);background:transparent;cursor:pointer}.menu-toggle span{display:block;width:20px;height:1px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded='true'] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded='true'] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}#hauptnavigation{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:15px var(--gutter) 24px;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #2928250d;align-items:stretch;gap:3px}#hauptnavigation[data-open='true']{display:flex;flex-direction:column}.nav-link{font-size:15px;padding:12px 0;min-height:44px}.nav-link:after{display:none}.nav-contact{margin-top:8px;justify-content:space-between;font-size:13px;padding:13px 15px}.hero{grid-template-columns:1fr;gap:32px;padding-top:35px;padding-bottom:32px}.hero .eyebrow{font-size:8px;letter-spacing:.9px;gap:9px}.accent-line{width:18px}h1{font-size:58px;line-height:1.06;letter-spacing:-3.2px;margin:23px 0 20px}.hero-description{font-size:14px;line-height:1.75;max-width:330px}.hero-actions{margin-top:26px;gap:17px;flex-direction:row;align-items:center;flex-wrap:wrap;column-gap:22px}.button{font-size:11px;padding:14px 15px;gap:16px;min-height:47px}.text-link{font-size:10px;gap:9px;padding-block:10px}.text-link span{font-size:16px}.hero-image-frame{height:260px}.hero-image{object-position:center 58%}figcaption{padding-top:12px;font-size:9px}.caption-mark{font-size:24px}.section-pad{padding-block:46px}.section-heading{display:block;margin-bottom:29px}.section-heading .eyebrow{margin-bottom:12px}h2{font-size:36px;line-height:1.2;letter-spacing:-1.5px}.section-intro{margin-top:19px;font-size:12px}.service-grid{grid-template-columns:1fr;gap:0}.service{gap:23px;padding:22px 0;align-items:flex-start}.service-icon{width:36px;height:36px;flex-basis:36px;margin-top:4px}.service h3{font-size:17px;margin-bottom:6px}.service p{font-size:14px;line-height:1.8}.service:last-child{padding-bottom:0}.craft{padding-block:44px}.craft-inner{grid-template-columns:1fr;gap:23px}.craft .eyebrow{margin-bottom:12px}.craft h2{font-size:35px}.craft-content>p{font-size:14px;line-height:1.9}.process{gap:0;justify-content:space-between;padding-top:19px;margin-top:24px;border-top:1px solid #d2cfc7}.process li{font-size:12px;gap:8px}.process span{font-size:9px}.contact{padding-top:44px;padding-bottom:40px}.contact-heading .eyebrow{font-size:9px;margin-bottom:18px}.contact h2{font-size:36px;letter-spacing:-1.6px}.contact-heading>p:last-child{font-size:12px;line-height:1.85;margin-top:16px}.mobile-break{display:block}.contact-grid{grid-template-columns:1fr;gap:26px;margin-top:30px}.contact-item{padding-top:19px}.contact-label{font-size:9px;margin-bottom:11px}.phone-link{font-size:32px}.contact-item>p:last-child{font-size:11px;margin-top:8px}.email-link{font-size:14px;justify-content:flex-start;gap:20px;min-height:30px}.subtle-link{font-size:11px;min-height:32px}.contact-address{display:block}.contact-address address{font-size:15px}.contact-address .subtle-link{margin-top:7px}.footer-inner{display:block;min-height:0;padding-block:20px}.footer-inner>p{font-size:9px}.footer-links{gap:22px;margin-top:12px;font-size:10px;justify-content:flex-start}.footer-links .back-top{margin-left:auto}}
@media(max-width:360px){:root{--gutter:19px}h1{font-size:52px}.hero-actions{column-gap:15px}.contact h2{font-size:32px}.email-link{font-size:12px;gap:10px}.process li{font-size:11px}.footer-links{gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
@media print{.site-header{position:static}.menu-toggle,.hero-actions,.footer-links,.subtle-link{display:none!important}.hero-image-frame{height:280px}.contact,.site-footer{background:#fff;color:#292825}.contact p,.contact-label{color:#555!important}.section-pad{padding:25px 0}.craft{padding:25px 0}a{color:inherit}.contact-grid{grid-template-columns:repeat(3,1fr)}.contact-address{display:block;grid-column:auto}.service{break-inside:avoid}}

/* Selfhosting: eigenständige Rechtstextseiten und progressive Navigation. */
.caption-line{display:block;width:38px;height:2px;background:var(--red)}
.legal-page{min-height:100vh;display:flex;flex-direction:column}
.legal-back{font-size:13px;font-weight:600;min-height:44px;display:flex;align-items:center;gap:16px}
.legal-back:hover{color:var(--red)}
.legal-main{max-width:920px;padding-top:70px;padding-bottom:90px;flex:1}
.legal-main>.eyebrow{color:var(--muted)}
.legal-main h1{font-size:clamp(35px,4.5vw,58px);letter-spacing:-2px;margin:18px 0 44px;overflow-wrap:anywhere;line-height:1.15}
.legal-document{font-size:16px;line-height:1.9;overflow-wrap:anywhere}
.legal-document p,.legal-document .janolaw-text{margin:0 0 18px}
.legal-document .janolaw-paragraph{display:block;margin:30px 0 13px;font-weight:700;font-size:18px}
.legal-document .janolaw-footer{margin-top:40px;padding-top:22px;border-top:1px solid var(--line)}
.legal-document a{text-decoration:underline;text-underline-offset:3px}
.legal-document a:hover{color:var(--red)}
.legal-document h2{font-size:24px;letter-spacing:-.6px;margin:30px 0 14px}
.legal-document h3{font-size:20px;margin:24px 0 10px}
.legal-document ul,.legal-document ol{padding-left:24px;margin:14px 0}
.legal-document table{border-collapse:collapse;width:100%;font-size:14px}
.legal-document th,.legal-document td{border:1px solid var(--line);padding:10px;text-align:left}
.legal-unavailable{padding:32px;border:1px solid var(--line);background:white}
.legal-unavailable h2{font-size:25px;letter-spacing:-.5px;line-height:1.4;margin-bottom:12px}
.legal-unavailable p{color:var(--muted);margin-bottom:24px}
@media(max-width:640px){
  .menu-toggle{display:none}
  .js .menu-toggle{display:flex}
  html:not(.js) .site-header{position:static}
  html:not(.js) .header-inner{flex-wrap:wrap;padding-block:16px}
  html:not(.js) #hauptnavigation{display:flex;position:static;padding:0;border:0;box-shadow:none;flex-basis:100%;flex-direction:column}
  .legal-page .header-inner{gap:18px;flex-wrap:nowrap;padding-block:0}
  .legal-page .brand img{width:157px}
  .legal-back{font-size:11px;gap:8px;flex-shrink:0}
  .legal-main{padding-top:38px;padding-bottom:52px}
  .legal-main h1{letter-spacing:-1.4px;margin-bottom:28px}
  .legal-document{font-size:15px}
  .legal-unavailable{padding:24px}
  .legal-unavailable h2{font-size:23px}
  .text-link,.subtle-link{min-height:44px}
}
