:root { --tp-blue:#062c46; --tp-dark:#031d30; --tp-light:#f6f5f3; --tp-text:#092b49; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:"Montserrat","Segoe UI",Arial,sans-serif; color:var(--tp-text); background:var(--tp-light); }
.container { max-width:1240px; }

.hero { height:602px; position:relative; overflow:hidden; color:#fff; background:#032741 url("/images/hero-building.png") center/cover no-repeat; }
.hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(2,30,49,.12),transparent 46%); }
.tp-navbar { position:relative; z-index:10; padding:37px 0 0; }
.navbar-brand img { width:126px; filter:brightness(0) invert(1); }
.nav-link { color:#fff!important; text-transform:uppercase; font-size:13px; font-weight:500; margin:0 15px; padding:12px 0!important; }
.nav-link.active::after { content:""; display:block; width:54px; height:1px; margin-top:5px; background:#fff; }
.tp-btn-outline { border:1px solid #fff; border-radius:0; color:#fff; padding:14px 29px; text-transform:uppercase; font-size:12px; font-weight:700; }
.tp-btn-outline:hover { background:#fff; color:var(--tp-blue); }

.hero-content { position:relative; z-index:3; padding-top:72px; }
.hero-copy { width:485px; }
.hero h1 { max-width:500px; margin:0 0 21px; font-size:46px; line-height:1.08; font-weight:300; letter-spacing:4px; text-transform:uppercase; }
.tp-line { width:37px; height:1px; margin-bottom:22px; background:#fff; }
.hero p { max-width:390px; margin:0 0 34px; color:rgba(255,255,255,.97); font-size:17px; line-height:1.42; }
.tp-btn { min-width:194px; border:0; border-radius:0; padding:15px 22px; background:#fff; color:var(--tp-blue); box-shadow:none; text-transform:uppercase; font-size:12px; font-weight:700; }
.tp-btn:hover { background:#eee; color:var(--tp-dark); }
.button-arrow { display:inline-block; margin-left:22px; font-size:21px; line-height:0; font-weight:300; vertical-align:-2px; }
.menu-icon { display:grid; gap:7px; width:42px; }
.menu-icon span { display:block; height:2px; background:currentColor; transition:transform .25s ease,opacity .2s ease; }
.navbar-toggler[aria-expanded="true"] .menu-icon span:nth-child(1) { transform:translateY(9px) rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .menu-icon span:nth-child(2) { opacity:0; }
.navbar-toggler[aria-expanded="true"] .menu-icon span:nth-child(3) { transform:translateY(-9px) rotate(-45deg); }

.services { min-height:395px; padding:55px 0 47px; background:linear-gradient(180deg,#fff,#f3f2f0); }
.section-label { color:var(--tp-blue); text-transform:uppercase; font-size:13px; font-weight:500; letter-spacing:1.6px; }
.section-label::after { content:""; display:block; width:31px; height:1px; margin:12px auto 13px; background:var(--tp-blue); }
.services h2 { margin:0; color:var(--tp-blue); text-transform:uppercase; font-size:27px; font-weight:300; letter-spacing:1.4px; }
.services-grid { margin-top:32px; }
.service-card { padding:0 14px; }
.tp-icon { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.service-card .tp-icon { display:block; width:58px; height:58px; margin:0 auto 13px; color:var(--tp-blue); }
.service-card h3 { min-height:19px; margin:0 0 10px; color:var(--tp-blue); text-transform:uppercase; font-size:13px; font-weight:500; }
.service-card p { max-width:240px; margin:0 auto; color:#435464; font-size:13px; line-height:1.45; }

.stats { position:relative; min-height:83px; padding:21px 0 17px; overflow:hidden; color:#fff; background:#032741 url("/images/hero-building.png") center bottom/cover no-repeat; }
.stats::before { content:""; position:absolute; inset:0; background:rgba(2,34,55,.55); }
.stats .container { position:relative; z-index:2; }
.stat-item { display:grid; grid-template-columns:48px 1fr; grid-template-rows:auto auto; align-items:center; padding:0 25px; border-right:1px solid rgba(255,255,255,.2); text-align:left; }
.stat-item:last-child { border-right:0; }
.stat-item .tp-icon { grid-row:1/3; width:34px; height:34px; }
.stat-item strong { font-size:23px; line-height:1.05; font-weight:300; }
.stat-item span { margin-top:5px; text-transform:uppercase; font-size:11px; line-height:1.15; }

/* Leistungen */
.subpage-hero { height:510px; background-position:center 42%; }
.subpage-hero::after { background:linear-gradient(90deg,rgba(2,25,43,.62) 0%,rgba(2,28,46,.18) 58%,transparent); }
.subpage-hero-content { position:relative; z-index:3; padding-top:78px; }
.hero-kicker,.eyebrow { display:block; text-transform:uppercase; font-size:12px; font-weight:600; letter-spacing:2px; }
.subpage-hero-content h1 { max-width:720px; margin:15px 0 20px; font-size:50px; line-height:1.12; font-weight:300; letter-spacing:3px; text-transform:uppercase; }
.subpage-hero-content p { max-width:550px; margin:0; font-size:17px; line-height:1.55; }

.services-intro { padding:105px 0 95px; background:#f7f6f3; }
.eyebrow { margin-bottom:15px; color:#617888; }
.services-intro h2,.detail-copy h2,.services-cta h2 { margin:0; text-transform:uppercase; font-size:36px; line-height:1.22; font-weight:300; letter-spacing:2px; }
.intro-copy .lead { margin:0 0 22px; color:var(--tp-text); font-size:21px; line-height:1.6; font-weight:400; }
.intro-copy p:not(.lead) { margin:0; color:#4a5d69; font-size:15px; line-height:1.8; }

.service-details { padding:30px 0; background:#fff; }
.detail-card { position:relative; display:grid; grid-template-columns:120px 310px 1fr; gap:55px; align-items:center; min-height:420px; padding:70px 20px; border-bottom:1px solid #d7dde0; }
.detail-card:last-child { border-bottom:0; }
.detail-card > .detail-icon { grid-column:2; }
.detail-card > .detail-copy { grid-column:3; grid-row:1; }
.detail-card-reverse { grid-template-columns:120px 1fr 310px; }
.detail-card-reverse .detail-icon { grid-column:3; }
.detail-card-reverse .detail-copy { grid-column:2; grid-row:1; }
.detail-number { position:absolute; top:65px; left:18px; color:#9baab3; font-size:12px; letter-spacing:2px; }
.detail-icon { display:flex; align-items:center; justify-content:center; width:270px; height:270px; color:var(--tp-blue); border:1px solid #a9b8c1; }
.detail-icon .tp-icon { width:90px; height:90px; }
.detail-copy { max-width:620px; }
.detail-copy h2 { margin-bottom:24px; font-size:30px; }
.detail-copy > p { margin:0 0 22px; color:#465b68; font-size:15px; line-height:1.75; }
.detail-copy ul { display:grid; grid-template-columns:1fr 1fr; gap:9px 28px; margin:0; padding:0; list-style:none; }
.detail-copy li { position:relative; padding-left:18px; font-size:13px; line-height:1.5; }
.detail-copy li::before { content:""; position:absolute; left:0; top:8px; width:8px; height:1px; background:var(--tp-blue); }

.process-section { padding:90px 0 100px; background:linear-gradient(180deg,#f7f6f3,#eeefed); }
.process-section h2 { margin:0; text-transform:uppercase; font-size:31px; font-weight:300; letter-spacing:1.5px; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:58px; }
.process-step { position:relative; min-height:170px; padding:0 34px; border-right:1px solid #bdc8ce; }
.process-step:last-child { border-right:0; }
.process-step strong { display:block; margin-bottom:25px; color:#99a9b2; font-size:13px; font-weight:500; letter-spacing:2px; }
.process-step h3 { margin:0 0 13px; text-transform:uppercase; font-size:15px; letter-spacing:1px; }
.process-step p { margin:0; color:#50636f; font-size:13px; line-height:1.6; }

.services-cta { position:relative; padding:75px 0; overflow:hidden; color:#fff; background:#032741 url("/images/hero-building.png") center 65%/cover no-repeat; }
.services-cta::before { content:""; position:absolute; inset:0; background:rgba(1,29,48,.73); }
.services-cta .container { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.services-cta .hero-kicker { margin-bottom:16px; }
.services-cta h2 { font-size:34px; }

@media (max-width:991px) {
    .container { max-width:none; padding-left:50px; padding-right:50px; }
    .hero { height:965px; background-size:auto 100%; background-position:56% center; }
    .tp-navbar { padding-top:64px; }
    .navbar-brand img { width:151px; }
    .navbar-toggler { position:relative; z-index:30; color:#fff; font-size:42px; padding:0; }
    .navbar-collapse { display:none!important; position:absolute; z-index:20; top:100%; left:25px; right:25px; padding:22px; background:rgba(3,29,48,.98); }
    .navbar-collapse.is-open { display:block!important; }
    .nav-link { margin:5px 0; }
    .nav-link.active::after { display:none; }
    .tp-btn-outline { width:100%; margin-top:12px; }
    .hero-content { padding-top:80px; }
    .hero-copy { width:470px; }
    .hero h1 { font-size:48px; line-height:1.15; letter-spacing:4px; }
    .hero p { max-width:430px; font-size:22px; line-height:1.5; }
    .tp-btn { padding:18px 21px; font-size:15px; min-width:233px; }
    .services { min-height:555px; padding:62px 0 54px; }
    .services h2 { font-size:30px; line-height:1.2; }
    .services-grid { margin-top:40px; }
    .service-card { padding:0 7px; }
    .service-card .tp-icon { width:53px; height:53px; }
    .service-card h3 { min-height:38px; font-size:13px; }
    .service-card p { font-size:12px; line-height:1.55; }
    .stats { min-height:216px; padding:38px 0; }
    .stats .container { padding-left:30px; padding-right:30px; }
    .stat-item { display:block; padding:0 14px; text-align:center; }
    .stat-item .tp-icon { display:block; width:34px; height:34px; margin:0 auto 12px; }
    .stat-item strong { display:block; font-size:28px; }
    .stat-item span { display:block; margin-top:11px; font-size:12px; line-height:1.45; }
    .subpage-hero { height:650px; background-size:auto 100%; background-position:56% center; }
    .subpage-hero-content { padding-top:90px; }
    .subpage-hero-content h1 { max-width:600px; font-size:45px; }
    .services-intro { padding:80px 0; }
    .detail-card,.detail-card-reverse { grid-template-columns:80px 210px 1fr; gap:28px; min-height:350px; padding:55px 0; }
    .detail-card-reverse { grid-template-columns:80px 1fr 210px; }
    .detail-icon { width:200px; height:220px; }
    .detail-icon .tp-icon { width:68px; height:68px; }
    .detail-copy h2 { font-size:24px; }
    .detail-copy ul { grid-template-columns:1fr; }
    .process-step { padding:0 18px; }
    .services-cta .container { align-items:flex-start; flex-direction:column; }
}

@media (max-width:575px) {
    .container { padding-left:26px; padding-right:26px; }
    .hero { height:840px; background-position:57% center; }
    .tp-navbar { padding-top:32px; }
    .navbar-brand img { width:118px; }
    .navbar-toggler { font-size:30px; }
    .hero-content { padding-top:58px; }
    .hero-copy { width:100%; }
    .hero h1 { max-width:330px; font-size:35px; letter-spacing:2.5px; }
    .hero p { max-width:310px; font-size:17px; }
    .tp-btn { min-width:190px; padding:14px 18px; font-size:12px; }
    .services { min-height:480px; padding:45px 0; }
    .services h2 { font-size:23px; }
    .section-label { font-size:12px; }
    .services-grid { margin-top:31px; }
    .service-card { padding:0 3px; }
    .service-card .tp-icon { width:42px; height:42px; }
    .service-card h3 { font-size:9px; min-height:30px; }
    .service-card p { font-size:9px; line-height:1.5; }
    .stats { min-height:170px; padding:28px 0; }
    .stats .container { padding-left:8px; padding-right:8px; }
    .stat-item { padding:0 6px; }
    .stat-item .tp-icon { width:25px; height:25px; }
    .stat-item strong { font-size:20px; }
    .stat-item span { font-size:8px; }
    .subpage-hero { height:570px; }
    .subpage-hero-content { padding-top:75px; }
    .subpage-hero-content h1 { margin-top:12px; font-size:31px; line-height:1.2; letter-spacing:2px; }
    .subpage-hero-content p { max-width:320px; font-size:15px; }
    .services-intro { padding:65px 0; }
    .services-intro h2,.services-cta h2 { font-size:27px; }
    .intro-copy .lead { font-size:18px; }
    .detail-card,.detail-card-reverse { display:grid; grid-template-columns:54px 1fr; gap:22px; padding:60px 0; }
    .detail-card-reverse { grid-template-columns:54px 1fr; }
    .detail-number { top:32px; left:0; }
    .detail-card > .detail-icon,.detail-card-reverse .detail-icon { grid-column:1; grid-row:1; width:54px; height:54px; border:0; }
    .detail-icon .tp-icon { width:39px; height:39px; }
    .detail-card > .detail-copy,.detail-card-reverse .detail-copy { grid-column:2; grid-row:1; }
    .detail-copy h2 { font-size:22px; line-height:1.3; }
    .detail-copy ul { display:block; }
    .detail-copy li { margin-bottom:8px; }
    .process-section { padding:65px 0; }
    .process-section h2 { font-size:25px; }
    .process-grid { grid-template-columns:1fr 1fr; gap:35px 0; margin-top:42px; }
    .process-step { min-height:150px; padding:0 16px; }
    .process-step:nth-child(2) { border-right:0; }
    .services-cta { padding:65px 0; }
}
