:root{
  --yellow:#ffeb00;
  --yellow2:#ffd900;
  --anth:#262626;
  --dark:#171717;
  --grey:#8d8d8d;
  --light:#f5f5f2;
  --white:#fff;
  --wood:#d4b58b;
  --max:1240px;
  --shadow:0 18px 60px rgba(0,0,0,.11);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;background:var(--white);color:var(--anth);line-height:1.55}
a{color:inherit;text-decoration:none}
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:12px 16px;background:var(--yellow);color:var(--dark);font-weight:850;transform:translateY(-180%);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0)}
img{max-width:100%;display:block}
.wrap{width:min(var(--max),calc(100% - 48px));margin:auto}
.eyebrow{display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:800}
.eyebrow:before{content:"";width:34px;height:5px;background:var(--yellow)}
h1,h2,h3{margin:0;line-height:1.05}
h1{font-size:clamp(3.1rem,7.3vw,7.4rem);letter-spacing:-.055em;font-weight:900}
h2{font-size:clamp(2.2rem,4.2vw,4.5rem);letter-spacing:-.04em;font-weight:900}
h3{font-size:1.35rem;font-weight:850}
p{margin:0}
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 22px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;font-size:.86rem;border:2px solid transparent;transition:.25s ease}
.btn.primary{background:var(--yellow);color:var(--dark)}
.btn.primary:hover{background:var(--yellow2);transform:translateY(-2px)}
.btn.ghost{border-color:rgba(255,255,255,.6);color:white}
.btn.ghost:hover{border-color:var(--yellow);color:var(--yellow)}
.arrow{font-size:1.1rem}
header{position:fixed;inset:0 0 auto 0;z-index:20;background:rgba(17,17,17,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.1);color:white}
.nav{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:14px}
.brandmark{font-weight:950;font-size:3.05rem;line-height:.75;color:var(--yellow);-webkit-text-stroke:1px #222;letter-spacing:-.12em}
.brandtext{line-height:.9}
.brandtext b{display:block;font-size:1.07rem;letter-spacing:.14em}
.brandtext span{display:block;color:#a9a9a9;font-size:.69rem;letter-spacing:.15em;margin-top:7px}
.navlinks{display:flex;align-items:center;gap:28px;font-size:.86rem;font-weight:800;text-transform:uppercase}
.navlinks a{position:relative}
.navlinks a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:4px;background:var(--yellow);transition:.2s}
.navlinks a:hover:after{right:0}
.navphone{padding:12px 16px;background:var(--yellow);color:var(--dark)}
.hero{min-height:820px;height:100vh;max-height:980px;position:relative;display:grid;align-items:end;background:
linear-gradient(90deg,rgba(15,15,15,.9) 0%,rgba(15,15,15,.74) 38%,rgba(15,15,15,.18) 70%,rgba(15,15,15,.05) 100%),
url("../img/hero-holzstaender.jpg") center/cover no-repeat;color:white}
.hero:after{content:"";position:absolute;right:0;bottom:0;width:30%;height:12px;background:var(--yellow)}
.heroinner{position:relative;z-index:2;padding:145px 0 78px}
.herotag{color:var(--yellow);font-weight:850;text-transform:uppercase;letter-spacing:.18em;margin-bottom:24px;font-size:.82rem}
.hero-title{max-width:880px;line-height:1.05}
.hero-title-line{display:block}
.hero-title-line-outline{height:1.05em;display:flex;align-items:center}
.hero-outline-word{display:block;width:7.1em;height:1em;max-width:100%;overflow:visible;margin-left:-.012em}
.hero-outline-outer,.hero-outline-inner{font-family:Inter,Arial,Helvetica,sans-serif;font-size:112px;font-weight:900;letter-spacing:-.055em}
.hero-outline-outer{fill:#fff;stroke:#fff;stroke-width:5.2px;stroke-linejoin:round;stroke-linecap:round;paint-order:stroke fill}
.hero-outline-inner{fill:#000;stroke:none}
.herosub{max-width:680px;font-size:clamp(1.05rem,1.6vw,1.3rem);margin:28px 0 34px;color:#efefef}
.heroactions{display:flex;gap:14px;flex-wrap:wrap}
.hero-meta{position:absolute;right:4%;bottom:72px;display:grid;gap:8px;text-align:right;text-transform:uppercase;font-size:.72rem;letter-spacing:.14em;color:#ddd}
.hero-meta strong{font-size:1.2rem;color:white;letter-spacing:0}
.section{padding:112px 0}
.intro{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}
.intro p{font-size:1.15rem;color:#565656;max-width:760px}
.intro strong{color:var(--dark)}
.services{background:var(--light)}
.sectionhead{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:48px}
.sectionhead p{max-width:500px;color:#666}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{position:relative;min-height:420px;overflow:hidden;background:#ddd;box-shadow:var(--shadow)}
.card img{position:absolute;width:100%;height:100%;object-fit:cover;transition:.55s}
.card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.8) 100%)}
.card:hover img{transform:scale(1.055)}
.cardcontent{position:absolute;z-index:2;left:26px;right:26px;bottom:28px;color:white}
.cardno{display:inline-block;background:var(--yellow);color:#111;font-size:.72rem;font-weight:900;padding:5px 8px;margin-bottom:12px}
.card h3{font-size:1.55rem}
.card p{margin-top:10px;color:#e6e6e6;font-size:.92rem}
.values{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.valuesimg{position:relative}
.valuesimg img{width:100%;height:580px;object-fit:cover}
.valuesimg:before{content:"";position:absolute;left:-20px;top:-20px;width:150px;height:150px;border-left:16px solid var(--yellow);border-top:16px solid var(--yellow);z-index:2}
.valuescopy p{color:#5c5c5c;margin:28px 0 32px;font-size:1.08rem}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.check{padding:18px 0;border-top:1px solid #ccc;font-weight:800}
.check span{color:#b5a600;margin-right:8px}
.projects{background:var(--dark);color:white}
.projects .sectionhead p{color:#bbb}
.projectgrid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}
.projectgrid .big{grid-row:span 2;min-height:650px}
.project{position:relative;min-height:316px;overflow:hidden}
.project img{width:100%;height:100%;position:absolute;object-fit:cover;transition:.45s}
.project:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.72))}
.project:hover img{transform:scale(1.04)}
.projectcap{position:absolute;left:26px;bottom:24px;z-index:2}
.projectcap span{display:block;color:var(--yellow);font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;margin-bottom:7px}
.team{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
.teamphoto{min-height:560px;background:
linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.05)),
url("../img/weiss-thomas.jpg") center/cover no-repeat;
filter:saturate(.8)}
.teamcopy blockquote{margin:28px 0;padding:24px 0 24px 28px;border-left:8px solid var(--yellow);font-size:1.55rem;font-weight:800;line-height:1.25}
.teamcopy p{color:#5e5e5e}
.jobs{background:var(--yellow);padding:68px 0}
.jobsinner{display:flex;align-items:center;justify-content:space-between;gap:34px}
.jobs h2{font-size:clamp(2rem,4vw,4.3rem)}
.jobs p{margin-top:10px;font-weight:700}
.jobs .btn{background:var(--dark);color:white}
.contact{background:#ecece8}
.contactgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}
.contactdetails{display:grid;gap:28px;margin-top:40px}
.detail small{display:block;text-transform:uppercase;letter-spacing:.13em;color:#666;font-weight:800;margin-bottom:4px}
.detail a,.detail strong{font-size:1.2rem}
.form{background:white;padding:36px;box-shadow:var(--shadow)}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
label{font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
input,textarea{width:100%;border:1px solid #ccc;background:#fafafa;padding:15px 14px;font:inherit}
textarea{min-height:160px;resize:vertical}
footer{background:#111;color:#aaa;padding:34px 0}
.footerin{display:flex;justify-content:space-between;gap:24px;align-items:center;font-size:.82rem}
.footerin strong{color:white}
.footerlinks{display:flex;gap:22px}
.mobiletoggle{display:none;background:none;border:0;font-size:1.7rem;color:var(--yellow);cursor:pointer;min-width:44px;min-height:44px;padding:6px}
@media(max-width:980px){
  .navlinks{display:none}
  .mobiletoggle{display:block}
  .intro,.values,.team,.contactgrid{grid-template-columns:1fr;gap:44px}
  .cards{grid-template-columns:1fr 1fr}
  .projectgrid{grid-template-columns:1fr}
  .projectgrid .big{min-height:440px;grid-row:auto}
  .project{min-height:350px}
  .hero-meta{display:none}
}
@media(max-width:650px){
  .wrap{width:min(100% - 28px,var(--max))}
  .nav{height:70px}
  .brandmark{font-size:2.4rem}
  .brandtext b{font-size:.85rem}.brandtext span{font-size:.58rem}
  .hero{min-height:700px}
  .heroinner{padding-bottom:52px}
  .heroinner{padding: 50px 0 78px;}
  /*h1{font-size:clamp(3rem,16vw,5rem)}*/
  .section{padding:78px 0}
  .sectionhead{display:block}.sectionhead p{margin-top:18px}
  .cards{grid-template-columns:1fr}
  .card{min-height:360px}
  .checks{grid-template-columns:1fr}
  .valuesimg img{height:430px}
  .jobsinner{display:block}.jobs .btn{margin-top:26px}
  .formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}
  .footerin{display:block}.footerlinks{margin-top:16px;flex-wrap:wrap}
}

.local-seo{background:#fff}
.localgrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
.localcopy>p{font-size:1.08rem;color:#5d5d5d;margin-top:24px}
.localfacts{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.localfact{padding:28px;background:var(--light);border-top:7px solid var(--yellow)}
.localfact h3{margin-bottom:10px}
.localfact p{color:#666;font-size:.95rem}
.seotext{margin-top:52px;padding-top:42px;border-top:1px solid #ddd;display:grid;grid-template-columns:1fr 1fr;gap:50px}
.seotext h3{margin-bottom:14px}
.seotext p{color:#626262}
.faq{background:var(--light)}
.faqgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}
.faqitems{border-top:1px solid #cfcfcf}
.faqitem{padding:24px 0;border-bottom:1px solid #cfcfcf}
.faqitem h3{font-size:1.08rem;margin-bottom:8px}
.faqitem p{color:#626262}
@media(max-width:980px){
  .localgrid,.faqgrid{grid-template-columns:1fr;gap:40px}
}
@media(max-width:650px){
  .localfacts,.seotext{grid-template-columns:1fr}
}

/* Barrierefreiheit: Tastatur, Fokus und reduzierte Bewegung */
:where(a,button,input,textarea):focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
input:focus-visible,textarea:focus-visible{border-color:var(--dark)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* PHP-Version: Navigation, Formulare und Unterseiten */
.mobiletoggle{line-height:1}
.form-alert{padding:15px 16px;margin-bottom:18px;font-weight:700;border-left:6px solid var(--yellow);background:#f7f7f3}
.form-alert.success{background:#eef6ec;border-left-color:#4d8f46}
.form-alert.error{background:#fff1ef;border-left-color:#b94a3c}
.field-error{font-size:.78rem;color:#a12e24;font-weight:700}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.subpage-hero{padding:170px 0 76px;background:var(--dark);color:white;border-bottom:10px solid var(--yellow)}
.subpage-hero h1{font-size:clamp(2.7rem,6vw,5.8rem)}
.subpage{padding:82px 0 110px}
.prose{max-width:900px}
.prose h2{font-size:2rem;margin:48px 0 16px}.prose h2:first-child{margin-top:0}
.prose h3{margin:30px 0 10px}.prose p,.prose li{color:#555}.prose p{margin:0 0 16px}.prose ul{padding-left:22px}
.prose a{text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:3px;text-underline-offset:3px}
@media(max-width:980px){
  .nav{position:relative}
  .navlinks.open{display:flex;position:absolute;top:82px;left:-24px;right:-24px;background:#111;flex-direction:column;align-items:stretch;gap:0;padding:12px 24px 22px;border-top:1px solid rgba(255,255,255,.1);box-shadow:0 18px 40px rgba(0,0,0,.25)}
  .navlinks.open a{padding:13px 2px;border-bottom:1px solid rgba(255,255,255,.08)}
  .navlinks.open .navphone{margin-top:12px;text-align:center;border-bottom:0}
}
@media(max-width:650px){.navlinks.open{top:70px}}

