@font-face{font-family:Manrope;src:url(/assets/manrope.woff2) format("woff2");font-weight:400 800;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url(/assets/space-grotesk.woff2) format("woff2");font-weight:400 700;font-display:swap}
:root{--navy:#081b2e;--navy-deep:#061525;--steel:#36516a;--ink:#0d2941;--muted:#466072;--line:#d7e2e8;--snow:#f2f7f9;--ice:#92e7fb;--blue:#65d4f3;--display:"Space Grotesk",sans-serif;--body:Manrope,sans-serif;--gutter:clamp(1.35rem,6vw,6.5rem)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:1.5rem}
body{margin:0;color:var(--ink);font:500 1rem/1.65 var(--body);background:white}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
img{display:block;width:100%;height:auto;object-fit:cover}
svg{flex:none;vertical-align:middle}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--display);line-height:1.05;letter-spacing:-.045em}
h2,.inner-page h1{font-size:clamp(2.65rem,5vw,5.15rem);font-weight:650}
h3{font-size:1.52rem}
.wrap{width:min(100% - var(--gutter)*2, 1350px);margin-inline:auto}
.section{padding-block:clamp(4.5rem,8.4vw,8rem)}
.lead{font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.48;font-weight:700}
.skip{position:fixed;z-index:20;top:.8rem;left:1rem;transform:translateY(-150%);padding:.65rem 1rem;background:var(--ice);color:var(--navy)}
.skip:focus{transform:none}
:focus-visible{outline:3px solid #0085a4;outline-offset:4px}
.hero :focus-visible,.projects :focus-visible,.footer :focus-visible,.header :focus-visible{outline-color:var(--ice)}
.header{background:var(--navy-deep);color:white;position:relative;z-index:2;border-bottom:1px solid #ffffff24}
.header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1.2rem}
.brand{display:inline-flex;align-items:center;gap:.68rem;font:700 1.15rem/1 var(--display);letter-spacing:-.01em;white-space:nowrap}
.brand small{display:block;font:800 .57rem/1 var(--body);letter-spacing:.22em;margin-top:.45rem;color:#a9c2d3}
.mark{width:35px;height:38px;color:var(--ice)}
.header nav,.header-tools{display:flex;align-items:center;gap:clamp(.8rem,2.2vw,2.2rem)}
.header nav a{font-size:.87rem;font-weight:750;color:#e4f1f8;transition:color .22s ease}
.header nav a:hover,.footer a:hover{color:var(--ice)}
.header nav a[aria-current]{color:var(--ice);text-decoration:underline;text-underline-offset:.4em;text-decoration-thickness:1px}
.header-tools{gap:1.25rem}
.socials{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem}
.socials a,.socials span{display:grid;place-items:center;width:32px;height:32px}
.socials a:hover{color:#007a9f}
.header .socials a:hover,.footer .socials a:hover{color:var(--ice)}
.socials span{opacity:.53}
.header .socials{gap:.37rem}
.header .socials a,.header .socials span{width:21px;height:30px}
.header .socials svg{width:15px;height:15px}
.menu-toggle{display:none}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.82rem 1.15rem;border:1px solid transparent;border-radius:4px;font-size:.9rem;font-weight:800;white-space:nowrap;line-height:1.1;transition:background .24s ease,color .24s ease,border-color .24s ease}
.primary{background:var(--blue);color:var(--navy-deep)}
.primary:hover{background:#adf0ff}
.secondary{background:white;border-color:#a6c1ce;color:var(--ink)}
.secondary:hover{background:#e4f4f9}
.outline{border-color:#c1dae48f;background:#071e3255;color:white}
.outline:hover{background:#1d3d56;border-color:var(--ice)}
.nav-cta{min-height:41px;padding:.65rem .8rem;font-size:.82rem}
.hero{position:relative;overflow:hidden;background:var(--navy) linear-gradient(90deg,rgba(5,18,34,.97) 0%,rgba(6,24,41,.83) 32%,rgba(6,23,39,.40) 66%,rgba(6,23,39,.13) 100%) center/cover;isolation:isolate;color:white}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:url(/assets/hero.webp) center 56%/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#061525f5,#071b30de 28%,#07192d75 59%,#06152510 100%),linear-gradient(0deg,#071c2d81,transparent 45%)}
.hero-inner{position:relative;min-height:clamp(635px,78vh,800px);display:flex;align-items:center;padding-block:3.85rem 4.7rem}
.hero-copy{max-width:100%}
@media(prefers-reduced-motion:no-preference){
  .hero-copy,.inner-page>.wrap,.in-view{animation:arrive .65s cubic-bezier(.2,.75,.25,1) both}
  @keyframes arrive{from{opacity:.68;transform:translateY(12px)}to{opacity:1;transform:none}}
}
.hero-label{display:inline-flex;align-items:center;gap:.68rem;color:#dbf3fc;font-size:.84rem;font-weight:750;margin-bottom:1.6rem}
.hero-label>span{height:7px;width:7px;background:var(--ice);border-radius:50%;box-shadow:0 0 0 4px #92e7fb2d}
.hero h1{font-weight:700;font-size:clamp(3.8rem,7.9vw,8.2rem);line-height:.92;letter-spacing:-.072em}
.hero h1 span{display:block}
.hero h1 span:last-child{font-size:.67em;letter-spacing:-.062em;margin-top:.27em;color:var(--ice)}
.hero p{color:#daeaf3;margin-top:1.7rem;max-width:490px;font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.6}
.hero-actions{margin-top:1.9rem;display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}
.hero-services{font-size:.87rem;font-weight:750;color:#e5f4ff;margin-left:.65rem;text-decoration:underline;text-underline-offset:5px}
.hero-index{position:absolute;right:0;bottom:2.9rem;display:flex;align-items:flex-end;gap:.8rem;font-size:.67rem;font-weight:800;line-height:1.55;letter-spacing:.13em;color:#e7f6fc}
.hero-index i{width:26px;height:50px;border-right:1px solid #e0f3fc8c;border-bottom:1px solid #e0f3fc8c}
.specialties{background:#102b43;color:#e3f1f8}
.specialties .wrap{display:flex;align-items:center;gap:clamp(1.2rem,5.4vw,5.5rem);min-height:69px;font-size:.84rem;font-weight:750}
.specialties span{display:flex;gap:.65rem;align-items:center}
.specialties svg{color:var(--ice)}
.section-label{display:inline-flex;align-items:center;gap:.6rem;font-weight:800;font-size:.9rem;color:#236b85;margin-bottom:1rem}
.section-label::before{content:"";display:inline-block;width:1.65rem;height:1px;background:currentColor}
.about-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,6vw,6.4rem)}
.about-visual{position:relative;background:var(--snow)}
.about-visual img{aspect-ratio:1.05;object-position:47% 50%}
.about-visual span{position:absolute;bottom:0;left:0;color:white;background:var(--navy);font-size:.76rem;font-weight:750;padding:.68rem .95rem}
.about .lead{margin:1.35rem 0 .85rem}
.about p:not(.lead),.section-head p,.service-card p,.qualities p{color:var(--muted)}
.about-details{margin-top:1.45rem;border-top:1px solid var(--line)}
.about-details details{border-bottom:1px solid var(--line)}
.about-details summary{cursor:pointer;font-weight:800;padding:.68rem 0;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.about-details summary::-webkit-details-marker{display:none}
.about-details summary::after{content:"+";font-size:1.2rem;color:#24748d}
.about-details details[open] summary::after{content:"−"}
.about-details details p{padding-bottom:.8rem}
.statistics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:1.2rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.statistics div{display:flex;flex-direction:column-reverse}
.statistics dd{margin:0;font:700 2.5rem var(--display)}
.services{background:var(--snow)}
.services-intro .text-link{display:table;margin-top:.45rem;text-decoration-color:currentColor}
.air-quality{background:#e4f4f9}
.air-quality .section-head>div{max-width:770px}
.air-quality .qualities{margin-top:0}
.air-quality .qualities article{border-color:#b9d4df}
.air-quality-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.4rem;margin-top:1.4rem}
.air-quality-actions .text-link{text-decoration-color:currentColor}
.budget .section-head>div{max-width:770px}
.budget .qualities{margin:0 0 1.4rem}
.budget .qualities .text-link{margin-top:.45rem;text-decoration-color:currentColor}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.75rem;margin-bottom:2.45rem}
.section-head p{max-width:315px;padding-bottom:.25rem}
.featured-services,.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1rem}
.service-card{background:white;border:1px solid #dfe9ef;display:flex;flex-direction:column;overflow:hidden}
.service-photo{aspect-ratio:2.15;object-position:center 48%}
.service-copy{padding:clamp(1.05rem,2.5vw,2rem);display:flex;flex-direction:column;align-items:flex-start;height:100%}
.service-symbol{width:41px;height:41px;background:#e1f5fa;color:#11667e;display:grid;place-items:center;border-radius:50%;margin-bottom:1rem}
.featured-services h3{font-size:clamp(1.6rem,2.7vw,2.35rem)}
.service-card p{margin:.6rem 0 1.1rem;max-width:52ch}
.text-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:800;color:#176881;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}
.text-link:hover{text-decoration-color:currentColor}
.service-card .text-link{margin-top:auto}
.projects{background:var(--navy);color:white}
.projects .section-label,.projects .text-link{color:var(--ice)}
.projects .section-head p{color:#bfd1de}
.project-grid{display:grid;grid-template-columns:1.27fr 1fr 1fr;gap:1rem}
.project-card{border:1px solid #4d6b7b88;background:#102b43;min-width:0}
.project-card>a{display:flex;flex-direction:column;height:100%}
.project-card>a:hover .project-open{color:white}
.project-card>a:hover .project-placeholder svg{transform:scale(1.05)}
.project-placeholder{position:relative;min-height:235px;overflow:hidden;isolation:isolate;display:grid;place-items:center;color:#9dcfdf;background:#16364f;background-image:linear-gradient(#a5e8fa14 1px,transparent 1px),linear-gradient(90deg,#a5e8fa14 1px,transparent 1px);background-size:22px 22px;border-bottom:1px solid #4d6b7b88}
.project-placeholder.market{background-color:#1b4156}
.project-placeholder.gym{background-color:#152e47}
.project-placeholder svg{width:min(90%,340px);height:100%;max-height:188px;transition:transform .3s;align-self:center}
.project-placeholder span{position:absolute;left:.75rem;bottom:.65rem;color:#e0f3fb;background:#0b263b;padding:.22rem .45rem;font-size:.68rem;font-weight:750}
.project-photo{height:235px}
.project-info{padding:1.2rem;flex:1;display:flex;align-items:flex-start;flex-direction:column}
.project-info>span:first-child{color:#a9c6d6;font-size:.76rem;font-weight:800}
.project-info h3{font-size:clamp(1.36rem,2.25vw,2rem);margin:.55rem 0 1.35rem}
.project-open{display:inline-flex;align-items:center;gap:.4rem;margin-top:auto;font-size:.82rem;font-weight:800;color:var(--ice)}
.portfolio-actions{margin-top:1.7rem;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.75rem}
.clients{--client-gap:.85rem;background:var(--snow);padding-block:clamp(2.5rem,5vw,4.5rem)}
.clients-heading{margin-bottom:1.35rem}
.clients-heading h2{font-size:clamp(1.9rem,3vw,3.25rem)}
.clients-heading p{margin-top:.45rem;color:var(--muted)}
.client-strip{overflow-x:auto}
.client-track{display:flex;width:max-content}
.client-list{display:flex;flex:none;gap:var(--client-gap);list-style:none;margin:0;padding:0 var(--client-gap) 0 0}
.client-list li{display:grid;place-items:center;width:9.75rem;height:6rem;padding:.45rem;background:white;border:1px solid var(--line)}
.client-list svg{display:block;overflow:hidden;max-width:100%;max-height:100%}
.client-copy{display:none}
@media(prefers-reduced-motion:no-preference){
  .client-strip{overflow:clip;mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent)}
  .client-copy{display:flex}
  .client-track{animation:client-scroll 88s linear infinite}
  @keyframes client-scroll{to{transform:translateX(-50%)}}
}
.qualities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2rem;margin-top:2.2rem}
.qualities article{border-top:1px solid var(--line);padding:1.35rem 0 1.2rem}
.qualities p{margin-top:.55rem}
.contact{padding-block:clamp(4rem,7vw,7rem);background:#e4f4f9}
.contact-grid{align-items:start;grid-template-columns:.95fr 1.05fr}
.contact-copy .lead{margin:1.25rem 0 .85rem}
.contact-copy>p:not(.lead){color:var(--muted);max-width:40ch}
.direct-links:not(:empty){display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.5rem}
.direct-links a{font-weight:800;text-decoration:underline;text-underline-offset:4px}
.contact-copy .socials{margin-top:1.35rem}
.contact form{background:white;padding:clamp(1.1rem,3vw,2.1rem);border:1px solid var(--line)}
.contact form h3{font-size:1.9rem;margin-bottom:1rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.form-grid label{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.35rem;font-size:.82rem;font-weight:800}
.form-grid small{font-size:.72rem;color:var(--muted)}
.form-grid .full{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{grid-column:1/-1;width:100%;min-width:0;border:1px solid #b7cbd6;border-radius:3px;color:var(--ink);background:#f7fafb;padding:.62rem .65rem;font-size:.91rem}
.form-grid textarea{resize:vertical}
.form-end{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem 1rem;margin-top:.9rem}
.form-end>a{font-size:.73rem;text-decoration:underline;text-underline-offset:3px}
.trap{position:absolute;left:-9999px}
.form-status:empty{display:none}
.form-status{margin-top:.75rem;font-size:.85rem;font-weight:800}
.form-status[data-state="success"]{color:#1b623b}
.form-status[data-state="error"]{color:#a02c2c}
.footer{background:var(--navy-deep);color:#bfd1de;padding:3rem 0 1.2rem;font-size:.83rem}
.footer .brand,.footer h2{color:white}
.footer-columns{display:grid;grid-template-columns:1.45fr .65fr 1.1fr 1.1fr;gap:1.3rem}
.footer-columns h2{font-size:1rem;letter-spacing:0;margin:0 0 .6rem}
.footer-columns>div>a:not(.brand){display:block;width:fit-content;margin:.2rem 0}
.footer-columns p{max-width:33ch;margin:.75rem 0 .6rem}
.footer .socials{gap:.28rem}
.footer-end{display:flex;gap:1.1rem;border-top:1px solid #cce2ee32;margin-top:2rem;padding-top:1rem;padding-right:3rem}
.footer-end a:last-child{margin-left:auto}
.floating{position:fixed;z-index:5;bottom:1.15rem;right:1.2rem;width:53px;height:53px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:var(--navy);border:1px solid #92e7fb;box-shadow:0 4px 18px #07192d39;transition:background .18s}
.floating:hover{background:#b1f4ff}
.inner-page .section-head{margin-top:1.7rem}
.project-detail-visual .project-placeholder,.project-detail-visual .project-photo{height:clamp(245px,43vw,480px)}
.project-detail-visual .project-placeholder svg{width:min(80%,640px);max-height:390px}
.project-detail{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.project-detail p{margin-top:.8rem}
.detail-gallery{margin-top:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}
.gallery-photo{display:block;background:var(--navy-deep);color:var(--ice)}
.gallery-photo img{height:clamp(220px,34vw,370px);object-fit:contain}
.project-detail-visual .gallery-photo img{height:clamp(245px,48vw,620px)}
.gallery-photo span{display:block;padding:.65rem .85rem;font-size:.82rem;font-weight:800}
.gallery-photo:hover span{text-decoration:underline;text-underline-offset:.25em}
.catalogue{background:var(--snow)}
.catalogue-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}
.catalogue-card{grid-column:span 2;margin:0;background:white;border:1px solid var(--line)}
.catalogue-card:nth-child(-n+2){grid-column:span 3}
.catalogue-image{display:grid;place-items:center;aspect-ratio:1.85;background:#132c41;padding:.45rem;overflow:hidden}
.catalogue-image img{width:auto;height:auto;max-width:100%;max-height:100%;transition:filter .22s ease}
.catalogue-image:hover img{filter:brightness(1.12)}
.catalogue-card figcaption{padding:.85rem 1rem}
.catalogue-card figcaption strong{display:block;font:700 1.2rem/1.15 var(--display)}
.catalogue-card figcaption span{display:block;margin-top:.4rem;color:var(--muted);font-size:.86rem}
.catalogue-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}
.prose{max-width:760px}
.prose p{margin:1.1rem 0}
@media(max-width:1150px){.header .socials{display:none}.hero-index{display:none}}
@media(max-width:840px){.about-grid,.contact-grid{gap:1.6rem}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-placeholder,.project-photo{min-height:170px;height:170px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:740px){
  .header-inner{min-height:68px;justify-content:flex-start;gap:.75rem}
  .header .brand{margin-right:auto;font-size:1rem;gap:.4rem}
  .header .brand small{font-size:.49rem}
  .header .mark{width:27px;height:31px}
  .header-tools{order:1}.nav-cta{min-height:36px;padding:.47rem .55rem;font-size:.72rem}
  .menu-toggle{display:flex;order:2;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:35px;height:38px;border:1px solid #b5d2e374;border-radius:3px;background:transparent;color:white}
  .menu-toggle span{width:15px;height:1px;background:white}
  .header nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);padding:.75rem var(--gutter) 1.15rem;border-bottom:1px solid #a7cbdf54}
  .header nav[data-open]{display:grid;gap:0}.header nav a{padding:.7rem 0}
  .hero::before{background-position:61% center}
  .hero::after{background:linear-gradient(90deg,#061525f0,#071b30b3 50%,#06152557),linear-gradient(0deg,#061525a0,transparent)}
  .hero-inner{min-height:540px;padding-block:3.5rem}
  .hero h1{font-size:clamp(3.35rem,12vw,5rem)}
  .hero-label{font-size:.75rem;margin-bottom:1.25rem}
  .hero p{margin-top:1.4rem}
  .hero-actions{margin-top:1.55rem}
  .hero-services{width:100%;margin:.25rem 0 0}
  .button{min-height:46px;padding:.65rem .75rem;font-size:.82rem}
  .nav-cta{min-height:36px;font-size:.72rem}
  .specialties .wrap{min-height:60px;justify-content:space-between;gap:.55rem;font-size:.68rem}
  .specialties span{gap:.27rem}.specialties span svg{width:15px}
  .about-grid,.contact-grid,.featured-services,.project-grid{grid-template-columns:1fr}
  .about-visual{order:2}.about-visual img{aspect-ratio:1.48}
  .section-head{display:block;margin-bottom:1.6rem}.section-head p{margin-top:.8rem}
  .section h2,.contact h2,.inner-page h1{font-size:clamp(2.65rem,10vw,3.8rem)}
  .section-head br,.contact-copy br{display:none}
  .service-grid,.qualities{gap:.75rem}
  .project-placeholder,.project-photo{min-height:205px;height:205px}
  .portfolio-actions{justify-content:flex-start}
  .qualities{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.2rem}
  .air-quality .qualities,.budget .qualities{grid-template-columns:1fr}
  .catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catalogue-card,.catalogue-card:nth-child(-n+2){grid-column:auto}
  .qualities h3,.service-grid h3{font-size:1.29rem}
  .qualities p,.service-grid p{font-size:.9rem}
  .project-detail{display:grid;justify-items:start}
  .footer-end{font-size:.73rem;gap:.5rem}
  .floating{width:47px;height:47px;right:.75rem;bottom:.8rem}
}
@media(max-width:375px){
  :root{--gutter:1rem}
  .service-grid,.form-grid{grid-template-columns:1fr}
  .hero h1{font-size:3.2rem}
  .footer-end{padding-right:0}
  .header-inner{gap:.4rem}
  .header .brand{font-size:.88rem}
  .header .nav-cta{padding-inline:.5rem}
  .menu-toggle{flex:0 0 33px}
}
@media(max-width:480px){.catalogue-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
