:root{color-scheme:light;--ink:#1e2b3a;--body:#344b69;--muted:#586c86;--group-blue:#1255a2;--hase-blue:#1055a0;--korsu-blue:#203d94;--esmeyer-blue:#002848;--line:#dce5ef;--page:#f0f5fb;--surface:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 0% 65%,#dde9f9 0,transparent 48%),var(--page);font-family:Arial,Helvetica,sans-serif;color:var(--body);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #1670cb;outline-offset:5px}.skip-link{position:fixed;z-index:20;left:15px;top:-80px;padding:13px 20px;background:white;border-radius:6px;box-shadow:0 3px 12px #00284825}.skip-link:focus{top:15px}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.icon{width:1.83cqw;height:1.83cqw;flex:0 0 1.83cqw;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* Die beiden sich kreuzenden Flächen werden als skalierbare Kurven gezeichnet. */
.hero{position:relative;isolation:isolate;height:32.03cqw;overflow:hidden;background:#e9e6df;z-index:3;clip-path:url(#hero-bottom-clip)}.hero-photo{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 66%}.hero-veil{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,#ffffffde 0%,#ffffffa0 24%,#ffffff40 42%,#ffffff00 65%)}.hero-curves{position:absolute;z-index:-1;inset:0;width:100%;height:100%}.hero-content{position:relative;width:86.6%;margin:0 auto;padding-top:.9cqw;z-index:1}.wordmark{margin:0 0 0 -.47cqw;font-size:11.72cqw;line-height:.88;font-weight:750;letter-spacing:-.65cqw;color:var(--ink)}.wordmark span{display:inline-block;width:.175em;height:.175em;border-radius:50%;background:var(--group-blue);font-size:inherit;line-height:0;overflow:hidden;color:transparent;margin-left:.04em}.group-names{margin:0 0 1.17cqw;font-size:1.31cqw;line-height:1.7cqw;letter-spacing:.32cqw;text-transform:uppercase;color:#4c5f79}.group-names span{margin:0 .55cqw}.small-rule{display:block;width:2.75cqw;height:.2cqw;background:var(--group-blue);margin-bottom:1.43cqw}h1{margin:0;font-size:2.865cqw;line-height:1.14;font-weight:400;letter-spacing:-.045cqw;color:var(--ink)}h1 strong{font-weight:600;color:var(--group-blue)}.hero-description{font-size:1.49cqw;line-height:1.33;color:#536783;margin:.85cqw 0 0;max-width:38cqw}
/* Bildbänder liegen hinter dem wellenförmigen Abschluss des Kopfbereichs. */
.companies{display:grid;grid-template-columns:1.03fr .97fr 1.03fr;gap:.98cqw;margin:-4.04cqw auto 0;padding:0;position:relative;z-index:2}.company{min-width:0;--brand:var(--hase-blue)}.company-korsu{--brand:var(--korsu-blue)}.company-esmeyer{--brand:var(--esmeyer-blue)}.company-photo{height:14.65cqw;overflow:hidden}.company-photo img{display:block;width:100%;height:100%;object-fit:cover}.company-hase .company-photo img{object-position:50% 50%}.company-korsu .company-photo img{object-position:35% 71%}.company-esmeyer .company-photo img{object-position:50% 54%}.company-card{position:relative;background:linear-gradient(135deg,#ffffff,#f8f9fc);margin:-6.7cqw 0 0;border-radius:50% 50% 3.9cqw 3.9cqw / 5.86cqw 5.86cqw 3.9cqw 3.9cqw;padding:5.73cqw 4.2cqw 1.56cqw;text-align:center;box-shadow:0 1.2cqw 3cqw #1f528603}.company:first-child .company-card{margin-left:1.76cqw}.company:last-child .company-card{margin-right:1.63cqw}.company-badge{width:5.21cqw;height:5.21cqw;position:absolute;top:-.65cqw;left:50%;transform:translateX(-50%);display:grid;place-items:center;background:var(--brand);color:#fff;border-radius:50%;box-shadow:0 0 0 1px #ffffff66}.company-badge svg{width:2.7cqw;height:2.7cqw;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.logo-link{display:flex;align-items:center;justify-content:center;height:4.82cqw;margin:0 auto;max-width:19.5cqw}.company-logo{display:block;width:18.55cqw;height:auto;max-width:100%;max-height:4.82cqw;object-fit:contain}.company-hase .company-logo{max-height:none}.location{display:flex;justify-content:center;align-items:center;gap:.85cqw;margin:1.17cqw 0 1.04cqw;font-size:.78cqw;line-height:1.17cqw;letter-spacing:.12cqw;text-transform:uppercase;color:var(--body);white-space:nowrap}.location .icon{width:1.1cqw;height:1.1cqw;flex-basis:1.1cqw;color:#174376}.company h2{font-size:1.37cqw;font-weight:400;line-height:1.9cqw;margin:0 0 .65cqw;white-space:nowrap;letter-spacing:-.025cqw}.contact-list{padding:.78cqw 0 1.5cqw;border-top:1px solid var(--line);display:grid;gap:.78cqw;text-align:left}.contact{display:flex;align-items:center;gap:2.1cqw}.contact .icon{color:var(--brand)}.phone{font-size:1.69cqw;line-height:2.02cqw;white-space:nowrap;letter-spacing:-.02cqw}.email{font-size:1.33cqw;line-height:1.63cqw;white-space:nowrap;letter-spacing:-.025cqw}.contact:hover span{color:var(--brand);text-decoration:underline;text-underline-offset:4px}.website-button{background:var(--brand);color:white;border-radius:3cqw;padding:1.05cqw 1.5cqw;display:flex;align-items:center;justify-content:center;position:relative;height:3.71cqw;font-size:1.35cqw;font-weight:600;transition:filter .2s,transform .2s}.website-button>.icon{position:absolute;right:1.5cqw;width:1.4cqw;height:1.4cqw;stroke-width:1.4}.website-button span{padding:0 .85cqw}.website-button:hover{filter:brightness(1.12);transform:translateY(-2px)}
.site-footer{width:88%;margin:2.08cqw auto 0;padding:18px 0 22px;border-top:1px solid #d4deea;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;color:#596f89}.site-footer p{margin:0}.site-footer nav{display:flex;gap:18px;align-items:center}.footer-link{border:0;background:none;padding:4px 0;color:inherit;font-size:11px;white-space:nowrap}.footer-link:hover{color:var(--group-blue);text-decoration:underline;text-underline-offset:4px}.footer-divider{width:1px;height:13px;background:#c9d6e5}
dialog{width:min(600px,calc(100% - 32px));padding:30px;border:1px solid var(--line);border-radius:18px;color:var(--ink);background:#fff;box-shadow:0 30px 90px #00284830}dialog::backdrop{background:#12223680;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-heading h2{font-weight:500;font-size:25px;margin:0}.dialog-close{border:0;background:#f0f4fa;color:var(--body);width:36px;height:36px;border-radius:50%;font-size:26px;line-height:1}.dialog-description{font-size:14px;line-height:1.6;color:var(--muted);margin:18px 0 25px}.legal-row{border-top:1px solid var(--line);padding:19px 0}.legal-row:last-child{padding-bottom:0}.legal-row h3{font-size:15px;font-weight:500;margin:0 0 12px}.legal-row>div{display:flex;gap:25px;font-size:13px;color:var(--group-blue)}.legal-row a{text-decoration:underline;text-underline-offset:4px}
@container(max-width:1000px) and (min-width:761px){.company-card{padding-left:3.2cqw;padding-right:3.2cqw}.email{font-size:1.45cqw}.phone{font-size:1.8cqw}.location{font-size:.9cqw}.company h2{font-size:1.48cqw}.contact{gap:1.5cqw}.footer-names{display:none}}
@container(max-width:760px){.hero{height:450px;clip-path:none;overflow:hidden}.hero-content{width:86%;padding-top:24px}.hero-photo{object-position:68% center}.hero-veil{background:linear-gradient(90deg,#fffffff0,#ffffffd9 55%,#ffffff55)}.hero-curves{width:185%;height:100%;max-width:none}.wordmark{font-size:clamp(84px,19cqw,145px);letter-spacing:-6px;line-height:.95;margin-left:-4px}.group-names{font-size:clamp(9px,2.2cqw,15px);line-height:1.8;letter-spacing:1.6px;margin:12px 0 20px}.group-names span{margin:0 3px}.small-rule{width:36px;height:3px;margin-bottom:19px}h1{font-size:clamp(28px,6.4cqw,42px);line-height:1.15;letter-spacing:-.5px}.hero-description{font-size:17px;line-height:1.45;margin-top:14px;max-width:360px}.desktop-break{display:none}.companies{grid-template-columns:1fr;gap:28px;max-width:540px;margin:-45px auto 0;padding:0 16px;z-index:4}.company-photo{height:206px;border-radius:5px 5px 0 0}.company-card,.company:first-child .company-card,.company:last-child .company-card{margin:-91px 0 0;border-radius:50% 50% 40px 40px / 85px 85px 40px 40px;padding:81px 12% 26px}.company-badge{width:76px;height:76px;top:-10px}.company-badge svg{width:39px;height:39px}.logo-link{height:76px;max-width:290px}.company-logo{width:270px;max-height:76px}.location{font-size:10px;line-height:17px;letter-spacing:1.7px;gap:11px;margin:18px 0 16px}.location .icon{width:17px;height:17px;flex-basis:17px}.company h2{font-size:19px;line-height:27px;margin-bottom:10px;letter-spacing:-.3px;white-space:normal}.contact-list{padding:14px 0 23px;gap:15px}.contact{gap:22px}.icon{width:25px;height:25px;flex-basis:25px}.phone{font-size:23px;line-height:29px;letter-spacing:-.3px}.email{font-size:17px;line-height:23px;letter-spacing:-.3px}.website-button{height:54px;border-radius:30px;padding:15px 20px;font-size:18px}.website-button>.icon{width:21px;height:21px;right:17px}.website-button span{padding:0 12px}.site-footer{width:calc(100% - 44px);margin-top:30px;flex-direction:column;gap:15px;text-align:center}.footer-names{display:none}.site-footer nav{gap:13px;flex-wrap:wrap;justify-content:center}.footer-link{font-size:12px}}
@container(max-width:360px){.company-card,.company:first-child .company-card,.company:last-child .company-card{padding-left:9%;padding-right:9%}.email{font-size:15px}.phone{font-size:21px}.contact{gap:15px}.group-names{letter-spacing:1.2px}.dialog-heading h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
/* Feinausgleich an der Desktop-Vorlage: Wortmarke, Bildgröße und Button-Einzüge. */
@container(min-width:761px){.hero-photo{left:auto;right:0;width:72%;object-position:center 68%}.wordmark{font-size:11cqw;line-height:.94}.group-names{font-size:1.35cqw}.website-button{margin-left:1.5cqw;margin-right:1.5cqw}}
@container(min-width:761px){.hero-photo{object-position:center 55%}}

/* Zentriertes Layout; alle Proportionen folgen der Seitenbreite. */
body{background:#e9eef5}
.page-shell{container-type:inline-size;width:min(1320px,calc(100% - 80px));margin:32px auto;background:radial-gradient(ellipse at 0% 65%,#dde9f9 0,transparent 48%),var(--page);border-radius:16px;overflow:hidden;box-shadow:0 18px 60px #183f6c12}
@media(max-width:1100px){.page-shell{width:calc(100% - 40px);margin:20px auto;border-radius:12px}}
@media(max-width:600px){.page-shell{width:100%;margin:0;border-radius:0;box-shadow:none}}

/* Firmenbereiche beginnen unterhalb des vollständigen Kopfbildes. */
.companies{margin-top:0}

/* Länger auslaufende Wellen und mehr Luft vor den Firmenbereichen. */
@container(min-width:761px){.hero{height:35.16cqw}.companies{margin-top:1.3cqw}}
@container(max-width:760px){.hero{height:485px}.companies{margin-top:20px}}

/* Geradlinige Bildbereiche ohne Wellen; großzügigere Fotoköpfe. */
.hero{clip-path:none;background:#fff}
.hero-veil{background:linear-gradient(90deg,#fff 0%,#fff 34%,#ffffffed 42%,#ffffff55 56%,#ffffff00 68%)}
.companies{width:94%;padding:0;gap:1.5cqw;grid-template-columns:repeat(3,minmax(0,1fr));margin:2.2cqw auto 0}
.company{border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 10px 28px #173a6510}
.company-photo{height:19.5cqw}
.company-hase .company-photo img{object-position:50% 55%}
.company-korsu .company-photo img{object-position:52% 69%}
.company-esmeyer .company-photo img{object-position:50% 62%}
.company-card,.company:first-child .company-card,.company:last-child .company-card{margin:0;border-radius:0;background:linear-gradient(160deg,#fff,#fafbfd);padding:4.9cqw 2.6cqw 2cqw;box-shadow:none}
.company-badge{top:-2.6cqw;box-shadow:0 0 0 5px #fff}
.website-button{margin-left:1cqw;margin-right:1cqw}
@container(min-width:761px){.hero{height:35.16cqw}.hero-photo{width:62%;object-position:center 55%}}
@container(max-width:760px){
 .hero{height:450px}
 .hero-veil{background:linear-gradient(90deg,#fffffff7 0%,#fffffff0 45%,#ffffffb0 72%,#ffffff55 100%)}
 .companies{width:calc(100% - 32px);max-width:508px;margin:24px auto 0;padding:0;gap:28px;grid-template-columns:1fr}
 .company-photo{height:235px;border-radius:0}
 .company-card,.company:first-child .company-card,.company:last-child .company-card{margin:0;border-radius:0;padding:69px 10% 27px}
 .company-badge{top:-38px}
 .website-button{margin-left:0;margin-right:0}
}

/* Ganz unten in der styles.css ergänzen */
.hero .hero-photo {
    left: auto;
    right: 0;
    object-fit: cover;
    object-position: right center;
}

@container (min-width: 761px) {
    /* Header flacher gestalten */
    .page-shell .hero {
        height: 29cqw;
    }

    /* Linke Textkante an den Firmenkarten ausrichten */
    .hero .hero-content {
        width: 94%;
        margin-inline: auto;
    }
}


/* Impressum: Header, Logo, Seitenrahmen und Footer nutzen die gemeinsamen Regeln. */
.imprint-page .wordmark {display:block}
.imprint-page .hero-content h1 > span {font-weight:700;color:var(--group-blue)}
.imprint-page .content {width:94%;margin:0 auto;padding:48px 0 16px}
.imprint-page .content-top {display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:25px}
.imprint-page .eyebrow {font-size:11px;font-weight:700;letter-spacing:.17em;color:#2360a3;margin:0 0 9px}
.imprint-page .content h2 {font-size:clamp(24px,3vw,32px);letter-spacing:-.025em;line-height:1.2;margin:0;color:#1b2b41}
.imprint-page .lead {margin:9px 0 0;color:#5a6f88}
.imprint-page .back-link {white-space:nowrap;text-decoration:none;color:#185aab;font-weight:700;font-size:14px}
.imprint-page .back-link:hover, .imprint-page .detail a:hover, .imprint-page .site-footer a:hover {text-decoration:underline}
.imprint-page .details-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.imprint-page .detail {min-height:177px;border:1px solid #e2e9f3;border-radius:15px;padding:27px 30px;background:white;box-shadow:0 6px 24px rgba(25,56,95,.035)}
.imprint-page .detail h3 {margin:0 0 13px;color:#1a559d;font-size:17px}
.imprint-page .detail p {margin:0;color:#405470;font-size:15px;line-height:1.75}
.imprint-page .detail strong {color:#24364d}
.imprint-page .detail a {text-decoration:none;color:#185aab}
.imprint-page .info-strip {margin-top:20px;display:flex;gap:25px;align-items:center;justify-content:space-between;padding:22px 28px;background:#dfeaf7;border-radius:13px}
.imprint-page .info-strip p {margin:0;color:#455a76;font-size:14px}
.imprint-page .info-strip strong {color:#263f61}
.imprint-page .info-strip a {white-space:nowrap;font-size:13px;font-weight:700;text-decoration:none;color:#175caf}
.imprint-page .info-strip a:hover {text-decoration:underline}
@container(max-width:760px){
  .imprint-page .content {width:calc(100% - 32px);padding:34px 0 2px}
  .imprint-page .content-top {align-items:flex-start;flex-direction:column}
  .imprint-page .details-grid {grid-template-columns:1fr}
  .imprint-page .detail {min-height:0;padding:24px}
  .imprint-page .info-strip {align-items:flex-start;flex-direction:column;gap:12px}
}

/* Gemeinsame Wortmarke Hase-Gruppe.: Breite an den längeren Namen anpassen. */
.hero .wordmark {
  font-size:6.6cqw;
  line-height:10.34cqw;
  letter-spacing:-.3cqw;
  white-space:nowrap;
}
@container(max-width:760px){
  .hero .wordmark {
    font-size:clamp(28px,9.5cqw,72px);
    line-height:clamp(80px,18.05cqw,138px);
    letter-spacing:-.045em;
  }
}
