﻿:root{--shadow-sm:0 8px 24px rgba(7,19,31,.08);--shadow-lg:0 22px 60px rgba(7,19,31,.16);--ease:cubic-bezier(.2,.8,.2,1)}
.site-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#061523;color:#fff;opacity:1;visibility:visible;transition:opacity .5s var(--ease),visibility .5s}
.site-loader.is-finished{opacity:0;visibility:hidden;pointer-events:none}
.loader-mark{display:grid;justify-items:center;text-align:center;min-width:190px}
.loader-mark img{width:82px;height:82px;object-fit:cover;border-radius:50%;margin-bottom:18px;box-shadow:0 0 0 1px #ffffff25,0 18px 45px #0008}
.loader-mark strong{font-family:Oswald,Arial,sans-serif;font-size:2rem;line-height:1;text-transform:uppercase;letter-spacing:.08em}
.loader-mark span{margin-top:7px;color:#93a7b7;font-size:.62rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.loader-mark i{display:block;width:170px;height:2px;margin-top:22px;overflow:hidden;background:#ffffff18;position:relative}
.loader-mark i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--orange),var(--cyan));transform:translateX(-100%);animation:loaderProgress 1.15s var(--ease) infinite}
@keyframes loaderProgress{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.loader-mark i:after{animation:none;transform:none}.site-loader{transition:none}}
::selection{background:var(--cyan);color:#03111c}
body{overflow-x:hidden}
.site-nav{box-shadow:0 8px 30px rgba(2,11,18,.16);backdrop-filter:blur(10px)}
.site-nav{height:94px}
.brand img{width:70px;height:70px}
.brand img{transition:transform .45s var(--ease),filter .45s var(--ease)}
.brand:hover img{transform:rotate(-3deg) scale(1.06);filter:brightness(1.12)}
.hamburger{width:26px;height:20px;display:flex;flex-direction:column;justify-content:space-between}
.menu-toggle{width:44px;height:44px;padding:9px;border:0;line-height:0;cursor:pointer}
@media(max-width:880px){.site-nav{height:78px}.brand img{width:58px;height:58px}.nav-links{top:78px}.menu-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 44px;margin-left:auto}.site-nav .wrap{align-items:center}}
.hamburger span{display:block;width:100%;height:2px;border-radius:2px;background:#fff;transition:transform .3s var(--ease),opacity .3s var(--ease)}
.menu-toggle[aria-expanded="true"] .hamburger span:first-child{transform:translateY(9px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .hamburger span:last-child{transform:translateY(-9px) rotate(-45deg)}
.nav-links>a:not(.btn){position:relative;border:0}
.nav-links>a:not(.btn):after{content:"";position:absolute;left:0;right:100%;bottom:23px;height:2px;background:var(--cyan);transition:right .3s var(--ease)}
.nav-links>a:not(.btn):hover:after,.nav-links>a.active:not(.btn):after{right:0}
.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.btn:before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;transform:translateX(-105%) skewX(-14deg);transition:transform .42s var(--ease);opacity:.14}
.btn:hover:before{transform:translateX(0) skewX(-14deg)}
.btn:hover{box-shadow:0 10px 25px rgba(7,19,31,.18)}
.eyebrow:before{transition:width .35s var(--ease)}
.split-head:hover .eyebrow:before{width:45px}
.hero{background-attachment:fixed}
.hero-inner{animation:heroEnter .8s var(--ease) both}
@keyframes heroEnter{from{opacity:0;transform:translateY(22px)}
to{opacity:1;transform:none}
}
.trust-grid div{transition:background .3s,transform .3s}
.trust-grid div:hover{background:white;transform:translateY(-5px);box-shadow:var(--shadow-sm);position:relative;z-index:2}
.card{transition:transform .35s var(--ease),box-shadow .35s var(--ease);overflow:hidden}
.card:before{content:"";position:absolute;right:-30px;bottom:-55px;width:125px;height:125px;border:26px solid var(--paper);transform:rotate(45deg);transition:.45s var(--ease);z-index:0;pointer-events:none}
.card .num,.card h3,.card p{position:relative;z-index:1}
.card a{z-index:1}
.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);z-index:2}
.card:hover:before{transform:rotate(28deg) scale(1.16);border-color:#e8f5fa}
.card a{transition:color .2s,letter-spacing .2s}
.card:hover a{color:var(--orange);letter-spacing:.11em}
.wide-photo,.feature-project{overflow:hidden}
.owner-portrait{width:min(100%,280px);justify-self:center;position:relative;padding:7px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-lg)}
.owner-portrait:before{content:"";position:absolute;left:-11px;top:22px;width:11px;height:82px;background:var(--cyan)}
.owner-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:56% 54%}
.meet-harry-photo{width:min(100%,430px);justify-self:center;background:#fff;padding:8px;border:1px solid var(--line);box-shadow:var(--shadow-lg)}
.meet-harry-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:56% 54%}
.wide-photo img,.feature-project>img{transition:transform .7s var(--ease),filter .7s}
.feature-project>img.photo-contain,.project-thumb img.photo-contain{object-fit:contain;object-position:center;background:#fff;padding:6px}
.feature-project>img.photo-contain{height:100%;min-height:620px}
.feature-project:hover>img.photo-contain,.project-card:hover .project-thumb img.photo-contain{transform:none}
.wide-photo:hover img,.feature-project:hover>img{transform:scale(1.035);filter:saturate(1.05)}
.value,.phase,.sector,.contact-item,.faq details{transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s,background .3s}
.value:hover{transform:translateY(-7px);box-shadow:var(--shadow-lg);border-color:var(--orange)}
.phase:hover{transform:translateY(-7px);background:#164065;box-shadow:var(--shadow-lg)}
.sector{position:relative;overflow:hidden}
.sector:after{content:"\2192";position:absolute;right:24px;bottom:15px;color:var(--cyan);opacity:0;transform:translateX(-12px);transition:.3s}
.sector:hover{transform:translateY(-6px);background:#153b60;border-color:var(--orange);box-shadow:var(--shadow-lg)}
.sector:hover:after{opacity:1;transform:none}
.sector-proof{display:inline-block;margin-top:14px;color:#fff;font-size:.76rem;font-weight:800;line-height:1.45;letter-spacing:.04em;text-transform:uppercase}
.sector-proof:hover,.sector-proof:focus-visible{color:var(--orange)}
.service-row{transition:padding .3s var(--ease),background .3s,border-color .3s}
.service-row:hover{padding-left:22px;padding-right:22px;background:#f8fafb;border-color:var(--cyan)}
.service-row .index{transition:color .25s,transform .3s}
.service-row:hover .index{color:var(--orange);transform:translateX(5px)}
.project-card{position:relative;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.project-card:hover{transform:translateY(-9px);box-shadow:var(--shadow-lg);border-color:#aac9dc}
.project-card .content{position:relative;background:#fff}
.project-card .content:before{content:"";position:absolute;top:0;left:0;width:0;height:3px;background:linear-gradient(90deg,var(--orange),var(--cyan));transition:width .45s var(--ease)}
.project-card:hover .content:before{width:100%}
.project-thumb{height:310px;overflow:hidden;background:#dfe7ec;position:relative}
.project-thumb img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 76%;transition:transform .65s var(--ease),filter .65s}
.project-thumb:after{content:attr(data-hover);position:absolute;inset:0;display:flex;align-items:flex-end;padding:30px;background:linear-gradient(180deg,rgba(4,17,29,.05) 20%,rgba(4,17,29,.94) 100%);color:#fff;font-size:.84rem;font-weight:600;line-height:1.6;letter-spacing:.01em;opacity:0;transform:translateY(16px);transition:opacity .35s var(--ease),transform .35s var(--ease);pointer-events:none}
.project-card:hover .project-thumb:after,.project-card:focus-within .project-thumb:after{opacity:1;transform:none}
.project-card:hover .project-thumb img{transform:scale(1.06);filter:saturate(1.08)}
.project-collage{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;background:#fff}
.project-collage img{width:100%;height:100%;min-height:0;object-fit:cover}
.project-collage--three img:first-child{grid-row:1/3}
.project-card:hover .project-collage img{transform:scale(1.025)}
.showreel-section{background:#061523;color:#fff;overflow:hidden}
.showreel-grid{display:grid;grid-template-columns:minmax(280px,.72fr) 1.28fr;gap:clamp(45px,7vw,100px);align-items:center}
.showreel-media{position:relative;max-width:460px;justify-self:center;border:1px solid #ffffff24;padding:8px;background:#0d2942;box-shadow:0 30px 80px #0007}
.showreel-media:before{content:"";position:absolute;inset:-18px 18px 18px -18px;border:2px solid var(--cyan);z-index:0;pointer-events:none}
.showreel-media video{display:block;position:relative;z-index:1;width:100%;max-height:650px;aspect-ratio:9/16;object-fit:contain;background:#030b12}
.showreel-badge{position:absolute;z-index:2;left:24px;bottom:24px;padding:9px 12px;background:rgba(3,11,18,.88);color:#fff;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;border-left:3px solid var(--orange)}
.showreel-copy{max-width:660px}
.showreel-copy h2{font-size:clamp(2.7rem,5vw,5.2rem);margin:.25em 0}
.showreel-copy p{color:#b8c8d3;max-width:590px;font-size:1rem}
.showreel-points{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0}
.showreel-points span{padding:8px 11px;border:1px solid #ffffff25;color:#d7e1e8;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.portfolio-grid.expanded{grid-template-columns:repeat(3,1fr)}
.portfolio-grid.expanded .project-card.featured{grid-column:1/-1}
.portfolio-grid.expanded .project-card.featured .project-thumb{height:auto;min-height:560px}
.portfolio-grid.expanded .project-card:not(.featured) .content{min-height:355px}
.project-scope{list-style:none;padding:0;margin:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.project-scope li{font-size:.76rem;color:var(--muted);padding-left:14px;position:relative}
.project-scope li:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--cyan);position:absolute;left:0;top:.65em}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}
.filter-btn{border:1px solid var(--line);background:white;padding:10px 16px;color:var(--navy);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.25s}
.filter-btn:hover,.filter-btn.active{color:white;background:var(--navy);border-color:var(--navy);transform:translateY(-2px)}
.project-card.is-hidden{display:none}
.contact-item:hover{transform:translateX(7px);background:#173b5d;box-shadow:var(--shadow-sm)}
.contact-item i{transition:transform .3s}
.contact-item:hover i{transform:scale(1.2)}
.field input,.field select,.field textarea{transition:border-color .2s,box-shadow .2s,background .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cyan);background:white;box-shadow:0 0 0 3px rgba(24,167,206,.12)}
.faq details:hover{border-color:#a7cada;box-shadow:var(--shadow-sm);transform:translateY(-3px)}
.compliance-section{background:#061523;color:#fff}
.compliance-panel{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
.compliance-panel>div>p{color:#b5c4cf;max-width:560px}
.assurance-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ffffff20;border:1px solid #ffffff20}
.assurance-grid div{background:#0d2942;padding:24px;transition:background .3s var(--ease),transform .3s var(--ease)}
.assurance-grid div:hover{background:#143b5d;transform:translateY(-4px)}
.assurance-grid b{display:block;color:#fff;margin-bottom:6px}
.assurance-grid span{display:block;color:#aebfca;font-size:.78rem;line-height:1.55}
.domestic-strip{padding:48px 0;background:#eaf0f3;border-top:1px solid var(--line)}
.domestic-inner{display:flex;align-items:center;justify-content:space-between;gap:45px}
.domestic-inner h3{font-family:Oswald;text-transform:uppercase;font-size:1.65rem;margin:4px 0 6px;color:var(--navy)}
.domestic-inner p{font-size:.84rem;color:var(--muted);max-width:740px;margin:0}
.domestic-label{color:var(--blue);font-size:.64rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.filter-jump{cursor:pointer;background:transparent;white-space:nowrap}
@media(max-width:880px){.compliance-panel{grid-template-columns:1fr;gap:35px}.domestic-inner{align-items:flex-start;flex-direction:column;gap:20px}}
@media(max-width:880px){.feature-project>img.photo-contain{height:auto;min-height:0}}
@media(max-width:570px){.assurance-grid{grid-template-columns:1fr}.domestic-inner .btn{width:100%}}
.reveal-ready{opacity:0;transform:translateY(22px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.reveal-ready.is-visible{opacity:1;transform:none}
@media(max-width:980px){.portfolio-grid.expanded{grid-template-columns:1fr 1fr}
.portfolio-grid.expanded .project-card.featured{grid-column:1/-1}
.portfolio-grid.expanded .project-card:not(.featured) .content{min-height:0}
}
@media(max-width:880px){.hero{background-attachment:scroll}
.nav-links>a:not(.btn):after{bottom:2px}
.project-thumb{height:280px}
.portfolio-grid.expanded .project-card.featured .project-collage{height:auto;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;align-items:start}
.portfolio-grid.expanded .project-card.featured .project-collage img{height:auto;aspect-ratio:3/4;object-fit:contain;object-position:center;background:#eef2f4}
.showreel-grid{grid-template-columns:minmax(240px,.8fr) 1.2fr;gap:45px}
}
@media(max-width:570px){.portfolio-grid.expanded{grid-template-columns:1fr}
.project-scope{grid-template-columns:1fr}
.project-thumb{height:260px}
.portfolio-grid.expanded .project-card.featured .project-thumb{min-height:330px}
.portfolio-grid.expanded .project-card.featured .project-collage{min-height:0}
.showreel-grid{grid-template-columns:1fr;gap:38px}.showreel-media{width:min(88%,390px)}.showreel-media video{max-height:none}.showreel-copy h2 br{display:none}
.service-row:hover{padding-left:8px;padding-right:8px}
}
@media(hover:none){.project-card:hover .project-collage img{transform:none}}


