.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;color:var(--muted);padding-top:28px}.breadcrumbs a:hover{text-decoration:underline}.page-intro{padding-block:58px 60px}.page-intro h1{max-width:1100px;font-size:clamp(2.8rem,6.2vw,5.8rem)}.page-lede{display:flex;justify-content:space-between;align-items:end;gap:45px}.page-lede p{max-width:710px;font-size:1.1rem;margin:0}.page-lede .text-link{flex-shrink:0}.gallery-section{padding-block:48px 24px;scroll-margin-top:25px}.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}.gallery-heading h2{margin-bottom:16px}.gallery-heading p{max-width:660px;margin-bottom:0}.gallery-heading .eyebrow{margin-bottom:14px}.gallery-total{font-size:.8rem;color:var(--muted);white-space:nowrap;padding-bottom:7px}.gallery-main{display:grid;grid-template-columns:1.55fr 1fr;border:1px solid var(--line);background:var(--light);min-height:510px}.gallery-image{display:block;position:relative;border:0;padding:0;background:#e8f2f8;overflow:hidden;color:var(--ink);min-width:0;min-height:480px;isolation:isolate}.gallery-media{position:absolute;inset:0;display:block;overflow:hidden}.gallery-media>img{width:100%;height:100%;object-fit:cover}.gallery-media>.crop-right,.thumb-image>.crop-right,.lightbox-media>.crop-right{width:240%;max-width:none;height:100%;object-fit:cover;transform:translateX(-58.333333%)}.view-image-label{position:absolute;bottom:20px;left:20px;background:rgba(242,232,213,.95);padding:10px 16px;font-size:.75rem;color:var(--ink);border:1px solid rgba(14,57,110,.2)}.gallery-story{display:flex;flex-direction:column;justify-content:space-between;padding:38px;min-width:0}.gallery-story h3{font-family:var(--serif);font-size:2.1rem;line-height:1.13;letter-spacing:-.025em;margin:15px 0 20px}.gallery-story .eyebrow{font-size:.7rem;margin-bottom:10px}.gallery-story p{font-size:.95rem;line-height:1.75}.slide-details{padding:0;list-style:none;font-size:.85rem;color:var(--muted);margin:20px 0 28px}.slide-details li{padding:8px 0 8px 19px;position:relative;border-top:1px solid var(--line)}.slide-details li:before{content:'+';position:absolute;left:0;color:var(--accent)}.gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.gallery-controls>div{display:flex;gap:12px;align-items:center}.gallery-controls button{color:var(--ink);border:1px solid var(--line);background:transparent;min-height:44px}.gallery-prev,.gallery-next{width:44px;font-size:1.7rem;line-height:1}.gallery-position{font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums}.gallery-controls .gallery-auto{border:0;border-bottom:1px solid var(--line);padding:8px 0;font-size:.8rem}.gallery-thumbs{display:flex;gap:16px;overflow-x:auto;padding:20px 0 15px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.gallery-thumb{flex:0 0 165px;min-width:0;background:transparent;border:0;text-align:left;padding:0;color:var(--muted)}.thumb-image{display:block;height:95px;overflow:hidden;position:relative;border:2px solid transparent;opacity:.7;transition:opacity .25s,border-color .25s}.thumb-image img{width:100%;height:100%;object-fit:cover}.gallery-thumb>span:last-child{display:block;font-size:.75rem;line-height:1.4;margin-top:10px;padding:0 3px}.gallery-thumb[aria-pressed=true]{color:var(--ink)}.gallery-thumb[aria-pressed=true] .thumb-image{border-color:var(--accent);opacity:1}.gallery-thumb:hover .thumb-image{opacity:1}.slide-change{animation:gallery-in .6s cubic-bezier(.2,.7,.2,1) both}@keyframes gallery-in{from{opacity:.25;translate:18px 0}to{opacity:1;translate:0 0}}.gallery-main.is-playing .gallery-media{animation:slow-drift 8s ease-out both}@keyframes slow-drift{from{scale:1}to{scale:1.035}}.workflow-visual{height:100%;min-height:400px;padding:36px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(140deg,#e8f2f8,#ffffff);text-align:center;color:var(--ink);font-family:var(--sans);line-height:1.5;gap:0}.diagram-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:35px}.discipline-nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;font-size:.8rem}.discipline-nodes span,.diagram-result{padding:14px;border:1px solid #5a8ba3;background:#ffffff}.connector-line{width:1px;height:27px;background:#5a8ba3;flex-shrink:0}.model-node{background:#0e396e;color:#fff;padding:24px;width:100%;max-width:410px}.model-node strong{display:block;font-family:var(--serif);font-size:1.5rem;font-weight:400}.model-node small{display:block;font-size:.75rem;margin-top:10px;color:#e8f2f8}.diagram-result{font-size:.8rem;width:100%;max-width:410px}.diagram-foot{font-size:.65rem;letter-spacing:.06em;color:var(--muted);margin-top:30px}.mep-nodes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%}.mep-nodes>span{font-size:.65rem;padding:10px 4px;border:1px solid #5a8ba3;background:#ffffff}.mep-nodes b{display:block;font-weight:400;font-size:1.2rem;margin-bottom:5px}.diagram-thumb{display:flex;height:100%;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.4rem;background:#e8f2f8;color:#0e396e}.service-overview{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.service-overview>p{font-size:1.1rem}.capabilities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.capabilities-grid article{border-top:1px solid var(--line);padding-top:26px}.capabilities-grid p{font-size:.95rem}.deliverable-section{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:35px 40px;background:var(--panel);margin-top:35px}.deliverable-section .eyebrow{margin:8px 0}.deliverable-section ul{list-style:none;margin:0;padding:0}.deliverable-section li{border-bottom:1px solid #5a8ba3;padding:10px 0}.deliverable-section li:last-child{border:0}.workflow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.workflow-steps article{border-top:1px solid var(--line);padding-top:24px}.workflow-steps p{font-size:.9rem;margin:0}.project-cta{padding:45px;background:var(--panel);display:flex;justify-content:space-between;align-items:center;gap:40px}.project-cta h2{font-size:clamp(2rem,3.2vw,3rem);margin:0}.project-cta .eyebrow{margin-bottom:16px}.project-cta .button{flex-shrink:0}.related-section{padding-top:60px}.related-section>div{display:grid;grid-template-columns:1fr 1fr;gap:30px}.related-section a{border-top:1px solid var(--line);padding:25px 0}.related-section a>span{font-size:.8rem;color:var(--muted)}.related-section h3{margin:12px 0 20px}.expertise-list{display:flex;flex-direction:column;gap:60px;margin-bottom:70px}.expertise-card{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;padding-bottom:55px;border-bottom:1px solid var(--line);align-items:center}.expertise-card:nth-child(even) .expertise-image{order:2}.expertise-image{overflow:hidden}.expertise-image img{height:370px;transition:transform .7s}.expertise-image:hover img{transform:scale(1.035)}.expertise-card h2{font-size:clamp(2rem,3.5vw,3.2rem)}.gallery-jump{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:30px}.gallery-jump a{border:1px solid var(--line);padding:12px 18px;font-size:.8rem}.gallery-jump a:hover{background:var(--panel)}.gallery-service-link{text-align:right;margin-bottom:35px}.about-feature{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.about-feature>img{height:540px}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px}.contact-details dl{margin-block:40px}.contact-details dt{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:24px}.contact-details dd{margin:7px 0 0}.contact-details dd a:hover{text-decoration:underline}.contact-note{border-top:1px solid var(--line);padding-top:25px}.contact-note p{font-size:.9rem}#enquiry-form{padding:35px;background:var(--panel)}#enquiry-form label{display:block;font-size:.875rem;margin-bottom:23px}#enquiry-form input,#enquiry-form textarea,#enquiry-form select,#draft-text{display:block;width:100%;border:1px solid #5a8ba3;background:#ffffff;color:var(--ink);padding:12px 14px;border-radius:0;margin-top:8px;min-height:48px;font-size:1rem}#enquiry-form textarea{resize:vertical;min-height:170px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.optional{color:var(--muted);font-size:.8rem}.form-note{font-size:.8rem;line-height:1.5;margin:18px 0 0}.email-draft{border:1px solid var(--line);padding:28px;margin-top:25px}.email-draft .actions{margin-top:20px}.email-draft p{font-size:.9rem}.email-draft textarea{resize:vertical}.lightbox-close,.lightbox-prev,.lightbox-next{border:1px solid #465d74;background:transparent;color:#ffffff;min-height:44px;padding:9px 18px}#gallery-dialog{width:min(1400px,96vw);height:min(940px,94dvh);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #465d74;background:#0e396e;color:#ffffff;overflow:hidden}#gallery-dialog[open]{display:flex;flex-direction:column}#gallery-dialog::backdrop{background:rgba(8,16,11,.88);backdrop-filter:blur(7px)}.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 24px;border-bottom:1px solid #0e396e;flex-shrink:0}.lightbox-toolbar>span{font-size:1rem}.lightbox-media{flex:1;position:relative;overflow:hidden;min-height:0;display:flex;align-items:center;justify-content:center}.lightbox-media>img{height:100%;width:100%;object-fit:contain}.lightbox-media:has(>.crop-right){display:block}.lightbox-media .workflow-visual{width:100%;height:100%;min-height:0;max-width:800px}.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:18px 24px;flex-shrink:0;border-top:1px solid #0e396e}.lightbox-caption{font-size:.85rem;color:#e8f2f8;text-align:center;margin:0;max-width:650px}.lightbox-bottom button{flex-shrink:0}
@media(max-width:1100px){.gallery-main{grid-template-columns:1.2fr 1fr}.gallery-story{padding:28px}.gallery-story h3{font-size:1.8rem}.gallery-controls{gap:8px}.gallery-controls>div{gap:8px}.contact-grid{gap:50px}.workflow-visual{padding:25px}.expertise-card{gap:36px}.expertise-image img{height:330px}}
@media(max-width:850px){.gallery-main{grid-template-columns:1fr}.gallery-image{height:440px;min-height:0}.gallery-story{padding:32px;min-height:365px}.gallery-story-content{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.gallery-story-content>.eyebrow{grid-column:1/-1}.gallery-story h3{margin-top:4px;font-size:2rem}.gallery-story .slide-description{grid-column:2;grid-row:2/4}.gallery-story .slide-details{grid-column:1;margin:0 0 20px}.gallery-controls{flex-wrap:nowrap}.service-overview{gap:40px}.capabilities-grid{gap:22px}.workflow-steps{grid-template-columns:1fr 1fr;gap:35px}.page-lede{display:block}.page-lede .text-link{margin-top:25px}.project-cta{padding:32px;flex-direction:column;align-items:start;gap:25px}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contact-details>.eyebrow{grid-column:1/-1;margin:0}.contact-details dl{margin:0}.contact-details dt:first-child{margin-top:0}.contact-note{grid-column:1/-1}.about-feature{gap:35px}.about-feature>img{height:470px}.discipline-nodes{font-size:.8rem}}
@media(max-width:600px){.page-intro{padding-block:35px 35px}.page-intro h1{font-size:clamp(2.65rem,10vw,3.8rem)}.page-lede p{font-size:1rem}.breadcrumbs{font-size:.7rem;gap:8px;padding-top:20px}.gallery-section{padding-block:30px 15px}.gallery-heading{align-items:start;gap:12px;margin-bottom:24px}.gallery-heading h2{font-size:2.25rem}.gallery-heading p{font-size:.9rem}.gallery-total{font-size:.7rem;margin-top:5px}.gallery-main{min-height:0}.gallery-image{height:310px}.gallery-story{padding:25px;min-height:0}.gallery-story-content{display:block}.gallery-story h3{font-size:1.85rem;margin:12px 0 20px}.gallery-story .slide-description{font-size:.9rem}.gallery-story .slide-details{margin:0 0 24px}.gallery-controls>div{gap:8px}.gallery-prev,.gallery-next{width:40px}.gallery-controls .gallery-auto{font-size:.75rem}.gallery-position{font-size:.75rem}.gallery-thumbs{gap:12px}.gallery-thumb{flex-basis:135px}.thumb-image{height:80px}.gallery-thumb>span:last-child{font-size:.7rem}.service-overview,.capabilities-grid,.deliverable-section,.expertise-card,.about-feature{grid-template-columns:1fr;gap:24px}.service-overview{padding-bottom:26px}.service-overview p{font-size:1rem;margin:0}.service-overview h2{margin:0}.capabilities-grid{gap:18px}.capabilities-grid article{padding-top:22px}.capabilities-grid h3{margin-bottom:14px}.deliverable-section{padding:25px;margin-top:25px}.deliverable-section li{font-size:.9rem}.workflow-steps{gap:25px 22px}.workflow-steps h3{font-size:1.1rem}.workflow-steps p{font-size:.85rem}.project-cta{padding:28px}.related-section{padding-top:40px}.related-section>div{grid-template-columns:1fr;gap:10px}.expertise-list{gap:36px}.expertise-card{padding-bottom:36px}.expertise-card:nth-child(even) .expertise-image{order:0}.expertise-image img{height:260px}.expertise-card h2{font-size:2.3rem}.gallery-jump{gap:8px}.gallery-jump a{padding:10px 12px;font-size:.75rem}.about-feature>img{height:auto;aspect-ratio:1.1}.contact-details{display:block}.contact-details>.eyebrow{margin-bottom:20px}.contact-details dl{margin-block:30px}#enquiry-form{padding:24px}.form-row{grid-template-columns:1fr;gap:0}.email-draft{padding:22px}.workflow-visual{min-height:0;padding:22px}.diagram-label{font-size:.65rem;margin-bottom:18px}.diagram-foot{margin-top:14px;font-size:.6rem}.discipline-nodes{font-size:.65rem;gap:7px}.discipline-nodes span,.diagram-result{padding:9px}.model-node{padding:15px}.model-node strong{font-size:1.1rem}.model-node small{font-size:.65rem;margin-top:5px}.connector-line{height:17px}.diagram-result{font-size:.7rem}.mep-nodes{gap:5px}.mep-nodes>span{font-size:.55rem;padding:7px 2px}.mep-nodes b{font-size:.9rem}.lightbox-toolbar{padding:12px 16px}.lightbox-toolbar>span{font-size:.9rem}.lightbox-close,.lightbox-prev,.lightbox-next{font-size:.8rem;padding:9px 12px}.lightbox-bottom{gap:12px;padding:14px}.lightbox-caption{font-size:.7rem}.lightbox-media .workflow-visual{padding:20px}.lightbox-media .workflow-visual .model-node strong{font-size:1.4rem}}
