*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #1a1a1a;--color-secondary: #4a4a4a;--color-tertiary: #6a6a6a;--color-accent: #2c5f7c;--color-light: #f8f9fa;--color-border: #e0e0e0;--color-white: #ffffff;--max-width: 1200px;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{font-family:var(--font-primary);line-height:1.7;color:var(--color-primary);font-size:16px;-webkit-font-smoothing:antialiased}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple{to{transform:scale(4);opacity:0}}.fade-in{animation:fadeInUp .6s ease-out forwards}.ripple-effect{position:absolute;border-radius:50%;background-color:#fff9;transform:scale(0);animation:ripple .6s ease-out;pointer-events:none}.stagger-animation>*{opacity:0;animation:fadeInUp .6s ease-out forwards}.stagger-animation>*:nth-child(1){animation-delay:.1s}.stagger-animation>*:nth-child(2){animation-delay:.2s}.stagger-animation>*:nth-child(3){animation-delay:.3s}.stagger-animation>*:nth-child(4){animation-delay:.4s}.stagger-animation>*:nth-child(5){animation-delay:.5s}.stagger-animation>*:nth-child(6){animation-delay:.6s}h1,h2,h3{line-height:1.3;font-weight:600;margin-bottom:1rem;color:var(--color-primary)}h1{font-size:2.5rem;letter-spacing:-.02em}h2{font-size:2rem;letter-spacing:-.01em;margin-top:2.5rem}h3{font-size:1.5rem}p{margin-bottom:1rem;color:var(--color-secondary)}.lead-text{font-size:1.25rem;line-height:1.8;color:var(--color-secondary);margin-bottom:2rem}.container{max-width:var(--max-width);margin:0 auto;padding:0 2rem}header{background-color:var(--color-white);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1000;padding:1.25rem 0}.nav-container{max-width:var(--max-width);margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;position:relative}.logo img{height:50px;display:block;transition:transform .3s ease,filter .3s ease}.logo img:hover{transform:scale(1.05);filter:brightness(.9)}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:space-around;width:30px;height:25px;background:transparent;border:none;cursor:pointer;padding:0;z-index:1001}.mobile-menu-toggle span{width:30px;height:3px;background-color:var(--color-primary);border-radius:3px;transition:all .3s ease;transform-origin:center}.mobile-menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}.mobile-menu-toggle.active span:nth-child(2){opacity:0;transform:translate(-20px)}.mobile-menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-links{display:flex;list-style:none;gap:2.5rem;align-items:center}.nav-links a{color:var(--color-secondary);text-decoration:none;font-weight:500;font-size:.95rem;transition:color .3s ease;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-.5rem;left:50%;width:0;height:2px;background-color:var(--color-accent);transition:width .3s ease,left .3s ease}.nav-links a:hover{color:var(--color-primary)}.nav-links a:hover:after{width:100%;left:0}.nav-links a.active{color:var(--color-primary)}.nav-links a.active:after{width:100%;left:0}.hero{position:relative;height:70vh;min-height:500px;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#0000004d,#00000080);z-index:2}.hero-content{position:relative;z-index:3;text-align:center;color:var(--color-white);max-width:800px;padding:0 2rem}.hero-content h1{font-size:3.5rem;font-weight:600;margin-bottom:1rem;color:var(--color-white)}.hero-subtitle{font-size:1.5rem;margin-bottom:.75rem;font-weight:500;color:var(--color-white)}.hero-description{font-size:1.125rem;margin-bottom:2rem;color:#ffffffe6}.cta-link{display:inline-block;color:var(--color-white);text-decoration:none;font-size:1.125rem;font-weight:500;padding:.875rem 2rem;border:2px solid var(--color-white);transition:all .3s ease;position:relative;overflow:hidden}.cta-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background-color:var(--color-white);transition:left .3s ease;z-index:-1}.cta-link:hover:before{left:0}.cta-link:hover{color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.text-link{color:var(--color-accent);text-decoration:none;font-weight:500;position:relative;display:inline-block;transition:transform .2s ease}.text-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background-color:var(--color-accent);transition:width .3s ease}.text-link:hover{transform:translate(4px)}.text-link:hover:after{width:calc(100% - 20px)}.page-hero{padding:6rem 0 4rem;border-bottom:1px solid var(--color-border)}.page-subtitle{font-size:1.25rem;color:var(--color-secondary);font-weight:400}.intro-section{padding:4rem 0;border-bottom:1px solid var(--color-border)}.intro-text{max-width:900px;margin:0 auto;text-align:center}.quote{margin-top:3rem;padding:2rem 3rem;border-left:4px solid var(--color-accent);background-color:var(--color-light);font-style:italic;max-width:700px;margin-left:auto;margin-right:auto}.quote p{font-size:1.35rem;line-height:1.6;color:var(--color-primary);margin:0;font-weight:400}.services-overview{padding:6rem 0}.service-section{margin-bottom:6rem}.section-header{margin-bottom:4rem}.section-header h2{margin-top:0;margin-bottom:1rem}.section-intro{font-size:1.125rem;color:var(--color-secondary);max-width:800px}.two-column-layout{display:grid;grid-template-columns:1fr 400px;gap:4rem;margin-bottom:2rem}.services-list{display:flex;flex-direction:column;gap:2.5rem}.service-item{border-left:2px solid var(--color-border);padding-left:1.5rem;transition:border-color .3s ease,transform .3s ease}.service-item:hover{border-left-color:var(--color-accent);transform:translate(8px)}.service-item h3{font-size:1.25rem;margin-bottom:.5rem}.service-item ul{margin-left:1.5rem;color:var(--color-secondary)}.service-item li{margin-bottom:.5rem}.image-showcase{display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:120px;height:fit-content}.showcase-image{width:100%;height:auto;box-shadow:0 2px 12px #00000014;transition:transform .3s ease,box-shadow .3s ease}.showcase-image:hover{transform:scale(1.02);box-shadow:0 4px 20px #0000001f}.commercial-content{display:flex;flex-direction:column;gap:2.5rem;max-width:900px}.divider{height:1px;background-color:var(--color-border);margin:6rem 0}.section-footer{margin-top:2rem}.service-areas{padding:4rem 0;background-color:var(--color-light);text-align:center}.service-areas h2{margin-top:0}.areas-text{font-size:1.125rem;color:var(--color-secondary)}.contact-preview{padding:6rem 0;text-align:center}.contact-preview-content h2{margin-top:0}.contact-info-inline{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.5rem 0;flex-wrap:wrap}.contact-link{color:var(--color-accent);text-decoration:none;font-weight:500;font-size:1.125rem;transition:color .3s ease,transform .2s ease;display:inline-block}.contact-link:hover{color:var(--color-primary);transform:scale(1.02)}.separator{color:var(--color-tertiary)}.content-section{padding:4rem 0}.services-detail{max-width:900px;margin:0}.service-detail-item{margin-bottom:4rem;padding-bottom:4rem;border-bottom:1px solid var(--color-border)}.service-detail-item:last-child{border-bottom:none;padding-bottom:0}.service-detail-item h2{margin-top:0}.feature-list{list-style:none;margin-left:0;margin-top:1rem}.feature-list li{padding-left:1.5rem;position:relative;margin-bottom:.75rem;color:var(--color-secondary)}.feature-list li:before{content:"—";position:absolute;left:0;color:var(--color-accent)}.project-gallery{padding:4rem 0;background-color:var(--color-light)}.project-gallery h2{margin-top:0;margin-bottom:.5rem}.gallery-intro{text-align:center;color:var(--color-secondary);margin-bottom:2rem;font-size:1rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.gallery-item{background-color:var(--color-white);overflow:hidden;box-shadow:0 2px 8px #0000000f;transition:transform .3s ease,box-shadow .3s ease;cursor:pointer;position:relative}.gallery-item:after{content:"🔍";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);font-size:3rem;color:var(--color-white);background-color:#0009;width:80px;height:80px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:transform .3s ease;pointer-events:none}.gallery-item:hover{transform:translateY(-8px);box-shadow:0 8px 24px #00000026}.gallery-item:hover:after{transform:translate(-50%,-50%) scale(1)}.gallery-item img{width:100%;height:300px;object-fit:cover;display:block;transition:transform .3s ease,filter .3s ease}.gallery-item:hover img{transform:scale(1.05);filter:brightness(.8)}.gallery-caption{padding:1rem 1.25rem;font-weight:500;color:var(--color-primary);margin:0}.cta-section{padding:6rem 0;text-align:center;border-top:1px solid var(--color-border)}.cta-section h2{margin-top:0}.about-content{max-width:900px;margin:0}.about-text h2:first-of-type{margin-top:0}.contact-layout{display:grid;grid-template-columns:400px 1fr;gap:4rem;max-width:1100px;margin:0 auto}.contact-info-centered{max-width:700px;margin:0 auto}.contact-info-centered h2{margin-top:0;margin-bottom:3rem;text-align:center}.contact-info-box h2{margin-top:0;margin-bottom:2rem}.contact-detail{margin-bottom:2.5rem;transition:transform .3s ease}.contact-detail:hover{transform:translate(4px)}.contact-detail h3{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-tertiary);font-weight:600;margin-bottom:.5rem}.contact-detail p{margin:0;line-height:1.8}.contact-link-large{color:var(--color-accent);text-decoration:none;font-size:1.25rem;font-weight:500;display:block;transition:color .3s ease,transform .2s ease;position:relative}.contact-link-large:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background-color:var(--color-accent);transition:width .3s ease}.contact-link-large:hover{color:var(--color-primary);transform:translate(4px)}.contact-link-large:hover:after{width:100%}.social-link-contact{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-accent);text-decoration:none;font-size:1.125rem;font-weight:500;transition:color .3s ease,transform .2s ease}.social-link-contact:hover{color:var(--color-primary);transform:translate(4px)}.social-link-contact svg{flex-shrink:0;transition:transform .3s ease}.social-link-contact:hover svg{transform:scale(1.15)}.map-container{margin-top:3rem;border-radius:4px;overflow:hidden;box-shadow:0 2px 12px #0000001a;transition:box-shadow .3s ease}.map-container:hover{box-shadow:0 4px 20px #00000026}.map-container iframe{width:100%;height:450px;display:block}.contact-form-box h2{margin-top:0}.form-intro{color:var(--color-secondary);margin-bottom:2rem}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:500;margin-bottom:.5rem;color:var(--color-primary);font-size:.95rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem 1rem;border:1px solid var(--color-border);font-family:var(--font-primary);font-size:1rem;color:var(--color-primary);transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group textarea{resize:vertical;min-height:120px}.submit-button{background-color:var(--color-primary);color:var(--color-white);padding:.875rem 2rem;border:none;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;align-self:flex-start;position:relative;overflow:hidden}.submit-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background-color:#ffffff1a;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.submit-button:hover:before{width:300px;height:300px}.submit-button:hover{background-color:var(--color-secondary);transform:translateY(-2px);box-shadow:0 4px 12px #0003}footer{background-color:var(--color-primary);color:var(--color-white);padding:4rem 0;margin-top:6rem}.footer-content{display:flex;justify-content:space-between;align-items:center;gap:2rem}.footer-left{display:flex;flex-direction:column;gap:.75rem}.footer-logo{height:40px;filter:brightness(0) invert(1)}.footer-left p{margin:0;color:#ffffffb3;font-size:.95rem}.social-links{margin-top:1rem}.social-link{display:inline-flex;align-items:center;gap:.5rem;color:#fffc;text-decoration:none;font-size:.95rem;transition:color .3s ease,transform .2s ease}.social-link:hover{color:var(--color-white);transform:translate(4px)}.social-link svg{flex-shrink:0;transition:transform .3s ease}.social-link:hover svg{transform:scale(1.1)}.footer-right{text-align:right}.footer-links{display:flex;gap:2rem;margin-bottom:.75rem}.footer-links a{color:#fffc;text-decoration:none;font-size:.95rem;transition:color .3s ease,transform .2s ease;display:inline-block;position:relative}.footer-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background-color:var(--color-white);transition:width .3s ease}.footer-links a:hover{color:var(--color-white);transform:translateY(-2px)}.footer-links a:hover:after{width:100%}.copyright{margin:0;color:#ffffff80;font-size:.875rem}@media (max-width: 1024px){.two-column-layout{grid-template-columns:1fr}.image-showcase{position:static;flex-direction:row;overflow-x:auto}.showcase-image{min-width:300px}.contact-layout{grid-template-columns:1fr}}@media (max-width: 768px){.nav-container{padding:0 1.5rem}.mobile-menu-toggle{display:flex}.nav-links{position:fixed;top:0;right:-100%;width:280px;height:100vh;background-color:var(--color-white);flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:5rem 2rem 2rem;gap:0;box-shadow:-2px 0 10px #0000001a;transition:right .3s ease;z-index:1000}.nav-links.active{right:0}.nav-links li{width:100%;border-bottom:1px solid var(--color-border);opacity:0;transform:translate(20px);animation:slideInRight .3s ease forwards}.nav-links.active li:nth-child(1){animation-delay:.1s}.nav-links.active li:nth-child(2){animation-delay:.15s}.nav-links.active li:nth-child(3){animation-delay:.2s}.nav-links.active li:nth-child(4){animation-delay:.25s}.nav-links.active li:nth-child(5){animation-delay:.3s}@keyframes slideInRight{to{opacity:1;transform:translate(0)}}.nav-links li:last-child{border-bottom:none}.nav-links a{display:block;padding:1rem 0;width:100%;font-size:1.1rem}.nav-links a:after{display:none}.nav-links a.active{color:var(--color-accent);font-weight:600}.nav-links a:hover{color:var(--color-accent);transform:translate(8px)}body.menu-open:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:999;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}h1{font-size:2rem}h2{font-size:1.5rem}.hero-content h1{font-size:2.25rem}.gallery-grid{grid-template-columns:1fr}.footer-content{flex-direction:column;text-align:center}.footer-left{align-items:center}.footer-right{text-align:center}.footer-links,.social-links{justify-content:center}.contact-info-inline{flex-direction:column;gap:.5rem}.separator{display:none}.map-container iframe{height:350px}.container{padding:0 1.5rem}.two-column-layout{gap:2rem}.service-item:hover{transform:none}}@media (max-width: 480px){.logo img{height:40px}.hero{min-height:400px}.hero-content h1{font-size:1.75rem}.hero-subtitle{font-size:1.125rem}.hero-description{font-size:1rem}.cta-link{padding:.75rem 1.5rem;font-size:1rem}h1{font-size:1.75rem}h2{font-size:1.25rem}.lead-text{font-size:1.125rem}.page-hero{padding:4rem 0 3rem}.nav-links{width:250px}.gallery-item img{height:250px}.quote{padding:1.5rem;margin-top:2rem}.quote p{font-size:1.125rem}}.lightbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000f2;z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem}.lightbox-content{max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox-image{max-width:100%;max-height:calc(90vh - 60px);object-fit:contain;box-shadow:0 4px 30px #00000080}.lightbox-caption{color:var(--color-white);text-align:center;margin-top:1.5rem;font-size:1.125rem;font-weight:500}.lightbox-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--color-white);font-size:3rem;cursor:pointer;width:50px;height:50px;display:flex;align-items:center;justify-content:center;transition:transform .2s ease,opacity .2s ease;line-height:1;z-index:10000}.lightbox-close:hover{transform:scale(1.1);opacity:.8}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:2px solid rgba(255,255,255,.3);color:var(--color-white);font-size:3rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lightbox-nav:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-50%) scale(1.1)}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-fade-enter-active,.lightbox-fade-leave-active{transition:opacity .3s ease}.lightbox-fade-enter-from,.lightbox-fade-leave-to{opacity:0}.lightbox-fade-enter-active .lightbox-content,.lightbox-fade-leave-active .lightbox-content{transition:transform .3s ease}.lightbox-fade-enter-from .lightbox-content,.lightbox-fade-leave-to .lightbox-content{transform:scale(.9)}@media (max-width: 768px){.lightbox-overlay{padding:1rem}.lightbox-close{top:.5rem;right:.5rem;font-size:2.5rem;width:40px;height:40px}.lightbox-nav{width:50px;height:50px;font-size:2rem}.lightbox-prev{left:.5rem}.lightbox-next{right:.5rem}.lightbox-caption{font-size:1rem;margin-top:1rem}.lightbox-image{max-height:calc(90vh - 40px)}}
