@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-400.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-500.ttf') format('truetype');
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-600.ttf') format('truetype');
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-700.ttf') format('truetype');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-800.ttf') format('truetype');
  font-weight:800;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Caveat';
  src:url('./fonts/Caveat-700.ttf') format('truetype');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

:root{
  --yellow:#d79046; --yellow-d:#d79046; --yellow-l:#d79046;
  --dark:#1E1F24; --ink:#26272C; --grey:#7A7B82; --line:#EEE;
  --bg:#FFFFFF; --soft:#F7F7F8;
  --font-main:'Poppins','Segoe UI',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-main);color:var(--ink);background:var(--bg);line-height:1.7}
body.menu-open{overflow:hidden}
img,svg{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font-family:var(--font-main)}
.wrap{max-width:1140px;margin:0 auto;padding:0 26px}
::selection{background:var(--yellow);color:#fff}

@media(hover:none) and (pointer:coarse){
  a,
  button,
  .btn,
  .brand,
  .burger,
  .card,
  .hero-service-teaser,
  .review-card,
  .reviews-track,
  .reviews-arrow,
  .quick-contact-toggle,
  .quick-contact-link,
  .back-to-top{
    touch-action:manipulation;
  }
}

h1,h2,h3,h4{font-weight:800;line-height:1.15;letter-spacing:-.5px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 30px;border-radius:40px;font-weight:600;font-size:.92rem;cursor:pointer;border:none;transition:.25s}
.btn-dark{background:var(--dark);color:#fff}
.btn-dark:hover{background:#000;transform:translateY(-2px)}
.hero-actions .btn-dark{border:1px solid rgba(255,255,255,.45)}
.btn-y{background:var(--yellow);color:#fff}
.btn-y:hover{background:var(--yellow-d);color:#fff;transform:translateY(-2px)}
.btn-out{background:transparent;border:2px solid rgba(0,0,0,.18);color:var(--dark);padding:11px 26px}
.btn-out:hover{background:var(--dark);color:#fff;border-color:var(--dark)}
.nav-contact{background:var(--yellow);color:#fff}
header:not(.at-top) .nav-contact{background:var(--dark)!important;color:#fff!important;text-shadow:none}
header:not(.at-top) .nav-contact:hover{background:#000!important}

/* ===== Header ===== */
header{position:fixed;top:0;left:0;width:100%;z-index:120;transition:.3s}
.nav-bar{background:rgba(215,144,70,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.18);transition:.3s}
.nav{display:flex;align-items:center;justify-content:space-between;max-width:1140px;margin:0 auto;padding:16px 26px}
.brand{display:flex;align-items:center;gap:11px;cursor:pointer}
.brand img{width:46px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.35))}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand b{font-size:1.25rem;letter-spacing:-.5px;transition:.3s}
.brand-claim{font-family:'Caveat',cursive;color:var(--yellow);font-weight:700;font-size:1.05rem;line-height:1;margin-top:4px;white-space:nowrap;transform:rotate(-2deg);transition:.3s}
header:not(.at-top) .brand b,
header:not(.at-top) .brand-claim{color:#fff}
header:not(.at-top) nav a:not(.active){color:#fff}
nav ul{display:flex;gap:4px;list-style:none;align-items:center}
nav a{padding:9px 16px;border-radius:30px;border:1px solid transparent;font-weight:600;font-size:.9rem;color:var(--dark);cursor:pointer;transition:.2s}
nav a:hover{background:rgba(255,255,255,.45)}
nav a.active{background:var(--dark);color:var(--yellow);border-color:rgba(255,255,255,.55)}
.burger{display:none;background:var(--dark);border:none;padding:10px 12px;border-radius:10px;cursor:pointer}
.burger-lines{display:grid;gap:5px;width:22px}
.burger-lines span{display:block;height:2px;background:var(--yellow);border-radius:2px;transition:.25s}
.burger.open .burger-lines span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open .burger-lines span:nth-child(2){opacity:0}
.burger.open .burger-lines span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
header.at-top .nav-bar{background:transparent}
header.at-top .brand b,
header.at-top nav a{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.45)}
header.at-top .brand-claim{text-shadow:0 2px 12px rgba(0,0,0,.45)}
header.at-top nav a:hover{background:rgba(255,255,255,.18)}
header.at-top nav a.active{background:rgba(30,31,36,.72);color:#fff;border-color:rgba(255,255,255,.55)}

/* ===== Pages ===== */
.page-content{padding-top:78px}
.page-content-home{padding-top:0}
#p-ablauf,
.page-ablauf .page-content{padding-top:0}
@keyframes fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ===== Hero ===== */
.hero{
  background:url("./img/hero.png") center center/cover no-repeat;
  position:relative;
  overflow:hidden;
  min-height:95vh;
  display:flex;
  align-items:center;
}
.hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:160px 26px 170px;width:100%;position:relative;z-index:1}
.tagline{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#d79046;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px}
.tagline::before{content:"";width:26px;height:3px;background:#d79046;border-radius:3px}
.hero h1{font-size:clamp(2.2rem,4.6vw,3.4rem);color:#d79046;margin-bottom:18px}
.hero h1 em{font-style:italic}
.hero h1 .subline{display:block;font-size:1.7rem;line-height:1.2;letter-spacing:-.2px;color:#fff}
.hero h1 .wht{color:#fff}
.hero p{color:#d79046;font-size:1.05rem;max-width:46ch;margin-bottom:28px}
.hero-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hero-actions .btn{height:50px}
.hero-actions .btn-y{color:#fff}
.hero-notdienst{overflow:hidden;align-items:center}
.hero-notdienst-text{display:flex;flex-direction:column;line-height:1.08}
.hero-notdienst-phone{
  display:block;
  max-height:0;
  opacity:0;
  transform:translateY(-8px);
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.35px;
  transition:max-height .28s ease,opacity .22s ease,transform .28s ease,margin-top .28s ease;
}
.hero-notdienst:hover .hero-notdienst-phone,
.hero-notdienst:focus-visible .hero-notdienst-phone{
  max-height:.95em;
  margin-top:2px;
  opacity:1;
  transform:translateY(0);
}
.hero-stats{display:flex;gap:26px;margin-top:30px}
.hero-stats b{font-size:1.7rem;display:block;color:#d79046;line-height:1}
.hero-stats span{font-size:.78rem;color:#fff;font-weight:600}
.hero-service-teasers{
  display:grid;
  gap:14px;
  justify-self:end;
  width:min(100%,330px);
}
.hero-service-teaser{
  display:flex;
  align-items:center;
  gap:14px;
  background:#fff;
  border:1px solid rgba(255,255,255,.72);
  border-radius:22px;
  padding:16px 18px;
  box-shadow:0 18px 45px rgba(0,0,0,.18);
  cursor:pointer;
  transition:.25s;
  color:inherit;
}
a.hero-service-teaser{color:inherit}
.hero-service-teaser:hover{transform:translateY(-4px);box-shadow:0 24px 55px rgba(0,0,0,.24)}
.hero-service-teaser .ic{
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--yellow);
  color:#fff;
  display:grid;
  place-items:center;
  flex-shrink:0;
  font-size:1.1rem;
  box-shadow:0 8px 20px rgba(215,144,70,.35);
}
.hero-service-teaser b{display:block;color:var(--dark);font-size:.95rem;line-height:1.15;margin-bottom:4px}
.hero-service-teaser span{display:block;color:var(--grey);font-size:.78rem;line-height:1.35}
/* Weiße Rundung am unteren Hero-Rand */
.wave{
  position:absolute;
  left:50%;
  bottom:-115px;
  width:140%;
  height:170px;
  background:#fff;
  border-radius:50% 50% 0 0;
  transform:translateX(-50%);
  pointer-events:none;
}

/* ===== Sections ===== */
section{padding:70px 0}
.head{text-align:center;max-width:640px;margin:0 auto 50px}
.kicker{display:inline-block;color:var(--yellow-d);font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:.78rem;margin-bottom:8px}
.head h2{font-size:clamp(1.7rem,3.4vw,2.5rem);color:var(--dark)}
.head p{color:var(--grey);margin-top:12px}

/* ===== Service cards ===== */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{background:#fff;border-radius:22px;padding:38px 30px;text-align:center;box-shadow:0 18px 45px rgba(0,0,0,.07);transition:.3s;cursor:pointer;border:1px solid #f0f0f0;display:block}
a.card{color:inherit}
.card:hover{transform:translateY(-10px);box-shadow:0 28px 60px rgba(0,0,0,.13)}
.card .ic{width:66px;height:66px;border-radius:50%;background:var(--yellow);color:#fff;display:grid;place-items:center;margin:0 auto 22px;font-size:1.7rem;box-shadow:0 8px 20px rgba(215,144,70,.5)}
.card h3{font-size:1.25rem;color:var(--dark);margin-bottom:12px}
.card p{font-size:.92rem;color:var(--grey);margin-bottom:24px}

/* ===== Schedule block ===== */
.schedule{background:var(--soft)}
.schedule .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.schedule h2{font-size:clamp(1.7rem,3.4vw,2.4rem);color:var(--dark);margin-bottom:16px}
.schedule p.lead{color:var(--grey);margin-bottom:24px}
.checklist{list-style:none;margin-bottom:30px}
.checklist li{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;font-weight:500;color:var(--dark)}
.checklist li i{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--yellow);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:900;font-size:.78rem;margin-top:3px}
.circle-pic{position:relative;text-align:center}
.circle-pic .bg{width:380px;height:380px;max-width:100%;border-radius:50%;background:radial-gradient(circle,var(--yellow) 60%,var(--yellow-d));margin:0 auto;position:relative;display:grid;place-items:center;box-shadow:0 24px 50px rgba(215,144,70,.4)}
.circle-pic img{width:88%;border-radius:50%;object-fit:cover}

/* ===== Detail (Leistungen) ===== */
.detail{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center;padding:50px 0;border-bottom:1px solid var(--line);scroll-margin-top:100px}
.detail:last-of-type{border:none}
.detail .ph{border-radius:22px;overflow:hidden;box-shadow:0 18px 45px rgba(0,0,0,.1)}
.detail.flip .ph{order:2}
.detail h3{font-size:1.6rem;color:var(--dark);margin-bottom:12px}
.detail .lead{color:var(--grey)}
.detail ul{list-style:none;margin-top:18px}
.detail li{display:flex;gap:11px;align-items:flex-start;margin-bottom:10px;font-size:.95rem}
.detail li i{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--yellow);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:900;font-size:.7rem;margin-top:3px}

/* ===== Steps / Schadensfall ===== */
.process{background:var(--dark);color:#fff}
/* Schadensfall: dunkler Block unter dem Header mit Abstand zum Titel */
#p-ablauf > .process,
body.page-ablauf > .page-content > .process:first-of-type{
  margin-top:0;
  padding:calc(78px + 96px) 0 70px;
}
.process .head h2{color:#fff}
.process .head .kicker{color:var(--yellow)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.step{background:#26272C;border:1px solid #34353c;border-radius:20px;padding:32px 26px;transition:.3s}
.step:hover{border-color:var(--yellow);transform:translateY(-6px)}
.step .num{width:48px;height:48px;border-radius:50%;background:var(--yellow);color:#fff;font-weight:800;display:grid;place-items:center;font-size:1.15rem;margin-bottom:16px}
.step h4{margin-bottom:8px;font-size:1.05rem;display:flex;align-items:center;gap:10px}
.step h4 i{color:var(--yellow);width:20px;text-align:center}
.step p{font-size:.88rem;color:#9a9ba2}
.step p a{position:relative;color:var(--yellow);font-weight:700}
.step p a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:100%;
  height:2px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
}
.step p a:hover::after{transform:scaleX(1)}
.step p a:hover{color:var(--yellow-l)}

/* ===== Info boxes ===== */
.iboxes{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:50px}
.ibox{border-radius:22px;padding:34px;box-shadow:0 18px 45px rgba(0,0,0,.07)}
.ibox.y{background:var(--yellow);color:#fff}
.ibox.w{background:#fff;border:1px solid #f0f0f0}
.ibox h3{color:var(--dark);font-size:1.2rem;margin-bottom:10px}
.ibox.y h3,
.ibox.y p,
.ibox.y b,
.ibox.y i{color:#fff}
.ibox.w p{color:var(--grey)}

/* ===== CTA banner ===== */
.cta{background:linear-gradient(120deg,var(--yellow-l),var(--yellow-d));border-radius:26px;padding:48px;display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap;box-shadow:0 24px 50px rgba(215,144,70,.4)}
.cta h3{color:#fff;font-size:1.6rem}
.cta p,
.cta i{color:#fff}
.cta p{font-weight:500}

/* ===== Values ===== */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:46px}
.val{background:#fff;border-radius:22px;padding:34px;text-align:center;box-shadow:0 18px 45px rgba(0,0,0,.07)}
.val .ic{width:64px;height:64px;border-radius:50%;background:var(--yellow);color:#fff;display:grid;place-items:center;margin:0 auto 16px;font-size:1.6rem}
.val h4{color:var(--dark);margin-bottom:8px}
.val p{font-size:.9rem;color:var(--grey)}
.bignum{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;text-align:center}
.bignum b{display:block;font-size:2.3rem;color:var(--yellow-d);line-height:1}
.bignum span{font-size:.82rem;color:var(--grey);font-weight:600}

/* ===== Reviews ===== */
.reviews{
  margin-top:54px;
  padding:34px;
  border-radius:28px;
  background:linear-gradient(135deg,#15161a,#23242a);
  color:#fff;
  box-shadow:0 24px 60px rgba(30,31,36,.18);
  overflow:hidden;
}
.reviews-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
}
.reviews-head h3{color:#fff;font-size:1.55rem;margin-top:4px}
.reviews-head p{max-width:640px;color:#b8b9c0;font-size:.92rem;margin-top:8px}
.reviews-google-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
  padding:11px 18px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  color:#fff;
  font-size:.84rem;
  font-weight:700;
  transition:.2s;
}
.reviews-google-link:hover{background:var(--yellow);border-color:var(--yellow);transform:translateY(-2px)}
.reviews-slider{position:relative}
.reviews-track{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:2px 2px 12px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  touch-action:auto;
  overscroll-behavior-x:contain;
}
.reviews-track::-webkit-scrollbar{display:none}
.reviews-track.dragging{
  cursor:grabbing;
  scroll-behavior:auto;
  user-select:none;
}
.review-card{
  flex:0 0 calc((100% - 40px)/3);
  min-height:248px;
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  padding:24px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:rgba(255,255,255,.06);
  box-shadow:0 18px 40px rgba(0,0,0,.18);
  transition:opacity .22s ease,transform .22s ease,box-shadow .22s ease;
}
.review-card-highlight{background:linear-gradient(145deg,rgba(215,144,70,.24),rgba(255,255,255,.07))}
.review-card-cta{border-color:rgba(215,144,70,.45)}
.review-author{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.review-avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex-shrink:0;
  background:var(--yellow);
  color:#fff;
  font-size:.95rem;
  font-weight:800;
  box-shadow:0 10px 24px rgba(215,144,70,.3);
}
.review-avatar .fa-google{font-size:1.15rem}
.review-author b{display:block;color:#fff;font-size:.98rem;line-height:1.2}
.review-author span:not(.review-avatar){display:block;color:#aaaab1;font-size:.78rem;line-height:1.35;margin-top:4px}
.review-stars{display:flex;gap:4px;color:#ffc107;font-size:.92rem;margin-bottom:18px}
.review-card p{color:#dedfe4;font-size:.93rem;line-height:1.65}
.review-card a{margin-top:auto;color:var(--yellow);font-weight:800;font-size:.88rem}
.review-card a:hover{color:#fff}
.reviews-arrow{
  position:absolute;
  top:50%;
  z-index:2;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  background:rgba(30,31,36,.86);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  transform:translateY(-50%);
  box-shadow:0 14px 34px rgba(0,0,0,.24);
  transition:.2s;
}
.reviews-arrow:hover{background:var(--yellow);border-color:var(--yellow)}
.reviews-arrow-prev{left:-18px}
.reviews-arrow-next{right:-18px}
.home-reviews-mount .reviews{margin-top:56px}

/* ===== Contact ===== */
.cgrid{display:grid;grid-template-columns:1fr 1.2fr;gap:34px;align-items:start}
.cinfo{background:var(--dark);color:#fff;border-radius:24px;padding:40px}
.cinfo h3{color:var(--yellow);margin-bottom:18px}
.cinfo>p{color:#9a9ba2;margin-bottom:26px;font-size:.93rem}
.crow{display:flex;gap:14px;margin-bottom:22px}
.crow .ic{width:46px;height:46px;border-radius:14px;background:var(--yellow);color:#fff;display:grid;place-items:center;font-size:1.15rem;flex-shrink:0}
.crow b{display:block;font-size:.92rem}
.crow span{font-size:.86rem;color:#9a9ba2}
form{background:#fff;border-radius:24px;padding:40px;box-shadow:0 18px 45px rgba(0,0,0,.08)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{font-size:.82rem;font-weight:700;color:var(--dark);display:block;margin:14px 0 6px}
input,select,textarea{width:100%;padding:13px 16px;border:1.5px solid #e2e2e6;border-radius:14px;font:inherit;background:var(--soft);transition:.2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--yellow);background:#fffdf3;box-shadow:0 0 0 3px rgba(215,144,70,.25)}
.success{display:none;background:var(--yellow);border-radius:14px;padding:14px;margin-top:18px;font-weight:600;color:#fff}
.success.show{display:block}
.success i{color:#fff}
.form-error{display:none;background:#c62828;border-radius:14px;padding:14px;margin-top:18px;font-weight:600;color:#fff}
.form-error.show{display:block}
.contact-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.form-submit:disabled{opacity:.7;cursor:not-allowed}
.form-privacy-note{font-size:.78rem;color:var(--grey);line-height:1.45;margin-top:14px}
.form-privacy-note a{color:var(--yellow);font-weight:700;cursor:pointer}
.form-submit{color:#fff}

/* ===== Legal / Impressum ===== */
.legal h1{color:var(--dark);font-size:2rem;margin-bottom:8px}
.legal>p.sub{color:var(--grey);margin-bottom:24px}
.legal h2{color:var(--dark);margin:34px 0 14px;font-size:1.5rem}
.legal h3{color:var(--dark);font-size:1.15rem;margin:24px 0 8px}
.legal p{color:var(--grey);margin-bottom:14px}
.legal ul{margin:0 0 18px 20px;color:var(--grey)}
.legal li{margin-bottom:8px}
.legal .source{font-size:.85rem;margin-top:14px}
.legal a{color:var(--yellow-d);font-weight:600}
.imp-table{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:18px}
.imp-table .box{background:var(--soft);border-radius:18px;padding:28px;border:1px solid #eee}
.imp-table .box b{color:var(--dark)}
.imp-table .box p{color:var(--ink);margin:0;line-height:1.9;font-size:.94rem}

/* ===== Footer ===== */
footer{background:var(--dark);color:#9a9ba2}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;max-width:1140px;margin:0 auto;padding:60px 26px 36px}
.foot img{width:44px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.5));margin-bottom:14px}
footer h4{color:#fff;margin-bottom:16px;font-size:1rem}
footer li{list-style:none;margin-bottom:9px;font-size:.9rem}
footer li a{cursor:pointer}
footer li a:hover{color:var(--yellow)}
footer .footer-contact-link,
footer .footer-contact-link:visited{position:relative;color:var(--yellow);font-weight:700;text-decoration:none}
footer .footer-contact-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:100%;
  height:2px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease;
}
footer .footer-contact-link:hover::after{transform:scaleX(1)}
footer .footer-contact-link:hover{color:var(--yellow-l)}
.fbottom{border-top:1px solid #34353c;text-align:center;padding:18px;font-size:.82rem}
/* ===== Notdienst Modal ===== */
.modal{
  position:fixed;
  inset:0;
  z-index:300;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.55);
}
.modal.open{display:flex}
.modal-card{
  position:relative;
  width:min(100%,420px);
  background:#fff;
  border-radius:24px;
  padding:34px;
  text-align:center;
  box-shadow:0 28px 70px rgba(0,0,0,.28);
}
.modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:36px;
  height:36px;
  border:0;
  border-radius:50%;
  background:var(--soft);
  color:var(--dark);
  font-size:1.3rem;
  cursor:pointer;
}
.modal-card .ic{
  width:58px;
  height:58px;
  border-radius:50%;
  background:var(--yellow);
  display:grid;
  place-items:center;
  margin:0 auto 18px;
  color:#fff;
  font-size:1.45rem;
}
.modal-card h3{color:var(--dark);font-size:1.35rem;margin-bottom:8px}
.modal-card p{color:var(--grey);font-size:.94rem;margin-bottom:18px}
.modal-phone{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 24px;
  border-radius:40px;
  background:var(--dark);
  color:#fff;
  font-size:1.15rem;
  font-weight:800;
}
.back-to-top{
  position:fixed;
  right:24px;
  bottom:104px;
  z-index:220;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
  background:rgba(30,31,36,.9);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:.25s;
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.back-to-top.show{opacity:1;visibility:visible;transform:none}
.back-to-top:hover{background:var(--yellow);transform:translateY(-3px)}
.quick-contact-toggle{
  position:fixed;
  right:22px;
  bottom:24px;
  z-index:235;
  width:64px;
  height:64px;
  border:0;
  border-radius:50%;
  background:linear-gradient(to bottom right,var(--yellow) 0%,#8f461c 100%);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  font-size:1.75rem;
  box-shadow:0 18px 42px rgba(215,144,70,.4);
  transition:.25s;
}
.quick-contact-toggle:hover,
.quick-contact-toggle[aria-expanded="true"]{
  transform:translateY(-4px);
  box-shadow:0 24px 56px rgba(215,144,70,.5);
}
.quick-contact-panel{
  position:fixed;
  right:24px;
  bottom:104px;
  z-index:230;
  width:min(calc(100vw - 48px),360px);
  padding:24px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:28px;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(22px) saturate(145%);
  -webkit-backdrop-filter:blur(22px) saturate(145%);
  box-shadow:0 28px 72px rgba(30,31,36,.2);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(24px,34px) scale(.86);
  transform-origin:right bottom;
  transition:opacity .24s ease,visibility .24s ease,transform .28s cubic-bezier(.2,.8,.2,1);
}
.quick-contact-panel.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}
.quick-contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.quick-contact-head span{display:block;color:var(--yellow);font-size:.76rem;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:4px}
.quick-contact-head h3{font-size:1.25rem;color:var(--dark)}
.quick-contact-close{
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:rgba(30,31,36,.08);
  color:var(--dark);
  cursor:pointer;
  flex-shrink:0;
}
.quick-contact-list{display:grid;gap:12px}
.quick-contact-link{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.86);
  box-shadow:0 10px 28px rgba(215,144,70,.09);
  transition:.2s;
}
.quick-contact-link:hover{transform:translateX(-4px);box-shadow:0 16px 34px rgba(215,144,70,.16)}
.quick-contact-link .ic{
  width:44px;
  height:44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  background:var(--yellow);
  flex-shrink:0;
}
.quick-contact-link b{display:block;color:var(--dark);font-size:.92rem;line-height:1.2}
.quick-contact-link span{display:block;color:var(--grey);font-size:.82rem;line-height:1.35;margin-top:3px}
.consent-banner{
  position:fixed;
  left:24px;
  right:24px;
  bottom:24px;
  z-index:320;
  display:none;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  max-width:1040px;
  margin:0 auto;
  padding:20px 22px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.2);
}
.consent-banner.show{display:flex}
.consent-banner h3{font-size:1rem;color:var(--dark);margin-bottom:4px}
.consent-banner p{color:var(--grey);font-size:.86rem;line-height:1.45}
.consent-banner a{color:var(--yellow);font-weight:700;cursor:pointer}
.consent-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}
.consent-actions .btn{padding:12px 22px}
.consent-actions .btn-y{color:#fff}

@media(max-width:940px){
  .hero .wrap,.cards,.schedule .wrap,.detail,.steps,.iboxes,.vals,.bignum,.cgrid,.foot,.imp-table{grid-template-columns:1fr}
  .detail.flip .ph{order:0}
  .circle-pic .bg{width:300px;height:300px}
  .nav{position:relative;z-index:132}
  .burger{display:block;position:relative;z-index:133}
  nav ul{
    display:none;
    position:fixed;
    top:var(--mobile-nav-offset, 96px);
    left:0;
    right:0;
    bottom:0;
    z-index:121;
    min-height:calc(100svh - var(--mobile-nav-offset, 96px));
    background:rgba(30,31,36,.98);
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:28px 28px 40px;
    gap:18px;
  }
  nav ul.open{display:flex}
  nav ul li{width:100%;max-width:320px;text-align:center}
  nav a,
  header.at-top nav a{
    display:flex;
    justify-content:center;
    width:100%;
    font-size:1.15rem;
    text-shadow:none;
    padding:14px 18px;
  }
  nav a:not(.active),
  header.at-top nav a:not(.active){
    color:#fff;
  }
  nav a.active,
  header.at-top nav a.active,
  header:not(.at-top) nav a.active{
    background:#fff;
    color:var(--yellow);
    padding:10px 22px;
  }
  nav a.btn-dark{background:var(--yellow)!important;color:#fff!important}
  .hero{
    background:#050505;
    align-items:stretch;
    min-height:880px;
  }
  .hero::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:100svh;
    height:100vw;
    background:url("./img/hero.png") center center/cover no-repeat;
    transform:translate(-50%,-50%) rotate(90deg) scale(1.08);
    transform-origin:center;
    z-index:0;
  }
  .hero .wrap{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-height:880px;
    padding:70px 22px 88px;
    gap:72px;
  }
  .hero h1{font-size:clamp(2rem,11vw,3rem)}
  .hero h1 .subline{font-size:1.35rem}
  .hero .wrap>div:first-child{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    min-height:430px;
  }
  .tagline{align-self:center}
  .hero h1{font-size:clamp(1.6rem,8.8vw,2.4rem)}
  .hero h1 .subline{font-size:1.28rem;font-weight:700}
  .hero-actions{gap:10px}
  .hero-actions .btn{height:47.6px;padding:12px 20px}
  .hero-stats{justify-content:center;width:100%;gap:34px}
  .hero-stats div{text-align:center}
  .hero-service-teasers{
    display:grid;
    width:100%;
    max-width:360px;
    justify-self:auto;
    align-self:center;
    gap:10px;
    margin-top:40px;
  }
  .hero-service-teaser{padding:13px 15px;border-radius:18px}
  .hero-service-teaser .ic{width:38px;height:38px}
  .back-to-top{right:18px;bottom:98px}
  .quick-contact-toggle{right:16px;bottom:22px;width:60px;height:60px}
  .quick-contact-panel{right:16px;bottom:96px;width:min(calc(100vw - 32px),340px);padding:20px}
  .consent-banner{left:14px;right:14px;bottom:14px;align-items:flex-start;flex-direction:column}
  .consent-actions{width:100%}
  .consent-actions .btn{width:100%;justify-content:center}
  .frow{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .home-services{padding-bottom:2px}
  .reviews{padding:28px 0}
  .reviews-head{display:block;padding:0 24px}
  .reviews-google-link{margin-top:18px}
  .reviews-track{
    gap:18px;
    padding:2px 80px 14px 24px;
    scroll-padding-inline:24px 80px;
  }
  .review-card{
    flex-basis:calc((100% - 118px)/2);
    scroll-snap-align:center;
    opacity:.6;
  }
  .review-card.is-active{
    opacity:1;
    box-shadow:0 22px 48px rgba(0,0,0,.24);
  }
  .reviews-arrow-prev{left:-10px}
  .reviews-arrow-next{right:-10px}
}
@media(max-width:640px){
  .reviews{
    margin-left:-26px;
    margin-right:-26px;
    padding:30px 0 26px;
    border-radius:0;
  }
  .reviews-head{padding:0 26px}
  .reviews-head h3{font-size:1.35rem}
  .reviews-google-link{width:100%;justify-content:center}
  .reviews-track{
    gap:14px;
    padding:2px 50px 64px 26px;
    scroll-padding-inline:26px 50px;
  }
  .review-card{
    flex-basis:calc(100% - 90px);
    min-height:260px;
    padding:22px;
  }
  .reviews-arrow{
    width:38px;
    height:38px;
    top:auto;
    bottom:-2px;
    transform:none;
  }
  .reviews-arrow-prev{left:calc(50% - 44px);right:auto}
  .reviews-arrow-next{left:calc(50% + 6px);right:auto}
}
@media(max-width:500px){
  .brand-claim{font-size:.84rem}
  .hero-actions{gap:8px}
  .hero-actions .btn{height:38.8px;padding:9.6px 16px}
  .hero-actions .btn-dark .fa-arrow-right{display:none}
  .hero-notdienst-phone{font-size:.6rem}
  .hero h1 .subline{font-size:1.02rem}
}
