@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/barlow-400.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/barlow-500.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-600.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-700.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/barlow-condensed-800.woff2') format('woff2')}

:root{
  --red:#BE3A2E;
  --red-deep:#93291F;
  --red-dark:#751F16;
  --paper:#FAF8F5;
  --ink:#1C1713;
  --muted:#4F4640;
  --line:#E6DED7;
  --noise:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='120'%20height='120'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.8'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.16%200'/%3E%3C/filter%3E%3Crect%20width='120'%20height='120'%20filter='url(%23n)'/%3E%3C/svg%3E");
  --ease:cubic-bezier(0.16,1,0.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{
  font-family:'Barlow',system-ui,sans-serif;
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
}

::selection{background:var(--red);color:#fff}

:focus-visible{outline:3px solid var(--red);outline-offset:2px}

img{max-width:100%;display:block}

a{color:var(--red)}

h1,h2,h3{font-family:'Barlow Condensed','Barlow',sans-serif;font-weight:800;line-height:1.15;letter-spacing:0.002em;text-wrap:balance}

.wrap{width:min(1200px,100% - clamp(2.5rem,8vw,6rem));margin-inline:auto}

.telefon{font-variant-numeric:tabular-nums}

.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}

.topbar{
  position:sticky;top:0;z-index:40;
  background:rgba(250,248,245,0.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  display:flex;align-items:center;gap:2rem;
  padding-block:0.9rem;
}
.brand{
  display:flex;align-items:center;
  text-decoration:none;white-space:nowrap;
}
.brand-logo{display:block;height:2.8rem;width:auto}
.topnav{
  display:flex;gap:1.7rem;margin-left:auto;
  align-items:baseline;
}
.topnav a{
  font-weight:600;font-size:0.98rem;text-decoration:none;
  color:var(--muted);padding-block:0.35rem;
  border-bottom:3px solid transparent;
  transition:color 0.15s,border-color 0.15s;
}
.topnav a:hover{color:var(--ink)}
.topnav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--red)}
.topbar-telefon{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:1.2rem;text-decoration:none;color:var(--ink);
  white-space:nowrap;letter-spacing:0.02em;
}
.topbar-telefon:hover{color:var(--red)}

.hero{
  position:relative;overflow:clip;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  align-items:stretch;
  background:linear-gradient(180deg,#fff 0%,var(--paper) 100%);
}
.hero-copy{
  padding-block:clamp(3.5rem,7vw,6.5rem);
  padding-left:clamp(2.5rem,8vw,6rem);
  padding-right:clamp(2rem,4vw,4rem);
  display:flex;flex-direction:column;justify-content:center;
}
.hero-copy h1{
  font-size:clamp(2.7rem,4.5vw,4rem);
}
.hero-copy h1 em{font-style:normal;color:var(--red);display:block}
.hero-copy p{
  margin-top:1.5rem;
  color:var(--muted);font-size:1.125rem;max-width:46ch;
}
.hero-cta{
  margin-top:2.3rem;
  display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;
}
.btn{
  display:inline-block;
  background:var(--red);color:#fff;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:1.25rem;letter-spacing:0.03em;
  text-decoration:none;
  padding:0.85rem 1.9rem;
  border:none;cursor:pointer;
  transition:background 0.15s var(--ease),transform 0.15s var(--ease);
}
.btn:hover{background:var(--red-deep);transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.phone-link{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:clamp(1.4rem,2vw,1.7rem);
  color:var(--ink);text-decoration:none;letter-spacing:0.02em;
  border-bottom:3px solid var(--red);
  padding-bottom:0.15rem;
  transition:color 0.15s;
}
.phone-link:hover{color:var(--red)}
.hero-media{
  position:relative;min-height:clamp(22rem,42vw,38rem);
}
.hero-media img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:72% center;
}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(250,248,245,1) 0%,rgba(250,248,245,0) 12%);
}
.livery{
  background:
    var(--noise),
    linear-gradient(180deg,var(--red) 0%,var(--red-deep) 100%);
  color:#fff;
  overflow:hidden;
}
.livery-inner{
  display:flex;gap:3.5rem;align-items:center;
  padding-block:0.95rem;
  padding-left:1.2rem;
  width:max-content;
  animation:none;
}
.livery-inner span{
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:1.05rem;letter-spacing:0.24em;text-transform:uppercase;
  white-space:nowrap;opacity:0.95;
}

