:root{--primary:#284a99;--primary-glow:#4680d1;--ink:#2a2c31;--muted:#6f7480;--soft:#f1f4f9;--border:#e1e5ec;--dark:#292a2e;--white:#fff;--shadow:0 24px 60px -24px rgba(30,65,140,.35)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbfcfd;color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}p{line-height:1.7}h1,h2,h3{font-family:"Zilla Slab",Georgia,serif;line-height:1.08;margin:0;letter-spacing:-.01em}h1{font-size:clamp(3rem,6vw,5rem)}h2{font-size:clamp(2.35rem,4.2vw,3.25rem)}h3{font-size:1.55rem}svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.container{width:min(100% - 40px,1216px);margin-inline:auto}.section{padding:112px 0;scroll-margin-top:90px}.soft{background:var(--soft)}.dark{background:var(--dark);color:#f7f8fa}.striped{background-image:repeating-linear-gradient(-45deg,transparent 0 14px,rgba(255,255,255,.05) 14px 15px)}.eyebrow{margin:0;color:var(--primary);font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.eyebrow.light{color:#76a5e8}.eyebrow.inverse{color:rgba(255,255,255,.8)}.section-head{max-width:680px}.section-head h2{margin-top:16px}.section-head>p:last-child{margin:20px 0 0;color:var(--muted);font-size:1.08rem}.dark .section-head>p:last-child{color:rgba(255,255,255,.7)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:6px;background:var(--primary);color:#fff;padding:15px 26px;font:700 .95rem Manrope;cursor:pointer;transition:.25s}.button:hover{background:var(--primary-glow);transform:translateY(-1px)}.button.small{padding:11px 19px;font-size:.86rem}.button.outline{border:1px solid rgba(255,255,255,.35);background:transparent}.button.outline:hover{background:rgba(255,255,255,.1)}
.site-header{position:fixed;z-index:50;inset:0 0 auto;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);transition:.3s}.site-header.scrolled,.site-header.menu-open{background:rgba(255,255,255,.97);box-shadow:0 8px 35px rgba(20,34,60,.1)}.header-inner{height:80px;display:flex;align-items:center;justify-content:space-between;gap:18px}.logo img{height:64px;width:auto}.desktop-nav{display:flex;gap:30px}.desktop-nav a{font-size:.86rem;font-weight:700;transition:.2s}.desktop-nav a:hover{color:var(--primary)}.header-actions{display:flex;align-items:center;gap:14px}.header-phone{display:flex;align-items:center;gap:7px;font-size:.86rem;font-weight:700}.header-phone svg{color:var(--primary);width:16px}.menu-button{display:none;border:0;background:transparent;padding:8px}.menu-button svg{width:26px;height:26px}.mobile-nav{display:none;background:#fff;border-top:1px solid var(--border);padding:0 20px 24px}.mobile-nav a:not(.button){display:block;border-bottom:1px solid var(--border);padding:15px 0;font-weight:700}.mobile-nav .button{margin-top:18px;width:100%}
.hero{min-height:92vh;position:relative;display:flex;align-items:center;overflow:hidden;padding-top:80px;background:var(--dark)}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(100deg,rgba(22,25,38,.94),rgba(26,43,78,.72) 48%,rgba(30,50,80,.08))}.hero-content{position:relative;color:#fff;padding-top:90px;padding-bottom:90px}.hero-content>*{max-width:720px}.hero-content h1{margin-top:20px}.hero-copy{max-width:600px;font-size:1.08rem;color:rgba(255,255,255,.82)}.hero-buttons{display:flex;flex-wrap:wrap;gap:15px;margin-top:36px}.trust{position:relative;z-index:2;margin-top:-55px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.trust article{display:flex;gap:18px;background:#fff;padding:28px}.trust article>svg{width:32px;height:32px;color:var(--primary);flex:0 0 auto}.trust h3{font-size:1.25rem}.trust p{font-size:.86rem;color:var(--muted);margin:5px 0 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about-copy{font-size:1.05rem;color:var(--muted)}blockquote{margin:24px 0 0;padding-left:20px;border-left:4px solid var(--primary);color:var(--ink);font:600 1.55rem "Zilla Slab",serif}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:62px}.service{height:100%;overflow:hidden;background:#fff;border-radius:8px;box-shadow:0 5px 20px rgba(20,35,60,.07);transition:.4s}.service:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.service-img{position:relative;aspect-ratio:4/3;overflow:hidden}.service-img img{width:100%;height:100%;object-fit:cover;transition:.6s}.service:hover img{transform:scale(1.05)}.service-img span{position:absolute;top:20px;left:20px;display:grid;place-items:center;width:48px;height:48px;border-radius:6px;background:var(--primary);color:#fff}.service-img svg{width:25px;height:25px}.service>div:last-child{padding:27px}.service p{color:var(--muted);margin-bottom:0}.reasons{display:grid;grid-template-columns:repeat(4,1fr);gap:38px;margin-top:60px}.reasons article{border-top:1px solid rgba(255,255,255,.16);padding-top:28px}.reasons b{display:block;color:#76a5e8;font:700 3rem "Zilla Slab",serif}.reasons svg{margin-top:22px;width:28px;height:28px}.reasons h3{margin-top:15px}.reasons p{color:rgba(255,255,255,.7)}.renovation{display:grid;grid-template-columns:7fr 5fr;gap:70px;align-items:center}.image-badge{position:relative}.image-badge>img{aspect-ratio:4/3;width:100%;object-fit:cover;border-radius:8px;box-shadow:var(--shadow)}.image-badge>span{position:absolute;right:-15px;bottom:-30px;display:flex;flex-direction:column;background:var(--primary);color:#fff;border-radius:7px;padding:24px;box-shadow:var(--shadow)}.image-badge strong{font:700 1.8rem "Zilla Slab",serif}.check-list{list-style:none;padding:0;margin:32px 0 0}.check-list li{position:relative;padding-left:32px;margin:17px 0}.check-list li:before{content:'✓';position:absolute;left:0;display:grid;place-items:center;width:19px;height:19px;border:2px solid var(--primary);border-radius:50%;color:var(--primary);font-size:11px;font-weight:bold}.process{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:60px}.process:before{content:'';position:absolute;top:32px;left:0;right:0;height:1px;background:rgba(40,74,153,.3)}.process article{position:relative}.process article>span{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-glow));color:#fff;box-shadow:var(--shadow)}.process article>span svg{width:28px;height:28px}.process b{display:block;color:var(--primary);font-size:.8rem;margin-top:24px}.process h3{margin-top:5px}.process p{color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:16px;margin-top:55px}.gallery figure{position:relative;margin:0;overflow:hidden;border-radius:7px}.gallery .large{grid-column:span 2;grid-row:span 2}.gallery .wide{grid-column:span 2}.gallery img{width:100%;height:100%;object-fit:cover;transition:.6s}.gallery figure:hover img{transform:scale(1.05)}.gallery figure:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(20,22,26,.8))}.gallery figcaption{position:absolute;z-index:1;bottom:17px;left:20px;color:#fff;font:700 1.3rem "Zilla Slab",serif}.split{display:grid;grid-template-columns:1fr 1fr}.split-copy{padding:95px max(20px,calc((100vw - 1216px)/2 + 48px)) 95px max(20px,calc((100vw - 1216px)/2))}.split>img{width:100%;height:100%;min-height:550px;object-fit:cover}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:38px}.mini-grid article{border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:20px}.mini-grid h3{font-size:1.16rem}.mini-grid p{font-size:.87rem;color:rgba(255,255,255,.7);margin-bottom:0}.quality{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.quality-list{display:grid;gap:24px;margin-top:38px}.quality-list article{display:flex;gap:18px}.quality-list span{display:grid;place-items:center;flex:0 0 48px;height:48px;background:#e9effa;color:var(--primary);border-radius:6px}.quality-list p{margin:3px 0 0;color:var(--muted)}.quality-image{width:100%;max-width:440px;margin:auto;aspect-ratio:4/5;object-fit:cover;border-radius:8px;box-shadow:var(--shadow)}.area{padding:90px 0;background:linear-gradient(135deg,var(--primary),var(--primary-glow));color:#fff}.area h2{margin-top:15px}.area p{font-size:1.05rem;color:rgba(255,255,255,.84)}.districts{display:flex;flex-wrap:wrap;gap:12px}.districts span{border:1px solid rgba(255,255,255,.35);border-radius:99px;padding:9px 15px;font-size:.86rem;font-weight:700}.faq{max-width:900px}.accordion{margin-top:44px}.accordion details{border-bottom:1px solid var(--border)}.accordion summary{list-style:none;cursor:pointer;padding:24px 40px 24px 0;font:600 1.3rem "Zilla Slab",serif;position:relative}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:'+';position:absolute;right:4px;font:400 1.8rem Manrope}.accordion details[open] summary:after{content:'−'}.accordion details p{color:var(--muted);margin:0;padding:0 30px 24px 0}.contact{display:grid;grid-template-columns:2fr 3fr;gap:55px}.contact-list{display:grid;gap:18px;margin-top:38px}.contact-list article{display:flex;align-items:center;gap:15px}.contact-list article>span{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:50%;background:var(--primary);color:#fff}.contact-list small{display:block;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:700}.contact-list strong,.contact-list a{display:block;font-size:1.04rem;font-weight:700}.contact-form{align-self:start;background:#fff;padding:38px;border-radius:8px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-width:0;border:1px solid #cfd5df;border-radius:6px;background:#fff;padding:13px 14px;font:inherit;outline:0}.form-grid textarea{grid-column:span 2;resize:vertical}.form-grid :focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(40,74,153,.12)}.consent{display:flex;gap:10px;align-items:flex-start;margin:20px 0;color:var(--muted);font-size:.83rem}.consent input{margin-top:4px;accent-color:var(--primary)}.consent a{text-decoration:underline}.form-message{display:none;color:var(--primary);font-size:.86rem}.footer{background:var(--dark);color:#f5f6f8}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr .7fr;gap:60px;padding-top:65px;padding-bottom:55px}.footer-logo{display:inline-block;background:#fff;border-radius:6px;padding:8px}.footer-logo img{height:68px;width:auto}.footer p{max-width:360px;color:rgba(255,255,255,.67);font-size:.87rem}.footer h3{font-size:1.15rem;margin-bottom:14px}.footer a{display:block;margin:10px 0;font-size:.87rem;color:rgba(255,255,255,.78)}.footer a:hover{color:#76a5e8}.copyright{text-align:center;border-top:1px solid rgba(255,255,255,.1);padding:22px;font-size:.75rem;color:rgba(255,255,255,.58)}.whatsapp{position:fixed;z-index:40;right:20px;bottom:20px;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;box-shadow:var(--shadow);transition:.2s}.whatsapp:hover{transform:scale(1.06)}.whatsapp svg{width:28px;height:28px;fill:currentColor;stroke:none}.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
.legal-main{max-width:820px;padding-top:145px;padding-bottom:95px}.legal-main h1{font-size:clamp(2.7rem,5vw,3.5rem);margin-top:10px}.legal-copy{margin-top:42px;color:#4f535c;line-height:1.7}.legal-copy h2{font-size:1.65rem;color:var(--ink);margin-top:36px}.legal-copy a{color:var(--primary);text-decoration:underline}
@media(max-width:1050px){.desktop-nav{display:none}.menu-button{display:block}.header-phone{display:none}.site-header.menu-open .mobile-nav{display:block}.services{grid-template-columns:repeat(2,1fr)}.reasons{grid-template-columns:repeat(2,1fr)}.process{grid-template-columns:repeat(2,1fr)}.process:before{display:none}.split{grid-template-columns:1fr}.split-copy{padding:90px max(20px,calc((100vw - 900px)/2))}.split>img{min-height:480px}.contact{grid-template-columns:1fr 1.4fr}}
@media(max-width:760px){.section{padding:82px 0}.header-actions>.button{display:none}.logo img{height:58px}.hero{min-height:760px}.hero-content{padding-top:110px}.trust{grid-template-columns:1fr}.two-col,.renovation,.quality,.contact{grid-template-columns:1fr;gap:45px}.services{grid-template-columns:1fr}.reasons{grid-template-columns:1fr 1fr}.image-badge>span{display:none}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:190px}.gallery .large,.gallery .wide{grid-column:span 2}.gallery .large{grid-row:span 2}.quality-image{grid-row:auto}.area .two-col{gap:28px}.footer-grid{grid-template-columns:1fr;gap:28px}.form-grid{grid-template-columns:1fr}.form-grid textarea{grid-column:auto}}
@media(max-width:480px){h1{font-size:2.8rem}.hero-buttons .button{width:100%}.reasons,.process,.mini-grid{grid-template-columns:1fr}.gallery{display:block}.gallery figure{height:220px;margin-bottom:14px}.contact-form{padding:24px 18px}.container{width:min(100% - 30px,1216px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* Einsatzgebiet */
.area{position:relative;overflow:hidden;padding:105px 0;background:#244382;color:#fff}
.area-pattern{position:absolute;inset:0;background:radial-gradient(circle at 11% 18%,rgba(109,158,225,.3),transparent 30%),linear-gradient(115deg,transparent 0 52%,rgba(255,255,255,.035) 52% 52.15%,transparent 52.15% 100%);pointer-events:none}
.area-pattern:after{content:'';position:absolute;width:520px;height:520px;right:-190px;top:-230px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018)}
.area-layout{position:relative;display:grid;grid-template-columns:.85fr 1.15fr;gap:78px;align-items:center}
.area-intro h2{margin-top:16px;font-size:clamp(2.6rem,4.8vw,4rem)}
.area-intro h2 span{color:#a9c9f3}
.area .area-intro>p:not(.eyebrow){max-width:530px;margin:22px 0 0;color:rgba(255,255,255,.78);font-size:1.06rem}
.area-link{display:inline-flex;align-items:center;gap:10px;margin-top:30px;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.45);font-weight:700}
.area-link:hover{border-color:#fff}
.coverage-card{position:relative;background:#fff;color:var(--ink);border-radius:12px;padding:34px;box-shadow:0 28px 70px -24px rgba(8,18,45,.55)}
.coverage-head{display:flex;align-items:center;gap:16px}
.location-icon{display:grid;place-items:center;flex:0 0 52px;height:52px;border-radius:50%;background:#e9f0fb;color:var(--primary)}
.location-icon svg{width:25px;height:25px}
.coverage-head small{display:block;margin-bottom:3px;color:var(--muted);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.coverage-head strong{display:block;font-size:1rem}
.coverage-divider{height:1px;margin:25px 0;background:var(--border)}
.area .coverage-label{margin:0 0 15px;color:var(--ink);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.area .districts{display:flex;flex-wrap:wrap;gap:9px}
.area .districts span{border:1px solid #d8deea;border-radius:5px;background:#f7f9fc;padding:8px 12px;color:#4c5360;font-size:.78rem;font-weight:700;transition:.2s}
.area .districts span:hover{border-color:#a9bde1;background:#eef3fb;color:var(--primary)}
.area .coverage-note{display:flex;align-items:center;gap:8px;margin:22px 0 0;color:var(--muted);font-size:.79rem}
.coverage-note svg{flex:0 0 18px;width:18px;height:18px;color:var(--primary)}
@media(max-width:760px){.area{padding:82px 0}.area-layout{grid-template-columns:1fr;gap:42px}.coverage-card{padding:26px}.area-pattern:after{right:-360px}.coverage-head{align-items:flex-start}.coverage-head strong{font-size:.9rem}}

/* Larger brand mark */
.header-inner{height:108px}
.logo img{height:96px}
.hero{padding-top:108px}
.footer-logo img{height:102px}

/* Einsatzgebiet locations in two columns */
.area .districts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.area .districts span{display:flex;align-items:center;min-height:38px}

/* Swiper galleries */
.gallery-swiper,.reviews-swiper{overflow:hidden;padding:4px 3px 48px;margin-top:55px}
.gallery-slide{position:relative;height:310px;margin:0;overflow:hidden;border-radius:9px;background:#e8ebef;cursor:zoom-in;box-shadow:0 8px 28px rgba(25,38,65,.09)}
.gallery-slide img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.gallery-slide:hover img{transform:scale(1.045)}
.gallery-slide:after{content:'';position:absolute;inset:42% 0 0;background:linear-gradient(transparent,rgba(17,20,26,.78));pointer-events:none}
.gallery-slide figcaption{position:absolute;z-index:1;left:20px;bottom:18px;color:#fff;font:700 1.25rem "Zilla Slab",serif}
.swiper-pagination{bottom:5px!important}
.swiper-pagination-bullet{width:8px;height:8px;background:#aeb8b3;opacity:.65;transition:.25s}
.swiper-pagination-bullet-active{width:28px;border-radius:8px;background:#168a55;opacity:1}

/* Reviews */
.reviews{background:#f1f4f9}
.reviews-head{text-align:center;margin-inline:auto;max-width:720px}
.reviews-eyebrow{color:var(--primary)}
.reviews-head h2{margin-top:15px}
.reviews-rating{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:20px}
.reviews-rating span,.stars{color:#e6a822;letter-spacing:.12em;font-size:1.05rem}
.reviews-rating p{margin:0;color:#68736c;font-size:.9rem;font-weight:600}
.reviews-swiper{margin-top:46px}
.reviews-swiper .swiper-wrapper{align-items:stretch}
.review-card{position:relative;box-sizing:border-box;height:auto;min-height:310px;display:flex;flex-direction:column;background:#fff;border:1px solid #e0e6f0;border-radius:11px;padding:27px;box-shadow:0 10px 30px rgba(40,74,153,.08)}
.quote-mark{position:absolute;right:22px;top:9px;color:#dce6f5;font:700 4.6rem Georgia,serif;line-height:1}
.review-person{position:relative;z-index:1;display:flex;align-items:center;gap:13px}
.avatar{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-glow));color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.04em}
.review-person h3{font:700 1rem Manrope,sans-serif}
.review-person p{margin:2px 0 0;color:#7d857f;font-size:.76rem}
.review-card .stars{margin-top:23px;font-size:.88rem}
.review-text{margin:17px 0 0;color:#5f6862;font-size:.92rem;line-height:1.75}
.reviews-footer{text-align:center;margin-top:8px}
.reviews-swiper .swiper-pagination-bullet-active{background:var(--primary)}
.reviews-button{background:var(--primary)}
.reviews-button:hover{background:var(--primary-glow)}
.reviews-footer p{margin:13px 0 0;color:#829087;font-size:.74rem}

/* Contact map */
.contact-map{align-self:stretch;min-height:520px;overflow:hidden;background:#fff;border-radius:10px;box-shadow:var(--shadow)}
.contact-map iframe{display:block;width:100%;height:460px;border:0;filter:saturate(.75) contrast(1.05)}
.contact-map>a{display:flex;align-items:center;justify-content:center;gap:9px;height:60px;color:var(--primary);font-size:.86rem;font-weight:700}
.contact-map>a:hover{background:#f5f7fa}
.map-consent{display:grid;place-items:center;min-height:400px;background:linear-gradient(135deg,#eef2f8,#f9fbfd);padding:35px;text-align:center}
.map-consent>div{max-width:430px}
.map-consent strong{display:block;color:var(--ink);font-size:1.1rem}
.map-consent p{margin:12px 0 22px;color:var(--muted);font-size:.86rem;line-height:1.65}
.map-consent .button{margin-inline:auto}
.contact-map.map-loaded .map-consent{display:none}

/* Privacy consent */
body.consent-open{overflow:hidden}.consent-banner[hidden]{display:none}.consent-banner{position:fixed;z-index:3000;inset:0;display:flex;align-items:flex-end;padding:24px;background:rgba(16,20,29,.7);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.consent-card{width:min(1050px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px;padding:32px 36px;border:1px solid rgba(40,74,153,.15);border-radius:10px;background:#fff;box-shadow:0 28px 80px rgba(8,14,27,.35)}.consent-copy .eyebrow{margin:0 0 8px}.consent-card h2{margin:0;font-size:1.55rem;letter-spacing:.02em}.consent-card p:last-child{max-width:680px;margin:10px 0 0;color:var(--muted);font-size:.88rem;line-height:1.65}.consent-card a{color:var(--primary);font-weight:700;text-decoration:underline}.consent-actions{display:flex;gap:10px;flex-wrap:wrap}.consent-actions .button{white-space:nowrap}.consent-reject{border:1px solid var(--primary);background:#fff!important;color:var(--primary)!important}.cookie-settings{display:block;margin:10px 0 0;padding:0;border:0;background:none;color:rgba(255,255,255,.78);font:600 .82rem Montserrat,sans-serif;cursor:pointer;text-align:left}.cookie-settings:hover{color:#76a5e8}
@media(max-width:700px){.consent-banner{padding:12px}.consent-card{grid-template-columns:1fr;gap:22px;padding:24px 20px}.consent-card h2{font-size:1.25rem}.consent-actions{display:grid;grid-template-columns:1fr}.consent-actions .button{width:100%}}
.contact-map iframe[hidden]{display:none}

/* Full-screen gallery lightbox */
.lightbox{position:fixed;z-index:1000;inset:0;display:none;align-items:center;justify-content:center;background:rgba(7,10,14,.9);padding:55px}
.lightbox.open{display:flex}
.lightbox>img{max-width:min(1200px,92vw);max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:4px;box-shadow:0 25px 80px rgba(0,0,0,.5)}
.lightbox-close{position:absolute;right:24px;top:22px;display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.3);color:#fff;cursor:pointer}
.lightbox-close:hover{background:#fff;color:#15171b}
.lightbox-close svg{width:24px;height:24px}
body.lightbox-open{overflow:hidden}
.lightbox-nav{position:absolute;z-index:2;top:50%;display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.36);color:#fff;font-size:1.45rem;cursor:pointer;transform:translateY(-50%);transition:.2s}
.lightbox-nav:hover{border-color:#fff;background:#fff;color:#15171b}
.lightbox-prev{left:24px}.lightbox-next{right:24px}
.lightbox-counter{position:absolute;bottom:17px;left:50%;border:1px solid rgba(255,255,255,.22);border-radius:99px;background:rgba(0,0,0,.42);padding:7px 13px;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.08em;transform:translateX(-50%)}
.lightbox.single-image .lightbox-nav,.lightbox.single-image .lightbox-counter{display:none}

@media(max-width:1050px){.header-inner{height:96px}.logo img{height:84px}.hero{padding-top:96px}.gallery-slide{height:300px}.contact{grid-template-columns:1fr 1.25fr}}
@media(max-width:760px){.header-inner{height:86px}.logo img{height:76px}.hero{padding-top:86px}.footer-logo img{height:88px}.area .districts{grid-template-columns:repeat(2,minmax(0,1fr))}.area .districts span{padding:8px 9px;font-size:.71rem}.gallery-swiper,.reviews-swiper{width:calc(100% + 15px);margin-right:-15px}.gallery-slide{height:280px}.reviews-rating{flex-direction:column;gap:5px}.review-card{min-height:300px}.contact{grid-template-columns:1fr}.contact-map{min-height:430px}.contact-map iframe{height:370px}.lightbox{padding:20px}.lightbox-close{right:14px;top:14px}}

/* Montserrat typography */
body,button,input,select,textarea{font-family:"Montserrat",Arial,sans-serif;font-weight:400}
h1{font-family:"Montserrat",Arial,sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:2px}
h2{font-family:"Montserrat",Arial,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:1.5px}
h3,h4{font-family:"Montserrat",Arial,sans-serif;font-weight:700}
.button,button{font-family:"Montserrat",Arial,sans-serif;font-weight:600}
blockquote,.reasons b,.image-badge strong,.accordion summary,.gallery-slide figcaption,.review-person h3{font-family:"Montserrat",Arial,sans-serif}
.accordion summary{font-weight:600}
.gallery-slide figcaption,.review-person h3{font-weight:700}

/* Professional Google Maps contact card */
.contact{align-items:stretch}
.contact-map{display:grid;grid-template-rows:auto 1fr auto;border:1px solid #e3e7ee;border-radius:14px;box-shadow:0 22px 55px -25px rgba(27,47,83,.28)}
.map-header{display:flex;align-items:center;gap:14px;padding:19px 22px;background:#fff;border-bottom:1px solid var(--border)}
.map-header>span{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:#eaf0fb;color:var(--primary)}
.map-header>span svg{width:21px;height:21px}
.map-header small{display:block;margin-bottom:3px;color:var(--primary);font-size:.65rem;font-weight:700;letter-spacing:.14em}
.map-header strong{display:block;color:var(--ink);font-size:.9rem}
.contact-map iframe{height:100%;min-height:400px;filter:saturate(.82) contrast(1.02)}
.contact-map>a{height:62px;background:#fff;border-top:1px solid var(--border);transition:.2s}
.contact-map>a:hover{gap:14px;background:#f6f8fc;color:var(--primary-glow)}

/* Mobile process timeline */
@media(max-width:760px){
  #ablauf .section-head h2{font-size:clamp(1.85rem,8vw,2.35rem);line-height:1.16}
  #ablauf .process{position:relative;display:flex;flex-direction:column;gap:14px;margin-top:38px;padding-left:0}
  #ablauf .process:before{display:block;left:40px;right:auto;top:30px;bottom:30px;width:2px;height:auto;background:linear-gradient(var(--primary),rgba(40,74,153,.12))}
  #ablauf .process article{position:relative;min-height:118px;padding:22px 20px 20px 82px;background:#fff;border:1px solid #e2e7f0;border-radius:11px;box-shadow:0 10px 28px rgba(28,52,96,.07)}
  #ablauf .process article>span{position:absolute;z-index:1;left:17px;top:22px;width:48px;height:48px;border:5px solid var(--soft);box-shadow:none}
  #ablauf .process article>span svg{width:20px;height:20px}
  #ablauf .process b{margin:0 0 5px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}
  #ablauf .process h3{margin:0;font-size:1.08rem;line-height:1.3;letter-spacing:.02em}
  #ablauf .process p{margin:8px 0 0;font-size:.84rem;line-height:1.65}
  .map-header{padding:17px}
  .map-header strong{font-size:.78rem}
  .contact-map iframe{min-height:350px}
}

/* Warum IBO-Bau – polished mobile layout */
@media(max-width:760px){
  .striped.section{padding:78px 0}
  .striped .section-head h2{font-size:clamp(1.9rem,8vw,2.4rem);line-height:1.16}
  .striped .reasons{display:grid;grid-template-columns:1fr;gap:12px;margin-top:36px}
  .striped .reasons article{position:relative;display:grid;grid-template-columns:54px 1fr;grid-template-rows:auto auto;column-gap:16px;min-height:128px;padding:21px 18px;border:1px solid rgba(255,255,255,.12);border-radius:11px;background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.025));box-shadow:0 12px 30px rgba(0,0,0,.12)}
  .striped .reasons article b{grid-column:1;grid-row:1 / span 2;display:flex;align-items:flex-start;justify-content:center;margin:0;padding-top:2px;color:#8db4ed;font-size:2.25rem;line-height:1}
  .striped .reasons article svg{position:absolute;left:31px;bottom:22px;width:22px;height:22px;margin:0;color:#c8d9f1}
  .striped .reasons article h3{grid-column:2;grid-row:1;margin:0 0 7px;font-size:1rem;line-height:1.35;letter-spacing:.04em}
  .striped .reasons article p{grid-column:2;grid-row:2;margin:0;color:rgba(255,255,255,.68);font-size:.82rem;line-height:1.6}
}

/* Spacious desktop scale — tablet and mobile stay unchanged */
@media(min-width:1200px){
  .container{width:min(100% - 64px,1350px)}
  .split{grid-template-columns:54% 46%}
  .section{padding:128px 0}
  .section-head{max-width:780px}
  h1{font-size:clamp(5rem,6.5vw,6.25rem);line-height:1.02}
  h2{font-size:clamp(3rem,4.5vw,3.9rem);line-height:1.08}
  .hero-content>*{max-width:900px}
  .hero-copy{max-width:700px;font-size:1.17rem;line-height:1.75}
  .hero-content{padding-top:115px;padding-bottom:115px}
  .hero-buttons{margin-top:42px}
  .button{padding:17px 30px;font-size:1rem}
  .button.small{padding:12px 21px;font-size:.88rem}
  .trust{max-width:1240px;margin-top:-62px}
  .trust article{gap:21px;padding:33px}
  .trust article>svg{width:36px;height:36px}
  .trust h3{font-size:1.36rem}
  .trust p{font-size:.9rem}
  .two-col,.quality{gap:88px}
  .renovation{gap:90px}
  .about-copy{font-size:1.1rem;line-height:1.8}
  .section-head>p:last-child{font-size:1.14rem;line-height:1.8}
  .services{gap:30px;margin-top:70px}
  .service>div:last-child{padding:32px}
  .service h3{font-size:1.7rem}
  .service p{font-size:1rem;line-height:1.75}
  .service-img span{top:24px;left:24px;width:54px;height:54px}
  .service-img svg{width:28px;height:28px}
  .reasons{gap:48px;margin-top:70px}
  .reasons article{padding-top:34px}
  .reasons h3{font-size:1.5rem}
  .reasons p{font-size:1rem;line-height:1.7}
  .process{gap:38px;margin-top:70px}
  .process h3{font-size:1.55rem}
  .process p{font-size:1rem;line-height:1.7}
  .split-copy{padding:115px 72px 115px max(32px,calc((100vw - 1350px)/2))}
  .split-copy .section-head{max-width:660px}
  .split-copy .section-head h2{font-size:clamp(2.8rem,3.5vw,3.65rem);line-height:1.08}
  .split-copy .section-head>p:last-child{max-width:620px}
  .split>img{min-height:650px}
  .mini-grid{max-width:660px;gap:18px;margin-top:45px}
  .mini-grid article{min-height:132px;padding:25px 24px}
  .mini-grid h3{font-size:1.12rem;line-height:1.3}
  .mini-grid p{font-size:.9rem;line-height:1.65}
  .quality-list{gap:29px;margin-top:45px}
  .quality-list p{font-size:1rem;line-height:1.7}
  .quality-image{max-width:500px}
  .gallery-slide{height:350px}
  .gallery-swiper,.reviews-swiper{margin-top:64px}
  .review-card{min-height:330px;padding:31px}
  .review-text{font-size:.98rem}
  .area-layout{gap:100px}
  .coverage-card{padding:40px}
  .faq{max-width:1000px}
  .accordion summary{font-size:1.38rem;padding-top:28px;padding-bottom:28px}
  .contact{grid-template-columns:2fr 3.25fr;gap:70px}
  .contact-list{gap:22px;margin-top:45px}
  .contact-map iframe{min-height:470px}
  .footer-grid{gap:80px;padding-top:76px;padding-bottom:66px}
}

/* Stable WhatsApp floating action button */
.whatsapp{display:none!important;position:fixed!important;right:22px!important;bottom:22px!important;z-index:999;align-items:center;justify-content:center;width:58px;height:58px;min-width:58px;min-height:58px;padding:0;border:3px solid #fff;border-radius:50%;background:#25d366;box-shadow:0 12px 32px rgba(14,67,38,.28);line-height:0;overflow:hidden;transform:translateZ(0)}
.whatsapp svg{display:block;width:29px;height:29px;flex:0 0 29px;fill:#fff;stroke:none}
.whatsapp:hover{transform:translateZ(0) scale(1.06)}
@media(max-width:760px){
  .whatsapp{display:flex!important;right:16px!important;bottom:calc(28px + env(safe-area-inset-bottom))!important;width:52px;height:52px;min-width:52px;min-height:52px;border-width:2px;box-shadow:0 9px 24px rgba(14,67,38,.3)}
  .whatsapp svg{width:26px;height:26px;flex-basis:26px}
}

/* Refined mobile footer */
@media(max-width:760px){
  .footer-grid{display:grid;grid-template-columns:1fr;gap:0;padding-top:48px;padding-bottom:34px;text-align:left}
  .footer-brand{padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.11)}
  .footer-logo{padding:7px 10px}
  .footer-logo img{height:74px}
  .footer-brand>p{max-width:330px;margin:18px 0 0;font-size:.8rem;line-height:1.75}
  .footer-contact,.footer-legal{padding:27px 0;border-bottom:1px solid rgba(255,255,255,.11)}
  .footer-grid h3{margin:0 0 16px;color:#fff;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase}
  .footer-grid a,.footer-grid .footer-contact p{margin:0 0 11px;color:rgba(255,255,255,.74);font-size:.82rem;line-height:1.55}
  .footer-grid a{width:max-content;max-width:100%}
  .footer-grid a:last-child{margin-bottom:0}
  .footer-legal{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
  .footer-legal h3{grid-column:1 / -1}
  .copyright{padding:20px 15px 22px;font-size:.65rem;line-height:1.6}
}

/* Detailed services page */
.desktop-nav a[aria-current="page"]{color:var(--primary)}
.services-hero{position:relative;min-height:680px;display:flex;align-items:center;padding-top:108px;overflow:hidden;background:var(--dark);color:#fff}
.services-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.services-hero-overlay{position:absolute;inset:0;background:linear-gradient(95deg,rgba(20,24,34,.94),rgba(28,48,86,.78) 50%,rgba(28,48,86,.2))}
.services-hero-content{position:relative;padding-top:95px;padding-bottom:95px}
.services-hero-content h1{max-width:900px;margin-top:18px;font-size:clamp(3.3rem,6vw,5.8rem);line-height:1.02}
.services-hero-content>p:not(.eyebrow){max-width:680px;margin:25px 0 35px;color:rgba(255,255,255,.8);font-size:1.12rem;line-height:1.8}
.services-intro .section-head{max-width:900px}
.service-detail{display:grid;grid-template-columns:1fr 1fr;min-height:650px;background:#fff}
.service-detail.reverse .service-detail-image{order:2}
.service-detail.reverse .service-detail-copy{order:1}
.service-detail-image{overflow:hidden}
.service-detail-image img{width:100%;height:100%;min-height:650px;object-fit:cover;transition:transform .7s ease}
.service-detail:hover .service-detail-image img{transform:scale(1.025)}
.service-detail-copy{position:relative;display:flex;flex-direction:column;justify-content:center;padding:90px max(50px,calc((100vw - 1350px)/2)) 90px 7vw;background:#f4f6f9}
.service-detail.reverse .service-detail-copy{padding-left:max(50px,calc((100vw - 1350px)/2));padding-right:7vw;background:#fff}
.service-number{position:absolute;right:7vw;top:62px;color:#dce4f1;font-size:5rem;font-weight:800;line-height:1}
.service-detail.reverse .service-number{right:7vw}
.service-detail-copy h2{max-width:680px;margin-top:14px;font-size:clamp(2.3rem,3.5vw,3.55rem)}
.service-detail-copy>p:not(.eyebrow){max-width:680px;margin:22px 0 0;color:var(--muted);font-size:1.03rem;line-height:1.8}
.service-detail-copy ul{display:grid;gap:12px;max-width:680px;margin:30px 0 0;padding:0;list-style:none}
.service-detail-copy li{position:relative;padding-left:29px;line-height:1.55}
.service-detail-copy li:before{content:'✓';position:absolute;left:0;top:1px;color:var(--primary);font-weight:800}
.service-cta{padding:90px 0;background:linear-gradient(135deg,var(--primary),var(--primary-glow));color:#fff}
.service-cta .container{display:flex;align-items:center;justify-content:space-between;gap:50px}
.service-cta h2{max-width:850px;margin-top:14px;font-size:clamp(2.3rem,4vw,3.6rem)}
.service-cta p:not(.eyebrow){max-width:720px;color:rgba(255,255,255,.8)}
.service-cta .button{flex:0 0 auto;background:#fff;color:var(--primary)}
.service-cta .button:hover{background:#eef3fb}
@media(max-width:1050px){.services-hero{padding-top:96px}.service-detail,.service-detail.reverse{grid-template-columns:1fr}.service-detail.reverse .service-detail-image,.service-detail.reverse .service-detail-copy{order:initial}.service-detail-image img{min-height:480px}.service-detail-copy,.service-detail.reverse .service-detail-copy{padding:75px max(30px,calc((100vw - 900px)/2));}.service-number{right:40px;top:45px}.service-cta .container{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.services-hero{min-height:680px;padding-top:86px}.services-hero-content{padding-top:82px;padding-bottom:82px}.services-hero-content h1{font-size:clamp(2.6rem,12vw,3.6rem)}.services-hero-content>p:not(.eyebrow){font-size:.98rem;line-height:1.7}.service-detail-image img{min-height:300px;height:300px}.service-detail-copy,.service-detail.reverse .service-detail-copy{padding:68px 15px}.service-number{right:20px;top:25px;font-size:3.7rem}.service-detail-copy h2{font-size:clamp(1.85rem,8vw,2.4rem)}.service-detail-copy>p:not(.eyebrow){font-size:.9rem}.service-detail-copy li{font-size:.85rem}.service-cta{padding:72px 0}.service-cta .button{width:100%}}

/* Clickable service cards */
.service-link{display:block;height:100%;color:inherit;border-radius:8px}
.service-link .service{height:100%}
.service-link:focus-visible{outline:3px solid var(--primary-glow);outline-offset:4px}

/* Über uns image */
.about-image{width:100%;aspect-ratio:4/3;object-fit:cover;margin:0 0 28px;border-radius:10px;box-shadow:var(--shadow)}

/* Trockenbau background image on the left panel */
.trockenbau-feature .split-copy{position:relative;isolation:isolate;background-image:linear-gradient(100deg,rgba(27,29,34,.95),rgba(27,29,34,.8)),url("assets/trockenbau-section.png?v=20261107-1");background-size:cover;background-position:center}
.trockenbau-feature .split-copy:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(19,24,34,.06),rgba(17,23,33,.24))}
.trockenbau-feature .mini-grid article{background:rgba(26,29,36,.58);backdrop-filter:blur(4px)}

/* Contact background with readable overlay */
.contact-section{position:relative;isolation:isolate;background:url("assets/kontakt-background.png?v=20261107-1") center/cover no-repeat;color:#fff}
.contact-section:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(100deg,rgba(17,26,47,.94),rgba(31,60,113,.8) 52%,rgba(17,28,51,.68))}
.contact-section .section-head>p:last-child{color:rgba(255,255,255,.76)}
.contact-section .contact-list small{color:rgba(255,255,255,.58)}
.contact-section .contact-list strong,.contact-section .contact-list a{color:#fff}
.contact-section .contact-list article>span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(4px)}
@media(max-width:760px){.about-image{margin-bottom:24px}.trockenbau-feature .split-copy{background-position:58% center}.contact-section:before{background:rgba(18,31,56,.9)}}

/* Cinematic 3D motion system */
.hero,.services-hero{--hero-x:0;--hero-y:0;perspective:1200px}
.hero>img,.services-hero>img{transform:scale(1.045) translate3d(calc(var(--hero-x) * -18px),calc(var(--hero-y) * -12px),0);transition:transform .35s cubic-bezier(.2,.75,.25,1);will-change:transform}
.hero-content,.services-hero-content{transform-style:preserve-3d;transform:rotateX(calc(var(--hero-y) * -2deg)) rotateY(calc(var(--hero-x) * 3deg));transition:transform .28s cubic-bezier(.2,.75,.25,1);will-change:transform}
.hero-content .eyebrow,.services-hero-content .eyebrow{opacity:0;animation:hero-eyebrow-in .75s .12s cubic-bezier(.2,.8,.2,1) forwards,hero-eyebrow-float 5s 1.2s ease-in-out infinite}
.hero-content h1,.services-hero-content h1{opacity:0;transform-origin:left center;animation:hero-title-in 1.15s .22s cubic-bezier(.16,.85,.25,1) forwards;text-shadow:0 1px 0 rgba(255,255,255,.1),0 12px 35px rgba(0,0,0,.22)}
.hero-content .hero-copy,.services-hero-content>p:not(.eyebrow){opacity:0;animation:hero-copy-in .9s .58s cubic-bezier(.2,.8,.2,1) forwards}
.hero-buttons,.services-hero-content>.button{opacity:0;animation:hero-actions-in .8s .78s cubic-bezier(.2,.8,.2,1) forwards}
.hero .button,.services-hero .button{position:relative;overflow:hidden;transform-style:preserve-3d;box-shadow:0 14px 35px rgba(13,35,82,.2)}
.hero .button:before,.services-hero .button:before{content:'';position:absolute;inset:-2px;z-index:-1;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.28) 45%,transparent 65%);transform:translateX(-130%);transition:transform .7s ease}
.hero .button:hover:before,.services-hero .button:hover:before{transform:translateX(130%)}
.hero .button:hover,.services-hero .button:hover{transform:translateY(-4px) translateZ(22px);box-shadow:0 22px 42px rgba(11,31,73,.3)}
.tilt-card{--tilt-x:0deg;--tilt-y:0deg;transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(0);transform-style:preserve-3d;will-change:transform;transition:transform .16s ease,box-shadow .3s ease}
.service-link:hover .tilt-card,.tilt-card:hover{box-shadow:0 28px 55px -22px rgba(28,57,119,.32)}
.tilt-card>*{transform:translateZ(12px)}
.reveal.is-visible,.reveal.visible{animation:reveal-depth .75s cubic-bezier(.2,.8,.2,1) both}
@keyframes hero-title-in{0%{opacity:0;transform:translate3d(-45px,60px,-180px) rotateX(18deg) rotateY(-7deg);filter:blur(8px)}65%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translate3d(0,0,0) rotateX(0) rotateY(0);filter:blur(0)}}
@keyframes hero-eyebrow-in{from{opacity:0;transform:translate3d(0,-25px,-60px);letter-spacing:.4em}to{opacity:1;transform:translate3d(0,0,20px);letter-spacing:.22em}}
@keyframes hero-eyebrow-float{0%,100%{transform:translate3d(0,0,20px)}50%{transform:translate3d(8px,-5px,32px)}}
@keyframes hero-copy-in{from{opacity:0;transform:translate3d(35px,22px,-80px)}to{opacity:1;transform:translate3d(0,0,14px)}}
@keyframes hero-actions-in{from{opacity:0;transform:translate3d(0,35px,-80px)}to{opacity:1;transform:translate3d(0,0,24px)}}
@keyframes reveal-depth{from{opacity:0;transform:translate3d(0,34px,-45px) rotateX(4deg)}to{opacity:1;transform:translate3d(0,0,0) rotateX(0)}}
@media(max-width:760px){.hero>img,.services-hero>img{transform:scale(1.025)}.hero-content,.services-hero-content{transform:none}.hero-content h1,.services-hero-content h1{animation-duration:.85s}.tilt-card{transform:none!important}.tilt-card>*{transform:none}}
@media(prefers-reduced-motion:reduce){.hero>img,.services-hero>img,.hero-content,.services-hero-content,.tilt-card,.tilt-card>*{transform:none!important;transition:none!important}.hero-content .eyebrow,.services-hero-content .eyebrow,.hero-content h1,.services-hero-content h1,.hero-content .hero-copy,.services-hero-content>p:not(.eyebrow),.hero-buttons,.services-hero-content>.button,.reveal{opacity:1!important;animation:none!important;filter:none!important}}

/* Enhanced 3D service cards */
.service-link{perspective:1100px}
.service-link .service{--shine-x:50%;--shine-y:50%;position:relative;transform-style:preserve-3d;backface-visibility:hidden}
.service-link .service:after{content:'';position:absolute;z-index:4;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--shine-x) var(--shine-y),rgba(255,255,255,.32),transparent 34%);opacity:0;pointer-events:none;transition:opacity .25s ease}
.service-link:hover .service:after{opacity:.7}
.service-link .service-img{transform:translateZ(22px);transition:transform .25s ease}
.service-link .service>div:last-child{position:relative;z-index:3;transform:translateZ(34px);background:#fff;transition:transform .25s ease}
.service-link .service-img span{z-index:5;transform:translateZ(48px);box-shadow:0 12px 24px rgba(25,52,112,.24);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}
.service-link:hover .service-img span{transform:translateZ(65px) translateY(-5px) rotate(-4deg) scale(1.08);box-shadow:0 20px 34px rgba(25,52,112,.32)}
.service-link:hover .service-img img{transform:scale(1.085)}
.service-link:hover .service h3{color:var(--primary)}
.service-link .service h3{transition:color .25s ease,transform .25s ease}
.service-link:hover .service h3{transform:translateX(4px)}
@media(max-width:760px){.service-link{perspective:900px}.service-link .service{transform:none!important}.service-link .service-img,.service-link .service>div:last-child,.service-link .service-img span{transform:none!important}.service-link .service:after{display:none}}

/* Mobile viewport compatibility — prevents partial-width rendering */
@media(max-width:760px){
  html,body{width:100%;max-width:100%;min-width:0;margin:0;overflow-x:hidden}
  body{position:relative}
  main,.hero{width:100%;max-width:100%;min-width:100%;margin-left:0;margin-right:0}
  .site-header{left:0;right:0;width:100%;max-width:100%}
  .container{width:calc(100% - 30px);max-width:1216px;margin-left:auto;margin-right:auto}
  .hero>img,.hero-overlay{left:0;right:0;width:100%;max-width:none}
  .hero-content{width:calc(100% - 30px);max-width:none}
  .hero-buttons{width:100%}
  .hero-buttons .button{max-width:100%}
  .whatsapp{transform:none!important}
  .whatsapp:hover{transform:none!important}
  .quality>div{order:1}
  .quality .quality-image{order:2;grid-row:auto;margin-top:4px}
}

/* Einsatzgebiet photographic background */
.area{
  position:relative;
  isolation:isolate;
  background:
    linear-gradient(105deg,rgba(16,33,72,.94) 0%,rgba(24,58,123,.88) 48%,rgba(22,55,116,.72) 100%),
    url("assets/hero.jpg?v=20261107-1") center 48%/cover no-repeat;
}
.area:before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(180deg,rgba(7,18,43,.12),rgba(7,18,43,.36));
  pointer-events:none;
}
.area>.container{position:relative;z-index:1}
.area .districts span{
  border-color:rgba(255,255,255,.3);
  background:rgba(13,31,70,.54);
  color:#fff;
  box-shadow:0 8px 24px rgba(4,13,34,.12);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.area .districts span:hover{
  border-color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.15);
  color:#fff;
  transform:translateY(-2px);
}

/* Refined mobile reveal for Leistungen cards */
@media(max-width:760px) and (prefers-reduced-motion:no-preference){
  .services{overflow:visible}
  .services .service-link.reveal{
    opacity:0;
    transform:translate3d(-28px,22px,0)!important;
    transition:opacity .62s ease,transform .7s cubic-bezier(.22,1,.36,1);
  }
  .services .service-link:nth-child(even).reveal{
    transform:translate3d(28px,22px,0)!important;
  }
  .services .service-link.reveal.visible{
    opacity:1;
    transform:translate3d(0,0,0)!important;
  }
  .services .service-link .service-img img{
    transform:scale(1.08);
    transition:transform .9s cubic-bezier(.22,1,.36,1);
  }
  .services .service-link.visible .service-img img{transform:scale(1)}
  .services .service-link .service-img span{
    opacity:0;
    transform:translateY(12px) scale(.9)!important;
    transition:opacity .38s ease .24s,transform .48s cubic-bezier(.22,1,.36,1) .24s!important;
  }
  .services .service-link.visible .service-img span{opacity:1;transform:none!important}
  .services .service-link:active .service{
    transform:scale(.985)!important;
    box-shadow:0 12px 28px rgba(25,52,112,.16);
    transition:transform .14s ease,box-shadow .14s ease;
  }
}

/* Keep the Leistungen heading inside narrow mobile viewports */
@media(max-width:480px){
  #leistungen .section-head h2{
    max-width:100%;
    font-size:clamp(1.72rem,8.1vw,2.08rem);
    line-height:1.16;
    letter-spacing:1px;
    overflow-wrap:break-word;
    hyphens:auto;
  }
}

.service-detail[id]{scroll-margin-top:108px}
.footer-contact>span{display:block;margin:10px 0;font-size:.87rem;color:rgba(255,255,255,.78)}

/* Selected projects directly after the hero */
.project-showcase{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#f7f9fc 0%,#fff 100%);
}
.project-showcase:before{
  content:"";
  position:absolute;
  top:-240px;
  right:-220px;
  width:560px;
  height:560px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(40,74,153,.09),transparent 68%);
  pointer-events:none;
}
.project-showcase-head{
  position:relative;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:60px;
  margin-bottom:48px;
}
.project-showcase-head>p{
  max-width:470px;
  margin:0 0 5px;
  color:var(--muted);
  font-size:1.02rem;
}
.project-grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.project-card{
  position:relative;
  isolation:isolate;
  min-height:355px;
  margin:0;
  overflow:hidden;
  border-radius:10px;
  background:#1c2c52;
  box-shadow:0 16px 42px -24px rgba(22,42,84,.55);
  cursor:zoom-in;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease;
}
.project-card:after{
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  background:linear-gradient(180deg,rgba(10,20,44,.02) 35%,rgba(12,25,55,.88) 100%);
  transition:background .4s ease;
}
.project-card img{
  width:100%;
  height:100%;
  min-height:355px;
  object-fit:cover;
  transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .45s ease;
}
.project-card figcaption{
  position:absolute;
  z-index:2;
  right:0;
  bottom:0;
  left:0;
  padding:25px 27px;
  color:#fff;
  transform:translateY(5px);
  transition:transform .4s ease;
}
.project-card figcaption span{
  display:block;
  margin-bottom:7px;
  color:#9bc0f3;
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.project-card h3{margin:0;font-size:1.35rem;letter-spacing:.02em}
.project-card small{
  display:block;
  max-height:0;
  margin-top:0;
  overflow:hidden;
  color:rgba(255,255,255,.72);
  font-size:.76rem;
  font-weight:600;
  opacity:0;
  transition:max-height .4s ease,margin .4s ease,opacity .35s ease;
}
.project-card:hover,.project-card:focus-visible{
  transform:translateY(-7px);
  box-shadow:0 28px 55px -25px rgba(22,42,84,.62);
}
.project-card:hover img,.project-card:focus-visible img{transform:scale(1.055);filter:saturate(1.05)}
.project-card:hover figcaption,.project-card:focus-visible figcaption{transform:none}
.project-card:hover small,.project-card:focus-visible small{max-height:30px;margin-top:7px;opacity:1}
.project-card:focus-visible{outline:3px solid var(--primary-glow);outline-offset:4px}
.project-showcase-cta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:22px;
  margin-top:38px;
}
.project-showcase-cta p{margin:0;color:var(--muted);font-weight:600}
@media(max-width:1050px){
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-showcase-head{align-items:start;flex-direction:column;gap:18px}
}
@media(max-width:620px){
  .project-showcase-head{margin-bottom:30px}
  .project-grid{grid-template-columns:1fr;gap:16px}
  .project-card,.project-card img{min-height:300px}
  .project-card figcaption{padding:22px}
  .project-card small{max-height:30px;margin-top:7px;opacity:1}
  .project-showcase-cta{align-items:stretch;flex-direction:column;margin-top:28px}
  .project-showcase-cta .button{width:100%}
  .lightbox-nav{top:auto;bottom:18px;width:45px;height:45px;transform:none}
  .lightbox-prev{left:18px}.lightbox-next{right:18px}
  .lightbox-counter{bottom:25px}
}
