*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #fafafa;--color-dark: #1a1a1a;--color-dark-soft: #2d2d2d;--color-text: #333;--color-text-muted: #555;--color-accent: #b8860b;--color-white: #fff;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: Georgia, "Times New Roman", serif;--max-width: 1100px;--header-height: 72px}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--color-text);line-height:1.6;background:var(--color-bg)}.skip-link{position:absolute;top:-100px;left:1rem;z-index:100;padding:.75rem 1rem;background:var(--color-dark);color:var(--color-white);text-decoration:none;font-weight:600;border-radius:4px;transition:top .2s}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:50;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--color-white);box-shadow:0 1px #ffffff0f}.header-inner{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem;height:var(--header-height);display:flex;align-items:center;justify-content:space-between}.logo{font-size:1.25rem;font-weight:700;color:var(--color-white);text-decoration:none;letter-spacing:-.02em;display:flex;align-items:center}.logo-img{height:64px;width:auto;display:block}.logo:hover{color:var(--color-accent)}.logo:hover .logo-img{opacity:.9}.nav{display:flex;align-items:center;gap:1.75rem}.nav a{color:var(--color-white);text-decoration:none;font-size:.95rem;font-weight:500;transition:color .2s}.nav a:hover{color:var(--color-accent)}.menu-toggle{display:none;background:none;border:none;color:var(--color-white);font-size:.95rem;font-weight:500;cursor:pointer;padding:.5rem 0}@media(max-width:768px){.menu-toggle{display:block}.nav{position:absolute;top:var(--header-height);left:0;right:0;background:var(--color-dark);flex-direction:column;padding:1.5rem;gap:1rem;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform .25s,opacity .25s,visibility .25s}.nav.nav-open{transform:translateY(0);opacity:1;visibility:visible}}.hero{position:relative;background:var(--color-dark);color:var(--color-white);padding:clamp(4rem,12vw,7rem) 1.5rem;text-align:center}.hero-bg,.hero-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}.hero-bg{background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.hero-video{object-fit:cover}@media(max-width:768px){.hero-bg{background-attachment:scroll}}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#00000080,#000000b3);z-index:1}.hero-content{position:relative;z-index:2}.hero-logo{display:block;max-width:min(840px,95vw);height:auto;margin:0 auto 1.25rem}.hero-title{font-family:var(--font-serif);font-size:clamp(1.75rem,4.5vw,2.75rem);font-weight:400;line-height:1.25;max-width:700px;margin:0 auto;text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.4)}.hero-subheadline{max-width:600px;margin:1rem auto 2rem;font-size:1.1rem;line-height:1.5;opacity:.95}.hero-ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.hero-cta{display:inline-block;padding:.75rem 1.5rem;background:transparent;color:var(--color-white);border:2px solid rgba(255,255,255,.6);text-decoration:none;font-weight:600;font-size:.95rem;border-radius:4px;transition:background .2s,border-color .2s,color .2s}.hero-cta:hover{background:var(--color-white);color:var(--color-dark);border-color:var(--color-white)}.intro{background:var(--color-white)}.intro-inner{max-width:720px;margin:0 auto}.intro-headline{font-size:1.35rem;font-weight:600;color:var(--color-dark);margin-bottom:1.25rem;line-height:1.4}.intro p{margin-bottom:1rem;color:var(--color-text)}.intro-link{display:inline-block;margin-top:1rem;color:#004c8e;font-weight:700;text-decoration:none;transition:color .2s}.intro-link:hover{color:#0062b8}.section{max-width:var(--max-width);margin:0 auto;padding:clamp(3rem,8vw,5rem) 1.5rem}.section-label{font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:1.5rem}.featured-project{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-bottom:2.5rem}@media(max-width:768px){.featured-project{grid-template-columns:1fr}}.featured-image-wrap{aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:#e5e5e5}.featured-image-wrap img,.featured-image-wrap video{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.featured-image.placeholder,.gallery-item.placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:.9rem}.featured-image img,.gallery-item img{width:100%;height:100%;object-fit:cover}.featured-title{font-size:1.5rem;font-weight:700;color:var(--color-dark);margin-bottom:.75rem}.featured-desc{color:var(--color-text);margin-bottom:1.25rem}.btn-primary{display:inline-block;padding:.75rem 1.5rem;background:#004c8e;color:var(--color-white);text-decoration:none;font-weight:600;font-size:.95rem;border-radius:4px;transition:background .2s,color .2s}.btn-primary:hover{background:#0062b8;color:var(--color-white)}.gallery-block{margin-top:2.5rem}.gallery-carousel{position:relative}.carousel-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.carousel-btn{width:2.5rem;height:2.5rem;border-radius:50%;border:2px solid #004c8e;background:transparent;color:#004c8e;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.carousel-btn:hover:not(:disabled){background:#004c8e;color:#fff}.carousel-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;max-width:320px}.carousel-dot{width:.4rem;height:.4rem;border-radius:50%;border:1px solid #004c8e;background:transparent;padding:0;cursor:pointer;transition:background .2s,transform .2s}.carousel-dot:hover{background:#004c8e66}.carousel-dot.active{background:#004c8e;transform:scale(1.2)}.gallery-title{font-size:1.25rem;font-weight:700;color:var(--color-dark);margin-bottom:1rem}.grid-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:768px){.grid-gallery{grid-template-columns:repeat(2,1fr)}}.gallery-item{aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:#e5e5e5;transition:transform .25s ease}.gallery-item:hover{transform:scale(1.03)}.gallery-item img,.gallery-item video{width:100%;height:100%;object-fit:cover}.gallery-item-clickable{cursor:pointer}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000e6;display:flex;align-items:center;justify-content:center;padding:2rem}.lightbox-inner{position:relative;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.lightbox-close{position:absolute;top:-2.5rem;right:0;width:2.5rem;height:2.5rem;border:none;background:#ffffff26;color:#fff;font-size:1.75rem;line-height:1;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s}.lightbox-close:hover{background:#ffffff4d}.lightbox-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1.25rem}.lightbox-prev,.lightbox-next{padding:.5rem 1rem;border:2px solid rgba(255,255,255,.6);background:#ffffff1a;color:#fff;font-size:.95rem;cursor:pointer;border-radius:6px;transition:background .2s,border-color .2s}.lightbox-prev:hover,.lightbox-next:hover{background:#ffffff40;border-color:#fff}.lightbox-content{max-width:100%;max-height:85vh;display:flex;align-items:center;justify-content:center}.lightbox-content img,.lightbox-content video{max-width:100%;max-height:85vh;object-fit:contain}.lightbox-counter{color:#fffc;font-size:.9rem;min-width:3rem;text-align:center}.testimonial{background:#001a33;color:var(--color-white);text-align:center;padding:clamp(3rem,8vw,5rem) 1.5rem;border-top:1px solid rgba(0,76,142,.3);border-bottom:1px solid rgba(0,76,142,.3)}.testimonial-card{max-width:720px;margin:0 auto}.testimonial-stars{color:#e6a700;font-size:1.25rem;letter-spacing:.15em;margin-bottom:1rem}.testimonial-stars .star{display:inline-block}.testimonial-quote{font-family:var(--font-serif);font-size:clamp(1.2rem,2.2vw,1.45rem);font-weight:400;font-style:normal;line-height:1.8;margin:0 auto 1.25rem}.testimonial-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem 1rem}.testimonial-cite{font-family:var(--font-sans);font-size:.95rem;font-style:normal;opacity:.95}.testimonial-date{font-size:.85rem;opacity:.75}.testimonial-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.5rem}.testimonial-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.4);color:var(--color-white);width:2.5rem;height:2.5rem;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}.testimonial-btn:hover{background:#ffffff40;border-color:#fff9}.testimonial-dots{display:flex;gap:.5rem}.testimonial-dot{width:.5rem;height:.5rem;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:transparent;cursor:pointer;padding:0;transition:background .2s}.testimonial-dot:hover,.testimonial-dot.active{background:var(--color-white)}.testimonial-yelp-link{display:inline-block;margin-top:1.25rem;color:#004c8e;font-size:.95rem;font-weight:600;text-decoration:none}.testimonial-yelp-link:hover{text-decoration:underline}.contact{background:var(--color-bg)}.contact-inner{max-width:560px;margin:0 auto;text-align:center}.contact-two-col{max-width:var(--max-width);display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;text-align:left}.contact-col-logo{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.contact-col-logo .contact-logo-img,.contact-col-logo .contact-logo,.contact-col-logo .contact-bbb{align-self:center}.contact-col-info{padding-left:2rem;border-left:1px solid #ddd}.contact-col-info .contact-info-list{display:grid;grid-template-columns:auto 1fr;gap:15px 1.25rem;align-items:baseline}@media(max-width:768px){.contact-two-col{grid-template-columns:1fr;text-align:center}.contact-col-logo{align-items:center}.contact-col-info{padding-left:0;padding-top:2rem;border-left:none;border-top:1px solid #ddd}.contact-col-info .contact-info-list{text-align:center}}.contact-logo{font-size:1.5rem;font-weight:700;color:var(--color-dark);margin-bottom:1rem}.contact-logo-img{max-width:280px;height:auto;display:block}.contact-two-col .contact-logo-img,.contact-info-list{margin:0}.contact-info-row{display:contents}.contact-info-list dt{margin:0;font-weight:700;font-size:.9rem;text-transform:uppercase;color:var(--color-dark);display:flex;align-items:center;gap:.4rem}.contact-info-list dd{margin:0;font-size:.95rem;color:var(--color-text-muted);text-align:left}.contact-info-list dd a{color:var(--color-dark);font-weight:600;text-decoration:none}.contact-info-list dd a:hover{color:var(--color-accent);text-decoration:underline}.contact-phone-link{font-size:1.2rem!important;color:#004c8e!important}.contact-phone-link:hover{color:#036!important}.contact-icon{display:inline-flex;align-items:center;color:var(--color-accent)}.contact-icon svg{flex-shrink:0}.contact-bbb{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem 1rem;border:1px solid rgba(0,76,142,.3);border-radius:8px;background:#004c8e0d;text-decoration:none;color:var(--color-dark);transition:background .2s,border-color .2s}.contact-bbb:hover{background:#004c8e14;border-color:#004c8e80}.contact-bbb-label{font-size:.8rem;font-weight:600;color:#004c8e;letter-spacing:.02em}.contact-bbb-link{font-size:.85rem;color:var(--color-text-muted)}.contact-bbb:hover .contact-bbb-link{color:#004c8e}.site-footer{padding:1.5rem;text-align:center;background:var(--color-dark-soft);color:#ffffffb3;font-size:.875rem;border-top:8px solid #004c8e}.site-footer p{margin:0}.footer-tagline{margin-bottom:.75rem;font-size:.95rem;opacity:.9}.admin-page{min-height:100vh;background:#f0f2f5}.admin-bar{position:sticky;top:0;z-index:100;background:var(--color-dark);color:var(--color-white);padding:1rem 1.5rem;box-shadow:0 2px 8px #00000026}.admin-title{font-size:1.25rem;font-weight:700;margin-bottom:.25rem}.admin-bar-hint{font-size:.8rem;opacity:.85;margin-bottom:.75rem}.admin-bar-hint code{background:#fff3;padding:.1rem .35rem;border-radius:4px}.admin-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.admin-btn{padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;font-family:inherit}.admin-btn-primary{background:var(--color-accent);color:var(--color-dark)}.admin-btn-primary:hover{filter:brightness(1.1)}.admin-btn-secondary{background:#ffffff26;color:var(--color-white)}.admin-btn-secondary:hover{background:#ffffff40}.admin-error{color:#f88;font-size:.9rem;margin-top:.5rem}.admin-body{max-width:720px;margin:0 auto;padding:2rem 1.5rem}.admin-section{background:var(--color-white);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #00000014}.admin-section-title{font-size:1.1rem;font-weight:700;color:var(--color-dark);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-dark)}.admin-field{margin-bottom:1rem}.admin-field label{display:block;font-size:.85rem;font-weight:600;color:var(--color-text-muted);margin-bottom:.35rem}.admin-field input,.admin-field textarea{width:100%;padding:.6rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-family:inherit}.admin-field textarea{resize:vertical;min-height:4rem}.admin-hint{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.75rem}.admin-row{display:grid;grid-template-columns:1fr 1.5fr;gap:.75rem;margin-bottom:.75rem}.admin-row input{padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem}.admin-paragraph-row{margin-bottom:1rem}.admin-paragraph-row label{font-size:.85rem;color:var(--color-text-muted);display:block;margin-bottom:.25rem}.admin-paragraph-row textarea{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;resize:vertical}.admin-add{background:none;border:1px dashed #999;color:#666;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;margin-bottom:1rem}.admin-add:hover{border-color:var(--color-dark);color:var(--color-dark)}.admin-remove{background:none;border:none;color:#c00;font-size:.85rem;cursor:pointer;margin-left:.5rem}.admin-gallery-item{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:.5rem;align-items:center;margin-bottom:.75rem}.admin-gallery-item select{padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem}.admin-gallery-item input{padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem}.admin-testimonial-item{margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #eee}.admin-testimonial-header{font-size:.9rem;font-weight:600;margin-bottom:.75rem;color:var(--color-dark)}.admin-subsection{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.admin-subsection h3{font-size:.95rem;font-weight:600;margin-bottom:.75rem}.admin-preview-wrap{position:relative}.admin-preview-bar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-dark);color:var(--color-white)}.admin-preview-bar .btn-primary{color:var(--color-dark);background:var(--color-white);text-decoration:none;padding:.5rem 1rem;border-radius:6px;font-weight:600;border:none;cursor:pointer;font-size:.9rem}.admin-link{color:var(--color-accent);font-weight:600;text-decoration:none}.admin-link:hover{text-decoration:underline}
