@font-face{font-family:Roboto;src:url('assets/fonts/roboto-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Roboto;src:url('assets/fonts/roboto-bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}

:root{font-family:Roboto,Arial,sans-serif;color:#1151a0;background:#fff;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
a:focus-visible{outline:3px solid currentColor;outline-offset:5px}

.landing{position:relative;isolation:isolate;overflow:hidden}
.brand{position:absolute;inset:0;z-index:-2}
.brand img{display:block;height:100%;width:auto;max-width:none}
.white-panel{position:absolute;top:-10%;right:0;width:40%;height:120%;z-index:-1;background:#fff;border-radius:18% 0 0 18% / 50% 0 0 50%;pointer-events:none}
.content{position:relative;display:flex;flex-direction:column;width:24%;height:100%;margin-left:74%;padding:120px 24px 32px 0}
h1{font-size:48px;font-weight:700;line-height:1.25;margin:0}
.line{display:block}
.intro{font-size:28px;line-height:1.35;margin:40px 0 0}
address{font-size:22px;font-weight:700;line-height:1.25;font-style:normal;margin-top:100px}
address p{margin:0 0 18px}
address a{overflow-wrap:anywhere}
footer{font-size:24px;font-weight:700;margin-top:auto;padding-top:24px}

/* Desktop: exakt eine Fensterhöhe */
@media(min-width:810px){
 html,body{height:100%;overflow:hidden}
 .landing{height:100vh;height:100dvh}
 .content>*{flex-shrink:0}
}

/* Kleinere Desktopbreiten */
@media(min-width:810px) and (max-width:1500px){
 .content{width:28%;margin-left:71%;padding-top:90px;padding-right:20px}
 h1{font-size:38px}
 .intro{font-size:22px;margin-top:32px}
 address{font-size:18px;margin-top:75px}
 footer{font-size:20px}
}

@media(min-width:810px) and (max-width:1100px){
 .content{padding-top:70px;padding-right:16px}
 h1{font-size:28px}
 .intro{font-size:17px;margin-top:26px}
 address{font-size:15px;margin-top:55px}
 footer{font-size:17px}
}

/* Niedrigere Desktopfenster */
@media(min-width:810px) and (max-height:850px){
 .content{padding-top:65px;padding-bottom:24px}
 h1{font-size:32px}
 .intro{font-size:19px;margin-top:26px}
 address{font-size:17px;margin-top:55px}
 address p{margin-bottom:14px}
 footer{font-size:18px;padding-top:20px}
}

@media(min-width:810px) and (max-height:650px){
 .content{padding-top:32px;padding-bottom:20px}
 h1{font-size:27px}
 .intro{font-size:17px;margin-top:20px}
 address{font-size:15px;margin-top:30px}
 address p{margin-bottom:12px}
 footer{font-size:16px;padding-top:16px}
}

@media(min-width:810px) and (max-height:480px){
 .content{padding-top:16px;padding-bottom:12px}
 h1{font-size:22px}
 .intro{font-size:15px;margin-top:12px}
 address{font-size:14px;margin-top:18px}
 address p{margin-bottom:8px}
 footer{font-size:14px;padding-top:10px}
}

/* Mobil */
@media(max-width:809px){
 .landing{min-height:100svh}
 .brand{position:relative;inset:auto;width:100%;z-index:0}
 .brand img{width:100%;height:auto;aspect-ratio:414/421}
 .white-panel{top:calc(100vw * 355 / 414);left:0;right:auto;width:100%;height:calc(100vw * 541 / 414);background:url('assets/mobil-weiss.svg') top center / 100% auto no-repeat;border-radius:0;z-index:1}
 .content{display:block;z-index:2;width:100%;height:auto;margin:-15px 0 0;padding:0 20px 18px;text-align:center}
 h1{font-size:32px;line-height:1.3;margin:0 auto;max-width:540px}
 .desktop-line{display:inline}
 .intro{font-size:24px;line-height:1.35;margin:30px 0 0}
 address{font-size:20px;line-height:1.25;margin-top:55px}
 address p{margin:0 0 20px}
 address a{display:inline-block;max-width:100%}
 footer{font-size:24px;margin-top:55px;padding-top:0}
}

@media(max-width:374px){
 h1{font-size:28px}
 .intro{font-size:20px}
 address{font-size:18px;margin-top:40px}
 footer{font-size:21px;margin-top:40px}
}

@media(prefers-reduced-motion:no-preference){
 a{transition:opacity .15s ease}
 a:hover{opacity:.8}
}

/* Eigenständige, scrollbar bleibende Impressumsseite */
html:has(.legal-page){height:auto;overflow:auto}
body.legal-page{height:auto;overflow:visible;border-top:8px solid #1151a0}
.legal-header{max-width:1120px;margin:0 auto;padding:36px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #dce5f0}
.legal-header img{display:block;width:260px;max-width:100%;height:auto}
.back-link{font-weight:700;white-space:nowrap}
.legal-content{max-width:960px;margin:0 auto;padding:48px 32px 32px;font-size:16px;line-height:1.65;overflow-wrap:anywhere}
.legal-content h1{font-size:44px;line-height:1.2;margin:0 0 40px}
.legal-content h2{font-size:24px;line-height:1.3;margin:36px 0 20px}
.legal-content h3{font-size:18px;line-height:1.4;margin:28px 0 12px}
.legal-content p{margin:0 0 20px}
.legal-content a{text-decoration:underline;text-underline-offset:3px}
.legal-content .legal-footer{font-size:16px;margin:48px 0 0;padding-top:24px;border-top:1px solid #dce5f0}

@media(max-width:600px){
 .legal-header{padding:24px 20px;align-items:flex-start;flex-direction:column;gap:20px}
 .legal-header img{width:220px}
 .legal-content{padding:32px 20px}
 .legal-content h1{font-size:29px}
}
