/* Startseitenlayout. Bestehende Unterseiten behalten ihr eigenes Layout. */
.homepage { --muted:#b6bdb7; }
.homepage .header { position:relative; height:auto; min-height:94px; padding:16px max(24px,calc((100% - 1200px)/2)); display:grid; grid-template-columns:auto 1fr; gap:14px 36px; background:#0b0f0c; }
.homepage .brand { grid-row:1/3; }
.homepage .site-logo-header { width:220px; max-height:80px; }
.homepage .header-actions { display:flex; justify-content:flex-end; gap:12px; }
.homepage .header-btn { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:9px 16px; }
.homepage .employee-btn { border-color:transparent; color:var(--muted); text-transform:none; }
.homepage nav { grid-column:2; grid-row:2; display:flex; justify-content:flex-end; gap:24px; font-size:11px; flex-wrap:wrap; }
.homepage .hero { min-height:590px; padding:90px max(24px,calc((100% - 1200px)/2)) 110px; }
.homepage .hero-content { max-width:780px; }
.homepage h1 { font-size:clamp(42px,6vw,80px); line-height:1.02; letter-spacing:-2.5px; }
.homepage h1 span { font-size:.49em; line-height:1.2; }
.homepage .hero-text { max-width:570px; font-size:19px; }
.homepage .trust { left:max(24px,calc((100% - 1200px)/2)); right:24px; gap:30px; flex-wrap:wrap; font-size:11px; }
.homepage .section,.homepage .radar,.homepage .contact,.homepage footer { max-width:none; padding:76px max(24px,calc((100% - 1200px)/2)); }
.homepage section[id] { scroll-margin-top:24px; }
.homepage h2 { font-size:clamp(30px,3.8vw,46px); letter-spacing:-1.2px; line-height:1.1; text-transform:none; margin-bottom:30px; }
.homepage .eyebrow { font-size:11px; letter-spacing:2px; margin-bottom:14px; }
.homepage #leistungen {
    max-width:none;
    width:100%;
}
.homepage .cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.homepage .card { min-height:280px; padding:36px; display:flex; flex-direction:column; overflow:visible; }
.homepage .card h3 { margin:24px 0 12px; font-size:27px; text-transform:none; overflow-wrap:anywhere; }
.homepage .card p { max-width:460px; margin:0 0 20px; }
.homepage .card a { margin-top:auto; padding-top:12px; }
.homepage .special-services { display:grid; gap:12px; }
.homepage .service-hover { display:block; }
.homepage .service-description { display:block; }
.homepage .references-heading { grid-template-columns:1fr 1fr; gap:40px; margin-bottom:30px; align-items:start; }
.homepage .section-copy { margin:0; font-size:17px; }
.homepage .reference-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.homepage .reference-card { min-height:190px; padding:26px; }
.homepage .reference-years { margin-bottom:24px; }
.homepage .reference-card h3 { font-size:24px; text-transform:none; margin-bottom:14px; }
.homepage .more-projects { margin-top:24px; }
.homepage .more-projects summary { cursor:pointer; padding:16px 0; color:var(--green2); font-weight:700; }
.homepage .more-projects[open] summary { margin-bottom:12px; }
.homepage .radar { grid-template-columns:.8fr 1.2fr; gap:44px; background:#121913; }
.homepage .radar-map-shell { height:360px; }
.homepage .radar-map-frame { height:100%; }
.homepage .about { grid-template-columns:1fr 1fr; gap:44px; align-items:start; }
.homepage .about h2 { margin:0; }
.homepage .about>p { margin:0; font-size:18px; }
.homepage .contact { grid-template-columns:1fr; gap:32px; background:#1b2a1c; border-top:1px solid #33462c; }
.homepage .contact-intro { max-width:700px; }
.homepage .contact-people { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.homepage .contact-person { min-height:0; padding:0 28px 30px; display:flex; flex-direction:column; }
.homepage .contact-person-image { position:static; width:calc(100% + 56px); height:440px; margin:0 -28px 28px; object-fit:contain; object-position:center top; background:#e7e6e1; }
.homepage .contact-person h3 { margin:10px 0; font-size:23px; text-transform:none; }
.homepage .contact-person a { overflow-wrap:anywhere; font-size:14px; }
.homepage footer { grid-template-columns:1fr 1fr 1fr; gap:36px; padding-top:40px; padding-bottom:40px; }
.homepage .site-logo-footer { max-width:250px; }
.homepage a:focus-visible,.homepage summary:focus-visible,.homepage [tabindex]:focus-visible { outline:2px solid var(--green2); outline-offset:5px; }
@media(min-width:901px) {
 .homepage #leistungen .cards { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:24px !important; }
 .homepage #leistungen .card { width:auto !important; min-width:0; }
 .homepage .contact-people { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
 .homepage .contact-person-image { display:block; width:calc(100% + 56px) !important; height:440px !important; object-fit:contain !important; object-position:center top !important; }
}
@media(max-width:1000px) {
 .homepage .header { grid-template-columns:1fr 1fr; gap:14px; }
 .homepage .brand { grid-row:auto; }
 .homepage nav { grid-column:1/-1; grid-row:auto; justify-content:center; gap:20px; padding-top:10px; border-top:1px solid var(--line); }
 .homepage .contact-person-image { height:400px; }
}
@media(max-width:680px) {
 .homepage .header { min-height:75px; padding:10px 20px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
 .homepage .brand { grid-row:auto; flex:0 1 auto; }
 .homepage .site-logo-header { width:155px; max-height:60px; }
 .homepage nav { display:none; }
 .homepage .header-actions { display:block; flex:0 0 auto; }
 .homepage .header-btn:not(.employee-btn) { display:none; }
 .homepage .employee-btn { display:inline-flex; min-height:38px; padding:9px 12px; border:1px solid var(--green); color:var(--text); font-size:10px; text-transform:uppercase; white-space:nowrap; }
 .homepage .hero { min-height:540px; padding:58px 20px 140px; background-position:60% center; }
 .homepage h1 { font-size:clamp(35px,8.8vw,56px); letter-spacing:-1.5px; }
 .homepage .hero-text { font-size:17px; margin:24px 0; }
 .homepage .hero-actions { flex-wrap:wrap; gap:10px; }
 .homepage .btn { padding:14px 17px; font-size:11px; }
 .homepage .trust { left:20px; bottom:26px; flex-direction:column; gap:7px; }
 .homepage .section,.homepage .radar,.homepage .contact,.homepage footer { padding:48px 20px; }
 .homepage .cards,.homepage .reference-grid,.homepage .references-heading,.homepage .radar,.homepage .about,.homepage .contact-people,.homepage footer { grid-template-columns:minmax(0,1fr); gap:20px; }
 .homepage .card { min-height:0; padding:25px; }
 .homepage .card h3 { margin-top:16px; }
 .homepage .reference-card { min-height:0; }
 .homepage .reference-years { margin-bottom:14px; }
 .homepage .radar-map-shell { min-height:0; height:300px; }
.homepage .contact-person { padding:0 20px 24px; }
 .homepage .contact-person-image { width:calc(100% + 40px); height:auto; max-height:none; margin:0 -20px 24px; object-fit:contain; }
 .homepage .contact-person a { font-size:13px; }
 .homepage .contact-person h3 { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto;} .homepage * {transition:none;} }
