@font-face{font-family:Montserrat;src:url("/assets/montserrat-variable.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}
:root{--bone:#f6f3eb;--petrol:#103f4b;--turquoise:#53d3c8;--ink:#153e49;--muted:#4e6267;--line:#cbd3cf;--accent:#087c80}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bone);color:var(--ink);font-family:Montserrat,Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}img{display:block;max-width:100%;height:auto}.wrap{width:calc(100% - 40px);max-width:1280px;margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:8px}.brand img{width:180px;height:auto}.brand span{font-size:.75rem;letter-spacing:.12em;border-left:1px solid var(--line);padding-left:8px}.site-header nav{display:flex;gap:14px;font-size:.875rem}.site-header nav a{padding-block:12px}.site-header nav [aria-current]{text-decoration:underline;text-underline-offset:6px}.eyebrow{font-size:.875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin:0 0 24px}.hero{padding-block:44px 48px}.hero .eyebrow{max-width:270px}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:800;letter-spacing:-.045em;line-height:1.04;text-wrap:balance}h1{font-size:clamp(2.7rem,12.5vw,6.8rem);margin-bottom:26px}.hero h1 span{color:var(--accent);display:block}.hero h1 .serio{color:var(--petrol)}.hero-bottom p{max-width:360px;color:var(--muted);margin-bottom:24px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:32px;padding:16px 22px;min-height:56px;background:var(--petrol);color:white;font-weight:700;font-size:1rem}.button:hover{background:var(--accent);text-decoration:none}.button span{font-size:1.3rem}.collection{padding-block:12px 64px}.section-heading{border-top:1px solid var(--line);padding-top:22px;margin-bottom:28px}.section-heading .eyebrow{margin-bottom:8px}.index,.number{font-size:.875rem;color:var(--muted)}.home-project{display:block}.home-project-copy{padding:28px 0;border-bottom:1px solid var(--line)}h2{font-size:clamp(2rem,9vw,4.5rem);margin-bottom:20px}.home-project-copy p,.project p{color:var(--muted)}.text-link{font-weight:700;display:inline-block;padding-block:10px;min-height:44px}.text-link span{margin-left:14px}.category-hero{padding-block:48px 38px}.intro{max-width:620px;color:var(--muted);font-size:1.125rem}.projects{display:grid;gap:36px;padding-bottom:64px}.project{border-top:1px solid var(--line);padding-top:20px;min-width:0}.project-info{display:grid;grid-template-columns:24px 1fr;gap:12px;padding-top:20px}.project h2{font-size:clamp(1.75rem,8vw,3.2rem);margin-bottom:12px}.project p{margin-bottom:10px}.photograph{margin:0;overflow:hidden}.photograph img{width:100%;height:auto;object-fit:cover}.project .photograph img{aspect-ratio:4/3}.featured .photograph img{aspect-ratio:4/5}.home-project .photograph img{aspect-ratio:4/3}.closing{background:var(--petrol);color:#fff;padding-block:56px}.closing h2{max-width:900px}.closing p:not(.eyebrow){max-width:570px;color:#c9dbdf}.closing .button{background:var(--turquoise);color:var(--petrol);margin-top:10px}.closing .button:hover{background:#8ce7de}.closing .fine{font-size:.875rem;margin:24px 0 0}.site-footer{background:var(--petrol);color:#fff;border-top:1px solid #42636c;padding-block:32px}.footer-inner{display:grid;gap:22px}.footer-brand{width:190px}.footer-inner p{font-size:.875rem;margin:0;color:#c9dbdf}.footer-inner a:last-child{font-size:.875rem;min-height:44px;padding-block:10px}.breadcrumbs{display:flex;gap:12px;font-size:.875rem;padding-block:24px;flex-wrap:wrap}.product-hero{padding-bottom:48px}.product-copy{padding-top:24px}.product-copy h1{font-size:clamp(2.5rem,11vw,5.1rem)}.product-copy p{max-width:570px;color:var(--muted)}.product-copy .lead{font-size:1.4rem;color:var(--ink);line-height:1.3;font-weight:700}.product-main img{aspect-ratio:4/5}.options{padding-block:32px 48px;border-top:1px solid var(--line)}.option-rows{margin-top:28px}.option-rows>div{border-top:1px solid var(--line);padding-block:20px}.option-rows h3{font-size:1rem;margin-bottom:8px}.option-rows p{margin:0;color:var(--muted)}.gallery{display:grid;gap:20px;padding-bottom:48px}.gallery:empty{display:none}.gallery img{aspect-ratio:4/5}.skip{position:fixed;top:-100px;left:12px;background:#fff;padding:12px;z-index:10}.skip:focus{top:12px}@media(min-width:760px){.wrap{width:calc(100% - 96px)}.site-header{padding-block:24px}.brand img{width:260px}.site-header nav{gap:30px;font-size:1rem}.hero{padding-block:70px}.hero h1 br{display:none}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}.hero-bottom p{font-size:1.25rem;margin:0}.section-heading{display:flex;justify-content:space-between}.home-project-copy{padding-block:40px}.home-project .photograph img{aspect-ratio:16/9}.category-hero{padding-block:72px 52px}.category-hero h1{max-width:1100px}.projects{grid-template-columns:1fr 1fr;gap:48px}.featured{grid-column:1/-1}.featured .photograph img{aspect-ratio:16/9}.featured .project-info{grid-template-columns:48px 1fr}.closing{padding-block:80px}.closing p{font-size:1.125rem}.closing .fine{font-size:.875rem}.footer-inner{grid-template-columns:1fr 1fr auto;align-items:center}.product-hero:has(.photograph){display:grid;grid-template-columns:1.1fr 1fr;gap:56px}.product-copy{padding-top:16px}.options{padding-block:48px 64px}.option-rows>div{display:grid;grid-template-columns:1fr 2fr}.gallery{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(max-width:359px){.site-header{flex-wrap:wrap}.site-header nav{margin-left:auto}h1{font-size:2.5rem}}

/* Preserve complete project photographs and their embedded branding. */
.photograph img{aspect-ratio:auto!important;height:auto!important}.project.featured .photograph{max-width:900px}.product-main{align-self:start}.gallery .photograph{align-self:start}@media(min-width:760px){.home-project{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}.home-project-copy{border:0}.featured .project-info{max-width:900px}}

.site-header{flex-wrap:wrap}.brand img{width:182px}.site-header nav{margin-left:auto}@media(min-width:760px){.brand img{width:250px}}
h1,h2,h3{overflow-wrap:normal;hyphens:none}.product-copy{min-width:0}

/* Home services and a consistent editorial type scale. */
.hero h1{font-size:clamp(3rem,12vw,7.25rem);line-height:.94;letter-spacing:-.055em}.hero-bottom p{font-size:clamp(1.05rem,4.6vw,1.35rem)}.section-intro{padding-block:52px 32px;border-top:1px solid var(--line)}.section-intro h2{max-width:980px;font-size:clamp(2.15rem,8.8vw,5rem);line-height:1}.section-intro>p:last-child{max-width:630px;color:var(--muted);font-size:clamp(1rem,3.8vw,1.18rem)}.feature-service{display:flex;flex-direction:column;gap:24px;padding-block:36px;border-top:1px solid var(--line)}.feature-copy{min-width:0}.feature-copy h2{font-size:clamp(2rem,8.6vw,4.75rem);line-height:1;margin:18px 0}.feature-copy p{max-width:540px;color:var(--muted);font-size:clamp(1rem,3.8vw,1.16rem)}.feature-service .photograph img{width:100%;height:auto}.feature-gallery{display:grid;grid-template-columns:1.35fr .65fr;gap:10px;align-items:start}.feature-gallery .photograph:first-child{grid-row:span 2}.feature-gallery .photograph img{width:100%;height:100%!important;aspect-ratio:1/1!important;object-fit:cover}.feature-gallery .photograph:first-child img{aspect-ratio:1/2.03!important}.more-services{background:#e9f0ed;padding-block:56px}.more-services .section-intro{padding-top:0}.section-intro.compact h2{max-width:820px;font-size:clamp(2rem,8vw,4.3rem)}.service-grid{display:grid;gap:32px}.service-card{display:block;border-top:1px solid #aebdb8;padding-top:18px}.service-card:hover{text-decoration:none}.service-card>div{padding-top:20px}.service-card h3{font-size:clamp(1.45rem,6.2vw,2.25rem);line-height:1.08;letter-spacing:-.035em;margin-bottom:12px}.service-card p{color:var(--muted);margin-bottom:4px}.service-card .photograph img{width:100%;height:auto}.service-card:hover h3{text-decoration:underline;text-underline-offset:6px}.home-services{padding-bottom:36px}
@media(min-width:760px){.section-intro{padding-block:84px 56px}.feature-service{display:grid;grid-template-columns:.82fr 1.18fr;align-items:center;gap:64px;padding-block:72px}.feature-service.reverse{grid-template-columns:1.18fr .82fr}.feature-service.reverse .feature-copy{order:2}.feature-copy h2{font-size:clamp(2.65rem,4.45vw,4.35rem)}.more-services{padding-block:88px}.service-grid{grid-template-columns:repeat(2,1fr);gap:56px 36px}.service-card h3{font-size:clamp(1.65rem,2.4vw,2.35rem)}}
@media(min-width:1100px){.service-grid{grid-template-columns:repeat(3,1fr)}.site-header nav{gap:36px}}
@media(max-width:359px){.hero h1{font-size:2.55rem}.section-intro h2,.feature-copy h2{font-size:2rem}.service-card h3{font-size:1.4rem}}

/* Portfolio galleries and balanced type scale. */
.hero .eyebrow{max-width:none;white-space:nowrap;font-size:clamp(.68rem,2.8vw,.875rem);letter-spacing:.055em}.hero h1{font-size:clamp(2.9rem,10vw,6.25rem)}.hero-bottom p{font-size:clamp(1.1rem,4.6vw,1.4rem)}.section-intro h2{font-size:clamp(2.05rem,7.2vw,4.25rem)}.section-intro>p:last-child,.feature-copy p{font-size:clamp(1.08rem,4vw,1.3rem);line-height:1.55}.feature-copy h2{font-size:clamp(2rem,7.6vw,3.85rem);line-height:1.03}.feature-gallery{display:block}.gallery-launch{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.gallery-launch .photograph{width:100%;background:#e5e1d8}.gallery-launch .photograph img,.feature-gallery .gallery-launch .photograph:first-child img{width:100%;height:auto!important;aspect-ratio:1/1!important;object-fit:contain}.gallery-launch>span{position:absolute;right:14px;bottom:14px;display:flex;gap:16px;align-items:center;background:var(--petrol);color:#fff;padding:11px 14px;font-family:inherit;font-size:.82rem;font-weight:750}.gallery-launch:hover>span{background:var(--accent)}.service-card:hover h3{text-decoration:none}.service-card .gallery-launch+div{padding-top:20px}.service-card .text-link:hover,.feature-copy .text-link:hover{text-decoration:underline}.lightbox{width:min(1100px,calc(100% - 24px));max-width:none;height:min(880px,calc(100% - 24px));padding:52px 16px 18px;border:0;background:#0d3038;color:#fff}.lightbox::backdrop{background:rgba(5,20,24,.86)}.lightbox-close{position:absolute;right:14px;top:8px;border:0;background:transparent;color:#fff;font-size:2.2rem;line-height:1;cursor:pointer}.lightbox-stage{height:calc(100% - 60px);display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px}.lightbox-stage img{width:100%;height:100%;object-fit:contain}.lightbox-prev,.lightbox-next{border:1px solid #6d8b91;background:transparent;color:#fff;width:42px;height:42px;font-size:1.25rem;cursor:pointer}.lightbox-meta{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 50px 0;font-size:.86rem}.lightbox-meta p{margin:0}.lightbox-meta span{white-space:nowrap;color:#b9d0d4}
@media(min-width:760px){.section-intro h2{font-size:clamp(3rem,4.6vw,4.25rem)}.feature-copy h2{font-size:clamp(2.75rem,3.8vw,3.85rem)}.feature-copy p{font-size:1.22rem}.gallery-launch>span{right:18px;bottom:18px;padding:13px 16px;font-size:.9rem}}
@media(max-width:420px){.hero .eyebrow{letter-spacing:.025em}.lightbox{padding-inline:8px}.lightbox-stage{grid-template-columns:36px minmax(0,1fr) 36px;gap:4px}.lightbox-prev,.lightbox-next{width:36px;height:42px}.lightbox-meta{padding-inline:40px}.lightbox-meta p{display:none}}
.lightbox{overflow:hidden}.lightbox-stage{min-width:0;min-height:0}.lightbox-stage img{display:block;min-width:0;min-height:0;max-width:100%;max-height:100%;width:auto;height:auto;justify-self:center;align-self:center;object-fit:contain}
.brand img{width:198px}@media(min-width:760px){.brand img{width:278px}}

/* Interior pages use a calmer title scale than the home cover. */
.category-hero h1{font-size:clamp(2.55rem,6.4vw,4.25rem);font-weight:750;letter-spacing:-.035em;line-height:1.04;max-width:900px}.category-hero .intro{font-size:clamp(1.08rem,2.2vw,1.3rem);line-height:1.55}.product-copy h1{font-size:clamp(2.4rem,5.8vw,3.9rem);font-weight:750;letter-spacing:-.035em;line-height:1.04}.product-copy .lead{font-size:clamp(1.25rem,2.5vw,1.55rem)}
.service-detail{padding-bottom:64px}.detail-list{display:grid;border-top:1px solid var(--line)}.detail-list>div{padding-block:28px;border-bottom:1px solid var(--line)}.detail-list span{font-size:.8rem;color:var(--muted)}.detail-list h2{font-size:clamp(1.65rem,6vw,2.45rem);margin:10px 0}.detail-list p{max-width:520px;color:var(--muted);font-size:1.05rem}.category-gallery{padding-top:64px}.category-gallery>div:first-child{margin-bottom:28px}.category-gallery h2{font-size:clamp(2rem,7vw,3.8rem);max-width:780px}.category-gallery .gallery-launch{max-width:900px}.category-gallery .gallery-launch .photograph img{aspect-ratio:1/1!important;object-fit:contain}@media(min-width:760px){.detail-list{grid-template-columns:repeat(3,1fr)}.detail-list>div{padding:36px 28px;border-right:1px solid var(--line)}.detail-list>div:first-child{padding-left:0}.detail-list>div:last-child{border-right:0}.category-gallery{padding-top:88px}}
.category-gallery .eyebrow{font-size:.92rem;margin-bottom:16px}.category-gallery h2{font-size:clamp(2rem,4.5vw,2.8rem);font-weight:750;letter-spacing:-.035em;line-height:1.08}
.closing h2{font-size:clamp(2rem,4.2vw,3rem);font-weight:750;letter-spacing:-.035em;line-height:1.08;margin-bottom:18px}.closing p:not(.eyebrow){font-size:clamp(1rem,2vw,1.16rem)}

/* All service pages are reachable from the main navigation. */
.services-menu{position:relative;font-size:inherit}.services-menu summary{list-style:none;cursor:pointer;padding-block:12px}.services-menu summary::-webkit-details-marker{display:none}.services-menu summary::after{content:'⌄';font-size:.8em;margin-left:7px}.services-menu[open] summary::after{content:'⌃'}.services-menu-list{position:absolute;z-index:5;right:0;top:calc(100% + 8px);display:grid;gap:2px;min-width:220px;padding:10px;background:var(--bone);border:1px solid var(--line);box-shadow:0 12px 28px rgba(16,63,75,.12)}.services-menu-list a{padding:9px 12px;white-space:nowrap}.services-menu-list a:hover,.services-menu-list a[aria-current]{background:#e9f0ed;text-decoration:none}@media(max-width:759px){.services-menu-list{position:fixed;left:20px;right:20px;top:112px;min-width:0}.services-menu-list a{white-space:normal}.site-header nav{align-items:center}}
