/* Lokale Freigabeversion 30.09.2026: Header, Rechtstexte und Kontaktformular */

.site-header .top-header {
  display: grid !important;
  grid-template-columns: clamp(150px, 15vw, 210px) minmax(260px, 340px) !important;
  align-items: center !important;
  gap: clamp(1rem, 2vw, 2rem) !important;
  justify-content: start !important;
  min-height: clamp(190px, 21vw, 320px) !important;
  padding: clamp(1rem, 2vw, 2rem) clamp(1rem, 4vw, 4.5rem) !important;
  max-width: none !important;
  margin: 0 !important;
  background-color: #fff !important;
  background-image: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.96) 30%, rgba(255,255,255,.58) 47%, rgba(255,255,255,0) 68%), url("header.jpg") !important;
  background-repeat: no-repeat !important;
  background-position: center top !important;
  background-size: cover !important;
}

.site-header .logo-area {
  width: auto !important;
  max-width: 210px !important;
  align-self: center;
}

.site-header .logo {
  width: 100% !important;
  max-height: 150px !important;
  object-fit: contain;
}

.site-header .header-content {
  display: block !important;
  align-items: center !important;
  gap: clamp(1rem, 2vw, 2rem) !important;
  width: 100% !important;
  min-height: 0 !important;
  overflow: visible !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

.site-header .header-text {
  width: auto !important;
  max-width: 330px !important;
  padding: 0 !important;
}

.site-header .claim-box {
  display: block !important;
  padding: 0 !important;
  background: transparent !important;
}

.site-header .claim-bold {
  font-size: clamp(1.25rem, 1.8vw, 1.85rem) !important;
}

.site-header .claim-light {
  font-size: clamp(1.05rem, 1.5vw, 1.55rem) !important;
  margin-bottom: .7rem !important;
}

.site-header .phone {
  margin: 0 0 .45rem !important;
  font-size: clamp(1.45rem, 2.1vw, 2.15rem) !important;
  letter-spacing: .01em;
}

.site-header .phone::before {
  content: "Telefon ";
  display: block;
  margin-bottom: .08rem;
  color: #3c3c3b;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.site-header .contact-line {
  color: #3c3c3b !important;
  font-size: clamp(.79rem, 1vw, .96rem) !important;
  line-height: 1.55 !important;
}

.site-header .header-image {
  display: none !important;
}

.site-header .header-image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.social-nav { background: #4480a2; padding: .62rem 1rem; }
.social-list { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; max-width: 1580px; margin: 0 auto; }
.social-list a { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,.72); border-radius: 50%; }
.social-list svg { width: 21px; height: 21px; fill: currentColor; }

.page-banner { padding: clamp(2.4rem, 5vw, 4.5rem) 1.25rem; background: #eef1e8; text-align: center; }
.page-banner h1 { margin: 0; color: #4480a2; font-size: clamp(2rem, 4vw, 3.4rem); }
.legal-page { padding: clamp(2.5rem, 6vw, 5rem) 1.25rem; background: #fff; }
.legal-page__shell { margin: 0 auto; }
.legal-page__shell h2 { margin: 0 0 1rem; color: #4480a2; font-size: clamp(1.9rem, 3vw, 2.7rem); }
.legal-page__shell h3 { margin: 2.3rem 0 .8rem; color: #4480a2; font-size: 1.35rem; }
.legal-page__shell p { margin: 0 0 1rem; line-height: 1.72; }

.site-footer { padding: 2.8rem clamp(1.2rem, 4vw, 4rem) 0; background: #4480a2; color: #fff; }
.site-footer a { color: #fff; }
.site-footer__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; max-width: 1200px; margin: 0 auto; }
.site-footer__title { margin: 0 0 1rem; color: #fff; font-size: 1.1rem; text-transform: uppercase; }
.site-footer__col p { margin: .25rem 0; }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 1200px; margin: 2rem auto 0; padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.35); }
.site-footer__logo-wrap { width: 58px; height: 58px; }
.site-footer__logo { width: 100%; height: 100%; object-fit: contain; }

.dokufritze-independence {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin: 0 0 1rem;
  padding: .5rem .75rem;
  color: #234f6f;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(35,79,111,.18);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .02em;
}

.dokufritze-independence::before {
  content: "↗";
  font-size: 1rem;
}

.form-note {
  margin: .3rem 0 0;
  color: #525252;
  font-size: .9rem;
  line-height: 1.55;
}

.form-status {
  min-height: 1.5rem;
  margin-top: .8rem;
  padding: .75rem 1rem;
  border-radius: 8px;
  font-weight: 700;
}

.form-status:empty { display: none; }
.form-status.is-success { color: #285d1f; background: #edf7e8; }
.form-status.is-error { color: #8b2222; background: #fff0f0; }
.form-honeypot { position: absolute !important; left: -9999px !important; }
.submit-button[disabled] { cursor: wait; opacity: .65; }

.footer-legal { display: flex; flex-wrap: wrap; gap: .6rem 1.1rem; }
.footer-legal a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.footer-credit { text-align: center; font-size: .86rem; }
.footer-credit a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.legal-page__shell,
.legal-shell {
  max-width: 980px;
}

.legal-meta {
  margin: -.35rem 0 2rem;
  color: #657079;
  font-size: .9rem;
}

.legal-card {
  margin: 1.25rem 0;
  padding: 1.2rem 1.35rem;
  background: #f5f7f2;
  border-left: 5px solid #7cb342;
}

.legal-page__shell a,
.legal-shell a { color: #347297; text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 1120px) {
  .site-header .top-header {
    grid-template-columns: 145px minmax(230px, 295px) !important;
    background-position: 58% top !important;
  }
}

@media (max-width: 820px) {
  .site-header .top-header {
    grid-template-columns: minmax(105px, 135px) minmax(0, 1fr) !important;
    align-items: center !important;
    min-height: 250px !important;
    background-position: 63% center !important;
  }

  .site-header .header-content {
    display: block !important;
  }

  .site-header .header-text { max-width: none !important; }
}

@media (max-width: 560px) {
  .site-header .top-header {
    grid-template-columns: 104px minmax(0, 1fr) !important;
    justify-items: start !important;
    gap: .85rem !important;
    min-height: 245px !important;
    padding: 1rem .85rem !important;
    background-image: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.94) 48%, rgba(255,255,255,.32) 72%, rgba(255,255,255,0) 100%), url("header.jpg") !important;
    background-position: 70% center !important;
    background-size: auto 100% !important;
  }

  .site-header .logo-area { width: 104px !important; }
  .site-header .header-text { text-align: left; }
  .site-header .claim-bold { font-size: 1.05rem !important; }
  .site-header .claim-light { font-size: .9rem !important; margin-bottom: .45rem !important; }
  .site-header .phone { font-size: 1.18rem !important; }
  .site-header .contact-line { font-size: .74rem !important; }
  .social-list { justify-content: center; }
  .site-footer__inner { grid-template-columns: 1fr; }
  .site-footer__bottom { flex-wrap: wrap; justify-content: center; text-align: center; }
  .footer-credit { flex-basis: 100%; order: 3; }
}
