
:root{--navy:#102c4f;--blue:#183e6f;--ink:#172537;--muted:#475c70;--line:#d8e1eb;--wash:#edf3f8;--paper:#f9fbfd;--serif:Marcellus,Georgia,serif;font-family:"DM Sans",Arial,sans-serif;color:var(--ink);background:white}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;line-height:1.65}img{display:block;width:100%}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08}h1{font-size:clamp(3rem,6.7vw,7.2rem);letter-spacing:-.045em;max-width:12ch}h2{font-size:clamp(2.2rem,4.7vw,4.5rem);letter-spacing:-.037em}h3{font-size:clamp(1.5rem,2.3vw,2.12rem)}p{color:var(--muted)}a{color:inherit;text-underline-offset:.24em}button{font:inherit;cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:3px solid #5490d4;outline-offset:5px}.skip{position:fixed;left:1rem;top:1rem;z-index:9;padding:10px 15px;background:white;transform:translateY(-150%)}.skip:focus{transform:none}
.shell{width:min(1250px,calc(100% - 2 * clamp(20px,5vw,72px)));margin-inline:auto}.header{position:sticky;top:0;z-index:5;background:white;border-bottom:1px solid var(--line)}.header .shell{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none;flex:none}.brand img{width:66px;height:50px;object-fit:contain;background:white;border-radius:5px}.brand b,.brand small{display:block;line-height:1.1}.brand b{font-size:1.25rem;color:var(--navy)}.brand small{font-size:.54rem;letter-spacing:.11em;margin-top:5px}.nav{display:flex;align-items:center;gap:clamp(16px,2vw,35px);margin-left:auto;font-family:var(--serif)}.nav a{text-decoration:none;padding-block:9px;white-space:nowrap}.nav a:hover,.nav a[aria-current]{color:var(--blue);text-decoration:underline}.menu{border:1px solid var(--line);border-radius:7px;min-height:44px;padding:6px 14px;background:white;color:var(--navy)}
.pill{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:14px;border-radius:100px;padding:11px 23px;font-family:var(--serif);background:var(--blue);color:white;text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:background .2s,transform .2s}.pill:hover{background:#255487;transform:translateY(-2px)}.pill.light{background:white;color:var(--navy)}.pill.light:hover{background:#dceafa}.pill.outline{border-color:#d7e7f6;background:#102c4f56;color:white}.pill.outline:hover{background:var(--blue)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:27px}
.hero{isolation:isolate;position:relative;overflow:hidden;background:#172f42;color:white;min-height:clamp(525px,70svh,790px);display:grid;align-items:center}.hero>img,.hero::after{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.hero>img{object-fit:cover;object-position:64% 54%}.hero::after{content:"";z-index:-1;background:linear-gradient(90deg,#0a1f35f5 3%,#0c233acc 35%,#10294265 63%,#0a1f3536 100%)}.hero .shell{padding-block:70px 78px;animation:entrance .72s ease both}.eyebrow{font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:14px}.hero .eyebrow,.contact .eyebrow{color:#bedcf9}.hero p:not(.eyebrow){color:#eaf2fb;margin-top:21px;max-width:45ch;font-size:clamp(1.01rem,1.6vw,1.2rem)}.caption{position:absolute;right:clamp(15px,4vw,60px);bottom:16px;color:white;font-size:.73rem;background:#0b2035e0;padding:3px 9px;border-radius:5px}@keyframes entrance{from{opacity:0;transform:translateY(15px)}}
.strip{background:var(--wash);border-bottom:1px solid var(--line)}.strip .shell{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.strip a{padding:15px 8px;color:var(--navy);font-family:var(--serif);text-decoration:none}.strip a+a{border-left:1px solid var(--line)}.strip a:hover{text-decoration:underline}
.section{padding-block:clamp(55px,8vw,114px)}.wash{background:var(--wash)}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(27px,6vw,98px);align-items:center}.intro p:not(.eyebrow){margin-top:19px;max-width:57ch}.intro .pill{margin-top:26px}.section-top{max-width:740px;margin-bottom:34px}.section-top p:last-child{margin-top:14px}.photo{position:relative;overflow:hidden;border-radius:13px;background:#dfe9f0}.photo img{height:100%;object-fit:cover}.about-photo{height:clamp(295px,36vw,465px)}.about-photo img{object-position:center 45%}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2.6vw,32px)}.card{display:flex;flex-direction:column;border-radius:15px;overflow:hidden;background:white;border:1px solid var(--line);transition:box-shadow .25s}.card:hover{box-shadow:0 15px 38px #0e30501a}.card figure{position:relative;height:clamp(190px,22vw,288px);overflow:hidden;background:#e4ebf2}.card img{height:100%;object-fit:cover;transition:transform .45s}.card:hover img{transform:scale(1.045)}.card .equipment img{object-fit:contain;padding:16px}.tag{position:absolute;bottom:10px;left:10px;border-radius:4px;background:#f9fbfdf5;color:var(--navy);font-size:.7rem;padding:3px 8px}.card div{padding:23px;display:flex;flex-direction:column;flex:1}.card p{margin:11px 0 16px}.card a{align-self:flex-start;margin-top:auto;color:var(--blue);font-weight:700;font-size:.88rem}
.workflow{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(20px,5vw,65px);align-items:start}.workflow figure{height:clamp(300px,34vw,445px)}.workflow figure img{object-position:center 47%}.workflow details{border-top:1px solid var(--line)}.workflow details:last-child{border-bottom:1px solid var(--line)}.workflow summary{font-family:var(--serif);font-size:clamp(1.2rem,2.4vw,1.6rem);list-style:none;display:flex;gap:14px;align-items:center;cursor:pointer;padding:14px 4px}.workflow summary::-webkit-details-marker{display:none}.workflow summary::after{content:"+";margin-left:auto}.workflow details[open] summary::after{content:"−"}.workflow summary span{font-family:"DM Sans",sans-serif;font-size:.77rem;color:var(--blue)}.workflow details p{padding:0 15px 17px 34px}
.support .photo{height:clamp(260px,33vw,430px)}.service-list{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.service-list li{border-top:1px solid #bfcedc;padding:10px 0;color:var(--navy);font-weight:600}.contact{background:var(--navy);color:white}.contact p:not(.eyebrow){color:#dce8f4;margin-top:14px}.contact .split{grid-template-columns:1.2fr .8fr}.contact address{font-style:normal;border-left:1px solid #67819c;padding-left:25px;overflow-wrap:anywhere}.contact address a{display:block;line-height:1.8}.footer{padding-block:22px;border-top:1px solid var(--line)}.footer .shell{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.85rem;color:var(--muted)}
@media(max-width:900px){.header .shell{min-height:72px;flex-wrap:wrap;gap:9px;padding-block:8px}.header>.shell>.pill{display:none}.nav{flex-wrap:wrap}.nav.enhanced{display:none;width:100%;margin:0}.nav.enhanced.open{display:flex}.nav:not(.enhanced){width:100%;margin:0}.hero::after{background:linear-gradient(90deg,#081d32f0,#0a2338a8 68%,#10294265)}}
@media(min-width:901px){.menu{display:none}}
@media(max-width:680px){.split,.cards,.workflow,.contact .split{grid-template-columns:1fr}.header .shell{min-height:64px}.hero{min-height:520px}.hero>img{object-position:62% center}.hero::after{background:linear-gradient(90deg,#0b2037ee,#0c233a9e),linear-gradient(0deg,#0b2037c7,transparent)}.hero .shell{padding-block:54px 64px}.card figure{height:240px}.strip a{font-size:.88rem}.contact address{padding-left:15px}.workflow figure{height:300px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.home-intro{text-align:center;padding-block:clamp(38px,5vw,74px) clamp(25px,3vw,44px)}
.home-intro h1{margin-inline:auto;max-width:23ch;font-size:clamp(2.65rem,5.6vw,6rem)}
.home-intro p{margin:16px auto 0;max-width:66ch;font-size:clamp(1rem,1.6vw,1.16rem)}
.project-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,25px)}
.project{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:end;min-height:clamp(370px,38vw,530px);border-radius:17px;background:#0a1e35;color:white;animation:entrance .7s ease both}
.project:nth-child(2){animation-delay:.12s}
.project::after,.project>img{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.project>img{object-fit:cover;object-position:center;transition:transform .65s ease}
.project::after{content:"";z-index:-1;background:linear-gradient(0deg,#071929 4%,#081c2ee8 31%,#0a21395c 70%,#122a4221)}
.project:hover>img,.project:focus-within>img{transform:scale(1.04)}
.project-copy{padding:clamp(19px,3vw,43px);padding-bottom:48px}
.project-copy h2{font-size:clamp(2.05rem,3.8vw,3.9rem);max-width:18ch}
.project-copy h2 a{text-decoration:none}
.project-copy h2 a:hover{text-decoration:underline}
.project-copy p:not(.project-status){color:#ecf3fa;margin:12px 0 17px;max-width:40ch}
.project-status{display:inline-block;border-radius:40px;background:#eef5fc;color:#102c4f;padding:4px 11px;font-size:.72rem;font-weight:700;margin-bottom:10px}
.project .caption{right:12px;bottom:10px}
.inner-hero{min-height:clamp(380px,54vw,640px)}
.inner-hero h1{font-size:clamp(2.65rem,6.2vw,6.6rem);max-width:15ch}
.inner-hero>img[src$="operator.webp"]{object-position:68% 38%}
.photo.equipment{background:#e4ebf2}
.photo.equipment img{object-fit:contain;padding:19px}
.card .caption{right:10px;bottom:10px}
.intro>a.pill{margin-top:26px}
.leader-grid,.step-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.step-list{grid-template-columns:repeat(3,minmax(0,1fr))}
.leader-grid article,.step-list article,.research-panel,.enquiry{background:white;border:1px solid var(--line);border-radius:14px;padding:clamp(20px,3vw,35px)}
.leader-grid h3+p,.step-list h3+p,.research-panel h3+p{margin-top:10px}
.research-panel{background:var(--wash)}
.faq details{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;padding:12px 2px;font-weight:700;color:var(--navy)}
.faq details p{padding:0 10px 14px}
.contact-intro{padding-block:clamp(36px,6vw,88px)}
.contact-intro h1{max-width:unset;font-size:clamp(2.6rem,6vw,5.6rem)}
.contact-intro p{margin-top:12px}
.contact-grid{align-items:start}
.contact-details{font-style:normal}
.contact-details strong{display:block;color:var(--navy);margin-top:15px}
.contact-details a{overflow-wrap:anywhere}
.enquiry h2{font-size:clamp(1.85rem,3vw,2.7rem)}
.enquiry>p{margin-block:9px 15px}
.enquiry label{display:block;margin-bottom:12px;font-size:.9rem;font-weight:700}
.enquiry input,.enquiry select,.enquiry textarea{width:100%;padding:10px;border:1px solid #8c9eb0;border-radius:7px;display:block;margin-top:4px;font:inherit;font-weight:400;color:var(--ink);background:white}
.enquiry textarea{resize:vertical}
.form-status:empty{display:none}
.footer{background:#0c2542;color:#eaf3fc;padding-block:34px 15px;border:0}
.footer .shell{display:block;color:inherit}
.footer-main{display:grid;grid-template-columns:1.25fr 1.3fr 1fr;gap:22px;padding-bottom:25px}
.footer-main p,.footer-end{color:#c5d9eb}
.footer-main nav{display:flex;flex-wrap:wrap;gap:7px 17px}
.footer-main address{font-style:normal;overflow-wrap:anywhere}
.footer-end{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid #516d86;padding-top:14px}
.reveal-pending{opacity:0;transform:translateY(18px)}
[data-reveal]{transition:transform .55s ease,opacity .55s ease}
@media(max-width:680px){
  .project-pair,.leader-grid,.step-list,.footer-main{grid-template-columns:1fr}
  .project{min-height:370px}
  .inner-hero{min-height:380px}
  .inner-hero .shell{padding-block:50px 60px}
}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1;transform:none}}