.page-head{
  padding-block:clamp(3.5rem,7vw,6rem) clamp(2rem,4vw,3rem);
}
.page-head h1{font-size:clamp(2.9rem,6vw,5rem)}
.page-head h1 em{font-style:normal;color:var(--red)}
.page-head .lead{
  margin-top:1.3rem;max-width:58ch;
  color:var(--muted);font-size:1.125rem;
}

.section{padding-block:clamp(3.5rem,8vw,6.5rem)}
.section-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:2rem;margin-bottom:clamp(2rem,4vw,3rem);
}
.section h2{font-size:clamp(2.3rem,4.5vw,3.6rem)}
.section-head .side-note{
  color:var(--muted);max-width:34ch;font-size:1rem;
  padding-bottom:0.4rem;
}

.service-list{list-style:none}
.service-list li{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);
  gap:1rem 3rem;
  padding-block:1.7rem;
  border-top:1px solid var(--line);
  align-items:baseline;
}
.service-list li:last-child{border-bottom:1px solid var(--line)}
.service-list h3{
  font-size:clamp(1.7rem,3vw,2.5rem);font-weight:700;
  transition:color 0.2s var(--ease);
}
.service-list li:hover h3{color:var(--red)}
.service-list p{color:var(--muted);max-width:52ch}

.steps{
  list-style:none;
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:2.5rem;counter-reset:step;
}
.steps li{
  border-top:3px solid var(--red);
  padding-top:1.1rem;
  counter-increment:step;
}
.steps li::before{
  content:"0" counter(step);
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:2.2rem;color:var(--red);line-height:1;
  display:block;
}
.steps h3{
  font-size:1.55rem;font-weight:700;margin-top:0.5rem;
}
.steps p{color:var(--muted);margin-top:0.45rem;max-width:34ch}

.team-strip{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:#fff;
}
.team-strip-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:2rem;padding-block:2.2rem;flex-wrap:wrap;
}
.team-strip p{
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:clamp(1.4rem,2.6vw,1.9rem);
  max-width:26ch;line-height:1.2;
}
.arrow-link{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:1.2rem;letter-spacing:0.03em;
  color:var(--red);text-decoration:none;
  border-bottom:3px solid currentColor;padding-bottom:0.1rem;
  white-space:nowrap;
  transition:color 0.15s;
}
.arrow-link:hover{color:var(--red-deep)}

