/* Curated project photography, October 2026. */
.project-search{max-width:680px;margin-bottom:28px}.project-search label{display:block;font-weight:800;font-size:15px;margin-bottom:10px}.project-search input{width:100%;min-width:0;min-height:48px;padding:10px 14px;border:1px solid #93a8b8;background:white}.project-search .search-controls{display:flex;gap:10px}.project-search button{padding:10px 18px;background:white;border:1px solid #93a8b8;font-weight:700}.project-set{align-self:start}.project-set>.project-service-link{display:inline-block;margin-top:15px}.project-angles{border-block:1px solid var(--line);margin-top:18px;padding-block:12px}.project-angles summary{cursor:pointer;font-size:13px;font-weight:800;min-height:30px;padding-block:4px}.project-angles>div{display:grid;gap:18px;padding-top:16px}.project-angles figure{aspect-ratio:auto;overflow:visible;background:transparent}.project-angles .project-photo-link{height:auto;background:var(--wash)}.project-angles picture,.project-angles img{height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}.project-angles figcaption{padding-top:9px;font-size:12px;line-height:1.6;color:var(--muted)}.project-more{margin-top:40px}.photo-dialog-caption{padding:14px 22px 0;margin:0;font-size:13px;color:#c0d0dd;line-height:1.5}.photo-dialog-image img{max-height:calc(94dvh - 225px)}
.site-nav .current-menu-ancestor>a,.site-nav .current-menu-parent>a{color:var(--blue);text-decoration:underline;text-underline-offset:7px}
@media(max-width:1050px){html.js .site-nav{max-height:var(--navigation-space,calc(100dvh - 180px));overflow-y:auto;overscroll-behavior:contain}}
.hero{grid-template-columns:1fr 1.08fr;min-height:720px}
.hero-copy{padding-top:56px;padding-bottom:56px}
.hero-copy h1{font-size:clamp(64px,6.4vw,92px)}
.hero-copy>*{margin-block-start:0!important}
.hero-copy .hero-note{margin-top:28px!important}
.hero-showcase{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1.5fr) minmax(0,1fr);gap:5px;min-width:0;height:720px;margin:0!important;overflow:hidden}
.hero-showcase figure{position:relative;margin:0;min-width:0;min-height:0;overflow:hidden}
.hero-showcase-main{grid-column:1/-1}
.hero-showcase .project-photo-link,.hero-showcase picture{height:100%;width:100%}
.hero-showcase img{width:100%;height:100%;object-fit:cover}
.hero-showcase figcaption{position:absolute;bottom:0;left:0;right:0;padding:38px 20px 16px;background:linear-gradient(transparent,#031523cc);color:white;font-size:12px;font-weight:700;pointer-events:none}
.project-photo-link{display:block;position:relative;height:100%;text-decoration:none;overflow:hidden}
.project-photo-link picture{display:block;width:100%;height:100%}
.project-photo-link:focus-visible{outline-offset:-5px;outline-color:#00aeef}
.photo-expand{position:absolute;right:13px;top:13px;display:grid;place-items:center;width:34px;height:34px;background:#081d30dc;color:white;font-size:22px;border:1px solid #ffffff70;border-radius:50%}
.project-stage{margin:18px 0 7px!important;color:var(--blue-dark)!important;text-transform:uppercase;font-size:10px!important;font-weight:800;letter-spacing:.12em}
.project-card h3{margin-top:0}
.media picture{display:block;width:100%;height:100%}
.service-hero figure{overflow:visible;aspect-ratio:auto}
.service-hero figure picture{display:block;aspect-ratio:4/3;overflow:hidden}
.service-hero figure img{width:100%;height:100%;object-fit:cover}
.split .media{aspect-ratio:auto;overflow:visible}
.split .media picture{aspect-ratio:5/4;overflow:hidden}
.split .media.panorama picture{aspect-ratio:auto}
.split .media.panorama img{height:auto}
.service-proof .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px}
.photo-dialog{border:1px solid #466071;border-radius:4px;background:#081d30;color:white;padding:0;width:min(1200px,94vw);max-width:94vw;max-height:94dvh;overflow:auto}
.photo-dialog::backdrop{background:#03111ee8}
.photo-dialog-bar,.photo-dialog-nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 22px}
.photo-dialog-bar p{margin:0;font-weight:700;font-size:16px}
.photo-dialog button{min-height:44px;padding:9px 15px;border:1px solid #668092;background:transparent;color:white;font-size:13px}
.photo-dialog-image{background:#041421;display:grid;place-items:center;min-height:160px}
.photo-dialog-image img{width:100%;height:auto;max-height:calc(94dvh - 160px);object-fit:contain}
.photo-dialog-nav span{font-size:13px;color:#b8cbd9}
.photo-dialog-open{overflow:hidden}
@media(max-width:1100px){.hero-copy h1{font-size:clamp(62px,7.3vw,86px)}.hero-copy{padding-inline:28px}.hero-showcase{height:720px}}
@media(max-width:800px){.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:48px 20px}.hero-showcase{height:620px;min-height:0;grid-template-rows:1.45fr 1fr}.hero-showcase figcaption{padding:32px 15px 13px}.hero-copy h1{font-size:clamp(61px,12.5vw,88px)}.service-hero figure{max-height:none}.photo-dialog-bar,.photo-dialog-nav{padding:12px;gap:10px}.photo-dialog-bar p{font-size:14px}.photo-dialog-image img{max-height:calc(94dvh - 160px)}}
@media(max-width:480px){.hero-showcase{height:470px}.hero-showcase figcaption{font-size:10px;padding-inline:12px}.photo-expand{width:28px;height:28px;right:9px;top:9px;font-size:18px}.service-proof .project-grid{grid-template-columns:1fr}.photo-dialog-nav button{padding-inline:10px}.photo-dialog-bar p{max-width:220px}}
@media(prefers-reduced-motion:reduce){.project-card img{transition:none}.project-card:hover img{transform:none}}

/* Preserve complete project photographs at every breakpoint. Captions sit
   outside the image so they cannot obscure lettering near the lower edge. */
.hero-showcase{height:auto;align-self:center;grid-template-rows:auto auto;overflow:visible}
.hero-showcase figure{display:flex;flex-direction:column;background:var(--navy)}
.hero-showcase .project-photo-link,.hero-showcase picture{height:auto}
.hero-showcase img{height:auto;object-fit:contain}
.hero-showcase figcaption{position:static;padding:12px 16px;background:var(--navy)}
.project-card figure{background:#e9eff3}
.project-card img{object-fit:contain;transform:none;transition:none}
.project-card:hover img{transform:none}
.service-hero figure picture,.split .media picture{aspect-ratio:auto;overflow:visible}
.service-hero figure img,.split .media img{height:auto;object-fit:contain}
.service-strip .wrap{flex-wrap:wrap;justify-content:flex-start;column-gap:30px}
/* Keep the headline and project action readable before the photo gallery. */
@media(min-width:801px){.hero-copy{justify-content:flex-start;padding-top:clamp(56px,7vw,100px)}}
@media(max-width:480px){.hero-copy h1{font-size:clamp(42px,11.5vw,56px);line-height:1.08}}

/* Illustrated solution routes keep each complete project photograph visible. */
.solution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.solution-card{min-width:0;border:1px solid var(--line);background:var(--wash)}
.solution-card figure{margin:0;background:#e9eff3;aspect-ratio:4/3;position:relative;overflow:hidden}
.solution-card figure>a{position:absolute;inset:0}
.solution-card figure a,.solution-card picture{width:100%;height:100%;display:block}
.solution-card img{width:100%;height:100%;object-fit:contain}
.solution-card-copy{padding:30px}.solution-card h2{font-size:34px}
.solution-card h2 a{text-decoration:none}.solution-card h2 a:hover{text-decoration:underline}
.solution-card p{font-size:16px;color:var(--muted)}
.solution-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center}
@media(max-width:800px){.solution-grid{grid-template-columns:1fr;gap:24px}.solution-card-copy{padding:24px}.solution-card h2{font-size:32px}}
@media(max-width:800px){.solution-card:last-child{display:block}}

/* 0.3: a connected editorial system, with service detail revealed on demand. */
.presence-hero .section{padding-block:64px 58px}
.presence-layout{display:grid;grid-template-columns:1fr 1.08fr;gap:56px;align-items:center}
.presence-copy h1{font-size:clamp(58px,6.5vw,100px);line-height:1;letter-spacing:-.025em;margin-bottom:28px}
.presence-copy h1 em{color:var(--blue);font-style:normal}
.presence-copy .lead{font-size:18px;line-height:1.65;max-width:540px}
.presence-copy .hero-note{font-size:12px;max-width:360px}
.presence-image{margin:0;min-width:0}
.presence-image .project-photo-link,.presence-image picture{display:block;height:auto}
.presence-image img{width:100%;height:auto;object-fit:contain}
.presence-image figcaption{display:flex;justify-content:space-between;gap:18px;border-top:1px solid #355064;padding-top:18px;margin-top:18px;font-size:12px;color:#b8cbd9}
.presence-image figcaption span:first-child{color:white;font-weight:700}
.capability-line{background:#0d2a40;color:#c6d7e2;border-top:1px solid #355064}
.capability-line .wrap{display:flex;gap:28px;align-items:center;flex-wrap:wrap;padding-block:21px;font-size:12px}
.capability-line span:before{content:'+';margin-right:12px;color:var(--blue)}
.capability-line a{margin-left:auto;color:white}
.work-edit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.work-edit figure{margin:0 0 24px;aspect-ratio:4/3;background:#e9eff3;position:relative}
.work-edit .project-photo-link{position:absolute;inset:0;width:100%;height:100%}
.work-edit picture{display:block;width:100%;height:100%}
.work-edit img{width:100%;height:100%;object-fit:contain}
.work-edit .eyebrow{font-size:10px;margin-bottom:16px}
.work-edit .eyebrow:before{display:none}
.work-edit h3{font-size:25px;line-height:1.2;margin-bottom:15px}
.work-edit p{font-size:15px;color:var(--muted)}
.work-edit .text-link{font-size:13px}
.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.family-card{padding:30px;position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;background:white}
.family-card:hover{background:#e7f2f8}.family-number{font-size:11px;color:var(--blue-dark);font-weight:800;letter-spacing:.1em}
.family-card h3{font-size:22px;line-height:1.25;max-width:240px;margin:32px 20px 14px 0}
.family-card p{font-size:14px;color:var(--muted);margin:0;max-width:250px}
.family-arrow{position:absolute;top:25px;right:25px;color:var(--blue-dark);font-size:25px}
.directory-link{margin-top:30px;margin-bottom:0}
.craft-story{align-items:center}.craft-story>.media{max-width:520px}
.service-hero{align-items:start}
.project-service-link{display:inline-block;font-size:12px;font-weight:700;color:var(--blue-dark);padding-block:8px}
.service-search{display:none;max-width:780px;margin-bottom:52px}.js .service-search{display:block}
.page-hero + .section.compact{padding-top:12px}
.service-search label{display:block;font-weight:800;margin-bottom:12px}
.search-controls{display:flex;border:1px solid #8da4b3;background:white;gap:8px}
.search-controls input{min-width:0;flex:1;padding:16px;border:0;background:transparent;font-size:16px}
.search-controls button{background:var(--wash);border:0;border-left:1px solid var(--line);padding:12px 18px;min-height:48px;color:var(--ink)}
.service-search p{font-size:13px;color:var(--muted);margin:12px 0 0}
.directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.directory-family{border-top:3px solid var(--blue);padding:30px;background:var(--wash);scroll-margin-top:120px}
.directory-family h2{font-size:38px;margin-top:18px}.directory-family p{font-size:16px;max-width:500px;color:var(--muted)}
.directory-family ul{padding:0;list-style:none;margin:24px 0 0}.directory-family li{border-top:1px solid var(--line);margin:0}
.directory-family a{display:flex;justify-content:space-between;gap:20px;padding-block:13px;font-size:14px;text-decoration:none;font-weight:700}
.directory-family a:hover{text-decoration:underline}.directory-family a span{color:var(--blue-dark)}
.directory-photo{margin:0 0 24px;background:#e4ebef;overflow:hidden}
.directory-family .directory-photo .project-photo-link{display:block;padding:0;gap:0;position:relative}
.directory-photo picture{display:block;width:100%}
.directory-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.directory-family .directory-photo .photo-expand{color:#fff}
.project-stories{margin-bottom:56px;padding-bottom:40px;border-bottom:1px solid var(--line)}
[data-service-family][hidden],[data-search-empty][hidden]{display:none!important}
@media(max-width:1100px){.presence-layout{gap:32px}.presence-copy h1{font-size:66px}.family-card{padding:24px}}
@media(max-width:1050px){.menu-toggle{display:block}.site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);padding:24px;box-shadow:0 15px 20px #0002}.site-nav.open{display:block}.site-nav ul{display:block}.site-nav li{padding:12px 0;border-bottom:1px solid #365064}.site-nav .button{margin-top:22px;display:flex}html:not(.js) .header-inner{flex-wrap:wrap;padding-block:18px}html:not(.js) .menu-toggle{display:none}html:not(.js) .site-nav{display:block;position:static;width:100%;box-shadow:none;padding:0}}
@media(max-width:800px){.presence-layout{grid-template-columns:1fr;gap:38px}.presence-hero .section{padding-block:42px}.presence-copy h1{font-size:clamp(54px,10vw,74px)}.presence-copy .lead{font-size:17px}.presence-image figcaption{font-size:11px}.capability-line .wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px}.capability-line a{grid-column:1/-1;margin:0}.work-edit{grid-template-columns:1fr;gap:44px}.work-edit figure{aspect-ratio:auto}.work-edit .project-photo-link{position:relative;height:auto}.work-edit img{height:auto}.work-edit h3{font-size:25px}.family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-card{padding:24px 18px}.family-card h3{font-size:20px}.directory-grid{grid-template-columns:1fr}.directory-family{padding:24px}.directory-family h2{font-size:34px}.craft-story>.media{max-width:100%}}
@media(max-width:480px){.family-grid{grid-template-columns:1fr}.family-card h3{max-width:none;margin-top:20px}.family-card p{max-width:none}.presence-image figcaption{flex-direction:column;gap:4px}.presence-copy h1{font-size:clamp(48px,12vw,58px)}}

.location-card{border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.location-card h3{font-size:22px}.location-card address{font-style:normal;margin-bottom:16px}.location-card p{font-size:14px;color:var(--muted)}

/* Honour hidden states even when a component declares flex or grid display. */
.customer-voices{border-top:1px solid var(--line)}
.review-summary{align-self:center}.review-summary p{margin-bottom:7px;font-size:14px;color:var(--muted)}.review-summary strong{font-size:26px;color:var(--ink)}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.review-card{margin:0;padding:28px;background:var(--wash);border-top:3px solid var(--blue);display:flex;flex-direction:column}
.review-card-top{display:flex;flex-direction:column;gap:10px}.review-topic{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;margin:0;color:var(--muted)}
.review-stars{font-size:16px;letter-spacing:3px;color:#885400}.review-card blockquote{margin:24px 0 30px;font-size:18px;line-height:1.7}.review-card blockquote p{margin:0}
.review-card figcaption{margin-top:auto;font-size:13px;display:flex;flex-direction:column;gap:5px}.review-card figcaption a{font-size:12px;color:var(--muted)}
.reference-caption{font-size:12px;color:var(--muted);margin:22px 0 0;max-width:960px}.reference-preview-note{font-size:12px;color:#624900;background:#fff7dc;border-left:3px solid #a77c00;padding:12px 16px;margin:20px 0}
.materials-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:72px;align-items:center}.materials-hero>.media{margin:0;max-width:440px;justify-self:end}.materials-hero img{width:100%;height:auto;object-fit:contain}
.material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;margin-top:40px}.material-grid article{border-top:1px solid var(--line);padding:30px 0;scroll-margin-top:130px}.material-number{color:var(--blue-dark);font-size:13px;font-weight:800}.material-grid h3{margin-top:18px}.material-grid p{color:var(--muted);font-size:16px}.material-grid .text-link{font-size:14px}
.brand-groups{margin-top:40px}.brand-group{display:grid;grid-template-columns:.65fr 1.6fr;grid-template-rows:min-content 1fr;column-gap:48px;border-top:1px solid var(--line);padding:36px 0}.brand-group>h3{grid-column:1;font-size:21px;margin-bottom:12px}.brand-group>p{grid-column:1;grid-row:2;color:var(--muted);font-size:14px}.brand-list{grid-column:2;grid-row:1/3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.brand-reference{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:144px;gap:12px;padding:20px;border:1px solid var(--line);text-decoration:none}.brand-reference:hover{border-color:var(--blue-dark);background:var(--wash)}.brand-name{font-size:18px;font-weight:800;line-height:1.3}.brand-role{font-size:12px;line-height:1.5;color:var(--muted)}.brand-link-label{font-size:12px;color:var(--muted);margin-top:auto}.brand-logo{width:100%;max-width:150px;height:50px;object-fit:contain;object-position:left center}
@media(max-width:1050px){.brand-list{grid-template-columns:repeat(2,minmax(0,1fr))}.materials-hero{gap:36px}.review-card{padding:22px}}
@media(max-width:800px){.review-grid{grid-template-columns:1fr}.review-card blockquote{font-size:18px}.materials-hero{grid-template-columns:1fr;gap:30px}.materials-hero>.media{justify-self:start;max-width:420px}.material-grid{grid-template-columns:1fr}.brand-group{display:block}.brand-group>p{max-width:560px}.brand-list{margin-top:24px}.review-summary strong{font-size:23px}}
@media(max-width:380px){.brand-list{grid-template-columns:1fr}.brand-reference{min-height:120px}}
[hidden]{display:none!important}
.consent-panel{max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:800px){.consent-panel{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}}
.review-share-link{margin:18px 0 0;font-size:14px}
.review-request{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:72px;align-items:center;border-top:1px solid var(--line);scroll-margin-top:130px}
.review-request .lead{max-width:650px;margin-bottom:28px}.review-qr{margin:0;padding:22px;background:#fff;border:1px solid var(--line);text-align:center;color:var(--ink)}
.review-qr img{display:block;width:256px;max-width:100%;height:auto;margin:0 auto}.review-qr figcaption{font-size:13px;line-height:1.5;margin:14px 0}.review-qr a{font-size:13px;font-weight:700}
.concept-visual{margin:0}.concept-visual picture,.concept-visual img{display:block;width:100%;height:auto}.concept-visual figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:14px}
@media(max-width:800px){.review-request{grid-template-columns:1fr;gap:30px}.review-qr{max-width:300px}.review-request .button{max-width:100%}}
.process-grid h2{font:800 25px/1.2 'Manrope',sans-serif;letter-spacing:-.025em}
.process-proof{display:grid;grid-template-columns:.75fr 1.333333fr;gap:40px;margin-top:38px}
.process-proof figure{margin:0 0 26px;background:var(--wash)}
.process-proof picture,.process-proof img{display:block;width:100%;height:auto}
.process-proof p{max-width:520px;color:var(--muted)}
.guide-nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:28px;margin-bottom:36px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700}
.guide-nav button{margin-left:auto}.guide-anchor{scroll-margin-top:0}
@media(max-width:800px){.process-proof{grid-template-columns:1fr;gap:30px}.guide-nav{gap:16px}.guide-nav button{margin-left:0;width:100%}}
@media print{
 @page{margin:16mm}
 html,body{background:white!important;color:#000!important;font-size:10pt!important}
 .site-header,.topline,.draft-banner,.skip-link,.site-footer,.breadcrumb,.guide-nav,.cta-band,.consent-panel,dialog,.button-row{display:none!important}
 .section,.wrap{width:100%!important;max-width:none!important;padding:12pt 0!important}
 .page-hero{padding-top:0!important}.page-hero h1{font-size:28pt!important}
 h2{font-size:20pt!important}h3{font-size:15pt!important}.lead,p,li{font-size:10pt!important}
 .split,.planning-grid{display:block!important}.planning-grid article{padding:12pt 0!important;border:0!important}
 .wash,.dark{background:white!important;color:#000!important}
 article,details{break-inside:avoid}.faq details>p{display:block!important}
 details::details-content{display:block!important;content-visibility:visible!important;height:auto!important}
 .faq summary{font-size:12pt!important;padding:10pt 0!important}
 a{color:#000!important;text-decoration:none}.eyebrow{color:#000!important}
}
