*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:#fff;-webkit-font-smoothing:antialiased}a{color:#2a7d72;text-decoration:none}a:hover{color:#1f5f57}img{max-width:100%}a:focus-visible{outline:2px solid #68c0b4;outline-offset:3px}
.h1:hover{color:#2a7d72 !important}
.h2:hover{background:#2a7d72 !important;color:#fff !important}
.h3:hover{background:#fff !important;color:#14211f !important}
.h4:hover{border-color:#fff !important;color:#fff !important}

.legal{max-width:860px;margin:0 auto;padding:96px 32px 120px;display:flex;flex-direction:column;gap:14px;font-size:17px;line-height:1.65;color:#515151;overflow-wrap:anywhere}
.legal h1{margin:0 0 24px;font-family:Jost,sans-serif;font-weight:300;font-size:clamp(36px,5vw,56px);line-height:1.1;color:#2e3336}
.legal h2{margin:40px 0 4px;font-family:Jost,sans-serif;font-weight:500;font-size:22px;letter-spacing:.06em;text-transform:uppercase;color:#2e3336}
.legal h3{margin:24px 0 0;font-family:Jost,sans-serif;font-weight:500;font-size:18px;color:#2e3336}
.legal h4{margin:12px 0 0;font-weight:600;color:#2e3336}
.legal p,.legal ul{margin:0}.legal ul{padding-left:20px}.legal li{margin-bottom:6px}
.legal a{text-decoration:underline}
.todo{background:#fff4d6;border-left:3px solid #e0a800;padding:12px 16px}

/* ---------- Tablet ---------- */
@media (max-width:980px){
  [style*="padding:120px 32px"]{padding:88px 28px !important}
  header [style*="minmax(min(100%,240px)"] > div{border-left:0 !important;padding-left:0 !important}
}
/* ---------- Mobil ---------- */
@media (max-width:720px){
  html{scroll-padding-top:116px}
  body{font-size:16px}
  h2{font-size:21px !important;letter-spacing:.12em !important;line-height:1.35}
  [style*="padding:120px 32px"]{padding:68px 20px !important}
  [style*="gap:72px"]{gap:36px !important}
  [style*="gap:64px"]{gap:40px !important}
  [style*="gap:56px"]{gap:40px !important}

  /* Topbar: nur Telefon + Mail */
  [style*="padding:10px 32px"]{padding:9px 20px !important;justify-content:center !important;font-size:14px}
  [style*="padding:10px 32px"] > div:first-child{display:none !important}
  [style*="padding:10px 32px"] > div:last-child{gap:20px !important}

  /* Navigation: Logo oben, Links als Leiste darunter */
  nav [style*="padding:18px 32px"]{padding:12px 20px 0 !important;gap:6px !important}
  nav img{height:40px !important}
  nav .navlinks{width:100%;flex-wrap:nowrap !important;justify-content:space-between;gap:16px !important;font-size:15px !important;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:10px 20px 12px;width:calc(100% + 40px)}
  nav .navlinks::-webkit-scrollbar{display:none}
  nav .navlinks a{white-space:nowrap}
  nav .navlinks a.cta{display:none}

  /* Hero */
  header [style*="min-height:min(84vh"]{min-height:auto !important;background-position:62% center !important}
  header [style*="position:absolute;inset:0"]{background:linear-gradient(180deg,rgba(15,27,25,.55) 0%,rgba(15,27,25,.78) 40%,rgba(15,27,25,.94) 100%) !important}
  header [style*="padding:120px 32px 0"]{padding:72px 20px 0 !important;gap:56px !important}
  header [style*="max-width:760px"]{gap:24px !important}
  header h1{font-size:clamp(42px,12.5vw,58px) !important;line-height:1.02 !important}
  header p{font-size:17px !important}
  header [style*="letter-spacing:.22em"]{font-size:12px !important;letter-spacing:.18em !important}
  header [style*="gap:14px"]{flex-direction:column}
  header [style*="gap:14px"] > a{text-align:center;padding:16px 24px !important}
  header [style*="minmax(min(100%,240px)"] > div{padding:18px 0 !important;border-left:0 !important;border-bottom:1px solid rgba(255,255,255,.14)}
  header [style*="minmax(min(100%,240px)"] > div:last-child{border-bottom:0;padding-bottom:26px !important}
  header [style*="minmax(min(100%,240px)"] [style*="font-size:20px"]{font-size:18px !important}

  /* Kanzlei-Zitat */
  #kanzlei p{font-size:25px !important}

  /* Leistungen */
  #leistungen [style*="gap:24px"]{gap:14px !important}
  [style*="border-radius:16px;padding:40px"]{padding:28px 22px !important;border-radius:12px !important}
  #leistungen h3{font-size:18px !important}
  #leistungen [style*="font-weight:300;font-size:30px"]{font-size:26px !important}
  #leistungen p[style*="font-size:19px"]{font-size:17px !important}

  /* Digital: Schritte untereinander */
  [style*="minmax(min(100%,260px)"] > div{padding:22px 0 !important;border-left:0 !important;border-bottom:1px solid #dcdcdc;flex-direction:row !important;flex-wrap:wrap;align-items:baseline;column-gap:16px !important;row-gap:4px !important}
  [style*="minmax(min(100%,260px)"] > div > span:first-child{font-size:34px !important;width:28px}
  [style*="minmax(min(100%,260px)"] > div > span:not(:first-child){flex:1 1 calc(100% - 44px);margin-left:44px}
  [style*="minmax(min(100%,260px)"] > div > span:nth-child(2){margin-left:0;flex:1 1 auto}
  #digital p[style*="font-size:18px"]{font-size:16px !important}
  [style*="grid-template-columns:auto repeat"]{grid-template-columns:1fr 1fr !important;gap:18px 16px !important;padding:26px 22px !important;border-radius:12px !important}
  [style*="grid-template-columns:auto repeat"] > img{grid-column:1/-1;width:96px !important}
  [style*="grid-template-columns:auto repeat"] span{font-size:15px}

  /* Service */
  [style*="padding:16px 40px"]{padding:4px 20px !important;border-radius:12px !important}
  #service a[style*="justify-content:space-between"]{font-size:16px;padding:16px 0 !important}
  #service p[style*="font-size:19px"]{font-size:17px !important}

  /* Kontakt */
  #kontakt [style*="font-size:30px"]{font-size:26px !important}
  #kontakt a[style*="align-self:flex-start"]{align-self:stretch !important;text-align:center}

  /* Footer */
  footer [style*="padding:32px"]{padding:26px 20px !important;flex-direction:column;align-items:flex-start !important;gap:14px !important}

  /* Rechtstexte */
  .legal{padding:56px 20px 80px;font-size:16px}
  .legal h2{font-size:19px !important}
}

/* ---------- Einwilligungs-Banner ---------- */
#cb{position:fixed;left:0;right:0;bottom:0;z-index:100;padding:20px;display:flex;justify-content:center;pointer-events:none;opacity:0;transform:translateY(16px);transition:opacity .25s ease,transform .25s ease;font-family:'Source Sans 3',sans-serif}
#cb.cb-in{opacity:1;transform:none}
#cb .cb-box{pointer-events:auto;width:100%;max-width:1200px;background:#14211f;color:#dfe6e5;border-radius:4px;box-shadow:0 18px 50px rgba(10,20,18,.35);padding:26px 30px;display:flex;align-items:center;gap:36px;border-top:3px solid #68c0b4}
#cb .cb-text{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}
#cb .cb-head{display:flex;align-items:center;gap:16px;margin-bottom:4px}
#cb .cb-img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 3px #14211f,0 0 0 5px #68c0b4}
#cb .cb-who{display:flex;flex-direction:column;gap:2px;min-width:0}
#cb .cb-sub{font-size:14px;color:#9fb0ad;font-style:italic}
#cb .cb-bar{width:28px;height:8px;background:#68c0b4;flex:none}
#cb .cb-title{font-family:Jost,sans-serif;font-weight:400;font-size:20px;color:#fff;letter-spacing:.01em}
#cb p{margin:0;font-size:15.5px;line-height:1.55;color:#c9d3d1;text-wrap:pretty}
#cb p a{color:#68c0b4;text-decoration:underline;text-underline-offset:2px}
#cb p a:hover{color:#fff}
#cb .cb-actions{display:flex;gap:12px;flex:none}
#cb .cb-btn{font:inherit;font-size:15.5px;font-weight:600;padding:14px 26px;border-radius:2px;cursor:pointer;min-width:140px;transition:background .15s,color .15s,border-color .15s}
#cb .cb-no{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}
#cb .cb-no:hover{border-color:#fff;background:rgba(255,255,255,.06)}
#cb .cb-yes{background:#68c0b4;color:#14211f;border:1px solid #68c0b4}
#cb .cb-yes:hover{background:#fff;border-color:#fff}
#cb .cb-btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:820px){
  #cb{padding:12px}
  #cb .cb-box{flex-direction:column;align-items:stretch;gap:20px;padding:22px 20px}
  #cb .cb-actions > .cb-btn{flex:1;min-width:0}
  #cb .cb-img{width:52px;height:52px}
  #cb .cb-title{font-size:18px}
}
@media (prefers-reduced-motion:reduce){#cb{transition:none}}

/* ---------- FAQ ---------- */
summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:#2a7d72 !important}
.faq-item .faq-i{transition:transform .2s ease,background .2s ease,color .2s ease}
.faq-item[open] .faq-i{transform:rotate(45deg);background:#68c0b4;color:#14211f !important}
.faq-item summary:focus-visible{outline:2px solid #68c0b4;outline-offset:4px}
@media (max-width:900px){#faq{grid-template-columns:minmax(0,1fr) !important;gap:36px !important}}
@media (max-width:720px){
  .faq-item summary{font-size:17.5px !important;padding:20px 0 !important;gap:16px !important}
  .faq-item p{padding:0 0 22px !important;font-size:16px !important}
  #faq p[style*="font-size:19px"]{font-size:17px !important}
  nav .navlinks{gap:14px !important}
}