.cta-band{
  background:
    var(--noise),
    linear-gradient(135deg,var(--red) 0%,var(--red-deep) 100%);
  color:#fff;
}
.cta-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:2.5rem;padding-block:clamp(3rem,6vw,4.5rem);flex-wrap:wrap;
}
.cta-inner h2{
  font-size:clamp(2.4rem,5vw,3.8rem);
  max-width:16ch;
}
.cta-inner p{margin-top:0.8rem;color:rgba(255,255,255,0.88);max-width:44ch}
.cta-actions{display:flex;flex-direction:column;gap:1.1rem;align-items:flex-start}
.btn-light{
  background:#fff;color:var(--red-deep);
}
.btn-light:hover{background:var(--paper);color:var(--red-dark)}
.cta-band .phone-link{color:#fff;border-bottom-color:#fff}
.cta-band .phone-link:hover{color:#fff;opacity:0.85}

footer{
  background:
    var(--noise),
    linear-gradient(160deg,var(--red-deep) 0%,var(--red-dark) 100%);
  color:#fff;
}
.footer-inner{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:2.5rem;
  padding-block:clamp(2.8rem,5vw,4rem);
}
.footer-brand{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:1.9rem;line-height:1.15;
}
.footer-brand small{
  display:block;
  font-family:'Barlow',sans-serif;font-weight:500;
  font-size:0.95rem;color:rgba(255,255,255,0.85);
  margin-top:0.6rem;max-width:30ch;
}
.footer-col h3{
  font-size:1.15rem;font-weight:700;letter-spacing:0.08em;
  text-transform:uppercase;margin-bottom:0.8rem;
  color:rgba(255,255,255,0.9);
}
.footer-col ul{list-style:none;display:grid;gap:0.45rem}
.footer-col a{
  color:#fff;text-decoration:none;font-weight:500;
  border-bottom:2px solid transparent;
  transition:border-color 0.15s;
}
.footer-col a:hover{border-bottom-color:rgba(255,255,255,0.7)}
.footer-base{
  border-top:1px solid rgba(255,255,255,0.22);
  padding-block:1.1rem;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-size:0.88rem;color:rgba(255,255,255,0.85);
}

.tarif-list{list-style:none}
.tarif-list>li{
  border-top:1px solid var(--line);
  padding-block:1.6rem;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:0.4rem 2.5rem;
  align-items:baseline;
}
.tarif-list>li:last-child{border-bottom:1px solid var(--line)}
.tarif-list h2{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:700}
.tarif-preis{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:clamp(1.3rem,2.2vw,1.6rem);letter-spacing:0.02em;color:var(--red);
  white-space:nowrap;font-variant-numeric:tabular-nums;
}
.fixpreis{
  margin-top:2.6rem;
  border:1px solid var(--line);
  background:#fff;
  padding:clamp(1.5rem,3vw,2.2rem) clamp(1.5rem,3vw,2.2rem);
  max-width:62ch;
}
.fixpreis h3{font-size:1.8rem;font-weight:700}
.fixpreis p{margin-top:0.7rem;color:var(--muted)}
.fixpreis strong{color:var(--ink)}
.fixpreis .btn{margin-top:1.3rem}
.tarif-hinweis strong{color:var(--ink)}

.team-list{list-style:none}
.team-list>li{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:1.8rem 2.4rem;
  padding-block:2.4rem;
  border-top:1px solid var(--line);
  align-items:start;
}
.team-list>li:last-child{border-bottom:1px solid var(--line)}
.team-foto{
  width:7.5rem;height:7.5rem;
  object-fit:cover;display:block;flex:none;
}
.team-list h3{font-size:clamp(1.7rem,3vw,2.4rem)}
.team-rolle{
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:1.2rem;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--red);margin-top:0.2rem;
}
.team-list .bio{color:var(--muted);margin-top:0.8rem;max-width:62ch}
.team-motto{
  margin-top:0.9rem;
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:1.3rem;color:var(--ink);
}
.team-motto::before{content:"„";color:var(--red)}
.team-motto::after{content:"“";color:var(--red)}

.kontakt-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  gap:clamp(2.5rem,5vw,4.5rem);
  align-items:start;
}
.impressum{max-width:62ch}
.impressum-block{border-top:1px solid var(--line);padding-block:1.6rem}
.impressum-block h2{font-size:1.7rem;font-weight:700}
.impressum-block p{margin-top:0.7rem;color:var(--muted)}
.impressum-block p:first-of-type{margin-top:0.4rem}
.impressum-block strong{color:var(--ink)}
.kontakt-daten h2{font-size:clamp(1.9rem,3.5vw,2.7rem)}
.kontakt-daten .big-link{
  display:block;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:clamp(1.9rem,3.4vw,2.6rem);
  color:var(--ink);text-decoration:none;
  margin-top:1.4rem;letter-spacing:0.02em;
  transition:color 0.15s;
}
.kontakt-daten .big-link:hover{color:var(--red)}
.kontakt-daten .label{
  display:block;
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:1.05rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--red);margin-top:1.8rem;
}
.kontakt-daten .angabe{margin-top:0.4rem;color:var(--ink);max-width:40ch}
.kontakt-daten .hinweis{
  margin-top:2rem;color:var(--muted);max-width:40ch;
  border-top:1px solid var(--line);padding-top:1.3rem;
}
.formular{
  background:
    var(--noise),
    linear-gradient(150deg,var(--red) 0%,var(--red-deep) 100%);
  color:#fff;
  padding:clamp(1.8rem,4vw,2.8rem);
}
.formular h2{font-size:1.9rem}
.form-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem;
  margin-top:1.5rem;
}
.form-grid .voll{grid-column:1/-1}
.feld label{
  display:block;
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:1.08rem;letter-spacing:0.05em;
  margin-bottom:0.35rem;
}
.feld label .pflicht{color:#FFD9D2}
.feld input,.feld textarea{
  width:100%;
  font:inherit;color:var(--ink);
  background:#fff;border:2px solid transparent;
  padding:0.65rem 0.8rem;
  border-radius:0;
}
.feld input::placeholder,.feld textarea::placeholder{color:#6F655D}
.feld input:focus-visible,.feld textarea:focus-visible{
  outline:3px solid var(--ink);outline-offset:2px;
}
.feld textarea{min-height:7.5rem;resize:vertical}
.feld .fehler{
  display:none;
  font-size:0.9rem;font-weight:600;
  margin-top:0.3rem;color:#FFD9D2;
}
.feld.ungueltig .fehler{display:block}
.feld.ungueltig input,.feld.ungueltig textarea{border-color:var(--red-dark)}
.form-fuss{
  display:flex;align-items:center;gap:1.3rem;flex-wrap:wrap;
  margin-top:1.4rem;
}
.form-fuss .btn{font-size:1.2rem}
.form-fuss .mailhinweis{
  font-size:0.9rem;color:rgba(255,255,255,0.9);max-width:30ch;
}
.form-status{
  margin-top:1rem;font-weight:600;
  display:none;
}
.form-status.sichtbar{display:block}

.reveal{opacity:1;transform:none}
.js .reveal{
  opacity:0;transform:translateY(22px);
  transition:opacity 0.7s var(--ease),transform 0.7s var(--ease);
}
.js .reveal.sichtbar{opacity:1;transform:none}

@keyframes zeile-ein{
  from{opacity:0;transform:translateY(28px)}
  to{opacity:1;transform:none}
}
@keyframes van-ein{
  from{opacity:0;transform:translateX(46px)}
  to{opacity:1;transform:none}
}
@keyframes wipe-weg{
  from{transform:scaleY(1)}
  to{transform:scaleY(0)}
}
.js .hero-wipe{
  position:absolute;inset:0;z-index:5;
  background:linear-gradient(120deg,var(--red) 0%,var(--red-deep) 100%);
  transform-origin:top;
  animation:wipe-weg 0.65s var(--ease) 0.15s both;
  pointer-events:none;
}
.js .hero-copy h1{animation:zeile-ein 0.7s var(--ease) 0.35s both}
.js .hero-copy p{animation:zeile-ein 0.7s var(--ease) 0.48s both}
.js .hero-cta{animation:zeile-ein 0.7s var(--ease) 0.61s both}
.js .hero-media img{animation:van-ein 0.8s var(--ease) 0.42s both}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .hero-wipe,.js .hero-copy h1,.js .hero-copy p,.js .hero-cta,.js .hero-media img{animation:none}
  .js .reveal{opacity:1;transform:none;transition:none}
  .btn:hover{transform:none}
}

@media (max-width:1020px){
  .steps{grid-template-columns:1fr;gap:1.8rem}
  .footer-inner{grid-template-columns:1fr 1fr}
}

@media (max-width:880px){
  .hero{grid-template-columns:1fr}
  .hero-copy h1 br{display:none}
  .hero-copy{padding-inline:clamp(1.4rem,5vw,2.5rem);padding-top:clamp(2.5rem,6vw,4rem);padding-bottom:2.8rem}
  .hero-media{min-height:min(78vw,30rem);margin-inline:clamp(1.4rem,5vw,2.5rem)}
  .hero-media::after{display:none}
  .service-list li{grid-template-columns:1fr;gap:0.4rem;padding-block:1.4rem}
  .kontakt-grid{grid-template-columns:1fr}
  .team-list>li{grid-template-columns:1fr;gap:1.1rem}
  .cta-inner{flex-direction:column;align-items:flex-start}
}

@media (max-width:640px){
  .topbar-inner{flex-wrap:wrap;gap:0.6rem 1.4rem;padding-block:0.75rem}
  .brand-logo{height:2.2rem}
  .topnav{order:3;width:100%;margin-left:0;gap:1.15rem;overflow-x:auto;padding-bottom:0.2rem}
  .topnav a{font-size:0.92rem;white-space:nowrap}
  .topbar-telefon{margin-left:auto;font-size:1.1rem}
  .form-grid{grid-template-columns:1fr}
  .tarif-list>li{grid-template-columns:1fr;gap:0.3rem}
  .footer-inner{grid-template-columns:1fr;gap:2rem}
  .section-head{flex-direction:column;gap:0.8rem;align-items:flex-start}
}
