:root{--red:#d71932;--ink:#202124;--muted:#62676d;--line:#dce0e3;--paper:#f3f5f6;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:5px}img{max-width:100%;display:block}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08;letter-spacing:-.045em}h1{font-size:clamp(2.8rem,5.3vw,5.4rem);font-weight:600;margin-bottom:28px}h2{font-size:clamp(2rem,3.2vw,3.4rem);font-weight:500;margin-bottom:24px}h3{font-size:1.7rem;font-weight:500}p{color:var(--muted)}.header{height:108px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid var(--line);background:#fff}.brand{flex-shrink:0}.brand img{width:245px;height:auto}.header nav{display:flex;align-items:center;gap:32px;font-size:14px}.header nav>a[aria-current]{color:var(--red)}.header nav>a:not(.button):hover{color:var(--red)}.button,.outline{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:14px 23px;border:1px solid var(--red);background:var(--red);color:white;font-size:14px;font-weight:600;line-height:1.4;transition:background .18s}.button:hover{background:#b81027;border-color:#b81027}.button span{font-size:21px}.button.small{padding:12px 18px}.outline{background:transparent;border-color:#b9bec3;color:var(--ink)}.outline:hover{border-color:var(--ink);background:var(--paper)}.menu-toggle{display:none}.hero{position:relative;min-height:680px;height:calc(100vh - 108px);max-height:850px;display:flex;align-items:center;background:#121619;color:#fff;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,17,20,.92) 0%,rgba(12,17,20,.76) 32%,rgba(12,17,20,.15) 75%),linear-gradient(0deg,rgba(12,17,20,.7),transparent 28%)}.hero-copy{position:relative;padding:60px 5% 100px;width:62%;max-width:930px}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:700;color:var(--red);line-height:1.6;margin-bottom:26px;text-transform:uppercase}.eyebrow.light{color:#e1e5e7}.red-line{display:inline-block;width:30px;height:2px;background:var(--red);vertical-align:middle;margin-right:12px}.hero h1{max-width:730px}.hero-copy>p:not(.eyebrow){color:#c9cfd2;max-width:530px;font-size:18px;line-height:1.7}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:34px}.text-link{display:inline-flex;gap:22px;font-size:14px;padding:10px 0;border-bottom:1px solid #72777b;color:inherit}.hero-bottom{position:absolute;bottom:0;left:5%;right:5%;border-top:1px solid #ffffff30;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0;font-size:12px;color:#c0c7cc;letter-spacing:.1em}.hero-bottom span:nth-child(2){margin-left:auto;letter-spacing:0}.hero-bottom a{font-size:22px;padding:0 10px}.section{padding:96px 5%}.section-top{display:grid;grid-template-columns:1fr 2fr 1.15fr;gap:40px;align-items:start;margin-bottom:45px}.section-top>p{margin-top:7px}.section-top h2{margin-bottom:0}.section-top.compact{display:flex;align-items:center;justify-content:space-between;gap:30px}.compact .eyebrow{margin-bottom:18px}.specialty-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.specialty{padding:32px 34px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);position:relative}.specialty-number{display:flex;justify-content:space-between;font-size:14px;color:#757b80;padding-bottom:35px}.specialty-number span{font-size:26px;color:var(--red)}.specialty .eyebrow{margin-bottom:16px}.specialty h3{font-size:27px;margin-bottom:20px}.specialty>p:not(.eyebrow){min-height:105px}.specialty ul{list-style:none;padding:20px 0 0;margin:20px 0 0;border-top:1px solid var(--line);font-size:14px;color:#4c5258}.specialty li{padding:6px 0}.specialty li:before{content:'+';margin-right:14px;color:var(--red)}.dark-band{background:#202124;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:75px 8%;border-left:8px solid var(--red)}.dark-band p{color:#c0c4c8}.dark-band>div:last-child{align-self:center}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.project-photo{position:relative;aspect-ratio:1.5;overflow:hidden;background:#e8ecee}.project-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project-card a:hover img{transform:scale(1.035)}.badge{position:absolute;top:15px;left:15px;font-size:12px;padding:5px 10px;background:white;color:var(--ink);letter-spacing:.03em}.card-meta{display:flex;justify-content:space-between;margin-top:23px;color:var(--red);font-size:12px;letter-spacing:.07em;text-transform:uppercase}.card-meta span{font-size:20px}.project-card h3{margin:14px 0;font-size:26px}.project-card p{font-size:15px}.empty{padding:55px;background:var(--paper);border-left:3px solid var(--red)}.empty span{color:var(--red);font-size:12px;letter-spacing:.12em}.empty h3{margin-top:20px}.empty a{border-bottom:1px solid var(--red)}footer{background:#141719;color:#fff;padding:60px 5% 24px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:45px}footer p{color:#b6bfc4}footer>div{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:14px}footer small{grid-column:1/-1;border-top:1px solid #ffffff20;padding-top:22px;color:#8e989e;font-size:12px}.page-intro{padding:78px 5% 56px;background:linear-gradient(115deg,#f3f5f6,#fff);margin-bottom:55px;border-bottom:1px solid var(--line)}.page-intro h1{max-width:1100px}.page-intro>p:not(.eyebrow){max-width:720px;font-size:18px;margin-bottom:0}.no-top{padding-top:0}.wide-photo{margin:0 5%;height:450px;position:relative;overflow:hidden}.wide-photo img{width:100%;height:100%;object-fit:cover}.wide-photo span{position:absolute;bottom:15px;right:20px;background:#202124b0;color:white;padding:4px 10px;font-size:12px}.measure{max-width:750px;margin-bottom:30px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:40px}.filters a{border:1px solid #ccd0d3;padding:10px 20px;font-size:14px}.filters a.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.back{display:inline-block;font-size:14px;color:var(--muted);margin-bottom:32px}.detail-image{max-height:640px;overflow:hidden}.detail-image img{width:100%;max-height:640px;object-fit:cover}.notice{padding:20px 24px;background:var(--paper);border-left:3px solid var(--red);font-size:14px;margin-top:20px}.prose{max-width:840px;margin:55px auto;font-size:18px;line-height:1.9;white-space:normal;overflow-wrap:anywhere}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:30px 0}.gallery img{width:100%;height:300px;object-fit:cover}.video-section{max-width:900px;margin:45px auto}.video-frame:has(iframe){aspect-ratio:16/9}.video-frame iframe{width:100%;height:100%;border:0}.company{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.company-picture img{height:450px;width:100%;object-fit:cover;object-position:70%}.company small{font-size:12px;color:var(--muted)}.lead{font-size:21px;color:var(--ink);line-height:1.7}.company hr{border:0;border-top:1px solid var(--line);margin:28px 0}.contact{display:grid;grid-template-columns:1.3fr 1fr;gap:10%}.contact-row{display:block;padding:24px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.contact-row span{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.13em}.contact-row strong{font-size:23px;font-weight:500}.contact-note{background:var(--ink);padding:40px;color:white;align-self:start}.contact-note h3{font-size:32px}.contact-note p:last-child{color:#c5cbcf}.skip{position:fixed;top:-100px;left:20px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}.login{min-height:100vh;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px;gap:30px}.login-box{width:min(490px,100%);background:white;padding:40px;border-top:3px solid var(--red)}.login h1{font-size:34px}.login .eyebrow{margin-bottom:18px}.login form .button{width:100%;margin-top:10px}label{display:block;font-size:14px;font-weight:600;margin-bottom:22px}label span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin:4px 0}input,textarea,select{display:block;width:100%;border:1px solid #c6ccd1;background:white;color:var(--ink);padding:12px 14px;margin-top:7px;border-radius:0;line-height:1.5}input:focus,textarea:focus,select:focus{outline:2px solid var(--red);outline-offset:1px}textarea{resize:vertical}.error,.success{padding:16px 20px;font-size:14px;border-left:3px solid var(--red);background:#fff0f1;color:#92142a}.success{border-color:#27734b;background:#edf7f1;color:#21583d}.muted{font-size:13px;color:var(--muted);margin-top:20px}.admin-header{height:90px;display:flex;align-items:center;gap:30px;padding:0 3%;border-bottom:1px solid var(--line)}.admin-header>span{margin-right:auto;color:var(--muted);font-size:14px}.admin-header>a:not(:first-child){font-size:14px}.plain{border:0;background:transparent;padding:10px;color:var(--ink);font-size:14px}.danger{color:var(--red)}.admin-layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 90px)}.sidebar{padding:40px 24px;background:var(--paper);border-right:1px solid var(--line)}.sidebar>a{display:flex;justify-content:space-between;padding:14px 10px;font-size:14px;border-bottom:1px solid var(--line)}.sidebar>a[aria-current]{color:var(--red);background:#fff}.sidebar>.muted{margin-top:40px}.admin-main{padding:45px 5%;min-width:0;max-width:1400px;width:100%}.admin-main h1{font-size:38px;margin-bottom:18px}.editor{max-width:900px;margin-top:32px}.narrow{max-width:520px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.check{display:flex;align-items:center;gap:10px;font-weight:400}.check input{width:20px;height:20px;margin:0;accent-color:var(--red)}fieldset{border:1px solid var(--line);margin:30px 0;padding:25px}legend{padding:0 10px;font-size:18px}.admin-thumb{width:240px;height:150px;object-fit:cover;margin-bottom:20px}.admin-gallery img{height:140px}.admin-projects>article{display:flex;align-items:center;gap:24px;padding:24px 0;border-top:1px solid var(--line)}.admin-projects>article>img{width:140px;height:95px;object-fit:cover}.admin-projects>article>div{flex:1}.admin-projects h2{font-size:22px;margin:5px 0}.admin-projects p{font-size:13px;margin-bottom:0}.admin-projects .eyebrow{font-size:12px}
@media(min-width:1600px){.header,.section,.page-intro,footer{padding-left:max(5%,calc((100vw - 1500px)/2));padding-right:max(5%,calc((100vw - 1500px)/2))}}@media(max-width:1100px){.header nav{gap:18px}.brand img{width:205px}.hero-copy{width:72%}.section-top{grid-template-columns:1fr 2fr}.section-top>p:last-child{grid-column:2}.specialty{padding:25px}.specialty h3{font-size:23px}.project-grid{gap:20px}.admin-layout{grid-template-columns:210px 1fr}.admin-main{padding:35px 4%}}@media(max-width:800px){.header{height:86px}.brand img{width:210px}.menu-toggle{display:flex;align-items:center;gap:14px;background:none;border:1px solid var(--line);padding:8px 13px;font-size:14px}.header nav{display:none;position:absolute;top:86px;left:0;right:0;background:#fff;z-index:10;padding:25px 5%;box-shadow:0 15px 25px #0002;align-items:stretch}.header nav.open{display:flex;flex-direction:column}.header nav a{padding:10px}.hero{min-height:690px;height:auto}.hero-image{object-position:66%}.hero-shade{background:linear-gradient(90deg,#10171ceb,#10171c99 65%,#10171c50)}.hero-copy{width:95%;padding:65px 6% 120px}.hero h1{max-width:620px;font-size:clamp(42px,8vw,64px)}.hero-bottom{font-size:11px;gap:12px}.hero-bottom span:first-child{max-width:160px}.hero-bottom span:nth-child(2){max-width:140px;text-align:right}.section{padding:65px 6%}.section-top{display:block;margin-bottom:35px}.section-top>p:last-child{max-width:500px}.section-top h2{margin-bottom:20px}.specialty-grid{grid-template-columns:1fr}.specialty{padding:28px}.specialty-number{padding-bottom:15px}.specialty>p:not(.eyebrow){min-height:0;max-width:600px}.specialty ul{display:flex;gap:16px;flex-wrap:wrap}.dark-band{grid-template-columns:1fr;gap:15px;padding:55px 6%}.project-grid{grid-template-columns:1fr 1fr}.page-intro{padding:55px 6% 40px;margin-bottom:40px}.page-intro h1{font-size:clamp(36px,7vw,58px)}.no-top{padding-top:0}.wide-photo{height:320px}.company,.contact{grid-template-columns:1fr;gap:40px}.company-picture img{height:320px}.contact-note{padding:30px}.admin-header{height:auto;min-height:85px;gap:15px;flex-wrap:wrap;padding:15px 4%}.admin-header img{width:180px}.admin-header>span{display:none}.admin-header>a:first-child{margin-right:auto}.admin-layout{display:block}.sidebar{padding:15px 4%;display:flex;gap:10px;border-bottom:1px solid var(--line);flex-wrap:wrap}.sidebar>.eyebrow,.sidebar>.muted{display:none}.sidebar>a{gap:15px;border:0;padding:8px;font-size:13px}.admin-main{padding:30px 5%}.admin-projects>article{gap:12px;flex-wrap:wrap}.admin-projects>article>img{width:90px;height:80px}.admin-projects>article>div{min-width:calc(100% - 110px)}.admin-main .section-top{align-items:start}.admin-main h1{font-size:30px}footer{grid-template-columns:1fr 1fr;padding:45px 6% 24px;gap:25px}footer>img{grid-column:1/-1}footer small{font-size:12px}.section-top.compact{align-items:flex-start;flex-wrap:wrap}}
@media(max-width:500px){.hero{min-height:720px}.hero-copy{width:100%;padding-top:50px}.hero-copy>p:not(.eyebrow){font-size:16px}.hero .actions{align-items:flex-start;flex-direction:column;gap:12px}.hero .eyebrow{font-size:11px}.project-grid{grid-template-columns:1fr}.empty{padding:30px}.specialty ul{display:block}.contact-row strong{font-size:19px}.gallery{grid-template-columns:1fr}.gallery img{height:250px}.form-grid{grid-template-columns:1fr;gap:0}.login-box{padding:26px}.admin-header>a:not(:first-child){font-size:12px}.admin-header img{width:160px}.admin-main .actions{gap:12px}.filters{gap:8px}.filters a{padding:8px 12px;font-size:13px}footer{grid-template-columns:1fr}footer>img,footer small{grid-column:auto}.admin-projects .outline{min-height:40px;padding:10px 18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
