/* fairheld.de – statischer Nachbau der Onepage-Seite */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-sans-v4-latin-regular.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-sans-v4-latin-italic.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/instrument-sans-v4-latin-500.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/instrument-sans-v4-latin-600.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/instrument-sans-v4-latin-700.woff2) format("woff2")}

:root{
  --dark:#2b2a2b;
  --light:#f2f2f1;
  --white:#fff;
  --accent:#b8c6c6;
  --muted:#8a898a;
  --soft:#bdbcbd;
  --line:#e6e6e4;
  --wrap:1250px;
  --font:"Instrument Sans",-apple-system,system-ui,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.5;color:var(--dark);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-weight:600;letter-spacing:-.4px;line-height:1.2;margin:0}
p{margin:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--dark);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:16px;top:16px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}
section[id]{scroll-margin-top:24px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:60px;padding:0 30px;border-radius:4px;font-weight:600;font-size:17px;text-decoration:none;border:1px solid transparent;transition:opacity .2s}
.btn:hover{opacity:.85}
.btn--white{background:#fff;color:var(--dark);border-color:#fff}
.btn--ghost{background:rgba(0,0,0,.25);color:#fff;border-color:rgba(255,255,255,.3)}
.btn--dark{background:var(--dark);color:#fff}

/* Header */
.site-header{position:absolute;top:31px;left:0;right:0;z-index:20;padding:0 16px}
.site-header--static{position:relative;top:0;padding:31px 16px 0}
.header-bar{max-width:var(--wrap);margin:0 auto;background:#fff;border-radius:12px;min-height:119px;display:flex;align-items:center;padding:0 28px;gap:24px}
.logo{display:block;flex:0 0 auto}
.logo img{width:130px;height:auto}
.main-nav{flex:1;display:flex;justify-content:center;margin-right:200px}
.main-nav ul{list-style:none;display:flex;gap:24px;margin:0;padding:0}
.main-nav a{text-decoration:none;font-weight:600;font-size:17px;letter-spacing:-.3px;color:var(--dark)}
.main-nav a:hover{opacity:.7}
.burger{display:none;width:56px;height:56px;border:0;border-radius:4px;background:var(--light);cursor:pointer;align-items:center;justify-content:center;margin-left:auto}
.burger span{display:block;width:20px;height:2px;background:var(--dark);position:relative}
.burger span::after{content:"";position:absolute;left:0;top:7px;width:20px;height:2px;background:var(--dark)}
.burger span{transform:translateY(-4px)}

/* Hero */
.hero{position:relative;min-height:674px;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;background:#1d1c1c}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.62)}
.hero__inner{position:relative;z-index:1;max-width:960px;text-align:center;padding:180px 16px 100px}
.hero h1{font-size:50px;line-height:1.14;letter-spacing:-.6px}
.mark{display:inline;background:#fff;color:var(--dark);padding:0 12px;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.mark--dark{background:var(--dark);color:#fff}
.mark--black{background:#000;color:#fff;border-radius:4px;margin-right:12px}
.hero__lead{margin:44px auto 0;max-width:780px;font-size:19px;line-height:1.58;color:rgba(255,255,255,.75)}
.hero__btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:54px}

/* Über uns */
.about{padding:60px 0 120px}
.about .wrap{max-width:1282px;display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:start;padding-top:0}
.about h2{font-size:48px;line-height:1.4}
.about__text p{font-size:19px;line-height:1.58;margin-top:30px}
.about__text p.small{font-size:17px;line-height:1.6;color:var(--muted);margin-top:22px}
.about__img img{border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.12);width:100%;aspect-ratio:597/489;object-fit:cover}

/* Services */
.services{background:var(--light);padding:80px 32px 100px}
.svc{max-width:1376px;margin:0 auto 60px;background:#fff;border-radius:12px;padding:100px 100px}
.svc:last-child{margin-bottom:0}
.svc__grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.svc h2{font-size:48px;line-height:1.2}
.svc p{font-size:18px;line-height:1.5;margin-top:38px;color:#3d3c3d}
.svc__img img{border-radius:8px;width:100%;aspect-ratio:560/408;object-fit:cover}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-top:22px}
.checks ul{list-style:none;margin:0;padding:0}
.checks li{display:flex;gap:14px;align-items:flex-start;font-weight:500;font-size:18px;line-height:1.2;letter-spacing:-.3px;margin-bottom:18px}
.checks svg{flex:0 0 22px;width:22px;height:22px;fill:#c4c4c4;margin-top:1px}

/* Projekte */
.projects{padding:100px 0 90px}
.sec-head{text-align:center;max-width:980px;margin:0 auto;padding:0 16px}
.sec-head h2{font-size:48px;line-height:1.2}
.sec-head p{font-size:19px;line-height:1.5;margin:16px auto 0;max-width:960px}
.projects .sec-head h2{line-height:1.25}
.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px 50px;max-width:1282px;margin:80px auto 0;padding:0 16px}
.proj{text-align:center}
.proj img{border-radius:8px;width:100%;aspect-ratio:600/376;object-fit:cover}
.proj__tag{display:block;margin-top:34px;font-size:13px;letter-spacing:.6px;text-transform:uppercase}
.proj h3{font-size:24px;font-weight:500;margin-top:24px;letter-spacing:-.3px}
.proj__sub{font-size:20px;font-weight:500;color:var(--soft);margin-top:10px;letter-spacing:-.2px}

/* Testimonials */
.testi{background:var(--light);padding:100px 0 100px}
.testi .sec-head h2{font-size:48px}
.testi .sec-head p{max-width:760px;font-size:19px;margin-top:22px}
.testi__track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:70px 12px 0;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%)}
.testi__track::-webkit-scrollbar{display:none}
.tcard{flex:0 0 393px;background:#fff;border-radius:4px;overflow:hidden;scroll-snap-align:center}
.tcard__media{position:relative;aspect-ratio:393/221;background:#ddd}
.tcard__media img{width:100%;height:100%;object-fit:cover}
.tcard__play{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:rgba(184,198,198,.9);display:flex;align-items:center;justify-content:center}
.tcard__play svg{width:22px;height:22px;fill:#fff;margin-left:3px}
.tcard__ai{position:absolute;left:10px;bottom:8px;font-size:11px;color:#fff;opacity:.85}
.tcard__body{padding:32px 40px 50px}
.tcard h3{font-size:24px;letter-spacing:-.4px}
.tcard p{margin-top:14px;font-size:16px;line-height:1.5;color:#6b6a6b}

/* Galerie */
.gallery{padding:100px 0 0}
.gallery .sec-head h2{font-size:48px;line-height:1.2}
.gallery .sec-head p{margin-top:42px;max-width:850px}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:84px}
.gal-grid img{width:100%;aspect-ratio:474/308;object-fit:cover}

/* FAQ */
.faq{padding:100px 0 110px}
.faq .sec-head{max-width:700px}
.faq .sec-head h2{font-size:48px}
.faq .sec-head p{font-size:17px;margin-top:30px;line-height:1.6}
.faq-list{max-width:752px;margin:50px auto 0;padding:0 16px}
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:40px 0;cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item h3{font-size:21px;font-weight:600;letter-spacing:-.4px}
.faq-item svg{flex:0 0 20px;width:20px;height:20px;stroke:#777;transition:transform .2s}
.faq-item[open] svg .v{display:none}
.faq-item .answer{padding:0 44px 34px 0;font-size:17px;line-height:1.6;color:#4a494a}

/* Kontakt */
.contact{background:var(--light);padding:120px 32px 0}
.contact__card{max-width:1376px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 40px 80px rgba(0,0,0,.07);display:grid;grid-template-columns:1fr 1fr;overflow:hidden;min-height:660px}
.contact__text{padding:100px 90px 100px 100px;align-self:center}
.contact h2{font-size:48px;line-height:1.2}
.contact h2 .mark{padding:0 12px}
.contact p{font-size:19px;line-height:1.58;margin-top:30px;max-width:490px}
.contact .btn{margin-top:34px;font-size:17px}
.map{position:relative;background:#f8f8f6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:40px 24px}
.map svg{width:34px;height:34px}
.map a{font-size:15px;font-weight:500}

/* Footer */
.site-footer{background:var(--light);padding:120px 32px 0}
.footer-grid{max-width:1376px;margin:0 auto;display:grid;grid-template-columns:835fr 299fr 242fr;gap:0;padding-bottom:140px}
.footer-logo img{width:105px;height:auto}
.footer-claim{margin-top:22px;font-style:italic;color:#9a999a;font-size:19px;line-height:1.45;max-width:580px}
.footer-nav ul{list-style:none;margin:0;padding:0}
.footer-nav li{margin-bottom:16px}
.footer-nav a{font-weight:600;font-size:17px;text-decoration:none;letter-spacing:-.4px;border-bottom:2px solid #c8c8c6;padding-bottom:1px}
.footer-nav a:hover{border-color:var(--dark)}
.footer-contact{font-size:24px;font-weight:600;letter-spacing:-.4px;margin:0}
.footer-line{max-width:1376px;margin:0 auto;border:0;border-top:2px solid #dcdcdb}
.footer-bottom{height:90px}

/* Rechtstexte */
.legal{background:#fff;padding:80px 16px 110px}
.legal__inner{max-width:820px;margin:0 auto}
.legal h1{font-size:48px;margin-bottom:36px}
.legal h2{font-size:21px;margin:34px 0 10px;letter-spacing:-.2px}
.legal p{margin:0 0 14px;line-height:1.65;overflow-wrap:anywhere}
.page-sub .site-header--static{background:var(--light);padding-bottom:31px}

/* 404 */
.nf{padding:120px 16px 140px;text-align:center}
.nf h1{font-size:48px}
.nf p{margin:20px auto 34px;font-size:19px;max-width:560px}

/* Mobile-Menü */
.mnav{position:fixed;inset:16px 16px auto 16px;background:#fff;border-radius:12px;z-index:50;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.35);display:none}
.mnav.open{display:block}
.mnav__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.mnav__top img{width:130px}
.mnav__close{width:44px;height:44px;border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:var(--dark)}
.mnav ul{list-style:none;margin:0;padding:0}
.mnav a{display:block;padding:10px 0;text-decoration:none;font-weight:600;font-size:18px}
.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);z-index:40;display:none}
.backdrop.open{display:block}

@media (max-width:1100px){
  .main-nav{margin-right:0}
  .main-nav ul{gap:16px}
  .svc{padding:64px 48px}
  .contact__text{padding:64px 48px}
}
@media (max-width:900px){
  .main-nav{display:none}
  .burger{display:flex}
  .header-bar{min-height:118px;padding:0 24px}
  .about .wrap,.svc__grid,.contact__card{grid-template-columns:1fr}
  .svc--rev .svc__img{order:2}
  .footer-grid{grid-template-columns:1fr;gap:28px;padding-bottom:60px}
}
@media (max-width:640px){
  body{font-size:16px}
  .site-header{top:23px;padding:0 16px}
  .site-header--static{padding-top:23px}
  .header-bar{min-height:118px;padding:0 20px 0 24px}
  .logo img{width:130px}
  .hero{min-height:0}
  .hero__inner{padding:190px 8px 60px}
  .hero h1{font-size:28px;line-height:1.25}
  .mark{padding:0 7px;border-radius:4px}
  .hero__lead{font-size:17px;margin-top:40px}
  .hero__btns{flex-direction:column;margin-top:44px}
  .hero__btns .btn{width:100%}
  .about{padding:40px 0 70px}
  .about h2{font-size:32px;line-height:1.25}
  .about .wrap{gap:40px}
  .about__text p{font-size:17px}
  .services{padding:28px 16px 40px}
  .svc{padding:40px 16px;margin-bottom:28px}
  .svc h2{font-size:26px}
  .svc p{font-size:16px;margin-top:24px}
  .checks{grid-template-columns:1fr}
  .checks li{font-size:15px;margin-bottom:14px}
  .projects{padding:70px 0 60px}
  .sec-head h2,.testi .sec-head h2,.gallery .sec-head h2,.faq .sec-head h2{font-size:28px}
  .sec-head p{font-size:16px}
  .proj-grid{grid-template-columns:1fr;gap:44px;margin-top:44px}
  .proj__tag{margin-top:20px}
  .proj h3{font-size:22px;margin-top:14px}
  .proj__sub{font-size:17px}
  .testi{padding:70px 0}
  .testi__track{padding-top:44px;-webkit-mask-image:none;mask-image:none;padding-left:16px;padding-right:16px}
  .tcard{flex-basis:82%}
  .tcard__body{padding:24px 24px 34px}
  .tcard h3{font-size:21px}
  .gallery{padding-top:70px}
  .gallery .sec-head p{margin-top:24px}
  .gal-grid{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:44px}
  .faq{padding:70px 0}
  .faq .sec-head p{font-size:15px}
  .faq-item summary{padding:24px 0}
  .faq-item h3{font-size:17px}
  .faq-item .answer{padding-right:0;font-size:15px}
  .contact{padding:50px 16px 0}
  .contact__text{padding:44px 20px}
  .contact h2{font-size:28px}
  .contact p{font-size:17px}
  .contact__card{min-height:0}
  .map{min-height:260px}
  .site-footer{padding:60px 16px 0}
  .footer-claim{font-size:16px}
  .legal h1,.nf h1{font-size:32px}
  .legal p{font-size:15px}
}
