/* Metallbau Hepp — Werkbuch 1872 */
:root{--paper:#f2f0e8;--paper-2:#e6e2d8;--ink:#17191a;--steel:#667074;--muted:#6c706f;--line:#b9b7af;--accent:#b34425;--white:#fff;--max:1440px;--pad:clamp(20px,4vw,72px);--head:74px;--ease:cubic-bezier(.2,.72,.18,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Arial Narrow","Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.55;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(rgba(23,25,26,.034) 1px,transparent 1px),linear-gradient(90deg,rgba(23,25,26,.034) 1px,transparent 1px);background-size:36px 36px}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{color:inherit}.skip{position:absolute;left:10px;top:-80px;background:var(--ink);color:#fff;padding:12px 16px;z-index:1000}.skip:focus{top:10px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.wrap{width:min(var(--max),100%);margin:auto;padding-inline:var(--pad)}
.topbar{position:sticky;top:0;z-index:100;height:var(--head);background:rgba(242,240,232,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--ink)}.nav{height:100%;display:grid;grid-template-columns:minmax(170px,260px) 1fr auto;align-items:center;gap:30px}.brand{display:flex;align-items:center;height:52px;width:min(220px,100%)}.brand img{width:100%;height:100%;object-fit:contain;object-position:left center;}.navlinks{display:flex;justify-content:center;align-items:stretch;height:100%}.navlinks a{min-height:44px;display:grid;place-items:center;padding:0 16px;border-left:1px solid transparent;border-right:1px solid transparent;font-size:13px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.navlinks a:hover,.navlinks a[aria-current="page"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.nav-contact{display:flex;align-items:center;gap:16px}.nav-phone{font-size:14px;font-weight:800;letter-spacing:.04em}.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--ink);background:transparent;cursor:pointer}.menu-toggle span,.menu-toggle::before,.menu-toggle::after{content:"";display:block;width:22px;height:2px;background:var(--ink);margin:5px auto;transition:.25s}
.kicker{display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.2;font-weight:800;text-transform:uppercase;letter-spacing:.19em}.kicker::before{content:"";width:38px;height:2px;background:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:12px 19px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;transition:transform .2s,background .2s,color .2s}.btn:hover{transform:translateY(-2px);background:var(--accent);border-color:var(--accent)}.btn.light{background:transparent;color:var(--ink)}.btn.light:hover{background:var(--ink);color:var(--paper)}.btn::after{content:"";display:inline-block;width:14px;height:14px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13L13 3M6 3h7v7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13L13 3M6 3h7v7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E") center/contain no-repeat;flex-shrink:0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.hero{min-height:calc(100svh - var(--head));border-bottom:1px solid var(--ink)}.hero-grid{min-height:inherit;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(370px,.95fr)}.hero-copy{padding:clamp(50px,8vh,110px) clamp(28px,5vw,80px) 46px 0;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--ink)}.hero-title{margin:45px 0 24px;font-size:clamp(62px,9.8vw,158px);line-height:.79;letter-spacing:-.075em;font-weight:900;text-transform:uppercase}.hero-title .outline{-webkit-text-stroke:1.5px var(--ink);color:transparent}.hero-title .dot{color:var(--accent)}.hero-lead{max-width:660px;margin:0;font-size:clamp(18px,1.7vw,25px);line-height:1.42}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:55px;padding-top:20px;gap:20px}.hero-meta b{display:block;font-size:clamp(23px,3vw,42px);line-height:1}.hero-meta span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-top:8px}.hero-visual{position:relative;min-height:620px;background:var(--ink);overflow:hidden}.hero-visual>img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08)}.hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.72))}.drawing-mark{position:absolute;z-index:2;color:#fff;font-size:11px;letter-spacing:.13em;text-transform:uppercase}.drawing-mark.top{top:28px;right:28px}.drawing-mark.bottom{left:28px;bottom:26px}.drawing-mark i{display:block;width:82px;height:1px;background:var(--accent);margin:8px 0}.year-stamp{position:absolute;z-index:2;right:-10px;bottom:55px;font-weight:900;font-size:clamp(78px,9vw,138px);line-height:.8;letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.65);transform:rotate(-90deg);transform-origin:bottom right}
.index-strip{display:grid;grid-template-columns:260px 1fr;border-bottom:1px solid var(--ink)}.index-label{padding:48px var(--pad);border-right:1px solid var(--ink);writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:800}.register{padding:0 var(--pad)}.register-row{display:grid;grid-template-columns:72px 1.1fr 1fr 40px;align-items:center;min-height:132px;border-bottom:1px solid var(--line);gap:24px;transition:background .25s,padding .25s}.register-row:last-child{border-bottom:0}.register-row:hover{background:rgba(179,68,37,.07);padding-inline:18px}.register-code{font:700 12px/1 monospace;color:var(--accent)}.register-row h2{margin:0;font-size:clamp(26px,3vw,52px);line-height:1;letter-spacing:-.04em}.register-row p{margin:0;color:var(--muted);max-width:560px}.register-arrow,.arr-r{display:inline-block;width:18px;height:18px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M2 9h13M10 4l5 5-5 5' fill='none' stroke='black' stroke-width='2' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M2 9h13M10 4l5 5-5 5' fill='none' stroke='black' stroke-width='2' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E") center/contain no-repeat;flex-shrink:0}.arr-ne{display:inline-block;width:14px;height:14px;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13L13 3M6 3h7v7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13L13 3M6 3h7v7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E") center/contain no-repeat;vertical-align:middle;margin-left:.2em;flex-shrink:0}.arr-r{width:14px;height:14px;vertical-align:middle;margin-left:.2em}
.section{padding:clamp(80px,10vw,150px) 0;border-bottom:1px solid var(--ink)}.section-head{display:grid;grid-template-columns:.62fr 1.38fr;gap:50px;margin-bottom:60px}.section-head h2,.page-title{margin:0;font-size:clamp(50px,7vw,112px);line-height:.87;letter-spacing:-.065em;text-transform:uppercase}.section-head p{max-width:650px;font-size:20px;margin:0;color:var(--muted)}
.project-ledger{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:420px 310px;border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.project{position:relative;overflow:hidden;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);background:#222}.project:first-child{grid-row:span 2}.project img{width:100%;height:100%;object-fit:cover;filter:grayscale(.72);transition:transform .8s var(--ease),filter .5s}.project:hover img{transform:scale(1.035);filter:grayscale(0)}.project-caption{position:absolute;left:0;right:0;bottom:0;padding:55px 24px 20px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.86));display:flex;justify-content:space-between;align-items:end}.project-caption b{font-size:clamp(24px,3vw,46px);line-height:1}.project-caption span{font:700 11px/1.2 monospace;text-transform:uppercase;letter-spacing:.12em}
.cert-band{background:var(--ink);color:var(--paper);padding:42px 0}.cert-grid{display:grid;grid-template-columns:1.6fr repeat(3,.55fr);align-items:center;gap:20px}.cert-grid h2{margin:0;font-size:clamp(27px,3vw,52px);line-height:1.05}.cert-item{min-height:90px;border-left:1px solid #666;padding-left:22px;display:flex;flex-direction:column;justify-content:center}.cert-item b{font-size:24px}.cert-item span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#aaa}
.timeline-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.timeline-intro blockquote{margin:0;font-size:clamp(30px,4.6vw,72px);font-weight:900;line-height:1.02;letter-spacing:-.05em}.timeline-intro blockquote em{font-style:normal;color:var(--accent)}.timeline-compact{border-top:1px solid var(--ink)}.time-row{display:grid;grid-template-columns:110px 1fr;padding:18px 0;border-bottom:1px solid var(--line)}.time-row time{font-weight:900;color:var(--accent)}
.contact-slab{background:var(--accent);color:#fff;padding:clamp(70px,9vw,135px) 0}.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end}.contact-grid h2{font-size:clamp(54px,8vw,126px);line-height:.83;letter-spacing:-.07em;text-transform:uppercase;margin:20px 0}.contact-grid p{font-size:20px;max-width:580px}.contact-list{border-top:1px solid rgba(255,255,255,.55)}.contact-list a,.contact-list address{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.55);font-style:normal;font-weight:800}.contact-list a:hover{text-decoration:underline}.contact-list small{font-weight:400;text-transform:uppercase;letter-spacing:.12em}
.footer{background:var(--ink);color:var(--paper);padding:50px 0 26px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:50px}.footer-logo{max-width:240px}.footer h3{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:#999}.footer a{display:block;padding:5px 0}.footer a:hover{color:#e36b48}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:35px;margin-top:35px;border-top:1px solid #444;font-size:12px;color:#999}
.page-hero{padding:clamp(70px,10vw,145px) 0 70px;border-bottom:1px solid var(--ink);position:relative}.page-hero .serial{position:absolute;right:var(--pad);top:50%;font-size:clamp(80px,14vw,230px);line-height:1;transform:translateY(-50%);color:transparent;-webkit-text-stroke:1px var(--line);font-weight:900;z-index:-1}.page-hero p{font-size:clamp(18px,2vw,27px);max-width:720px;margin:30px 0 0}.page-title{max-width:1050px}.subgrid{display:grid;grid-template-columns:280px 1fr;gap:70px}.subnav{position:sticky;top:calc(var(--head) + 30px);align-self:start;border-top:1px solid var(--ink)}.subnav a{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.copy h2{font-size:clamp(38px,5vw,72px);line-height:.95;letter-spacing:-.05em;margin:0 0 28px}.copy h3{font-size:26px;margin:42px 0 12px}.copy p,.copy li{max-width:820px}.copy ul{padding-left:20px}.service-sheet{border-top:2px solid var(--ink)}.service-block{display:grid;grid-template-columns:100px minmax(240px,.8fr) 1.2fr;gap:30px;padding:34px 0;border-bottom:1px solid var(--ink)}.service-block .code{font:700 12px monospace;color:var(--accent)}.service-block h2{margin:0;font-size:clamp(28px,4vw,54px);line-height:1}.service-block ul{columns:2;margin:0;padding-left:20px;color:var(--muted)}
.gallery-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:35px}.filter-btn{min-height:44px;padding:10px 16px;border:1px solid var(--ink);background:transparent;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:800;cursor:pointer}.filter-btn.active,.filter-btn:hover{background:var(--ink);color:var(--paper)}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-flow:dense;gap:10px}.gallery figure{margin:0;position:relative;overflow:hidden;background:#ddd;min-height:280px;grid-column:span 4}.gallery figure.wide{grid-column:span 8}.gallery figure.tall{min-height:570px;grid-row:span 2}.gallery img{width:100%;height:100%;object-fit:cover;filter:grayscale(.65);transition:.6s}.gallery figure:hover img{filter:grayscale(0);transform:scale(1.025)}.gallery figcaption{position:absolute;left:0;bottom:0;background:var(--paper);padding:8px 12px;font:700 11px monospace;text-transform:uppercase}.gallery figure[hidden]{display:none}
.history-stage{display:grid;grid-template-columns:.85fr 1.15fr;min-height:650px;border-bottom:1px solid var(--ink)}.history-photo{position:sticky;top:var(--head);height:calc(100vh - var(--head));background:#111}.history-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}.history-list{padding:40px var(--pad)}.history-row{display:grid;grid-template-columns:130px 1fr;gap:25px;padding:29px 0;border-bottom:1px solid var(--line)}.history-row time{font-size:clamp(31px,4vw,58px);font-weight:900;line-height:1;color:var(--accent)}.history-row h2{font-size:26px;margin:0 0 7px}.history-row p{margin:0;color:var(--muted)}
.form-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px}.contact-card{background:var(--ink);color:var(--paper);padding:35px}.contact-card h2{font-size:38px;line-height:1;margin:0 0 25px}.contact-card a,.contact-card address{display:block;padding:15px 0;border-top:1px solid #555;font-style:normal}.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.field input,.field select,.field textarea{width:100%;min-height:52px;padding:13px;border:1px solid var(--ink);background:transparent;border-radius:0}.field textarea{min-height:150px;resize:vertical}.form-note{grid-column:1/-1;color:var(--muted);font-size:13px}.legal{max-width:920px}.legal h2{font-size:32px;margin-top:50px}.legal h3{font-size:21px;margin-top:30px}.legal p,.legal li{color:#454948}
body.js .reveal{opacity:0;transform:translateY(25px);transition:opacity .7s var(--ease),transform .7s var(--ease)}body.js .reveal.in{opacity:1;transform:none}
@media(max-width:1050px){.nav{grid-template-columns:170px 1fr auto}.navlinks a{padding:0 9px;font-size:11px}.nav-phone{display:none}.hero-grid{grid-template-columns:1fr .78fr}.index-strip{grid-template-columns:150px 1fr}.register-row{grid-template-columns:55px 1fr 40px}.register-row p{display:none}.project-ledger{grid-template-rows:340px 270px}.cert-grid{grid-template-columns:1.2fr repeat(3,.6fr)}.subgrid{grid-template-columns:220px 1fr}.service-block{grid-template-columns:75px 1fr}.service-block>div:last-child{grid-column:2}.gallery figure{grid-column:span 6}.gallery figure.wide{grid-column:span 6}}
@media(max-width:820px){:root{--head:66px}.nav{grid-template-columns:160px 1fr auto}.menu-toggle{display:block}.nav-contact .btn{display:none}.navlinks{position:fixed;inset:var(--head) 0 auto 0;height:auto;background:var(--paper);border-bottom:1px solid var(--ink);display:none;flex-direction:column;padding:12px var(--pad) 20px}.navlinks.open{display:flex}.navlinks a{justify-content:start;min-height:52px;border-bottom:1px solid var(--line);padding:0}.hero{min-height:auto}.hero-grid{display:block}.hero-copy{min-height:calc(100svh - var(--head));border-right:0;padding-right:0}.hero-title{font-size:clamp(60px,18vw,115px)}.hero-visual{height:70svh;min-height:480px;border-top:1px solid var(--ink)}.index-strip{display:block}.index-label{writing-mode:initial;transform:none;border:0;border-bottom:1px solid var(--ink);padding:22px var(--pad)}.register{padding-inline:var(--pad)}.register-row{min-height:110px;gap:12px}.section-head{grid-template-columns:1fr;gap:25px}.project-ledger{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(3,360px)}.project:first-child{grid-row:auto}.cert-grid{grid-template-columns:1fr 1fr}.cert-grid h2{grid-column:1/-1;margin-bottom:20px}.timeline-intro,.contact-grid,.footer-grid,.subgrid,.form-layout{grid-template-columns:1fr}.subnav{display:none}.gallery figure,.gallery figure.wide{grid-column:span 6}.history-stage{grid-template-columns:1fr}.history-photo{position:relative;top:auto;height:60vh}.service-block{grid-template-columns:55px 1fr}.contact-grid{align-items:start}.contact-list{margin-top:20px}}
@media(max-width:560px){body{font-size:16px}.hero-copy{min-height:auto;padding-top:52px}.hero-title{font-size:clamp(58px,21vw,94px);margin-top:42px}.hero-lead{font-size:18px}.hero-meta{grid-template-columns:1fr 1fr}.hero-meta>div:last-child{grid-column:1/-1}.hero-visual{height:62svh;min-height:420px}.year-stamp{font-size:82px}.register-row{grid-template-columns:44px 1fr 28px}.register-row h2{font-size:30px}.section{padding:75px 0}.project-ledger{grid-template-rows:repeat(3,300px)}.cert-grid{grid-template-columns:1fr}.cert-grid h2{grid-column:auto}.cert-item{border-left:0;border-top:1px solid #555;padding:16px 0;min-height:0}.timeline-intro{gap:40px}.time-row{grid-template-columns:75px 1fr}.contact-grid h2{font-size:58px}.footer-grid{gap:28px}.footer-bottom{flex-direction:column}.page-hero{padding-top:70px}.page-title{font-size:clamp(46px,14vw,68px);overflow-wrap:anywhere}.page-hero .serial{top:25%;font-size:130px}.service-block{grid-template-columns:1fr;gap:12px}.service-block>div:last-child{grid-column:auto}.service-block ul{columns:1}.gallery{display:block}.gallery figure,.gallery figure.wide,.gallery figure.tall{min-height:360px;margin-bottom:10px}.history-row{grid-template-columns:1fr;gap:10px}.history-row time{font-size:48px}.form{grid-template-columns:1fr}.field.full,.form-note{grid-column:auto}.contact-card{padding:25px}.actions{flex-direction:column}.actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.project img{transform:none!important}}
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--ink);color:var(--paper);border-top:2px solid var(--accent)}.cookie-inner{display:flex;align-items:center;gap:20px;padding-top:16px;padding-bottom:16px;flex-wrap:wrap}.cookie-text{margin:0;font-size:13px;flex:1 1 260px;line-height:1.5}.cookie-text a{color:inherit;text-decoration:underline;text-underline-offset:3px}.cookie-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 22px;border:1px solid rgba(242,240,232,.55);background:transparent;color:var(--paper);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .2s,color .2s,border-color .2s}.cookie-btn:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}@media(max-width:560px){.cookie-inner{gap:14px}.cookie-btn{width:100%;justify-content:center}}
