:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#121821;background:#f7f8f7;--navy: #071d37;--blue: #123f73;--red: #d51f2a;--ink: #121821;--muted: #657183;--line: #dfe4ea;--card: #ffffff;--radius: 22px;--shadow: 0 24px 70px rgba(7, 29, 55, .15)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem clamp(1rem,4vw,3rem);background:#ffffffeb;border-bottom:1px solid rgba(7,29,55,.08);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:.8rem;text-decoration:none}.brand-mark-image{display:block;width:auto;height:46px;max-width:118px;object-fit:contain;border-radius:8px}.brand-text{display:flex;flex-direction:column;line-height:1.05}.brand-text strong{color:#000;font-size:1.05rem;font-weight:800;letter-spacing:.08em}.brand-text small{margin-top:.18rem;color:#000000b8;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}@media(max-width:700px){.brand{gap:.55rem}.brand-mark-image{height:38px;max-width:98px;border-radius:7px}.brand-text strong{font-size:.9rem}.brand-text small{font-size:.56rem;letter-spacing:.05em}}nav{display:flex;align-items:center;gap:.35rem}nav a{padding:.65rem .85rem;border-radius:999px;color:#263244;font-weight:650;font-size:.94rem}nav a:hover{background:#eef2f6;color:var(--navy)}.menu-button{display:none}main{overflow:hidden}.hero{position:relative;min-height:calc(100svh - 78px);display:grid;align-items:end;isolation:isolate;padding:clamp(4rem,8vw,7rem) clamp(1rem,4vw,3rem) clamp(7.5rem,10vw,8.5rem);color:#fff}.hero-slideshow{overflow:hidden;background:#07111f}.hero-slider{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:#07111f}.hero-slider:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#030b1642,#030b1614 34%,#030b1605 70%),linear-gradient(0deg,#030b1642,#030b160f 28%,#030b1605)}.hero-slider img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:scale(1.015);transition:opacity .9s ease,transform 6.2s ease}.hero-slider img.active{opacity:1;transform:scale(1.055)}.hero-copy{width:min(580px,100%);margin-left:max(0px,calc((100vw - 1240px)/2));padding:clamp(.8rem,1.8vw,1.25rem);border-left:5px solid var(--red);background:linear-gradient(90deg,rgba(4,14,28,.6),rgba(4,14,28,.24) 62%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-shadow:0 12px 30px rgba(0,0,0,.55)}.hero .eyebrow{color:#fff}.hero h1{max-width:880px;color:#fff;font-size:clamp(2.75rem,7.6vw,7rem);line-height:.86;letter-spacing:-.08em;text-transform:uppercase;text-wrap:balance}.hero .lead{max-width:670px;margin:1.2rem 0 0;color:#ffffffeb;font-size:clamp(1.05rem,1.65vw,1.28rem);line-height:1.45}.actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.45rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.9rem 1.2rem;border-radius:12px;font-weight:850;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.button.primary{background:var(--red);color:#fff;box-shadow:0 18px 44px #d51f2a57}.button.primary:hover{transform:translateY(-2px);box-shadow:0 22px 52px #d51f2a6b}.button.secondary{border-color:var(--line);background:#fff;color:var(--navy)}.button.glass{color:#fff;border-color:#ffffff8a;background:#ffffff21;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.button.glass:hover{transform:translateY(-2px);background:#fff3}.slide-caption{position:absolute;right:clamp(1rem,4vw,3rem);bottom:clamp(6.8rem,8vw,7.7rem);width:min(410px,calc(100% - 2rem));padding:1rem 1.1rem;color:#fff;border:1px solid rgba(255,255,255,.24);border-bottom:4px solid var(--red);background:#0411217a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 24px 70px #0000003d}.slide-caption span{display:block;margin-bottom:.35rem;color:#ffffffc2;font-size:.78rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.slide-caption strong{display:block;font-size:clamp(1rem,1.7vw,1.35rem);line-height:1.2;letter-spacing:-.025em}.slide-controls{position:absolute;left:50%;bottom:1rem;transform:translate(-50%);display:grid;grid-template-columns:repeat(6,minmax(56px,96px));gap:.65rem;width:min(660px,calc(100% - 2rem));z-index:3}.slide-controls button{display:block;padding:0;aspect-ratio:1.65;border:2px solid rgba(255,255,255,.46);border-radius:12px;overflow:hidden;background:#ffffff29;cursor:pointer;opacity:.72;transition:transform .2s ease,opacity .2s ease,border-color .2s ease}.slide-controls button:hover,.slide-controls button.active{opacity:1;transform:translateY(-3px);border-color:var(--red)}.slide-controls img{width:100%;height:100%;object-fit:cover}.scroll-cue{position:absolute;right:clamp(1rem,4vw,3rem);bottom:1.45rem;color:#ffffffbd;font-size:.72rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.scroll-cue:after{content:"";display:block;width:1px;height:34px;margin:.65rem auto 0;background:#fff9;animation:scrollPulse 1.5s ease-in-out infinite}@keyframes scrollPulse{0%,to{transform:scaleY(.4);opacity:.35;transform-origin:top}50%{transform:scaleY(1);opacity:1;transform-origin:top}}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;max-width:1180px;margin:0 auto;padding:0 clamp(1rem,4vw,3rem) 4rem}.stats div{background:var(--navy);color:#fff;padding:1.35rem}.stats div:first-child{border-radius:18px 0 0 18px}.stats div:last-child{border-radius:0 18px 18px 0}.stats strong{display:block;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1}.stats span{display:block;margin-top:.45rem;color:#ffffffc2}.split,.services-section,.work-band,.cta{max-width:1240px;margin:0 auto;padding:clamp(3rem,7vw,6rem) clamp(1rem,4vw,3rem)}.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(1.5rem,5vw,5rem);border-top:1px solid var(--line)}.intro-feature{position:relative;max-width:1180px;margin-top:clamp(2rem,4vw,3.5rem);background:radial-gradient(circle at 14% 18%,rgba(213,31,42,.12),transparent 28%),linear-gradient(135deg,#fff,#eef3f8);border:1px solid rgba(7,29,55,.08);border-radius:28px;box-shadow:var(--shadow)}.intro-feature:before{content:"";position:absolute;inset:auto clamp(1.2rem,4vw,3rem) 0 auto;width:min(34vw,420px);height:5px;background:var(--red);border-radius:999px 999px 0 0}.intro-content img{width:min(420px,100%);margin-top:1.35rem;border-radius:18px;border:8px solid #fff;box-shadow:0 18px 48px #071d372e;object-fit:cover}.split p:not(.eyebrow){color:#354153;font-size:1.08rem;line-height:1.7;margin:0 0 1rem}.section-heading{position:relative;max-width:760px;margin-bottom:2rem;padding-bottom:1.15rem}.section-heading:after{content:"";position:absolute;left:0;bottom:0;width:min(220px,45vw);height:5px;background:var(--red);border-radius:999px}.section-heading p:last-child{color:var(--muted);font-size:1.05rem;line-height:1.6}.services-section{position:relative}.services-section:before{content:"";position:absolute;top:clamp(3rem,7vw,6rem);right:clamp(1rem,4vw,3rem);width:min(32vw,360px);height:min(32vw,360px);border-radius:999px;background:radial-gradient(circle,rgba(213,31,42,.08),transparent 68%);pointer-events:none}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;position:relative}.service-card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.service-card:hover{transform:translateY(-4px);box-shadow:0 18px 50px #071d371f}.service-card img{width:100%;aspect-ratio:1.35;object-fit:cover}.service-card span{display:block;padding:1rem 1rem .35rem;color:var(--navy);font-weight:850;font-size:1.04rem}.service-card p{margin:0;padding:0 1rem 1.2rem;color:var(--muted);line-height:1.55}.work-band{position:relative;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;background:var(--navy);color:#fff;border-radius:28px;margin-top:2rem;overflow:hidden}.work-band:before{content:"";position:absolute;left:clamp(1rem,4vw,3rem);top:clamp(3rem,7vw,6rem);width:5px;height:min(160px,40%);background:var(--red);border-radius:999px}.work-band>div:first-child{padding-left:1.5rem}.work-band h2{color:#fff}.work-band p:not(.eyebrow){color:#ffffffbd;line-height:1.65}.work-gallery{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.work-gallery img{width:100%;aspect-ratio:1.25;object-fit:cover;border-radius:16px}.work-gallery img:first-child{grid-row:span 2;height:100%}.cta{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.cta div{max-width:760px}.cta p:not(.eyebrow){color:var(--muted);font-size:1.06rem;line-height:1.6}.site-footer{display:flex;justify-content:space-between;gap:2rem;padding:2rem clamp(1rem,4vw,3rem);background:#07111f;color:#fff}.site-footer p{color:#ffffffad;margin:.4rem 0 0}.site-footer .footer-links{display:flex;flex-direction:column;gap:.45rem;text-align:right}.site-footer a{color:#fff;text-decoration:underline;text-underline-offset:4px}.site-footer a.credit{color:#ffffff9e;font-size:.9rem;margin-top:.25rem}.site-footer a.credit:hover{color:#fff}@media(max-width:980px){.hero{min-height:86svh}.slide-caption{right:auto;left:clamp(1rem,4vw,3rem);bottom:6.5rem}}@media(max-width:760px){.hero{min-height:82svh;align-items:end;padding-bottom:7.5rem}.hero h1{font-size:clamp(2.55rem,12vw,4.25rem)}.hero-copy{padding:.85rem;background:#040e1c8a}.hero-slider:after{background:linear-gradient(0deg,#030b1680,#030b1629 48%,#030b1608)}.slide-caption{display:none}.slide-controls{grid-template-columns:repeat(6,1fr);gap:.35rem}.scroll-cue{display:none}}@media(max-width:980px){.hero,.split,.work-band{grid-template-columns:1fr}.intro-feature{margin-inline:clamp(1rem,4vw,3rem)}.service-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr}.stats div,.stats div:first-child,.stats div:last-child{border-radius:0}.stats div:first-child{border-radius:18px 18px 0 0}.stats div:last-child{border-radius:0 0 18px 18px}}@media(max-width:760px){.site-header{align-items:flex-start;flex-wrap:wrap}.menu-button{display:inline-flex;margin-left:auto;padding:.65rem .85rem;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:800}nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;padding-top:.6rem}nav.open{display:flex}nav a{background:#f1f4f7}.service-grid,.work-gallery{grid-template-columns:1fr}.work-gallery img:first-child{grid-row:auto}.cta,.site-footer{flex-direction:column;align-items:flex-start}.site-footer .footer-links{text-align:left}}.placeholder-page{max-width:860px;margin:0 auto;padding:clamp(4rem,10vw,8rem) clamp(1rem,4vw,3rem);min-height:60vh}.placeholder-page p:not(.eyebrow){color:var(--muted);font-size:1.15rem;line-height:1.65}.placeholder-page .button{margin-top:1rem}nav a.portal-button{margin-left:.35rem;padding:.72rem 1.05rem;border-radius:10px;background:var(--red);color:#fff;box-shadow:0 10px 28px #d51f2a40}nav a.portal-button:hover{background:#b81822;color:#fff;transform:translateY(-1px)}.work-button{margin-top:1rem;color:#fff;border-color:#ffffff73;background:#ffffff14}.work-button:hover{background:#ffffff29;transform:translateY(-2px)}.contact-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,5.5rem);max-width:1180px;margin:clamp(3rem,7vw,6rem) auto;padding:clamp(2rem,5vw,4.5rem) clamp(1rem,4vw,3rem);border:1px solid rgba(7,29,55,.09);border-radius:28px;background:radial-gradient(circle at 10% 10%,rgba(213,31,42,.1),transparent 28%),linear-gradient(135deg,#fff,#eef3f8);box-shadow:var(--shadow)}.contact-details{padding-left:1.3rem;border-left:5px solid var(--red)}.contact-details p:not(.eyebrow){color:var(--muted);font-size:1.06rem;line-height:1.65}.contact-details address{display:flex;flex-direction:column;gap:.65rem;margin-top:2rem;font-style:normal;color:#354153}.contact-details address strong{color:var(--navy);font-size:1.1rem}.contact-details address a{width:fit-content;color:var(--red);font-weight:850}.contact-form{padding:clamp(1.25rem,3vw,2rem);border-radius:20px;background:#fff;border:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-form label{display:flex;flex-direction:column;gap:.45rem;color:var(--navy);font-weight:750}.contact-form .full-width{grid-column:1 / -1}.contact-form input,.contact-form textarea{width:100%;border:1px solid #cbd3dd;border-radius:10px;padding:.85rem .9rem;color:var(--ink);background:#fbfcfd;font:inherit}.contact-form textarea{resize:vertical;min-height:145px}.contact-form input:focus,.contact-form textarea:focus{outline:3px solid rgba(213,31,42,.14);border-color:var(--red)}.contact-form .button{margin-top:1.15rem;cursor:pointer}.honeypot{position:absolute!important;left:-9999px!important}.gallery-hero{min-height:48svh;display:grid;align-items:end;padding:clamp(5rem,10vw,8rem) clamp(1rem,6vw,5rem) clamp(3rem,7vw,5rem);color:#fff;background:linear-gradient(90deg,#030b16c7,#030b162e),url(../../../images/hero-hafele.webp) center / cover no-repeat}.gallery-hero>div{width:min(760px,100%);padding-left:1.25rem;border-left:5px solid var(--red)}.gallery-hero h1{margin:.35rem 0 1rem;color:#fff;font-size:clamp(2.8rem,7vw,6.2rem);line-height:.95;letter-spacing:-.055em}.gallery-hero p:not(.eyebrow){max-width:650px;margin:0;color:#ffffffe0;font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.55}.gallery-section{max-width:1440px;margin:0 auto;padding:clamp(2rem,5vw,4.5rem) clamp(1rem,3vw,2.5rem)}.masonry-gallery{columns:3 320px;column-gap:1rem}.masonry-gallery figure{break-inside:avoid;margin:0 0 1rem;overflow:hidden;border-radius:16px;background:#e8edf2;box-shadow:0 12px 35px #071d371a}.masonry-gallery img{width:100%;height:auto;transition:transform .45s ease}.masonry-gallery figure:hover img{transform:scale(1.025)}.gallery-contact-band{display:flex;align-items:center;justify-content:space-between;gap:2rem;max-width:1180px;margin:0 auto clamp(3rem,7vw,6rem);padding:clamp(2rem,5vw,4rem) clamp(1.5rem,4vw,3rem);border-radius:24px;background:var(--navy);color:#fff}.gallery-contact-band h2{margin-bottom:0;color:#fff}@media(max-width:980px){.contact-section{grid-template-columns:1fr;margin-inline:clamp(1rem,4vw,3rem)}}@media(max-width:760px){nav a.portal-button{margin-left:0;text-align:center}.form-grid{grid-template-columns:1fr}.contact-form .full-width{grid-column:auto}.gallery-contact-band{flex-direction:column;align-items:flex-start;margin-inline:1rem}.gallery-hero{min-height:42svh}}.contact-credentials{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-top:1.6rem}.contact-credentials img{display:block;width:auto;max-width:220px;max-height:115px;object-fit:contain;background:#fff}.contact-credentials img:first-child{max-width:230px}.contact-credentials img:nth-child(2){max-width:200px}.contact-credentials img:nth-child(3){max-width:220px}@media(max-width:640px){.contact-credentials{align-items:center}.contact-credentials img{max-width:min(220px,80vw)}}.thank-you-page{min-height:78vh;display:flex;align-items:center;justify-content:center;padding:9rem 1.5rem 5rem;background:radial-gradient(circle at top left,rgba(227,6,19,.12),transparent 32rem),#f5f6f8}.thank-you-card{width:min(100%,760px);padding:clamp(2rem,5vw,4rem);border-radius:28px;background:#fff;box-shadow:0 24px 70px #1018271f;text-align:center}.thank-you-card .eyebrow{justify-content:center}.thank-you-card h1{margin:0 auto 1rem;max-width:680px;color:#101827;font-size:clamp(2.4rem,6vw,4.6rem);line-height:.95;letter-spacing:-.05em}.thank-you-card p{max-width:560px;margin:0 auto;color:#101827b8;font-size:1.08rem}.thank-you-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:2rem}.hidden{display:none}
