:root{--paper:#eeeae2;--ink:#18191b;--muted:#606064;--red:#ff8317;--red-dark:#dc5d00;--yellow:#fecd44;--line:rgba(24,25,27,.2);--white:#fff;--font-body:"Inter",Arial,sans-serif;--font-display:"Oswald","Arial Narrow",sans-serif;--gutter:clamp(24px,4vw,72px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
img{display:block;width:100%}
.site-header{height:110px;padding:0 var(--gutter);display:grid;grid-template-columns:260px 1fr auto;align-items:center;border-bottom:1px solid rgba(215,25,32,.55);position:absolute;top:0;left:0;right:0;z-index:20}
.brand,.footer-brand{width:210px;height:76px;overflow:hidden;display:flex;align-items:center}
.brand img,.footer-brand img{width:100%;height:100%;object-fit:contain}
.desktop-nav{display:flex;justify-content:center;gap:clamp(22px,3vw,58px);font-weight:600}
.desktop-nav a{position:relative;padding:10px 0}
.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--red);transition:right .25s}
.desktop-nav a:hover:after{right:0}
.header-cta{align-self:stretch;display:flex;align-items:center;gap:38px;background:var(--red);color:white;padding:0 36px;font-size:18px;font-weight:700}
.header-cta:hover{background:var(--red-dark)}
.menu-toggle{display:none;border:0;background:none;width:46px;height:46px;padding:10px}.menu-toggle span{display:block;height:2px;background:var(--ink);margin:7px 0}
.hero{min-height:100svh;padding:155px var(--gutter) 94px;position:relative;display:grid;grid-template-columns:minmax(460px,48%) 1fr;align-items:center;border-bottom:1px solid var(--line);overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(0,0,0,.055) .7px,transparent .7px);background-size:4px 4px;opacity:.42;pointer-events:none}
.hero-copy{position:relative;z-index:4;padding-bottom:36px}
.hero h1,.section h2,.section-dark h2,.contact h2{font-family:var(--font-display);text-transform:uppercase;margin:0;font-weight:600;letter-spacing:-.045em;line-height:.91}
.hero h1{font-size:clamp(76px,8vw,150px);max-width:820px}
.hero-copy>p{font-size:clamp(18px,1.35vw,24px);line-height:1.45;max-width:570px;margin:34px 0}
.hero-actions{display:flex;align-items:center;gap:34px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:62px;padding:0 34px;border:0;font-weight:700;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.button-red{background:var(--red);color:white}.button-red:hover{background:var(--red-dark)}
.button-dark{background:var(--ink);color:white}.button-dark:hover{background:white;color:var(--ink)}
.text-link{display:inline-flex;gap:14px;align-items:center;border-bottom:1px solid var(--red);padding:14px 0;font-weight:600}
.hero-visual{position:absolute;right:-2vw;top:110px;width:54vw;height:calc(100% - 202px);z-index:2}
.hero-photo{position:absolute;right:0;top:9%;width:82%;height:83%;background:#b9b9b8 url("assets/generated/hero-full-cycle.png") center/cover no-repeat;filter:grayscale(1);clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}
.hero-red-frame{position:absolute;inset:-12% 8% -11% 1%;background:var(--red);clip-path:polygon(38% 0,65% 0,32% 88%,89% 88%,84% 100%,0 100%);z-index:2;mix-blend-mode:multiply;pointer-events:none}
.service-index{position:absolute;left:0;right:0;bottom:0;height:94px;display:flex;align-items:center;justify-content:space-around;border-top:1px solid var(--line);z-index:5;background:rgba(238,234,226,.92);padding:0 var(--gutter);font-weight:600}
.service-index i{color:var(--red);font-style:normal;font-size:22px}
.section{padding:clamp(90px,10vw,170px) var(--gutter)}
.section-number{font-family:var(--font-display);color:var(--red);font-size:20px;letter-spacing:.08em}
.section-head{display:grid;grid-template-columns:110px minmax(460px,1fr) minmax(260px,470px);gap:30px;align-items:end;margin-bottom:80px}
.section-head h2,.objects-heading h2,.about h2{font-size:clamp(64px,7vw,126px)}
.section-head p,.process-intro>p,.about-copy p,.contact-copy>p{font-size:clamp(18px,1.4vw,24px);line-height:1.55;margin:0}
.services-layout{display:grid;grid-template-columns:minmax(480px,47%) 1fr;gap:clamp(34px,5vw,90px);align-items:stretch}
.service-list{border-top:1px solid var(--red)}
.service-row{width:100%;min-height:93px;background:transparent;border:0;border-bottom:1px solid var(--red);display:grid;grid-template-columns:58px 1fr 40px;align-items:center;text-align:left;padding:0 12px;color:var(--ink);cursor:pointer;transition:background .2s,color .2s}
.service-row span{font-family:var(--font-display);color:var(--red);font-size:20px}.service-row strong{font-size:clamp(18px,1.45vw,25px)}.service-row i{font-style:normal;color:var(--red);font-size:26px}
.service-row:hover,.service-row.is-active{background:var(--red);color:white}.service-row:hover span,.service-row:hover i,.service-row.is-active span,.service-row.is-active i{color:white}
.service-media{margin:0;min-height:520px;position:relative;overflow:hidden;background:#cac7c0}.service-media img{height:100%;object-fit:cover;filter:grayscale(1);transition:opacity .2s}.service-media figcaption{position:absolute;left:0;bottom:0;background:var(--red);color:white;padding:18px 24px;font-weight:600;max-width:80%}
.section-dark{background:var(--ink);color:white;padding:clamp(90px,9vw,160px) var(--gutter);position:relative;overflow:hidden}
.section-dark:after{content:"";position:absolute;width:420px;height:1200px;background:var(--red);right:-230px;top:-380px;transform:rotate(28deg)}
.process-intro{display:grid;grid-template-columns:110px 1fr minmax(260px,440px);gap:30px;align-items:end;margin-bottom:90px;position:relative;z-index:2}.process-intro h2{font-size:clamp(58px,6.5vw,112px)}.process-intro p{color:#b9b9b9}
.process-line{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);position:relative;z-index:2;border-top:1px solid #5a5a5c}
.process-line li{padding:28px 22px 16px;border-right:1px solid #5a5a5c;min-height:230px}.process-line li:last-child{border-right:0}.process-line span{font-family:var(--font-display);font-size:54px;color:var(--red)}.process-line strong{display:block;font-size:20px;margin:18px 0}.process-line p{color:#9e9ea0;line-height:1.45;margin:0}
.objects{padding-bottom:80px}.objects-heading{display:grid;grid-template-columns:110px 1fr;align-items:start}.objects-heading h2{margin-bottom:60px}.object-types{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--red);border-bottom:1px solid var(--red);margin-bottom:38px}.object-types span{padding:22px;border-right:1px solid var(--red);font-weight:600}.object-types span:last-child{border-right:0}
.gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:310px 310px;gap:12px}.gallery figure{margin:0;overflow:hidden;background:#bbb}.gallery img{height:100%;object-fit:cover;filter:grayscale(1);transition:filter .3s,transform .5s}.gallery figure:hover img{filter:grayscale(.2);transform:scale(1.02)}.gallery-main{grid-row:1/3}.gallery-side{position:relative}.gallery-side:last-child:after{content:"";position:absolute;inset:0 0 0 58%;background:var(--red);mix-blend-mode:multiply}
.about{display:grid;grid-template-columns:minmax(480px,1.35fr) minmax(300px,.65fr);gap:clamp(50px,8vw,150px);border-top:1px solid var(--line)}.about-title .section-number{display:block;margin-bottom:30px}.about-copy{align-self:end;padding-bottom:14px}.about-copy p{margin:0 0 26px}.about-copy .text-link{margin-top:15px}
.contact{background:var(--red);color:white;padding:clamp(74px,7vw,120px) var(--gutter);display:grid;grid-template-columns:minmax(350px,.8fr) minmax(560px,1.2fr);gap:clamp(50px,8vw,140px)}
.contact .section-number{color:white}.contact h2{font-size:clamp(66px,7vw,120px);margin:18px 0 32px}.contact-copy>p{max-width:530px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-content:center}.contact-form label:not(.consent){border:1px solid rgba(255,255,255,.75);padding:11px 15px;display:flex;flex-direction:column;gap:5px}.contact-form label>span{font-size:13px}.contact-form input,.contact-form textarea{border:0;background:transparent;color:white;outline:0;resize:none;min-height:26px}.contact-form .wide{grid-column:1/-1}.consent{display:flex;align-items:center;gap:9px}.consent input{min-height:auto}.contact-form .button{justify-self:start}.form-status{margin:0;align-self:center}
.site-footer{padding:36px var(--gutter);display:grid;grid-template-columns:230px repeat(3,1fr) 48px;gap:30px;align-items:center;border-top:1px solid var(--line)}.site-footer>div{display:flex;flex-direction:column;gap:7px;padding-left:24px;border-left:1px solid var(--red)}.site-footer span{color:var(--muted);font-size:13px;line-height:1.4}.to-top{font-size:28px;text-align:center}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
@media (max-width:1100px){.site-header{grid-template-columns:190px 1fr auto}.brand{width:170px}.desktop-nav{gap:20px;font-size:14px}.header-cta{padding:0 22px}.hero{grid-template-columns:55% 45%}.hero h1{font-size:clamp(66px,9vw,104px)}.services-layout{grid-template-columns:1fr 1fr}.process-line{grid-template-columns:repeat(3,1fr)}.process-line li{border-bottom:1px solid #5a5a5c}.contact{grid-template-columns:1fr 1fr}.site-footer{grid-template-columns:190px repeat(3,1fr)}.to-top{display:none}}
@media (max-width:820px){.site-header{height:84px;grid-template-columns:1fr auto;position:absolute}.brand{width:158px;height:58px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:block}.site-header.menu-open{background:var(--paper);height:auto;min-height:84px;align-items:start;padding-top:13px}.site-header.menu-open .desktop-nav{display:flex;grid-column:1/-1;flex-direction:column;padding:28px 0}.hero{min-height:auto;padding-top:125px;padding-bottom:82px;display:block}.hero-copy{padding-bottom:430px}.hero h1{font-size:clamp(60px,18vw,94px)}.hero-copy>p{font-size:18px;max-width:520px}.hero-visual{top:auto;bottom:78px;width:100%;height:390px;right:0}.hero-photo{width:88%;height:82%;top:10%}.hero-red-frame{inset:-3% 1% -6% 7%}.service-index{height:78px;overflow-x:auto;justify-content:flex-start;gap:24px;font-size:14px}.service-index a{white-space:nowrap}.section-head,.process-intro{grid-template-columns:70px 1fr}.section-head p,.process-intro p{grid-column:2}.services-layout{grid-template-columns:1fr}.service-media{min-height:420px;order:-1}.process-line{grid-template-columns:1fr 1fr}.object-types{grid-template-columns:1fr 1fr}.object-types span:nth-child(2){border-right:0}.object-types span:nth-child(-n+2){border-bottom:1px solid var(--red)}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:420px 240px}.gallery-main{grid-column:1/-1;grid-row:auto}.about{grid-template-columns:1fr}.contact{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.site-footer>div{padding-left:12px}}
@media (max-width:560px){.hero h1{font-size:18vw}.hero-copy{padding-bottom:330px}.hero-visual{height:330px}.hero-actions{align-items:flex-start;flex-direction:column;gap:10px}.button{width:100%}.section{padding-left:22px;padding-right:22px}.section-head,.process-intro{display:block}.section-number{display:block;margin-bottom:18px}.section-head h2,.objects-heading h2,.about h2,.process-intro h2{font-size:16vw}.section-head p,.process-intro p{margin-top:28px}.services-layout{gap:24px}.service-row{grid-template-columns:36px 1fr 28px;min-height:78px;padding:0 7px}.service-media{min-height:300px}.section-dark{padding-left:22px;padding-right:22px}.process-line{grid-template-columns:1fr}.process-line li{min-height:170px;border-right:0}.objects-heading{display:block}.object-types{grid-template-columns:1fr}.object-types span{border-right:0;border-bottom:1px solid var(--red)!important}.object-types span:last-child{border-bottom:0!important}.gallery{display:block}.gallery figure{height:280px;margin-bottom:10px}.about{padding-left:22px;padding-right:22px}.contact{padding-left:22px;padding-right:22px}.contact-form{grid-template-columns:1fr}.contact-form label{grid-column:1}.site-footer{grid-template-columns:1fr;padding:32px 22px}.site-footer>div{border-left:0;border-top:1px solid var(--red);padding:16px 0 0}}
