:root{--c-blue: #004AAD;--c-blue-surface: #003388;--c-dark: #121212;--c-light: #ffffff;--c-light-alt: #f4f7f9;--c-primary: #FF5A00;--c-text: #1E293B;--c-text-light: #94A3B8;--c-border: #E2E8F0;--c-border-dark: #003388;--font-heading: "Oswald", sans-serif;--font-body: "DM Sans", sans-serif;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 3.5rem;--space-xxl: 5rem}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;width:100%}body{font-family:var(--font-body);background-color:var(--c-light);color:var(--c-text);line-height:1.6;overflow-x:hidden;width:100%;position:relative;font-size:1.05rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);text-transform:uppercase;line-height:1.05;margin-bottom:var(--space-md);letter-spacing:-1px;color:var(--c-blue)}a{color:inherit;text-decoration:none}ul{padding-left:var(--space-lg);margin-bottom:var(--space-md)}p{margin-bottom:var(--space-md)}.container{width:100%;max-width:1400px;margin:0 auto;padding:0 var(--space-lg)}.mt-4{margin-top:var(--space-lg)}.mt-5{margin-top:var(--space-xl)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-xl)}.content-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xxl);align-items:center;margin-bottom:var(--space-xl)}.content-img>img{width:100%;border:6px solid var(--c-dark);box-shadow:-15px 15px 0 var(--c-primary)}.project-carousel{position:relative;padding-left:1rem;padding-bottom:1rem;touch-action:pan-y}.carousel-viewport{position:relative;overflow:hidden;border:6px solid var(--c-dark);box-shadow:-15px 15px 0 var(--c-primary)}.carousel-track{display:flex;transition:transform .35s ease}.carousel-slide{flex:0 0 100%;margin:0}.carousel-slide img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;border:0;box-shadow:none}.carousel-arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:#121212c7;color:var(--c-light);border:0;border-radius:999px;cursor:pointer;font-family:var(--font-heading);font-size:1.75rem;line-height:1;-webkit-user-select:none;user-select:none;z-index:1;box-shadow:0 10px 24px #1212122e;transition:transform .2s ease,background-color .2s ease}.carousel-arrow-glyph{display:block;transform:translate(.08rem,-.03rem)}.carousel-arrow:hover,.carousel-arrow:focus-visible{background:var(--c-primary);outline:none;transform:translate(.2rem,-50%)}#router-view{min-height:calc(100vh - 370px);transition:opacity .4s ease}.btn{display:inline-flex;font-family:var(--font-heading);text-transform:uppercase;padding:1.2rem 2.5rem;font-size:1.25rem;font-weight:700;border:4px solid var(--c-blue);cursor:pointer;transition:all .2s cubic-bezier(.25,1,.5,1);letter-spacing:1px;position:relative;overflow:hidden;color:var(--c-blue);background:transparent}.btn:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--c-blue);z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.25,1,.5,1)}.btn:hover{color:var(--c-light)}.btn:hover:after{transform:scaleX(1);transform-origin:left}.btn-primary{background-color:var(--c-primary);border-color:var(--c-dark);color:var(--c-dark);box-shadow:6px 6px 0 var(--c-dark)}.btn-primary:after{background:var(--c-dark)}.btn-primary:hover{color:var(--c-primary);box-shadow:2px 2px 0 var(--c-dark);transform:translate(4px,4px)}.btn-outline{border-color:var(--c-blue);color:var(--c-blue)}.btn-outline:after{background:var(--c-blue)}.btn-outline:hover{color:var(--c-light)}.navbar{background-color:var(--c-light);color:var(--c-blue);padding:var(--space-md) var(--space-lg);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;border-bottom:6px solid var(--c-primary)}.nav-brand{display:flex;align-items:center}.brand-logo{height:50px;width:auto;object-fit:contain}.nav-links{display:flex;gap:var(--space-lg);align-items:center}.nav-links a{font-family:var(--font-heading);text-transform:uppercase;font-size:1.25rem;font-weight:600;position:relative;color:var(--c-blue)}.nav-links a:not(.btn-nav):after{content:"";position:absolute;bottom:-4px;left:0;width:100%;height:4px;background-color:var(--c-primary);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.nav-links a:not(.btn-nav)::hover:after,.nav-links a:not(.btn-nav):hover:after{transform:scaleX(1);transform-origin:left}.btn-nav{padding:.8rem 1.5rem;font-size:1.1rem;border:3px solid var(--c-primary);background:transparent;color:var(--c-primary);box-shadow:none}.btn-nav:after{background:var(--c-primary)}.btn-nav:hover{color:var(--c-light)}.mobile-menu-btn{display:none;background:transparent;border:none;cursor:pointer}.card{background-color:#fff;border:4px solid var(--c-blue);padding:var(--space-xl);transition:transform .4s ease,box-shadow .4s ease;height:100%;display:flex;flex-direction:column}.card:hover{transform:translateY(-8px);box-shadow:12px 12px 0 var(--c-primary);border-color:var(--c-primary)}.card h2{font-size:2rem;color:var(--c-blue)}.link-forward{font-family:var(--font-heading);text-transform:uppercase;color:var(--c-blue);font-weight:700;font-size:1.5rem;display:inline-flex;align-items:center;margin-top:auto;padding-top:var(--space-lg);border-bottom:3px solid var(--c-primary);align-self:flex-start;transition:padding-right .3s}.link-forward:after{content:"→";margin-left:.5rem;transition:transform .3s}.card:hover .link-forward{padding-right:15px;color:var(--c-primary)}.card:hover .link-forward:after{transform:translate(10px)}.contact-form-container{background:var(--c-primary);border:6px solid var(--c-dark);padding:var(--space-xl);box-shadow:12px 12px 0 var(--c-dark)}.contact-info{align-self:center}.contact-info h2{font-size:2.5rem;color:var(--c-blue)}.contact-info p{font-size:1.5rem;color:var(--c-text)}.form-group{margin-bottom:var(--space-md)}label{display:block;font-family:var(--font-heading);text-transform:uppercase;margin-bottom:.5rem;font-size:1.25rem;font-weight:700;color:var(--c-dark)}input,textarea{width:100%;padding:1rem;border:4px solid var(--c-dark);font-family:var(--font-body);font-size:1.25rem;transition:all .3s;background:#fff;color:var(--c-text)}input:focus,textarea:focus{outline:none;background:var(--c-dark);color:var(--c-light);transform:translate(4px)}.contact-form .btn-primary{width:100%;justify-content:center}.email-link{font-size:1.5rem;font-family:var(--font-heading);color:var(--c-primary);text-decoration:underline;text-underline-offset:4px}.email-link:hover{color:var(--c-blue)}.footer{background-color:var(--c-blue);color:var(--c-text-light);padding:var(--space-xxl) 0 var(--space-md);border-top:10px solid var(--c-primary)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-xl);padding:0 var(--space-lg);max-width:1400px;margin:0 auto}.footer-col h3{color:#fff;font-size:1.5rem;margin-bottom:var(--space-lg)}.footer-col p{font-size:1.1rem}.footer-col a{display:block;font-size:1.25rem;font-family:var(--font-heading);margin-bottom:.8rem;transition:color .3s;color:var(--c-text-light)}.footer-col a:hover{color:var(--c-primary)}.footer-bottom{text-align:center;margin-top:var(--space-xxl);padding-top:var(--space-md);border-top:2px solid var(--c-border-dark);font-size:1rem}.hero-section{background-color:var(--c-light-alt);color:var(--c-blue);padding:var(--space-xxl) 0;min-height:85vh;display:flex;align-items:center;position:relative;overflow:hidden;border-bottom:2px solid var(--c-border)}.hero-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(var(--c-border) 1px,transparent 1px),linear-gradient(90deg,var(--c-border) 1px,transparent 1px);background-size:80px 80px;opacity:.5;pointer-events:none;z-index:1}.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:center}.hero-content h1{font-size:clamp(2.5rem,6vw,4.5rem);text-transform:uppercase;margin-bottom:var(--space-md);line-height:1.05;letter-spacing:-1px;color:var(--c-blue)}.hero-content h1 span{color:var(--c-primary);display:block}.hero-content p{font-size:clamp(1.1rem,1.5vw,1.35rem);color:var(--c-text);margin-bottom:var(--space-lg);font-weight:500;max-width:90%}.hero-cta{display:flex;gap:var(--space-md)}.hero-image{position:relative}.hero-image img{width:100%;height:auto;border:8px solid var(--c-dark);box-shadow:20px 20px 0 var(--c-primary);transform:rotate(2deg);transition:transform .5s ease}.hero-image:hover img{transform:rotate(0) scale(1.02)}.page-header{background-color:var(--c-blue);color:var(--c-light);padding:var(--space-xxl) 0;border-bottom:20px solid var(--c-primary);text-align:center}.page-header h1{font-size:clamp(2.5rem,5vw,4rem);margin-bottom:0;text-transform:uppercase;letter-spacing:-1px;color:var(--c-light)}.page-header p{color:var(--c-primary);font-size:1.25rem;font-family:var(--font-heading);text-transform:uppercase;letter-spacing:2px}.services-overview{padding:var(--space-xxl) 0;background-color:var(--c-light);position:relative}.text-block-section{padding:var(--space-xxl) 0}.bg-dark{background-color:var(--c-blue);color:var(--c-light);border-top:2px solid var(--c-border-dark)}.bg-dark h2{color:#fff;font-size:2.5rem;margin-bottom:var(--space-lg)}.bg-dark p{font-size:1.5rem;max-width:900px;color:var(--c-text-light)}.content-section{padding:var(--space-xl) 0 var(--space-xxl)}.lead{font-size:1.5rem;font-weight:500;color:var(--c-text)}.service-item{border-left:8px solid var(--c-primary);padding-left:var(--space-lg);margin-bottom:var(--space-xxl);position:relative}.service-item h3{font-size:2rem;margin-bottom:var(--space-md);color:var(--c-blue)}.service-item h4{font-size:1.5rem;margin-top:var(--space-lg);color:var(--c-blue)}.service-item ul li{font-size:1.25rem;margin-bottom:.5rem;color:var(--c-text)}.cta-box{background-color:var(--c-primary);color:var(--c-dark);padding:var(--space-xxl);border:6px solid var(--c-dark);box-shadow:15px 15px 0 var(--c-dark);margin-top:var(--space-xxl);text-align:center}.cta-box h3{font-size:2.5rem;margin-bottom:var(--space-md);color:var(--c-dark)}.cta-box p{font-size:1.25rem;margin-bottom:var(--space-lg);max-width:800px;margin-left:auto;margin-right:auto;color:var(--c-dark);font-weight:500}.cta-box .btn{border-color:var(--c-dark);color:var(--c-dark);background-color:transparent}.cta-box .btn:after{background:var(--c-dark)}.cta-box .btn:hover{color:var(--c-light)}.fade-in{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.25,1,.5,1),transform .8s cubic-bezier(.25,1,.5,1)}.fade-in.visible{opacity:1;transform:translateY(0)}.stagger-1{animation:slideUp 1s cubic-bezier(.25,1,.5,1) backwards}.stagger-2{animation:slideUp 1s cubic-bezier(.25,1,.5,1) .15s backwards}.stagger-3{animation:slideUp 1s cubic-bezier(.25,1,.5,1) .3s backwards}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.hero-grid,.content-split{grid-template-columns:1fr}.hero-image{margin-top:var(--space-xl)}.hero-image img{transform:rotate(0)}.hero-content h1{font-size:clamp(3rem,10vw,5rem)}}@media(max-width:768px){:root{--space-lg: 1.5rem;--space-xl: 3rem;--space-xxl: 4rem}.nav-links{display:none;flex-direction:column;position:absolute;top:100%;left:0;width:100%;box-sizing:border-box;background-color:var(--c-light);padding:var(--space-xl) var(--space-lg) calc(var(--space-xl) + 1rem) var(--space-lg);border-bottom:6px solid var(--c-primary);box-shadow:0 10px 20px #0000001a;align-items:stretch;text-align:center;z-index:1000;max-height:calc(100dvh - 110px);overflow-y:auto}.nav-links.active{display:flex}.nav-links a:not(.btn-nav){display:block;padding:var(--space-md) 0;border-bottom:2px solid var(--c-border)}.nav-links a.btn-nav{margin-top:var(--space-md);margin-bottom:var(--space-md);display:inline-block}.mobile-menu-btn{display:block;color:var(--c-primary)}.grid-2{grid-template-columns:1fr}.hero-image img{max-width:85%;margin:0 auto;display:block}.hero-cta{flex-direction:column}.footer-grid{grid-template-columns:1fr}.page-header h1,.cta-box h3{font-size:2.5rem}.card h2{font-size:2rem}.carousel-arrow{right:.75rem;top:50%;transform:translateY(-50%);width:2.5rem;height:2.5rem;font-size:1.5rem}.project-carousel{padding-left:.75rem;padding-bottom:.75rem}.carousel-arrow:hover,.carousel-arrow:focus-visible{transform:translate(.2rem,-50%)}}
