
:root{--blue:#2D5274;--blue-dark:#1e3b55;--blue-light:#eaf0f5;--ink:#17212b;--muted:#5d6a75;--line:#d8e0e7;--white:#fff;--bg:#f7f9fb}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65}a{color:inherit;text-decoration:none}header{position:sticky;top:0;z-index:20;background:var(--white);border-bottom:4px solid var(--blue);box-shadow:0 3px 14px #17212b12}.header-inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.brand{display:flex;align-items:center;gap:13px}.klh{font-size:38px;font-weight:800;font-style:italic;letter-spacing:-3px;color:var(--blue);line-height:1}.brand strong{display:block;font-size:19px}.brand span{display:block;color:var(--muted);font-size:12px;letter-spacing:.4px}.menu{display:none;border:0;background:var(--blue);color:white;border-radius:4px;padding:8px 12px;font-size:20px}nav{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}nav a{padding:9px 10px;font-size:13px;font-weight:700;color:var(--blue-dark);border-radius:4px}nav a:hover,nav a.active{background:var(--blue);color:white}main{max-width:1180px;margin:auto}.hero,.page-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;padding:70px 24px 55px;background:linear-gradient(120deg,var(--white),var(--blue-light))}.hero{max-width:none;margin:0 calc((1180px - 100vw)/2);padding-left:max(24px,calc((100vw - 1132px)/2));padding-right:max(24px,calc((100vw - 1132px)/2))}.eyebrow{color:var(--blue);font-size:12px;font-weight:800;letter-spacing:2px;margin:0 0 9px}.hero h1,.page-hero h1{font-size:clamp(38px,5vw,64px);line-height:1.05;margin:0 0 15px;color:var(--blue-dark)}h2{font-size:32px;line-height:1.15;color:var(--blue-dark);margin:0 0 20px}h3{color:var(--blue-dark)}.lead{font-size:20px;color:var(--muted)}.hero-copy p{max-width:720px}.button{display:inline-block;background:var(--blue);color:#fff;padding:12px 20px;border-radius:4px;font-weight:700;margin-top:12px;box-shadow:0 4px 10px #2d527433}.button:hover{background:var(--blue-dark)}.placeholder{min-height:210px;border:2px dashed #91a7ba;background:linear-gradient(135deg,#dfe7ee,#f8fafc);display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--blue);text-align:center;position:relative;overflow:hidden}.placeholder:before{content:'PHOTO';position:absolute;font-size:78px;font-weight:900;color:#2d527410;transform:rotate(-15deg)}.placeholder span,.placeholder small{position:relative;z-index:1}.placeholder span{font-weight:800;letter-spacing:1px}.placeholder small{margin-top:4px;color:var(--muted)}.placeholder.tall{min-height:360px}.intro,.section,.other,.content-wrap{padding:60px 24px}.intro{background:#fff;border-left:7px solid var(--blue);margin-top:28px}.intro p{max-width:1000px}.section{padding-top:45px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card{background:white;border:1px solid var(--line);box-shadow:0 8px 22px #17212b0b;transition:.2s;overflow:hidden}.service-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #17212b18}.service-card .placeholder{min-height:180px;border:0;border-bottom:5px solid var(--blue)}.service-card h3,.service-card .read{display:block;padding:0 20px}.service-card h3{margin:18px 0 4px;font-size:21px}.read{padding-bottom:20px;color:var(--blue);font-weight:800;font-size:13px}.other{background:var(--blue);color:white;margin:20px calc((1180px - 100vw)/2) 0;padding-left:max(24px,calc((100vw - 1132px)/2));padding-right:max(24px,calc((100vw - 1132px)/2))}.other h2,.other .eyebrow{color:white}.other ul{columns:2;padding-left:20px}.cta{margin:40px 24px 70px;padding:38px;background:var(--blue-dark);color:white;border-radius:6px}.cta h2{color:white}.page-hero{margin:0;padding-top:55px;padding-bottom:45px}.content-wrap{background:#fff}.content{max-width:980px;margin:auto}.content-intro{font-size:18px;color:var(--muted);max-width:850px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:35px 0 55px}.gallery .placeholder{min-height:210px;border:0;border-bottom:5px solid var(--blue)}.section-label{font-size:12px;font-weight:800;letter-spacing:2px;color:var(--blue);margin:0 0 10px}.accordion{display:grid;gap:12px;margin:20px 0 45px}.accordion details{background:white;border:1px solid var(--line);border-left:5px solid var(--blue);box-shadow:0 3px 10px #17212b0a}.accordion summary{cursor:pointer;list-style:none;padding:17px 20px;font-weight:800;color:var(--blue-dark);font-size:17px;display:flex;justify-content:space-between;align-items:center}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:'+';font-size:24px;color:var(--blue)}.accordion details[open] summary{background:var(--blue-light)}.accordion details[open] summary:after{content:'−'}.accordion .detail-body{padding:0 20px 20px;color:#3e4a54}.project-note{margin-top:8px;color:var(--muted);font-style:italic}.subservice{background:white;border:1px solid var(--line);border-left:5px solid var(--blue);padding:28px;margin-bottom:18px;box-shadow:0 4px 14px #17212b0a}.subservice h2{font-size:25px;margin-bottom:12px}.subservice ul{margin-bottom:0}.contact-card{background:white;border:1px solid var(--line);border-top:7px solid var(--blue);padding:35px;max-width:720px;box-shadow:0 8px 25px #17212b0d}.contact-item{padding:15px 0;border-bottom:1px solid var(--line)}.contact-item:last-child{border:0}.contact-item strong{display:block;color:var(--blue);font-size:12px;text-transform:uppercase;letter-spacing:1.5px}.contact-item a{color:var(--blue);font-weight:700}footer{background:#13283a;color:#dce6ed;text-align:center;padding:32px 24px}footer strong{font-size:18px;color:#fff}footer p{margin:5px 0;font-size:13px}.footer-email{color:#fff}.note{padding:14px 18px;background:var(--blue-light);border-left:4px solid var(--blue);margin:25px 0}.mobile-spacer{display:none}

/* ---- additions: photo gallery, lightbox, tile images ---- */
.gallery{grid-template-columns:repeat(var(--n,3),1fr);align-items:start}
.shot{margin:0}
.zoom{display:block;width:100%;padding:0;border:0;border-bottom:5px solid var(--blue);background:var(--blue-light);cursor:zoom-in;overflow:hidden}
.zoom img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .25s}
.zoom:hover img,.zoom:focus-visible img{transform:scale(1.04)}
.zoom:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.shot figcaption{margin:12px 2px 0;font-size:14px;line-height:1.55;color:#3e4a54}
.hero-shot{border:0;box-shadow:0 8px 22px #17212b18}
.hero-shot img{aspect-ratio:4/3}
.tile-img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-bottom:5px solid var(--blue)}
.content-intro{font-size:18px;color:var(--muted);max-width:850px;margin-bottom:30px}
.content-intro p{margin:0 0 12px}
.accordion ul{margin:0;padding-left:22px}.accordion li{margin-bottom:8px}
.accordion .detail-body p{margin:0 0 12px}
.section-label+.accordion{margin-top:12px}
.footer-email a{color:#fff}
.page-hero.centered{grid-template-columns:1fr;text-align:center}
@media(min-width:901px){nav{flex-wrap:nowrap}nav a{padding:9px 7px;white-space:nowrap}}
.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;flex-direction:column;background:#0b1620ee;padding:24px}
.lightbox.open{display:flex}
.lightbox img{max-width:92vw;max-height:78vh;object-fit:contain;box-shadow:0 10px 40px #000a;background:#fff}
.lightbox p{color:#e8eef3;max-width:900px;text-align:center;margin:16px 0 0;font-size:15px;line-height:1.5}
.lightbox button{position:absolute;border:0;background:#ffffff22;color:#fff;font-size:28px;line-height:1;width:48px;height:48px;border-radius:50%;cursor:pointer}
.lightbox button:hover,.lightbox button:focus-visible{background:#ffffff55}
.lb-close{top:18px;right:18px}.lb-prev{left:18px;top:50%;margin-top:-24px}.lb-next{right:18px;top:50%;margin-top:-24px}
@media(max-width:600px){.lb-prev,.lb-next{top:auto;bottom:18px;margin:0}.lb-prev{left:30%}.lb-next{right:30%}}

@media(max-width:900px){header{position:relative}.header-inner{align-items:flex-start}.menu{display:block}nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;padding:12px 20px;border-bottom:3px solid var(--blue);box-shadow:0 8px 18px #17212b18}body.nav-open nav{display:flex;flex-direction:column}nav a{width:100%}.hero,.page-hero{grid-template-columns:1fr}.hero{margin:0}.service-grid{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:1fr 1fr}.other{margin-left:0;margin-right:0}}
@media(max-width:600px){.brand span{display:none}.brand strong{font-size:16px}.klh{font-size:32px}.service-grid,.gallery{grid-template-columns:1fr}.hero,.page-hero{padding-top:42px}.other ul{columns:1}.intro,.section,.other,.content-wrap{padding-left:18px;padding-right:18px}.cta{margin-left:18px;margin-right:18px}}
