:root{--navy:#042334;--deep:#031b29;--ink:#102c3a;--muted:#50616a;--line:#d8dfe3;--paper:#f5f7f8;--silver:#c9d1d8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);font-size:17px;line-height:1.65;background:#fff}a{color:inherit}img{max-width:100%;display:block}figure{margin:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.12;letter-spacing:-.035em}h1{font-size:clamp(2.6rem,4.6vw,4.5rem);font-weight:500;margin-bottom:25px}h1 em{font-style:normal;color:#526b7c}h2{font-size:clamp(2rem,3.4vw,3.3rem);font-weight:500;margin-bottom:25px}h3{font-size:1.4rem;letter-spacing:-.02em;font-weight:600}.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:1.9px;margin-bottom:24px}.header{background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:14px max(5%,calc((100vw - 1320px)/2));gap:30px}.brand img{width:165px;height:auto}.header nav{display:flex;gap:34px;align-items:center;font-size:.94rem}.header nav a{text-decoration:none}.header nav a:hover{text-decoration:underline}.nav-contact{border:1px solid #8e9faa;padding:11px 22px}.hero{max-width:1480px;margin:auto;display:grid;grid-template-columns:43% 57%;padding:36px 4% 0}.hero-copy{padding:30px 8% 30px 2%}.hero-copy>p:not(.eyebrow){color:var(--muted);max-width:400px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:17px 23px;min-height:52px;background:var(--navy);color:#fff;text-decoration:none;font-weight:600;font-size:.95rem}.button:hover{background:#24485b}.button span{font-size:1.5rem;line-height:1}.contact-stack{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin-top:23px}.contact-stack a{font-size:1rem;text-underline-offset:4px;overflow-wrap:anywhere}.contact-stack .phone{font-size:1.2rem;font-weight:600;text-decoration:none}.hero-photo{position:relative;min-height:590px;overflow:hidden}.hero-photo img{height:100%;width:100%;object-fit:cover;object-position:58% center}.hero-photo figcaption{position:absolute;bottom:0;left:0;color:white;background:#042334e8;padding:12px 18px;font-size:.75rem;letter-spacing:1px}.region-strip{max-width:1320px;margin:0 auto;padding:26px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:.88rem}.region-strip span{color:var(--muted)}.section{padding:84px max(5%,calc((100vw - 1320px)/2))}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:36px}.section-heading p:not(.eyebrow){max-width:510px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.service-grid article{border-top:2px solid var(--ink);padding-top:23px;display:flex;flex-direction:column}.number{color:var(--muted);font-size:.85rem;margin-bottom:30px}.service-grid h3 a{text-decoration:none}.service-grid p{color:var(--muted)}.text-link{margin-top:auto;font-weight:600;font-size:.9rem;text-underline-offset:5px}.additional{margin-top:45px;padding:26px 30px;background:var(--paper);display:grid;grid-template-columns:1fr 2fr;gap:15px 35px}.additional p{margin:0;color:var(--muted)}.work{background:var(--paper)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 24px}.gallery img{width:100%;height:290px;object-fit:cover;transition:filter .2s}.gallery a:hover img{filter:brightness(.9)}.gallery figcaption{font-size:.95rem;font-weight:600;padding-top:12px}.approach,.faq,.service-body{display:grid;grid-template-columns:1fr 1fr;gap:90px}.approach>div>p:not(.eyebrow),.service-body p{color:var(--muted)}.steps article{display:flex;gap:25px;border-bottom:1px solid var(--line);padding:0 0 22px;margin-bottom:24px}.steps article>span{font-size:.85rem;color:var(--muted)}.steps p{margin:0;color:var(--muted)}.steps h3{margin-bottom:12px}.faq{padding-top:0}details{border-bottom:1px solid var(--line);padding:19px 0}summary{font-size:1.05rem;font-weight:600;cursor:pointer}details p{margin:16px 0 0;color:var(--muted)}.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:90px;background:var(--navy);color:white}.contact p{max-width:510px;color:#d2dde4}.contact .eyebrow{color:#ccd6df}.contact h2{font-size:clamp(2.5rem,4vw,4rem)}.button.light{background:#fff;color:var(--navy)}.button.light:hover{background:#dce4e9}.small{font-size:.85rem;margin-top:16px}.contact-right{padding-top:18px}.contact-right .contact-stack{margin-bottom:30px}.contact-right .phone{font-size:1.8rem}.contact-right .contact-stack a:not(.phone){font-size:1.15rem}footer{background:var(--deep);color:#c6d1d8;padding:25px 5%;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8rem}.service-hero{display:grid;grid-template-columns:1fr 1fr;gap:65px;background:var(--paper)}.service-hero h1{font-size:clamp(2.5rem,4vw,4rem)}.service-hero p:not(.eyebrow){color:var(--muted)}.service-hero figure img{width:100%;height:100%;max-height:540px;object-fit:cover}.service-sections article{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:25px}.related{padding:0 5% 60px;display:flex;gap:25px;flex-wrap:wrap}.related p{width:100%;margin-bottom:0;font-weight:600}.skip{position:absolute;top:-100px;left:20px;z-index:20;background:white;padding:12px}.skip:focus{top:12px}:focus-visible{outline:3px solid #bf893f;outline-offset:5px}@media(min-width:1500px){.hero{padding-left:0;padding-right:0}}@media(max-width:1100px){.region-strip{margin:0 5%}.hero{grid-template-columns:46% 54%}.hero-photo{min-height:550px}.contact{gap:45px}.gallery img{height:230px}.header nav{gap:20px}}@media(max-width:800px){.header{padding:14px 6%;gap:18px}.brand img{width:125px}.header nav{gap:15px;font-size:.85rem;flex-wrap:wrap;justify-content:flex-end}.header nav a:nth-child(3){display:none}.nav-contact{padding:8px 12px}.hero{display:flex;flex-direction:column;padding:0}.hero-copy{padding:38px 6%}h1{font-size:clamp(2.65rem,10vw,4rem)}.hero-copy>p:not(.eyebrow){max-width:100%}.hero-photo{min-height:0;height:400px}.hero-photo img{object-position:center}.region-strip{flex-direction:column;gap:5px;padding:22px 0}.section{padding:52px 6%}.section-heading{grid-template-columns:1fr;gap:0;margin-bottom:25px}.service-grid{grid-template-columns:1fr;gap:30px}.number{margin-bottom:18px}.additional{grid-template-columns:1fr;padding:22px;gap:8px}.additional p{margin-bottom:15px}.gallery{grid-template-columns:1fr 1fr;gap:24px 16px}.gallery img{height:220px}.approach,.faq,.contact,.service-hero,.service-body{grid-template-columns:1fr;gap:30px}.faq{padding-top:10px}.contact-right{padding:0}.contact-right .contact-stack a:not(.phone){font-size:1rem}.service-hero figure img{height:320px}.related{padding:0 6% 45px}.eyebrow{font-size:.75rem}.contact h2{font-size:2.8rem}}@media(max-width:450px){.header nav{max-width:180px;gap:10px 15px}.header nav a:first-child{display:none}.gallery{grid-template-columns:1fr}.gallery img{height:290px}.hero-photo{height:330px}.hero-photo figcaption{font-size:.7rem}.button{padding:15px 18px;gap:15px;font-size:.9rem}.contact-stack a{font-size:.95rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Folder galleries and accessible photo viewer */
.photo-trigger{border:0;padding:0;background:transparent;display:block;width:100%;cursor:zoom-in;color:inherit}.hero-photo>.photo-trigger{height:100%}.hero-photo .carousel-controls{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px}.carousel-controls button,.photo-viewer button{border:1px solid #aab8c2;color:white;background:#042334;font:inherit;cursor:pointer;min-width:44px;min-height:44px}.carousel-controls button{font-size:1.8rem;line-height:1}.photo-groups>section+section{margin-top:40px}.photo-groups h3{margin-bottom:20px}.viewer-open{overflow:hidden}.photo-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;padding:76px 24px 24px;background:rgba(3,20,30,.97);color:#fff}.photo-viewer::backdrop{background:#03141e}.viewer-close{position:absolute;right:24px;top:18px;padding:5px 16px}.viewer-stage{display:flex;align-items:center;justify-content:center;gap:20px;height:calc(100% - 55px)}.viewer-stage img{max-width:calc(100% - 140px);max-height:100%;width:auto;height:auto;object-fit:contain}.viewer-stage button{font-size:2rem;flex-shrink:0}.viewer-caption{text-align:center;margin:15px 0 0;font-size:.9rem}.photo-viewer button[hidden],.carousel-controls button[hidden]{display:none}.service-hero .photo-trigger{height:100%}@media(max-width:600px){.photo-viewer{padding:75px 10px 20px}.viewer-stage{gap:6px}.viewer-stage img{max-width:calc(100% - 100px)}.viewer-close{right:12px}.carousel-controls{font-size:.65rem!important}}

/* Keep the mobile logo bright and prevent flex compression. */
.brand{flex-shrink:0}.brand picture{display:block}@media(max-width:800px){.brand img{width:160px;height:auto;opacity:1}.header{gap:14px}}@media(max-width:380px){.header{padding-left:16px;padding-right:16px;gap:10px}.brand img{width:150px}.header nav{max-width:128px}}
